Эх сурвалжийг харах

计件工资计算成品防护计算规则优化

qiuenguang 11 сар өмнө
parent
commit
f79731b83e

+ 28 - 10
application/api/controller/StaffSalary.php

@@ -565,16 +565,34 @@ class StaffSalary extends Api
                 });
             }else{
                 //如果出勤天数小于法定天数,按正常计算
-                if(strpos($item['sczl_type'],'成品入仓')){
-                    $pieceWorkWage = $data[$key]['达标定额']/1000*$item['千件工价']*$item['Rate'];
-                }else{
-                    if (count($days[$day_bh]) <= $params['days']){
-                        $pieceWorkWage = $data[$key]['达标定额']/1000*$item['千件工价']*$item['Rate'];
-                    }else{ //如果出勤天数大于法定天数,达标定额为 0,计件工资为0,超出的部分按加班工资算
-                        $data[$key]['达标定额'] = '0.00';
-                        $pieceWorkWage = '0.00';
-                    }
-                    $overTimePay = ($item['核算产量'] - $data[$key]['达标定额']) / 1000 *$item['千件工价'] * $item['Rate'] *1.5;
+//                if(strpos($item['sczl_type'],'成品入仓')){
+//                    $pieceWorkWage = $data[$key]['达标定额']/1000*$item['千件工价']*$item['Rate'];
+//                }else{
+//                    if (count($days[$day_bh]) <= $params['days'] && strpos($item['sczl_type'],'成品入仓') === false){
+//                        $pieceWorkWage = $data[$key]['达标定额']/1000*$item['千件工价']*$item['Rate'];
+//                    }else{ //如果出勤天数大于法定天数,达标定额为 0,计件工资为0,超出的部分按加班工资算
+//                        $data[$key]['达标定额'] = '0.00';
+//                        $pieceWorkWage = '0.00';
+//                    }
+//                    $overTimePay = ($item['核算产量'] - $data[$key]['达标定额']) / 1000 *$item['千件工价'] * $item['Rate'] *1.5;
+//                }
+                // 计算计件工资
+                $basePieceWorkWage = $data[$key]['达标定额'] / 1000 * $item['千件工价'] * $item['Rate'];
+
+                // 如果出勤天数小于法定天数
+                if (strpos($item['sczl_type'], '成品入仓') !== false || count($days[$day_bh]) <= $params['days']) {
+                    $pieceWorkWage = $basePieceWorkWage;
+                } else {
+                    // 如果出勤天数大于法定天数,达标定额和计件工资为 0,超出的部分按加班工资算
+                    $data[$key]['达标定额'] = '0.00';
+                    $pieceWorkWage = '0.00';
+                }
+
+                // 计算加班工资
+                if ($item['核算产量'] > $data[$key]['达标定额']) {
+                    $overTimePay = ($item['核算产量'] - $data[$key]['达标定额']) / 1000 * $item['千件工价'] * $item['Rate'] * 1.5;
+                } else {
+                    $overTimePay = 0; // 确保没有加班时,加班工资为0
                 }
             }
             $data[$key]['个人计件工资'] = number_format($pieceWorkWage,2,'.', '');