|
|
@@ -38,7 +38,6 @@ class WorkOrder extends Api
|
|
|
'progressAll' => $progressAll,
|
|
|
'印刷工单' => [],
|
|
|
'糊盒工单' => []
|
|
|
-
|
|
|
];
|
|
|
$sql = "SELECT DISTINCT
|
|
|
(客户编号),rtrim(客户名称 ) as 客户名称
|
|
|
@@ -990,6 +989,40 @@ class WorkOrder extends Api
|
|
|
'yj_ls' => isset($param['ls'])?$param['ls']:'',
|
|
|
'yj_desc' => isset($param['desc'])?$param['desc']:'',
|
|
|
];
|
|
|
+ //获取工单编号
|
|
|
+ $workOrder = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->field('Yj_Gdbh,yj_Yjno')->find();
|
|
|
+ //获取工艺资料
|
|
|
+ $processList = \db('工单_工艺资料')
|
|
|
+ ->where('Gy0_gdbh',$workOrder['Yj_Gdbh'])
|
|
|
+ ->where('Gy0_yjno',$workOrder['yj_Yjno'])
|
|
|
+ ->field('Gy0_Rate0 as 损耗定额,Gy0_Rate1 as 损耗率,rtrim(损耗系数) as 损耗系数,Gy0_ms,Gy0_ls,UniqId')
|
|
|
+ ->select();
|
|
|
+ //计算损耗定额和计划产量
|
|
|
+ $production = [];
|
|
|
+ foreach ($processList as $key=>$value){
|
|
|
+ if ($key === 0){
|
|
|
+ array_push($production,$param['pztl']);
|
|
|
+ }
|
|
|
+ $wastage = 0;
|
|
|
+ if ($value['损耗率'] !== 0 && !empty($value['损耗率'])){
|
|
|
+ $wastage = ($production[$key]*$value['损耗率']+$value['损耗定额'])*$value['损耗系数'];
|
|
|
+ }
|
|
|
+
|
|
|
+ if ($value['Gy0_ms'] >0 && !empty($value['Gy0_ms'])){
|
|
|
+ $wastage = round($wastage * $value['Gy0_ms']);
|
|
|
+ }
|
|
|
+ if ((int)$value['Gy0_ls'] === 1 && $key>=1){
|
|
|
+ $number = $production[$key]*$processList[$key-1]['Gy0_ls'];
|
|
|
+ }else{
|
|
|
+ $number = $production[$key];
|
|
|
+ }
|
|
|
+ array_push($production,ceil($number-$wastage));
|
|
|
+ $processSql = \db('工单_工艺资料')
|
|
|
+ ->where('UniqId',$value['UniqId'])
|
|
|
+ ->fetchSql(true)
|
|
|
+ ->update(['Gy0_计划接货数'=>$production[$key],'Gy0_计划损耗'=>$wastage]);
|
|
|
+ \db()->query($processSql);
|
|
|
+ }
|
|
|
$sql = \db('工单_印件资料')->where('Uniqid',$param['Uniqid'])->fetchSql(true)->update($data);
|
|
|
$res = Db::query($sql);
|
|
|
if ($res !== false){
|