Преглед изворни кода

奖金结算的时候,修改各个奖金用户结算时聘级为蓝星奖当时计算出来的聘级

zxiansheng пре 3 година
родитељ
комит
933ccfd867
1 измењених фајлова са 104 додато и 1 уклоњено
  1. 104 1
      common/helpers/bonus/BonusSend.php

+ 104 - 1
common/helpers/bonus/BonusSend.php

@@ -36,7 +36,12 @@ use yii\base\StaticInstanceTrait;
 use common\helpers\Cache;
 use common\helpers\Date;
 use common\models\CalcBonus;
+use common\models\CalcBonusBD;
 use common\models\CalcBonusBS;
+use common\models\CalcBonusGX;
+use common\models\CalcBonusQY;
+use common\models\CalcBonusTG;
+use common\models\FlowBonus;
 use common\models\PerfActiveUser;
 use common\models\PerfMonth;
 use common\models\User;
@@ -408,11 +413,109 @@ class BonusSend extends BaseObject {
                 $transaction = Yii::$app->db->beginTransaction();
                 try {
                     foreach ($allData as $data) {
+                        $nowBsEmpLv = $data['LEVEL_ID']; // 当前蓝星奖计算(即管理奖) 的等级
+                        // 修改AR_CALC_BONUS的LAST_EMP_LV聘级,修改奖金流水的聘级AR_FLOW_BONUS表的LAST_EMP_LV
+                        // 期结算结果
+                        CalcBonus::updateAll(
+                            [
+                                'LAST_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
+                        // 奖金流水
+                        FlowBonus::updateAll(
+                            [
+                                'LAST_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
+                        // 共享奖流水
+                        CalcBonusGX::updateAll(
+                            [
+                                'LAST_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
+                        // 推广奖流水
+                        CalcBonusTG::updateAll(
+                            [
+                                'LAST_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
+                        // 团队奖流水
+                        CalcBonusQY::updateAll(
+                            [
+                                'LAST_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
+                        // 服务奖流水
+                        CalcBonusBD::updateAll(
+                            [
+                                'LAST_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
+                        // 更新form的聘级
+                        CalcBonusGX::updateAll(
+                            [
+                                'LAST_FROM_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'FROM_USER_ID=:FROM_USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':FROM_USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
+                        CalcBonusTG::updateAll(
+                            [
+                                'LAST_FROM_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'FROM_USER_ID=:FROM_USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':FROM_USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
+                        CalcBonusBD::updateAll(
+                            [
+                                'LAST_FROM_EMP_LV' => $nowBsEmpLv
+                            ], 
+                            'FROM_USER_ID=:FROM_USER_ID AND PERIOD_NUM=:PERIOD_NUM', 
+                            [
+                                ':FROM_USER_ID' => $data['USER_ID'],
+                                ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
                         //@todo 用户级别不变则不更新
                         if( $data['LEVEL_ID'] === $defaultEmpLv ) continue;
                         $user = CalcCache::getUserInfo($data['USER_ID'], $this->_periodNum);
                         $userEmpLv = $user['EMP_LV']; // 用户的历史最高聘级
-                        $nowBsEmpLv = $data['LEVEL_ID']; // 当前蓝星奖计算(即管理奖) 的等级
                         $userEmpLvSort = $empLv[$userEmpLv]; // 历史最高聘级的 级别值
                         $nowBsEmpLvSort = $empLv[$nowBsEmpLv]; // 当前蓝星计算的聘级 级别值
                         if ($nowBsEmpLvSort > $userEmpLvSort) {