shish 3 жил өмнө
parent
commit
8eea48554e

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

@@ -632,6 +632,7 @@ class ProductClass extends BaseClass
             $productId = $v['productId'];
             $productId = $v['productId'];
             $itemId = $productData[$productId]['itemId'] ?? 0;
             $itemId = $productData[$productId]['itemId'] ?? 0;
             $ratio = $productData[$productId]['ratio'] ?? 0;
             $ratio = $productData[$productId]['ratio'] ?? 0;
+            $smallRatio = $productData[$productId]['smallRatio'] ?? 1;
             $cost = $productData[$productId]['cost'] ?? 0;
             $cost = $productData[$productId]['cost'] ?? 0;
 
 
             $bigNum = $v['bigNum'] ?? 0;
             $bigNum = $v['bigNum'] ?? 0;
@@ -648,7 +649,11 @@ class ProductClass extends BaseClass
             $currentProduct = $productData[$productId] ?? [];
             $currentProduct = $productData[$productId] ?? [];
             $itemPrice = self::getFinalPrice($currentProduct, $level, $priceMap, $addPriceMap, $changePrice);
             $itemPrice = self::getFinalPrice($currentProduct, $level, $priceMap, $addPriceMap, $changePrice);
 
 
+            $bigItemPrice = $itemPrice;
+
             if ($smallNum > 0) {
             if ($smallNum > 0) {
+                $itemPrice = bcdiv($itemPrice, $ratio, 2);
+                $itemPrice = bcmul($itemPrice, $smallRatio, 2);
                 $price = bcmul($smallNum, $itemPrice, 2);
                 $price = bcmul($smallNum, $itemPrice, 2);
             } else {
             } else {
                 $price = bcmul($bigNum, $itemPrice, 2);
                 $price = bcmul($bigNum, $itemPrice, 2);
@@ -668,7 +673,7 @@ class ProductClass extends BaseClass
             $tmp['rank'] = $productData[$productId]['rank'] ?? '';
             $tmp['rank'] = $productData[$productId]['rank'] ?? '';
             $tmp['ratio'] = $productData[$productId]['ratio'] ?? 1;
             $tmp['ratio'] = $productData[$productId]['ratio'] ?? 1;
             $tmp['variety'] = $productData[$productId]['variety'] ?? 0;
             $tmp['variety'] = $productData[$productId]['variety'] ?? 0;
-            $tmp['unitPrice'] = $itemPrice;
+            $tmp['unitPrice'] = $bigItemPrice;
             $tmp['unitWeight'] = $productData[$productId]['weight'] ?? 0;;
             $tmp['unitWeight'] = $productData[$productId]['weight'] ?? 0;;
             $tmp['num'] = $itemNum;
             $tmp['num'] = $itemNum;
             $tmp['bigNum'] = $v['bigNum'];
             $tmp['bigNum'] = $v['bigNum'];

+ 10 - 6
biz-hd/purchase/classes/PurchaseClass.php

@@ -351,25 +351,29 @@ class PurchaseClass extends BaseClass
 
 
             $unitWeight = $hdProductData[$hdProductId]['weight'] ?? 0;
             $unitWeight = $hdProductData[$hdProductId]['weight'] ?? 0;
             $variety = $hdProductData[$hdProductId]['variety'] ?? 0;
             $variety = $hdProductData[$hdProductId]['variety'] ?? 0;
-            $ratio = $hdProductData[$hdProductId]['ratio'] ?? 0; //比例必须一致
+            $smallRatio = $hdProductData[$hdProductId]['smallRatio'] ?? 1;
+            $ratio = $hdProductData[$hdProductId]['ratio'] ?? 0;
             $itemId = $hdProductData[$hdProductId]['itemId'] ?? 0;
             $itemId = $hdProductData[$hdProductId]['itemId'] ?? 0;
-            $rank = $hdProductData[$hdProductId]['rank'] ?? 'B';// 花材级别
-            $stock = $hdProductData[$hdProductId]['stock'] ?? 0;//当时库存
+            $rank = $hdProductData[$hdProductId]['rank'] ?? 'B';
+            $stock = $hdProductData[$hdProductId]['stock'] ?? 0;
             $stockFormat = ProductClass::formatStock($stock, $ratio);
             $stockFormat = ProductClass::formatStock($stock, $ratio);
 
 
-            $itemNum = ProductClass::mergeItemNum($product['bigNum'], $product['smallNum'], $ratio);//采购数量
+            $itemNum = ProductClass::mergeItemNum($product['bigNum'], $product['smallNum'], $ratio);
 
 
             $weight = $hdProductData[$hdProductId]['weight'] ?? 0;
             $weight = $hdProductData[$hdProductId]['weight'] ?? 0;
             $currentWeight = bcmul($weight, $itemNum, 2);
             $currentWeight = bcmul($weight, $itemNum, 2);
             $totalWeight = bcadd($currentWeight, $totalWeight, 2);
             $totalWeight = bcadd($currentWeight, $totalWeight, 2);
 
 
-            //供货商开单改价
+            //供货商开单改价,这个价格优先级最高
             $changePrice = isset($product['userPrice']) && $product['userPrice'] > 0 ? $product['userPrice'] : 0;
             $changePrice = isset($product['userPrice']) && $product['userPrice'] > 0 ? $product['userPrice'] : 0;
 
 
             $currentProduct = $productData[$productId] ?? [];
             $currentProduct = $productData[$productId] ?? [];
             $price = ProductClass::getFinalPrice($currentProduct, $giveLevel, $priceMap, $addPriceMap, $changePrice);
             $price = ProductClass::getFinalPrice($currentProduct, $giveLevel, $priceMap, $addPriceMap, $changePrice);
+            $bigPrice = $price;
 
 
             if ($currentSmallNum > 0) {
             if ($currentSmallNum > 0) {
+                $price = bcdiv($price, $ratio, 2);
+                $price = bcmul($price, $smallRatio, 2);
                 $productTotalPrice = bcmul($currentSmallNum, $price, 2);
                 $productTotalPrice = bcmul($currentSmallNum, $price, 2);
             } else {
             } else {
                 $productTotalPrice = bcmul($currentBigNum, $price, 2);
                 $productTotalPrice = bcmul($currentBigNum, $price, 2);
@@ -396,7 +400,7 @@ class PurchaseClass extends BaseClass
             $productList[$key]['itemNum'] = $itemNum;
             $productList[$key]['itemNum'] = $itemNum;
             $productList[$key]['bigNum'] = $product['bigNum'] ?? 0;
             $productList[$key]['bigNum'] = $product['bigNum'] ?? 0;
             $productList[$key]['smallNum'] = $product['smallNum'] ?? 0;
             $productList[$key]['smallNum'] = $product['smallNum'] ?? 0;
-            $productList[$key]['price'] = $price;
+            $productList[$key]['price'] = $bigPrice;
             $productList[$key]['ratio'] = $ratio;
             $productList[$key]['ratio'] = $ratio;
             $productList[$key]['unitWeight'] = $unitWeight;
             $productList[$key]['unitWeight'] = $unitWeight;
             $productList[$key]['totalPrice'] = $productTotalPrice;
             $productList[$key]['totalPrice'] = $productTotalPrice;