cqpCow 1 jaar geleden
bovenliggende
commit
b6e069401b
1 gewijzigde bestanden met toevoegingen van 25 en 5 verwijderingen
  1. 25 5
      app/Service/InventoryService.php

+ 25 - 5
app/Service/InventoryService.php

@@ -30,11 +30,15 @@ class InventoryService extends Service
             if(! empty($data['sub'])){
                 $sub = [];
                 foreach ($data['sub'] as $value){
-                    $sub[] = [
-                        'asset_id' => $value['asset_id'],
-                        'order_no' => $data['order_no'],
-                        'located' => $value['located'],
-                    ];
+                    $tmp = [];
+                    $tmp['asset_id'] = $value['asset_id'];
+                    $tmp['order_no'] = $data['order_no'];
+                    $tmp['located'] = $value['located'];
+                    if(! empty($value['state'])) {
+                        $tmp['state'] = $value['state'];
+                        $tmp['remark'] = $value['remark'];
+                    }
+                    $sub[] = $tmp;
                 }
                 InventoryOrderAsset::insert($sub);
             }
@@ -212,6 +216,22 @@ class InventoryService extends Service
                 ->where('state','>',InventoryOrder::STATE_ZERO)
                 ->exists();
             if($bool) return [false,'编辑失败,请确认盘点单状态!'];
+
+            $submit_asset = array_column($data['sub'],'asset_id');
+            $save_data = InventoryOrderAsset::where('del_time',0)
+                ->where('order_no',$data['order_no'])
+                ->select('state','remark','asset_id')
+                ->get()->toArray();
+            foreach ($save_data as $value){
+                if($value['state'] > InventoryOrderAsset::STATE_ZERO && ! in_array($value['asset_id'], $submit_asset)) return [false,'已盘点资产不能删除!'];
+            }
+            $map = array_column($save_data,null,'asset_id');
+            foreach ($data['sub'] as $key => $value){
+                if(isset($map[$value['asset_id']]) && $map[$value['asset_id']]['state'] > InventoryOrderAsset::STATE_ZERO) {
+                    $data['sub'][$key]['state'] = $map[$value['asset_id']]['state'];
+                    $data['sub'][$key]['remark'] = $map[$value['asset_id']]['remark'];
+                }
+            }
         }
         if(! empty($data['inventory_time'])){
             $return = $this->changeDateToTimeStampAboutRange($data['inventory_time']);