Bladeren bron

株数的管理

shish 3 maanden geleden
bovenliggende
commit
008a6d1e0a

+ 18 - 1
app-ghs/controllers/OrderController.php

@@ -1246,9 +1246,26 @@ class OrderController extends BaseController
                 }
             }
         }
-
         $post['xj'] = $newXj;
 
+        $treeData = $post['treeData'] ?? [];
+        $newTree = [];
+        if(!empty($treeData)){
+            $treeArr = json_decode($treeData, true);
+            if (!empty($treeArr) && is_array($treeArr)) {
+                foreach ($treeArr as $treeInfo) {
+                    $ptItemId = $treeInfo['ptItemId'] ?? 0;
+                    $treeList = $treeInfo['list'] ?? [];
+                    if (!empty($treeList)) {
+                        foreach ($treeList as $treeItem) {
+                            $newTree[$ptItemId][] = $treeItem;
+                        }
+                    }
+                }
+            }
+        }
+        $post['treeData'] = $newTree;
+
         $productJson = $post['product'] ?? '';
         if (empty($productJson)) {
             util::fail('请选择花材');

+ 16 - 1
biz-ghs/order/classes/OrderItemClass.php

@@ -327,7 +327,7 @@ class OrderItemClass extends BaseClass
             $currentPtItemId = $item->itemId ?? 0;
 
             $unitPrice = $val['unitPrice'] ?? 0;
-            if (isset($post['xj'][$currentPtItemId]) && !empty($post['xj'][$currentPtItemId])) {
+            if (!empty($post['xj'][$currentPtItemId])) {
                 $xjArr = $post['xj'][$currentPtItemId];
                 if (is_array($xjArr)) {
                     $ids = array_column($xjArr, 'id');
@@ -366,6 +366,21 @@ class OrderItemClass extends BaseClass
             $ratio = $val['ratio'] ?? 0;
             $currentWeight = $val['weight'];
 
+            if (!empty($post['treeData'][$currentPtItemId])) {
+                $treeData = $post['treeData'][$currentPtItemId];
+                if (is_array($treeData)) {
+                    foreach ($treeData as $treeItem) {
+                        $treeNum = $treeItem['num'] ?? 0;
+                        $treeParam = [
+                            'orderSn' => $orderSn,
+                            'productId' => $productId,
+                            'num' => $treeNum,
+                        ];
+                        OrderTreeClass::add($treeParam);
+                    }
+                }
+            }
+
             $bigNum = $val['bigNum'] ?? 0;
             $smallNum = $val['smallNum'] ?? 0;
             $itemNum = ProductClass::mergeItemNum($bigNum, $smallNum, $ratio);

+ 13 - 0
biz-ghs/order/classes/OrderTreeClass.php

@@ -0,0 +1,13 @@
+<?php
+namespace bizGhs\order\classes;
+
+use common\components\util;
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class OrderTreeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizGhs\order\models\OrderTree';
+
+}

+ 15 - 0
biz-ghs/order/models/OrderTree.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizGhs\order\models;
+
+use bizGhs\base\models\Base;
+
+class OrderTree extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhGhsOrderTree';
+    }
+
+}

+ 6 - 4
biz-ghs/order/services/OrderService.php

@@ -212,16 +212,17 @@ class OrderService extends BaseService
         //零售采购单时没有传price字段,供货商可以改价会传price字段,这里转成userPrice以便采购单识别使用改的价还是花材原价!
         $currentProduct = $data['product'];
         foreach ($currentProduct as $currentKey => $currentItem) {
-            if (isset($currentProduct[$currentKey]['price'])) {
-                $currentProduct[$currentKey]['userPrice'] = $currentProduct[$currentKey]['price'];
+            if (isset($currentItem['price'])) {
+                $currentProduct[$currentKey]['userPrice'] = $currentItem['price'];
                 unset($currentProduct[$currentKey]['price']);
             }
         }
 
-        $sendTimeWant = isset($data['sendTimeWant']) && !empty($data['sendTimeWant']) ? $data['sendTimeWant'] : date("Y-m-d");
+        $sendTimeWant = !empty($data['sendTimeWant']) ? $data['sendTimeWant'] : date("Y-m-d");
 
         $remark = $data['remark'] ?? '';
         $xj = $data['xj'] ?? '';
+        $treeData = $data['treeData'] ?? [];
         $book = $data['book'] ?? 0;
 		//后端开单,涉及花材满减,关键词 back_order_reach_discount_price
         $reachDiscountPrice = $data['reachDiscountPrice'] ?? 0;
@@ -252,6 +253,7 @@ class OrderService extends BaseService
             'sendType' => $sendType,
             'remark' => $remark,
             'xj' => $xj,
+            'treeData' => $treeData,
             'discount' => 1,
             'mainId' => $cgMainId,
             'wlName' => $wlName,
@@ -259,7 +261,7 @@ class OrderService extends BaseService
             'transType' => $transType,
             'reachDiscountPrice' => $reachDiscountPrice,
         ];
-        if (isset($data['deadline']) && !empty($data['deadline'])) {
+        if (!empty($data['deadline'])) {
             $purchaseData['deadline'] = $data['deadline'];
         }
         if (isset($data['modifyPrice']) && is_numeric($data['modifyPrice'])) {

+ 1 - 1
biz-ghs/order/traits/OrderTrait.php

@@ -127,4 +127,4 @@ trait OrderTrait
     {
 
     }
-}
+}

+ 1 - 0
biz-ghs/product/classes/ProductClass.php

@@ -1500,6 +1500,7 @@ class ProductClass extends BaseClass
             $tmp['smallUnitPrice'] = $itemPrice;
             $tmp['classId'] = $classId;
             $tmp['belongCost'] = $currentGhsProduct['belongCost'] ?? 0;
+            $tmp['kind'] = $currentGhsProduct['kind'] ?? 0;
 
             $totalBigNum += $bigNum;
             $totalSmallNum += $smallNum;

+ 13 - 0
biz-hd/cg/classes/CgTreeClass.php

@@ -0,0 +1,13 @@
+<?php
+
+namespace bizHd\cg\classes;
+
+use Yii;
+use bizGhs\base\classes\BaseClass;
+
+class CgTreeClass extends BaseClass
+{
+
+    public static $baseFile = '\bizHd\cg\models\CgTree';
+
+}

+ 15 - 0
biz-hd/cg/models/CgTree.php

@@ -0,0 +1,15 @@
+<?php
+
+namespace bizHd\cg\models;
+
+use bizHd\base\models\Base;
+
+class CgTree extends Base
+{
+
+    public static function tableName()
+    {
+        return 'xhCgTree';
+    }
+
+}

+ 18 - 4
biz-hd/purchase/classes/PurchaseClass.php

@@ -23,6 +23,7 @@ use bizGhs\stock\classes\OnStockRecordClass;
 use bizGhs\stock\classes\StockRecordClass;
 use bizGhs\stock\services\StockRecordService;
 use bizHd\cg\classes\CgRefundClass;
+use bizHd\cg\classes\CgTreeClass;
 use bizHd\cg\classes\CgXjClass;
 use bizHd\shop\classes\MainClass;
 use bizHd\stat\classes\StatIncomeClass;
@@ -819,6 +820,7 @@ class PurchaseClass extends BaseClass
             $itemId = $hdProductData[$hdProductId]['itemId'] ?? 0;
             $rank = $hdProductData[$hdProductId]['rank'] ?? 'B';
             $stock = $hdProductData[$hdProductId]['stock'] ?? 0;
+            $kind = $hdProductData[$hdProductId]['kind'] ?? 0;
             $stockFormat = ProductClass::formatStock($stock, $ratio);
 
             $itemNum = ProductClass::mergeItemNum($product['bigNum'], $product['smallNum'], $ratio);
@@ -908,6 +910,7 @@ class PurchaseClass extends BaseClass
             $productList[$key]['ghsId'] = $ghsId;
             $productList[$key]['name'] = $itemName;
             $productList[$key]['cover'] = $cover;
+            $productList[$key]['kind'] = $kind;
 
             $currentBigUnit = $hdProductData[$hdProductId]['bigUnit'] ?? '';
             $currentSmallUnit = $hdProductData[$hdProductId]['smallUnit'] ?? '';
@@ -1071,14 +1074,14 @@ class PurchaseClass extends BaseClass
         //保存订单
         $respond = self::add($data, true);
 
-        foreach ($productList as $productKey => $productVal) {
+        foreach ($productList as $productVal) {
             //增加采购单的花材
             $returnItem = PurchaseItemClass::add($productVal, true);
-
+            $productId = $productVal['productId'];
             $unitPrice = $returnItem->price ?? 0;
             $currentId = $returnItem->id ?? 0;
             $currentPtItemId = $returnItem->itemId ?? 0;
-            if (isset($data['xj'][$currentPtItemId]) && !empty($data['xj'][$currentPtItemId])) {
+            if (!empty($data['xj'][$currentPtItemId])) {
                 $xjArr = $data['xj'][$currentPtItemId];
                 if (is_array($xjArr)) {
                     $ids = array_column($xjArr, 'id');
@@ -1097,7 +1100,18 @@ class PurchaseClass extends BaseClass
                     $returnItem->save();
                 }
             }
-
+            if (!empty($data['treeData'][$currentPtItemId])) {
+                $myTreeData = $data['treeData'][$currentPtItemId];
+                foreach($myTreeData as $treeItem) {
+                    $treeNum = $treeItem['num'] ?? 0;
+                    $treeParams = [
+                        'orderSn' => $orderSn,
+                        'num' => $treeNum,
+                        'productId' => $productId,
+                    ];
+                    CgTreeClass::add($treeParams);
+                }
+            }
         }
 
         $shop = ShopClass::getLockById($shopId);