shish 3 år sedan
förälder
incheckning
f36edad716
2 ändrade filer med 57 tillägg och 18 borttagningar
  1. 5 2
      app-hd/controllers/GoodsController.php
  2. 52 16
      biz-hd/goods/classes/GoodsClass.php

+ 5 - 2
app-hd/controllers/GoodsController.php

@@ -63,7 +63,8 @@ class GoodsController extends BaseController
         $data['shopId'] = $this->shopId ?? 0;
         $data['property'] = 0;
         $data['flower'] = 1;
-        unset($data['stock']);
+        $staff = $this->shopAdmin;
+        $data['staffName'] = $staff->name ?? '';
         $return = GoodsClass::addGoods($data);
         util::success($return);
     }
@@ -153,10 +154,12 @@ class GoodsController extends BaseController
             util::fail('美团商品暂时不能修改');
         }
 
+        $staff = $this->shopAdmin;
+
         $connection = Yii::$app->db;
         $transaction = $connection->beginTransaction();
         try {
-            GoodsClass::updateGoods($info, $data);
+            GoodsClass::updateGoods($info, $data, $staff);
             $transaction->commit();
             util::complete();
         } catch (Exception $e) {

+ 52 - 16
biz-hd/goods/classes/GoodsClass.php

@@ -3,6 +3,7 @@
 namespace bizHd\goods\classes;
 
 use biz\shop\classes\MainClass;
+use biz\stock\classes\GoodsStockRecordClass;
 use biz\shop\classes\ShopCapitalClass;
 use biz\stat\classes\StatCgPlantClass;
 use biz\stat\classes\StatOutClass;
@@ -334,6 +335,8 @@ class GoodsClass extends BaseClass
         $flowerNum = $data['flowerNum'] ?? 0;
         $sn = orderSn::getGoodsSn();
         $data['sn'] = $sn;
+        $addStock = $data['stock'] ?? 0;
+        unset($data['stock']);
         $info = self::add($data, true);
         $id = $info->id;
         $name = $info->name;
@@ -343,6 +346,25 @@ class GoodsClass extends BaseClass
         $shopId = $data['shopId'] ?? 0;
         $flower = $data['flower'] ?? 0;
         $status = $data['status'] ?? 0;
+        $staffName = $data['staffName'] ?? '';
+
+        if ($addStock > 0) {
+            $stockRespond = GoodsClass::addStock($id, $mainId, $addStock);
+            $oldStock = $stockRespond['oldStock'] ?? 0;
+            $newStock = $stockRespond['newStock'] ?? 0;
+            $recordData = [];
+            $recordData['sjId'] = $sjId;
+            $recordData['shopId'] = $shopId;
+            $recordData['mainId'] = $mainId;
+            $recordData['orderSn'] = '';
+            $recordData['goodsId'] = $id;
+            $recordData['goodsNum'] = $addStock;
+            $recordData['oldStock'] = $oldStock;
+            $recordData['newStock'] = $newStock;
+            $recordData['relateName'] = $staffName;
+            GoodsStockRecordClass::pdGoods($recordData);
+        }
+
         $delStatus = $data['delStatus'] ?? 0;
         $setItemNum = $data['setItemNum'] ?? 0;
         $categoryData = CategoryClass::getCategory($mainId);
@@ -434,7 +456,7 @@ class GoodsClass extends BaseClass
     }
 
     //更新商品 ssh 2019.12.7
-    public static function updateGoods($info, $data)
+    public static function updateGoods($info, $data, $staff)
     {
         $id = $info['id'] ?? 0;
         $preSetItemNum = $info['setItemNum'] ?? 0;
@@ -491,25 +513,39 @@ class GoodsClass extends BaseClass
         //库存可以修改
         if (isset($data['stock']) && is_numeric($data['stock'])) {
             $preStock = $info['stock'] ?? 0;
-            if ($data['stock'] != $preStock) {
-                if ($data['stock'] < 0) {
+            $newStock = $data['stock'];
+            if ($newStock != $preStock) {
+                if ($staff->super != 1) {
+                    util::fail('管理员才能修改库存');
+                }
+                if ($newStock < 0) {
                     util::fail("库存不能小于0");
                 }
-                if (floor($data['stock']) != $data['stock']) {
+                if (floor($newStock) != $newStock) {
                     util::fail('库存请填写整数');
                 }
-                //增加盘点记录 2021.7.27
-//                $ratio = $product->ratio ?? 0;
-//                $formNum = ProductClass::formatStock($data['stock'], $ratio);
-//                $ghsItemInfo = [['productId' => $product->id, 'bigNum' => $formNum['bigNum'], 'smallNum' => $formNum['smallNum'],]];
-//                $pdData = [];
-//                $pdData['itemInfo'] = $ghsItemInfo;
-//                $pdData['sjId'] = $sjId;
-//                $pdData['shopId'] = $shopId;
-//                $pdData['adminId'] = $data['adminId'];
-//                $pdData['mainId'] = $mainId;
-//                $pdData['staffName'] = $data['staffName'] ?? '';
-//                CheckOrderClass::opOrder($pdData, false, false);
+                if ($newStock > $preStock) {
+                    $diffNum = bcsub($newStock, $preStock);
+                    $respond = GoodsClass::addStock($id, $mainId, $diffNum);
+                } else {
+                    $diffNum = bcsub($preStock, $newStock);
+                    $checkStock = false;
+                    $params = [];
+                    $respond = GoodsClass::decreaseStock($id, $mainId, $diffNum, $checkStock, $params);
+                }
+                $oldStock = $respond['oldStock'] ?? 0;
+                $newStock = $respond['newStock'] ?? 0;
+                $recordData = [];
+                $recordData['sjId'] = $sjId;
+                $recordData['shopId'] = $shopId;
+                $recordData['mainId'] = $mainId;
+                $recordData['orderSn'] = '';
+                $recordData['goodsId'] = $id;
+                $recordData['goodsNum'] = $diffNum;
+                $recordData['oldStock'] = $oldStock;
+                $recordData['newStock'] = $newStock;
+                $recordData['relateName'] = $staff->name ?? '';
+                GoodsStockRecordClass::pdGoods($recordData);
             }
             unset($data['stock']);
         }