林琦海 5 лет назад
Родитель
Сommit
3e6b74193b

+ 6 - 0
app-ghs/controllers/PurchaseOrderController.php

@@ -41,6 +41,8 @@ class PurchaseOrderController extends BaseController
         $post['ghsInfo'] = json_encode($ghsInfo);
 
         //判断花材里的信息
+        //判定重量
+        $weight = 0;
         foreach ($ghsItemInfo as $v) {
             $bigNum = $v['bigNum'] ?? 0;
             $productId = $v['productId'] ?? 0;
@@ -54,8 +56,12 @@ class PurchaseOrderController extends BaseController
             if ($bigNum <= 0 && $smallNum <= 0) {
                 util::fail('花材数量不能为0');
             }
+            $weight += $v['weight'];
 
         }
+        if($weight <= 0 ){
+            util::fail('花材重量不能为0');
+        }
         $post['itemInfo'] = $ghsItemInfo;
         $order = PurchaseOrderClass::addOrder($post);
         if ($order) {

+ 20 - 4
biz-ghs/order/classes/PurchaseOrderClass.php

@@ -42,18 +42,23 @@ class PurchaseOrderClass extends BaseClass
         $data['status'] = self::PURCHASE_ORDER_STATUS_COMPLETE;
         $orderSn = orderSn::getGhsPurchaseSn();
         $data['orderSn'] = $orderSn;
-        $ghsItemInfo = $data['itemInfo']; // [{itemId:0,bigNum:0,smallNum:0,productId:1.0,itemPrice:1}]
+        $ghsItemInfo = $data['itemInfo']; // [{itemId:0,bigNum:0,smallNum:0,productId:1.0,itemPrice:1,weight:1}] //增加重量kg
         $ghsItemInfo = self::mergeItemInfo($ghsItemInfo);
         //计算出总共多少扎,多少支
         $bigNum = 0; //总共多少扎
         $smallNum = 0; //总共多少支
         $totalItemPrice = 0;
-
+        //花材中总重量
+        $totalItemWeight = 0;
+        $ghsItemInfoMap = [];
         if (!empty($ghsItemInfo)) {
             foreach ($ghsItemInfo as $v) {
                 $bigNum += $v['bigNum'] ?? 0;
                 $smallNum += $v['smallNum'] ?? 0;
                 $totalItemPrice = bcadd($totalItemPrice, $v['itemPrice'], 2);
+                $ghsItemInfoMap[$v['productId']] = $v;
+                $weight = $v['weight']??0;
+                $totalItemWeight = bcadd($totalItemWeight,$weight,2);
             }
         }
         $data['bigNum'] = $bigNum;
@@ -110,6 +115,9 @@ class PurchaseOrderClass extends BaseClass
             //平均计算出每扎得运费:总运费/总扎数
             $avgFreight = bcdiv($totalFreight, $totalItemNum, 2);
 
+            //计算每g的运费  总运费/总重量
+            $avgFreightByWeight = bcdiv($totalFreight, $totalItemWeight*1000, 2);
+
             //现在暂时点击确定,完成 加库存
             foreach ($batchData as $v) {
                 $itemId = $v['itemId'];
@@ -134,7 +142,13 @@ class PurchaseOrderClass extends BaseClass
                     $avgItemCost = bcdiv($v['itemPrice'], $v['itemNum'], 2);
                 }
                 // 每扎采购价+每扎运费 = 每扎成本价
-                $avgCost = bcadd($avgItemCost, $avgFreight, 2);
+                //$avgCost = bcadd($avgItemCost, $avgFreight, 2);
+                //2021-06-11 修改每扎运费计算
+                $itemInfoTmp = json_decode($v['itemInfo'],true);
+                //花材的重量
+                $productWeight = $itemInfoTmp['itemWeight']??0;
+                $avgWeighFreight = bcmul($avgFreightByWeight,$productWeight*1000,2);
+                $avgCost = bcadd($avgItemCost, $avgWeighFreight, 2);
                 //修改 ghsItem 中的成本价
                 // ItemClass::changeCost($itemId,$sjId,$avgCost);
 
@@ -278,6 +292,8 @@ class PurchaseOrderClass extends BaseClass
                 'rank' => $rank,// 花材级别
                 'bigUnit' => $productData[$productId]['bigUnit'],//大单位名称 扎
                 'smallUnit' => $productData[$productId]['smallUnit'],//小单位名称 支
+                'purchaseWeight' => $v['weight']??0, //采购重量
+                'itemWeight'=>$productData[$productId]['weight']??0,
             ];
             $tmp['itemInfo'] = json_encode($itemInfo);
             $batchData[] = $tmp;
@@ -377,4 +393,4 @@ class PurchaseOrderClass extends BaseClass
 
     }
 
-}
+}