ソースを参照

增加季度奖日志,季度奖如果不发奖需要将AMOUNT字段值更新成0

root 3 年 前
コミット
4d761967b3
2 ファイル変更37 行追加26 行削除
  1. 11 0
      common/helpers/bonus/CalcServeBonusCalc.php
  2. 26 26
      common/models/ServeLog.php

+ 11 - 0
common/helpers/bonus/CalcServeBonusCalc.php

@@ -1182,6 +1182,17 @@ class CalcServeBonusCalc extends BaseObject {
                     // 管理奖钻卡发放
                     if ($user['LAST_DEC_LV'] == $minDecLevel) {
                         CalcCache::bonus($user['USER_ID'], $this->_periodNum, 'BONUS_QUARTER', $user['ORI_BONUS']);
+                    } else {
+                        // 如果未发奖,则将实发字段,改成0
+                        CalcBonusQuarter::updateAll(
+                            [
+                                'AMOUNT' => '0.00'
+                            ],
+                            'USER_ID=:USER_ID AND PERIOD_NUM=:PERIOD_NUM',
+                            [
+                                ':USER_ID' => $user['USER_ID'], ':PERIOD_NUM' => $this->_periodNum
+                            ]
+                        );
                     }
                 }
                 return $this->calcQuarterUser($offset + $this->_limit);

+ 26 - 26
common/models/ServeLog.php

@@ -555,38 +555,38 @@ AR_CALC_BONUS_VILLA-清除房奖流水表总条数:$bonusVillaCount;AR_CALC_BONU
     }
 
     /**
-     * 记录季度奖数据----季度奖有问题,记录不到实发金额,因为不符合得奖得人,没有更新流水表中的AMOUNT字段
+     * 记录季度奖数据
      * @param int $periodNum
      * @param int $calcMonth 业绩期
      */
     public static function bonusQuarterData($periodNum, $calcMonth) {
         // 得奖人数和实发金额
-        // $hasNumData = CalcBonusQuarter::findUseSlaves()
-        // ->select('COUNT(ID) AS USER_NUM, SUM(AMOUNT) AS BONUS_AMOUNT')
-        // ->where('PERIOD_NUM=:PERIOD_NUM AND AMOUNT > 0', ['PERIOD_NUM'=>$periodNum])
-        // ->asArray()
-        // ->one();
-        // $hasNum = $hasNumData['USER_NUM'];
-        // $realBonus = $hasNumData['BONUS_AMOUNT'];
+        $hasNumData = CalcBonusQuarter::findUseSlaves()
+        ->select('COUNT(ID) AS USER_NUM, SUM(AMOUNT) AS BONUS_AMOUNT')
+        ->where('PERIOD_NUM=:PERIOD_NUM AND AMOUNT > 0', ['PERIOD_NUM'=>$periodNum])
+        ->asArray()
+        ->one();
+        $hasNum = $hasNumData['USER_NUM'];
+        $realBonus = $hasNumData['BONUS_AMOUNT'];
         
-        // // 封顶金额
-        // $cappedBonusData = CalcBonusGarage::findUseSlaves()
-        // ->select('SUM(CAP_AMOUNT) AS CAPPED_AMOUNT')
-        // ->where('PERIOD_NUM=:PERIOD_NUM AND CAP_AMOUNT > 0 AND CAP_AMOUNT>AMOUNT', ['PERIOD_NUM'=>$periodNum])
-        // ->asArray()
-        // ->one();
-        // $cappendBonus = $cappedBonusData['CAPPED_AMOUNT'];
-
-        // $desc = "计算季度奖完成AR_CALC_BONUS_QUARTER:得奖人数:xx,原金额:xx,实发金额:xx";
-        // $logData[] = [
-        //     'PERIOD_NUM' => $periodNum,
-        //     'CALC_MONTH' => $calcMonth,
-        //     'LOG_DESCRIBE' => $desc,
-        //     'CREATE_AT' => time(),
-        //     'RECORD_SORT' => 4000
-        // ];
-
-        // ServeLog::batchInsert($logData);
+        // 原奖金
+        $cappedBonusData = CalcBonusQuarter::findUseSlaves()
+        ->select('SUM(ORI_BONUS) AS ORI_AMOUNT')
+        ->where('PERIOD_NUM=:PERIOD_NUM', ['PERIOD_NUM'=>$periodNum])
+        ->asArray()
+        ->one();
+        $oriAmount = $cappedBonusData['ORI_AMOUNT'];
+
+        $desc = "计算季度奖完成AR_CALC_BONUS_QUARTER:得奖人数:$hasNum,原金额:$oriAmount,实发金额:$realBonus";
+        $logData[] = [
+            'PERIOD_NUM' => $periodNum,
+            'CALC_MONTH' => $calcMonth,
+            'LOG_DESCRIBE' => $desc,
+            'CREATE_AT' => time(),
+            'RECORD_SORT' => 4000
+        ];
+
+        ServeLog::batchInsert($logData);
         return true;
     }