wuggemail@foxmail.com 3 months ago
parent
commit
18d76e4d62

+ 5 - 2
app/cxinv/command/CreateFz.php

@@ -100,13 +100,14 @@ class CreateFz extends Command
                 if($info['type']==1) throw new \Exception('入库商品不能为组合商品');
                 $productID=ProductStock::AddCombindStock($product->id,$info['balance_num']);
             }else{
-                ProductStock::AddSingleStock($product,$info['balance_num'],$product->id);
-                $productID[]=["product_id"=>$product->id,"type"=>1,"num"=>$info['balance_num'],'apply_id'=>$info['apply_id'], 'apply_name'=>$info['apply_name']];
+                $productID[]= ProductStock::AddSingleStock($product,$info['balance_num']);
             }
             if(!empty($productID)){
                 array_map(function ($item)use ($info){
                     $item['id'] = ManagerProduct::where(['manager_id'=>$info['id'],'product_id'=>$item['product_id']])->value('id');
                     $item['status']=1;
+                    $item['apply_id']=$info['apply_id'];
+                    $item['apply_name']=$info['apply_name'];
                     (new \app\cxinv\model\ManagerProduct)->save($item);
                 },$productID);
             }
@@ -178,6 +179,8 @@ class CreateFz extends Command
                 array_map(function ($item) use ($data) {
                     $item['id'] = ManagerProduct::where(['manager_id' => $data['id'], 'product_id' => $item['product_id']])->value('id');
                     $item['status'] = 1;
+                    $item['apply_id']=$data['apply_id'];
+                    $item['apply_name']=$data['apply_name'];
                     (new \app\cxinv\model\ManagerProduct)->save($item);
                 }, $productID);
             }

+ 2 - 2
app/cxinv/model/FinancialTz.php

@@ -52,10 +52,10 @@ class FinancialTz extends Base
         $change = $model->getChangedData();
         $origin = $model->getOrigin();
         if (isset($change['status']) && $change['status'] == 2 && $origin['status'] == 1) {
-            $product = TzProduct::with(['Product'=>['ProductsCombind']])->where(['ktCode' => $model['ktCode'], 'type' => 1])->select();
+            $product = TzProduct::with(['Product'=>['ProductsCombind','ProductStock']])->where(['ktCode' => $model['ktCode'], 'type' => 1])->select();
             $product->each(function ($item) use ($model) {
                 if($item['is_combind']==0){
-                    ProductStock::AddSingleStock($item->Product, $item['num'], $item['product_id']);
+                    ProductStock::AddSingleStock($item->Product, $item['num']);
                     $log[] = [
                         "type" => 5,
                         'order_item_id' => $model->id,

+ 13 - 11
app/cxinv/model/ProductStock.php

@@ -58,20 +58,22 @@ class ProductStock extends Base
     }
     // 库存减少
     public static function SubSingleStock($model,$num){
-        $model->residue_stock=bcsub($model->residue_stock,$num,8);
-        $model->pending_stock=bcsub($model->pending_stock,$num,8);
-        $save=$model->save();
+        $info = self::where('product_id',$model->id)->findOrEmpty();
+        $info->residue_stock=bcsub($model->residue_stock,$num,8);
+        $info->pending_stock=bcsub($model->pending_stock,$num,8);
+        $save=$info->save();
         if(!$save) throw new \Exception('库存修改失败');
-        return ['product_id'=>$model->product_id,'type'=>2,'num'=>$num,'unit_price'=>$model['unit_price'],'rate'=>$model['cat_tax'],'subunit_price'=>$model['subunit_price']];
+        return ['product_id'=>$model->id,'type'=>2,'num'=>$num,'unit_price'=>$model['unit_price'],'rate'=>$model['cat_tax'],'subunit_price'=>$model['subunit_price']];
     }
     // 库存增加
-    public static function AddSingleStock($model,$num,$product_id){
-       $model->product_id=$product_id;
-       $model->residue_stock=bcadd($model->residue_stock??"0",$num,8);
-       $model->total_stock=bcadd($model->total_stock??"0",$num,8);
-       $save=$model->save();
+    public static function AddSingleStock($model,$num){
+        $info = self::where('product_id',$model->id)->findOrEmpty();
+        $info->product_id=$model->id;
+        $info->residue_stock=bcadd($info->residue_stock??"0",$num,8);
+        $info->total_stock=bcadd($info->total_stock??"0",$num,8);
+       $save=$info->save();
        if(!$save) throw new \Exception('库存修改失败');
-       return ['product_id'=>$product_id,'type'=>1,'num'=>$num,'unit_price'=>$model['unit_price'],'rate'=>$model['cat_tax'],'subunit_price'=>$model['subunit_price']];
+       return ['product_id'=>$model->id,'type'=>1,'num'=>$num,'unit_price'=>$model['unit_price'],'rate'=>$model['cat_tax'],'subunit_price'=>$model['subunit_price']];
     }
 
     public static function SubCombindStock($product_id,$num,$type=1){
@@ -108,7 +110,7 @@ class ProductStock extends Base
            $child=FinancialProducts::findOrEmpty($v['child_id']);
            if($child->isEmpty()) throw new \Exception('组合商品子'.$v['skuCode'].'商品不存在');
            $child_num = bcmul( $v['child_num'],$num,8);
-           $productID[]=self::AddSingleStock($child,$child_num,$v['child_id']);
+           $productID[]=self::AddSingleStock($child,$child_num);
         }
         return $productID;
     }

+ 2 - 2
app/cxinv/model/TzProduct.php

@@ -35,10 +35,10 @@ class TzProduct extends Base
                 $adjust=$model->Adjust;
 
                 if($model->Product->is_combind==1){
-                    if($model->Product->combind_stock<$model['num'])throw new \Exception($model->Product->goodName.'商品库存不足');
+                    if($model->Product->ProductStock->combind_stock<$model['num'])throw new \Exception($model->Product->goodName.'商品库存不足');
                     $id=ProductStock::SubCombindStock($model->Product->id,$model['num']);
                 }else{
-                    if($model->Product->residue_stock<$model['num'])throw new \Exception($model->Product->goodName.'商品库存不足');
+                    if($model->Product->ProductStock->residue_stock<$model['num'])throw new \Exception($model->Product->goodName.'商品库存不足');
                     $id[]=ProductStock::SubSingleStock($model->Product,$model['num']);
                 }
                 if(!empty($id)){