|
@@ -62,10 +62,15 @@ class BoxService extends Service
|
|
|
// ];
|
|
|
|
|
|
$ids = [];
|
|
|
+ $sale_ids = [];
|
|
|
$key_list = [];
|
|
|
$top_order_no = $data['order_no'];
|
|
|
+ $data = $data['param'];
|
|
|
foreach ($data as $v) {
|
|
|
- $ids[] = $v['id'];
|
|
|
+
|
|
|
+ if($v['id'] < 0) $sale_ids[] = -$v['id'];
|
|
|
+ else $ids[] = $v['id'];
|
|
|
+ if($v['id'] < 0) $v['id'] = -$v['id'];
|
|
|
$total = 0;
|
|
|
|
|
|
foreach ($v['params'] as $vv) {
|
|
@@ -77,19 +82,23 @@ class BoxService extends Service
|
|
|
];
|
|
|
}
|
|
|
$insert = [];
|
|
|
+// var_dump($ids);
|
|
|
+// var_dump($sale_ids);die;
|
|
|
try{
|
|
|
DB::beginTransaction();
|
|
|
$key = $this->lock_key.'_'.$v['id'];
|
|
|
$lock_status = $this->isLock($key);
|
|
|
if(!$lock_status) return [false,'操作过于频繁'];
|
|
|
$product_list = OrdersProduct::wherein('id', $ids)->get()->toArray();
|
|
|
+// var_dump($product_list);die;
|
|
|
+ $sale_product_list = SaleOrdersProduct::wherein('id', $sale_ids)->get()->toArray();
|
|
|
$box_insert = [];
|
|
|
foreach ($product_list as $v) {
|
|
|
|
|
|
$num_list = $key_list[$v['id']];
|
|
|
$total = $num_list['total'];
|
|
|
$detail = $num_list['detail'];
|
|
|
- $un_box_num = $v['order_quantity'] - $v['box_num'];
|
|
|
+ $un_box_num = $v['dispatch_complete_quantity'] - $v['box_num'];
|
|
|
if ($total > $un_box_num) return [false, $v['product_title'] . '数量不足'];
|
|
|
|
|
|
$ext_1 = $v['customer_no'];
|
|
@@ -109,6 +118,7 @@ class BoxService extends Service
|
|
|
'ext_4' => $ext_4,
|
|
|
'ext_5' => $ext_5,
|
|
|
'num' => $vv,
|
|
|
+ 'box_type' => 0
|
|
|
|
|
|
];
|
|
|
|
|
@@ -117,6 +127,49 @@ class BoxService extends Service
|
|
|
SaleOrdersProduct::where('id',$v['sale_orders_product_id'])->update([
|
|
|
'box_num' => DB::raw('box_num + '.$total),
|
|
|
]);
|
|
|
+ OrdersProduct::where('id',$v['id'])->update([
|
|
|
+ 'box_num' => DB::raw('box_num + '.$total),
|
|
|
+ ]);
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ foreach ($sale_product_list as $v) {
|
|
|
+ if($v['id'] < 0) $v['id'] = -$v['id'];
|
|
|
+ $num_list = $key_list[$v['id']];
|
|
|
+ $total = $num_list['total'];
|
|
|
+ $detail = $num_list['detail'];
|
|
|
+ $box_detail = new BoxDetail(['channel'=>$top_order_no]);
|
|
|
+ $un_box_num = $v['order_quantity'] - $v['box_num'] - $box_detail->where('top_id',$v['id'])->where('box_type',1)->sum('num');
|
|
|
+ if ($total > $un_box_num) return [false, $v['product_title'] . '数量不足'];
|
|
|
+
|
|
|
+ $ext_1 = $v['customer_no'];
|
|
|
+ $ext_2 = $v['customer_name'];
|
|
|
+ $ext_3 = $v['product_no'];
|
|
|
+ $ext_4 = $v['product_title'];
|
|
|
+ $ext_5 = $v['product_size'];
|
|
|
+ $out_order_no = $insert['out_order_no'] = $v['out_order_no'];
|
|
|
+ $top_id = $v['id'];
|
|
|
+ foreach ($detail as $vv){
|
|
|
+ $box_insert[] = [
|
|
|
+ 'out_order_no' => $out_order_no,
|
|
|
+ 'top_id' => $top_id,
|
|
|
+ 'ext_1' => $ext_1,
|
|
|
+ 'ext_2' => $ext_2,
|
|
|
+ 'ext_3' => $ext_3,
|
|
|
+ 'ext_4' => $ext_4,
|
|
|
+ 'ext_5' => $ext_5,
|
|
|
+ 'num' => $vv,
|
|
|
+ 'box_type' => 1,
|
|
|
+
|
|
|
+ ];
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+ SaleOrdersProduct::where('id',$v['id'])->update([
|
|
|
+ 'box_num' => DB::raw('box_num + '.$total),
|
|
|
+ ]);
|
|
|
|
|
|
|
|
|
|
|
@@ -124,6 +177,7 @@ class BoxService extends Service
|
|
|
}
|
|
|
$insert['detail'] = $box_insert;
|
|
|
$insert['top_order_no'] = $top_order_no;
|
|
|
+// var_dump($insert);die;
|
|
|
list($status,$msg) = self::$box_hook->boxInsert($insert);
|
|
|
|
|
|
if(!$status) {
|
|
@@ -168,7 +222,6 @@ class BoxService extends Service
|
|
|
$model_key_list[$v['id']] = $v;
|
|
|
}
|
|
|
|
|
|
- $product_key_list = [];
|
|
|
$product_key_num_list = [];
|
|
|
foreach ($product_list as $v){
|
|
|
if(!isset($product_key_num_list[$v['sale_orders_product_id']]))$product_key_num_list[$v['sale_orders_product_id']] = [
|
|
@@ -179,6 +232,7 @@ class BoxService extends Service
|
|
|
$product_key_num_list[$v['sale_orders_product_id']]['box_num'] += $v['box_num'];
|
|
|
$detail = $model_key_list[$v['sale_orders_product_id']];
|
|
|
$detail['box_type'] = 1;
|
|
|
+ $detail['id'] = $v['id'];
|
|
|
$detail['is_box_num'] = $v['box_num'];
|
|
|
$detail['un_box_num'] = $v['production_quantity'] - $v['box_num'];
|
|
|
$detail['type'] = 1;
|
|
@@ -188,10 +242,12 @@ class BoxService extends Service
|
|
|
|
|
|
$return = [];
|
|
|
$product_key_list = [];
|
|
|
+// var_dump($model);die;
|
|
|
foreach ($model as $v){
|
|
|
if(!isset($v['box_type'])) {
|
|
|
$product_num = isset($product_key_num_list[$v['id']]) ? $product_key_num_list[$v['id']]['product_num'] : 0;
|
|
|
$box_num = isset($product_key_num_list[$v['id']]) ? $product_key_num_list[$v['id']]['box_num'] : 0;
|
|
|
+ if(($v['order_quantity'] - $product_num) === 0) continue;
|
|
|
$product_key_list[$v['sale_orders_product_id']] = [
|
|
|
'out_order_no' => $v['out_order_no'],
|
|
|
'production_time' => '未下生产',
|
|
@@ -206,22 +262,24 @@ class BoxService extends Service
|
|
|
'un_box_num' => $v['order_quantity'] - $v['box_num'] - $product_num,
|
|
|
'sale_num' => $v['order_quantity'],
|
|
|
];
|
|
|
+ }else{
|
|
|
+
|
|
|
+ $return[] = [
|
|
|
+ 'id' => $v['id'],
|
|
|
+ 'out_order_no' => $v['out_order_no'],
|
|
|
+ 'production_time' => date('Y-m-d',$v['crt_time']),
|
|
|
+ 'customer_no' => $v['customer_no'],
|
|
|
+ 'customer_name' => $v['customer_name'],
|
|
|
+ 'product_no' => $v['product_no'],
|
|
|
+ 'product_title' => $v['product_title'],
|
|
|
+ 'product_size' => $v['product_size'],
|
|
|
+ 'type' => '1',
|
|
|
+ 'is_box_num' => $v['box_num'],
|
|
|
+ 'un_box_num' => $v['dispatch_complete_quantity'] - $v['box_num'],
|
|
|
+ 'sale_num' => $v['order_quantity'],
|
|
|
+ ];
|
|
|
}
|
|
|
- if($v['box_num'] === 0 && ($v['dispatch_complete_quantity'] - $v['box_num']) === 0) continue;
|
|
|
- $return[] = [
|
|
|
- 'id' => $v['id'],
|
|
|
- 'out_order_no' => $v['out_order_no'],
|
|
|
- 'production_time' => date('Y-m-d',$v['crt_time']),
|
|
|
- 'customer_no' => $v['customer_no'],
|
|
|
- 'customer_name' => $v['customer_name'],
|
|
|
- 'product_no' => $v['product_no'],
|
|
|
- 'product_title' => $v['product_title'],
|
|
|
- 'product_size' => $v['product_size'],
|
|
|
- 'type' => '1',
|
|
|
- 'is_box_num' => $v['box_num'],
|
|
|
- 'un_box_num' => $v['dispatch_complete_quantity'] - $v['box_num'],
|
|
|
- 'sale_num' => $v['order_quantity'],
|
|
|
- ];
|
|
|
+
|
|
|
}
|
|
|
foreach ($product_key_list as $v){
|
|
|
$return[] = $v;
|