|
|
@@ -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) {
|