|
@@ -1251,7 +1251,6 @@ class After extends Base
|
|
|
|
|
|
if ($val->check($param) == false) return json_show(1004, $val->getError());
|
|
|
|
|
|
-
|
|
|
$bkcode = $param['returnCode'];
|
|
|
$company = $param['company'];
|
|
|
$post_code = $param['post_code'];
|
|
@@ -1375,11 +1374,35 @@ class After extends Base
|
|
|
$upout = Db::name("order_out")->save($out);
|
|
|
if ($upout == false) throw new Exception('出库单数据更新失败');
|
|
|
|
|
|
- //发货工单
|
|
|
- Db::name('order_out_child')
|
|
|
+ //发货工单,有可能会有多个,要按照顺序扣减发货数
|
|
|
+// Db::name('order_out_child')
|
|
|
+// ->where(['is_del' => 0, 'outCode' => $info["outCode"]])
|
|
|
+// ->dec('num', $info['error_num'])
|
|
|
+// ->update(['updatetime' => date("Y-m-d H:i:s")]);
|
|
|
+
|
|
|
+ $error_num = $info['error_num'];
|
|
|
+ $tmp_ooc = Db::name('order_out_child')
|
|
|
->where(['is_del' => 0, 'outCode' => $info["outCode"]])
|
|
|
- ->dec('num', $info['error_num'])
|
|
|
- ->update(['updatetime' => date("Y-m-d H:i:s")]);
|
|
|
+ ->field('id,num')
|
|
|
+ ->select()
|
|
|
+ ->toArray();
|
|
|
+ foreach ($tmp_ooc as $tmp) {
|
|
|
+
|
|
|
+ if ($tmp['num'] >= $error_num) {
|
|
|
+ Db::name('order_out_child')
|
|
|
+ ->where(['is_del' => 0, 'id' => $tmp["id"]])
|
|
|
+ ->dec('num', $error_num)
|
|
|
+ ->update(['updatetime' => date("Y-m-d H:i:s")]);
|
|
|
+ $error_num = 0;
|
|
|
+ } else {
|
|
|
+ Db::name('order_out_child')
|
|
|
+ ->where(['is_del' => 0, 'id' => $tmp["id"]])
|
|
|
+ ->update(['num' => 0, 'updatetime' => date("Y-m-d H:i:s")]);
|
|
|
+ $error_num -= $tmp['num'];
|
|
|
+ }
|
|
|
+ if ($error_num == 0) break;
|
|
|
+
|
|
|
+ }
|
|
|
|
|
|
//如果供应商承担,维护采购单
|
|
|
if ($info['return_tag'] == 1) {
|