cqpCow 1 year ago
parent
commit
e24b74f508
1 changed files with 13 additions and 12 deletions
  1. 13 12
      app/Service/ProductInventoryService.php

+ 13 - 12
app/Service/ProductInventoryService.php

@@ -130,6 +130,7 @@ class ProductInventoryService extends Service
             ->where('number','>',0)
             ->select('id','product_id','number','crt_time','lock_number')
             ->get()->toArray();
+        if(empty($array)) return [false,'未找到产品库存数据'];
 
         //已保存单据的产品数量
         $map = [];
@@ -166,19 +167,19 @@ class ProductInventoryService extends Service
         }
 
         //比较
-        if(! empty($array)){
-            foreach ($array as $value){
-                if(! isset($product_map[$value['product_id']])) return [false,'产品不存在'];
-
-                if(! empty($setting_map['lock_number'])){//真实库存
-                    $tmp = $map[$value['product_id']] ?? 0;//已保存数量
-                    $tmp_lock = ($value['lock_number'] > 0 ? $value['lock_number'] : 0) - $tmp;
-                    $number = $value['number'] - ($tmp_lock > 0 ? $tmp_lock : 0);
-                }else{
-                    $number = $value['number'];
-                }
-                if($product_map[$value['product_id']] > $number) return [false,$pro[$value['product_id']] . '数量不足,当前数量:'. $number];
+        foreach ($array as $value){
+            $pro_tmp = $pro[$value['product_id']] ?? '';
+            if(! $pro_tmp) return [false,'异常产品数据'];
+            if(! isset($product_map[$value['product_id']])) return [false,'产品:' . $pro_tmp.'库存不足'];
+
+            if(! empty($setting_map['lock_number'])){//真实库存
+                $tmp = $map[$value['product_id']] ?? 0;//已保存数量
+                $tmp_lock = ($value['lock_number'] > 0 ? $value['lock_number'] : 0) - $tmp;
+                $number = $value['number'] - ($tmp_lock > 0 ? $tmp_lock : 0);
+            }else{
+                $number = $value['number'];
             }
+            if($product_map[$value['product_id']] > $number) return [false,$pro_tmp . '数量不足,当前数量:'. $number];
         }
 
         return [true,''];