Răsfoiți Sursa

借库存ok

shish 2 ani în urmă
părinte
comite
1e1e270b9a

+ 2 - 2
app-ghs/controllers/CheckOrderController.php

@@ -14,8 +14,8 @@ class CheckOrderController extends BaseController
     public function actionLoan()
     {
         $get = Yii::$app->request->get();
-        $inId = $get['inProductId'] ?? 0;
-        $outId = $get['outProductId'] ?? 0;
+        $inId = $get['inId'] ?? 0;
+        $outId = $get['outId'] ?? 0;
         $num = $get['num'] ?? 0;
         if ($num <= 0) {
             util::fail('借数量不足');

+ 4 - 4
app-ghs/controllers/ItemController.php

@@ -178,7 +178,7 @@ class ItemController extends BaseController
                         $needCgList[$biProductId] = $biInfo->needCgNum;
                     }
                 }
-                if (!empty($myIds)) {
+                if ($globalCgMyCharge == 1 && !empty($myIds)) {
                     $where['id'] = ['in', $myIds];
                 }
             }
@@ -287,12 +287,11 @@ class ItemController extends BaseController
         util::success($respond);
     }
 
-    //借库存的花材列表 ssh 20240720
+    //借库存的花材列表 ssh 20240720
     public function actionGetLoanList()
     {
         $get = Yii::$app->request->get();
         $name = $get['name'] ?? '';
-        $num = $get['num'] ?? 0;
         $where = ['mainId' => $this->mainId, 'delStatus' => 0];
         if (!empty($name)) {
             if (stringUtil::isLetter($name)) {
@@ -301,7 +300,8 @@ class ItemController extends BaseController
                 $where['name'] = ['like', $name];
             }
         }
-        $respond = ItemClass::getLoanList($where, $num);
+        $shop = $this->shop;
+        $respond = ItemClass::getLoanList($where, $shop);
         util::success($respond);
     }
 

+ 25 - 4
biz-ghs/item/classes/ItemClass.php

@@ -6,6 +6,7 @@ use biz\item\classes\PtItemCatClass;
 use biz\item\classes\PtItemCatRelateClass;
 use biz\item\classes\PtItemClass;
 use bizGhs\base\classes\BaseClass;
+use bizGhs\book\classes\BookItemClass;
 use bizGhs\product\classes\ProductClass;
 use common\components\imgUtil;
 use common\services\xhItemService;
@@ -15,15 +16,25 @@ class ItemClass extends BaseClass
 
     public static $baseFile = '\bizGhs\item\models\Item';
 
-    public static function getLoanList($where, $num)
+    public static function getLoanList($where, $shop)
     {
+        $bookSn = $shop->bookSn ?? 0;
+        $onList = [];
+        if (!empty($bookSn)) {
+            $booList = BookItemClass::getAllByCondition(['bookSn' => $bookSn], null, '*', null, true);
+            if (!empty($booList)) {
+                foreach ($booList as $book) {
+                    $onNum = $book->onNum ?? 0;
+                    $itemId = $book->itemId ?? 0;
+                    $onList[$itemId] = $onNum;
+                }
+            }
+        }
+
         $data = self::getList('id,name,price,stock,frontHide,cover', $where);
         if (isset($data['list']) && !empty($data['list'])) {
             foreach ($data['list'] as $key => $val) {
                 $data['list'][$key]['bigCount'] = '';
-                if ($num > 0) {
-                    $data['list'][$key]['bigCount'] = $num;
-                }
                 $data['list'][$key]['smallCount'] = '';
                 $shortCover = $val['cover'] ?? '';
                 $smallCover = imgUtil::groupImg($shortCover) . "?x-oss-process=image/resize,m_fill,h_130,w_130";
@@ -34,6 +45,16 @@ class ItemClass extends BaseClass
                 $data['list'][$key]['bigCover'] = $bigCover;
                 //前端使用字段
                 $data['list'][$key]['showUsePrice'] = '';
+                $productId = $val['id'] ?? 0;
+                $stock = $val['stock'] ?? 0;
+                $remainStock = 0;
+                if (isset($onList[$productId])) {
+                    $onNum = $onList[$productId];
+                    if ($stock > $onNum) {
+                        $remainStock = bcsub($stock, $onNum);
+                    }
+                }
+                $data['list'][$key]['stock'] = $remainStock;
             }
         }
         return $data;

+ 31 - 14
biz-ghs/order/classes/CheckOrderClass.php

@@ -2,16 +2,14 @@
 
 namespace bizGhs\order\classes;
 
-use biz\shop\classes\ShopCapitalClass;
 use biz\shop\classes\ShopClass;
 use biz\stat\classes\StatPdAddClass;
 use biz\stat\classes\StatPdSubClass;
+use bizGhs\book\classes\BookItemClass;
 use bizGhs\product\classes\ProductClass;
 use bizGhs\shop\classes\MainClass;
 use bizGhs\stock\classes\StockInDayClass;
 use bizGhs\stock\classes\StockRecordClass;
-use bizGhs\stock\services\StockRecordService;
-use common\components\dict;
 use common\components\orderSn;
 use common\components\util;
 use Yii;
@@ -32,30 +30,46 @@ class CheckOrderClass extends BaseClass
 
     public static function loanStock($inId, $outId, $num, $shop, $staff)
     {
+        $sjId = $shop->sjId ?? 0;
+        $shopId = $shop->id ?? 0;
+        $mainId = $shop->mainId ?? 0;
         $in = ProductClass::getById($inId, true);
-        if (empty($in)) {
+        if (empty($in) || $in->mainId != $mainId) {
             util::fail('没有找到花材...');
         }
         $inName = $in->name ?? '';
         $out = ProductClass::getById($outId, true);
-        if (empty($out)) {
+        if (empty($out) || $out->mainId != $mainId) {
             util::fail('没有找到花材。');
         }
         $outName = $out->name ?? '';
-        $outStock = $out->stock ?? 0;
-        $remainOutStock = bcsub($outStock, $num);
+        $remainStock = $out->stock ?? 0;
+        $bookSn = $shop->bookSn ?? 0;
+        if (!empty($bookSn)) {
+            $booItem = BookItemClass::getByCondition(['bookSn' => $bookSn, 'itemId' => $outId], true);
+            if (!empty($booItem)) {
+                $stock = $out->stock ?? 0;
+                $onNum = $booItem->onNum ?? 0;
+                $remainStock = $stock > $onNum ? bcsub($stock, $onNum) : 0;
+            }
+        }
+
+        $remainOutStock = bcsub($remainStock, $num);
         if ($remainOutStock < 0) {
-            util::fail('库存不够借');
+            util::fail("可借数量 " . $remainStock);
+        }
+
+        if ($inId == $outId) {
+            util::fail('同个花材呢');
         }
 
         $inStock = $in->stock ?? 0;
         $newInStock = bcadd($inStock, $num);
 
-        //增加盘点记录
         $adminId = $staff->adminId ?? 0;
-        $sjId = $shop->sjId ?? 0;
-        $shopId = $shop->id ?? 0;
-        $mainId = $shop->mainId ?? 0;
+        $staffName = $staff->name ?? '';
+        $staffId = $staff->id ?? 0;
+
         $ghsItemInfo = [['productId' => $outId, 'bigNum' => $remainOutStock, 'smallNum' => 0,]];
         $pdData = [];
         $pdData['itemInfo'] = $ghsItemInfo;
@@ -65,9 +79,10 @@ class CheckOrderClass extends BaseClass
         $pdData['mainId'] = $mainId;
         $pdData['staffName'] = $data['staffName'] ?? '';
         $pdData['remark'] = "借{$num}个库存给{$inName}";
+        $pdData['staffName'] = $staffName;
+        $pdData['staffId'] = $staffId;
         self::opOrder($pdData, false, false);
 
-        $adminId = $staff->adminId ?? 0;
         $sjId = $shop->sjId ?? 0;
         $shopId = $shop->id ?? 0;
         $mainId = $shop->mainId ?? 0;
@@ -78,7 +93,8 @@ class CheckOrderClass extends BaseClass
         $pdData['shopId'] = $shopId;
         $pdData['adminId'] = $adminId;
         $pdData['mainId'] = $mainId;
-        $pdData['staffName'] = $data['staffName'] ?? '';
+        $pdData['staffName'] = $staffName;
+        $pdData['staffId'] = $staffId;
         $pdData['remark'] = "向{$outName}借{$num}个库存";
         self::opOrder($pdData, false, false);
         return true;
@@ -163,6 +179,7 @@ class CheckOrderClass extends BaseClass
                     $record['itemNum'] = abs($v['profitLossNum']);
                     $record['oldStock'] = $productData['stock'];
                     $record['newStock'] = $v['itemNum'];
+                    $record['targetId'] = $order->id ?? 0;
                     StockRecordClass::addCheckOrderRecord($record);
 
                     $amount = $v['amount'] ?? 0;