Ver código fonte

新增减半份

shish 1 ano atrás
pai
commit
2ee9ec0bef

+ 45 - 3
app-ghs/controllers/ItemController.php

@@ -3,7 +3,6 @@
 namespace ghs\controllers;
 
 use biz\item\classes\PtItemClass;
-use biz\product\models\Product;
 use bizGhs\book\classes\BookItemClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\item\classes\ItemClass;
@@ -21,6 +20,49 @@ use Yii;
 class ItemController extends BaseController
 {
 
+    //增加和减少半扎
+    public function actionChangeHalf()
+    {
+        $post = Yii::$app->request->post();
+        $productId = $post['productId'] ?? '';
+        $add = $post['add'] ?? 0;
+        $product = ProductClass::getLockById($productId);
+        if (empty($product)) {
+            util::fail('没有找到花材');
+        }
+        if ($product->mainId != $this->mainId) {
+            util::fail('不是你的花材');
+        }
+        if ($product->ratioType == 1) {
+            util::fail('若干扎的花材不能减半份');
+        }
+
+        $connection = Yii::$app->db;
+        $transaction = $connection->beginTransaction();
+        try {
+            $shop = $this->shop;
+            $staff = $this->shopAdmin;
+            $staffName = $staff->name ?? '';
+            $staffId = $staff->id;
+            $adminId = $this->adminId;
+            $params = [
+                'staffId' => $staffId,
+                'staffName' => $staffName,
+                'adminId' => $adminId,
+            ];
+            ItemClass::modifyHalf($shop, $product, $params, $add);
+            $product = ProductClass::getLockById($productId);
+            $stock = $product->stock;
+            $stock = floatval($stock);
+            $transaction->commit();
+            util::success(['stock' => $stock]);
+        } catch (\Exception $e) {
+            $transaction->rollBack();
+            Yii::info("加减半份失败原因:" . $e->getMessage());
+            util::fail('加减半份失败');
+        }
+    }
+
     //修改一个花材的采购人 ssh 20240719
     public function actionModifyCgStaff()
     {
@@ -91,10 +133,10 @@ class ItemController extends BaseController
             $where['status'] = 1;
         } elseif ($requestType == 'itemList') {
             $where['delStatus'] = 0;
-            if($lookStock == 1){
+            if ($lookStock == 1) {
                 $where['stock>'] = 0;
             }
-            if($lookStock == 2){
+            if ($lookStock == 2) {
                 $where['stock'] = 0;
             }
             unset($where['status']);

+ 47 - 14
biz-ghs/item/classes/ItemClass.php

@@ -7,8 +7,10 @@ use biz\item\classes\PtItemCatRelateClass;
 use biz\item\classes\PtItemClass;
 use bizGhs\base\classes\BaseClass;
 use bizGhs\book\classes\BookItemClass;
+use bizGhs\order\classes\CheckOrderClass;
 use bizGhs\product\classes\ProductClass;
 use common\components\imgUtil;
+use common\components\util;
 use common\services\xhItemService;
 
 class ItemClass extends BaseClass
@@ -16,6 +18,37 @@ class ItemClass extends BaseClass
 
     public static $baseFile = '\bizGhs\item\models\Item';
 
+    //增加和减少半扎 ssh 20250417
+    public static function modifyHalf($shop, $product, $params, $add)
+    {
+        $stock = $product->stock;
+        if ($add == 0) {
+            $newStock = bcsub($stock, 0.5, 2);
+        } else {
+            $newStock = bcadd($stock, 0.5, 2);
+        }
+        if ($newStock < 0) {
+            util::fail('库存不足');
+        }
+        $mainId = $shop->mainId;
+        $shopId = $shop->id;
+        $sjId = $shop->sjId;
+        $adminId = $params['adminId'] ?? 0;
+        $staffName = $params['staffName'] ?? '';
+        $ratio = $product->ratio ?? 0;
+        $formNum = ProductClass::formatStock($newStock, $ratio);
+        $ghsItemInfo = [['productId' => $product->id, 'bigNum' => $formNum['bigNum'], 'smallNum' => $formNum['smallNum']]];
+        $pdData = [];
+        $pdData['itemInfo'] = $ghsItemInfo;
+        $pdData['sjId'] = $sjId;
+        $pdData['shopId'] = $shopId;
+        $pdData['adminId'] = $adminId;
+        $pdData['mainId'] = $mainId;
+        $pdData['staffName'] = $staffName;
+        CheckOrderClass::opOrder($pdData, false, false);
+    }
+
+
     public static function getLoanList($where, $shop)
     {
         $bookSn = $shop->bookSn ?? 0;
@@ -25,11 +58,11 @@ class ItemClass extends BaseClass
             if (!empty($booList)) {
                 foreach ($booList as $book) {
                     $onNum = $book->onNum ?? 0;
-                    $bookNum = $book->bookNum??0;
-                    $roadNum = $book->roadNum??0;
+                    $bookNum = $book->bookNum ?? 0;
+                    $roadNum = $book->roadNum ?? 0;
                     $itemId = $book->itemId ?? 0;
-                    $needCgNum = $book->needCgNum??0;
-                    $bookData[$itemId] = ['onNum'=>$onNum,'bookNum'=>$bookNum,'roadNum'=>$roadNum,'needCgNum'=>$needCgNum];
+                    $needCgNum = $book->needCgNum ?? 0;
+                    $bookData[$itemId] = ['onNum' => $onNum, 'bookNum' => $bookNum, 'roadNum' => $roadNum, 'needCgNum' => $needCgNum];
                 }
             }
         }
@@ -52,19 +85,19 @@ class ItemClass extends BaseClass
                 $stock = $val['stock'] ?? 0;
                 $couldLoan = 0;
                 if (isset($bookData[$productId])) {
-                    $bookNum = $bookData[$productId] && $bookData[$productId]['bookNum']?$bookData[$productId]['bookNum']:0;
-                    if($bookNum>0){
-                        $roadNum = $bookData[$productId] && $bookData[$productId]['roadNum']?$bookData[$productId]['roadNum']:0;
-                        $needCgNum = $bookData[$productId] && $bookData[$productId]['needCgNum']?$bookData[$productId]['needCgNum']:0;
-                        $unReachNum = bcadd($roadNum,$needCgNum,2);
-                        $useStock = bcsub($bookNum,$unReachNum,2);
-                        if($stock>$useStock){
-                            $couldLoan = bcsub($stock,$useStock,2);
+                    $bookNum = $bookData[$productId] && $bookData[$productId]['bookNum'] ? $bookData[$productId]['bookNum'] : 0;
+                    if ($bookNum > 0) {
+                        $roadNum = $bookData[$productId] && $bookData[$productId]['roadNum'] ? $bookData[$productId]['roadNum'] : 0;
+                        $needCgNum = $bookData[$productId] && $bookData[$productId]['needCgNum'] ? $bookData[$productId]['needCgNum'] : 0;
+                        $unReachNum = bcadd($roadNum, $needCgNum, 2);
+                        $useStock = bcsub($bookNum, $unReachNum, 2);
+                        if ($stock > $useStock) {
+                            $couldLoan = bcsub($stock, $useStock, 2);
                         }
-                    }else{
+                    } else {
                         $couldLoan = $stock;
                     }
-                }else{
+                } else {
                     $couldLoan = $stock;
                 }
                 $data['list'][$key]['stock'] = $couldLoan;