فهرست منبع

零售端采购

林琦海 5 سال پیش
والد
کامیت
1fe87672fe
2فایلهای تغییر یافته به همراه63 افزوده شده و 11 حذف شده
  1. 54 10
      biz-hd/purchase/classes/PurchaseClass.php
  2. 9 1
      sql.sql

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

@@ -7,6 +7,8 @@ use biz\shop\classes\ShopClass;
 use bizGhs\admin\classes\AdminClass;
 use bizGhs\custom\classes\CustomClass;
 use biz\sj\classes\MerchantClass;
+use bizGhs\order\traits\OrderTrait;
+use bizGhs\product\classes\ProductClass;
 use common\components\orderSn;
 use common\components\stringUtil;
 use common\components\util;
@@ -15,7 +17,7 @@ use bizHd\base\classes\BaseClass;
 
 class PurchaseClass extends BaseClass
 {
-
+    use OrderTrait;
     public static $baseFile = '\bizHd\purchase\models\Purchase';
 
     //订单状态 1待付款,待确认,2待配送,3配送中,4已完成
@@ -36,18 +38,60 @@ class PurchaseClass extends BaseClass
     {
         $orderSn = orderSn::getPurchaseSn();
         $data['orderSn'] = $orderSn;
-        $data['prePrice'] = 0.01;
-        $data['actPrice'] = 0.01;
+        $prePrice = 0;
+        $actPrice = 0;
+
         $data['sendTimeWant'] = date("Y-m-d") . ' ' . $data['sendTime'];
         unset($data['sendTime']);
-        $respond = self::add($data);
-        if (isset($data['product']) == false || empty($data['product'])) {
-            util::fail('请选择花材');
-        }
+
         $productList = $data['product'];
+        $productData = self::getProductMapData($productList);
+        //[{"productId":"113","bigNum":1,"smallNum":0,"classId":"-2"}]
+        //计算价格= 各个productId的price*num(bigNum,smallNum) + sendCost(配送费)
         foreach ($productList as $key => $product) {
             $productList[$key]['orderSn'] = $orderSn;
+            $productId = $product['productId'];
+            $ratio = $productData[$productId]['ratio']??0;
+            $itemId = $productData[$productId]['itemId']??0;
+            $rank = $productData[$productId]['rank']??'B';// 花材级别
+            $stock = $productData[$productId]['stock']??0;//当时库存
+            $stockFormat= ProductClass::formatStock($stock,$ratio);
+
+            $itemNum =  ProductClass::mergeItemNum($product['bigNum'],$product['smallNum'],$ratio);//采购数量
+            $price = $productData[$productId]['price']; //卖的单价
+            $sellPrice = bcmul($itemNum,$price,2); //采购总价
+            $itemInfo = [
+                'itemName'=> $productData[$productId]['name']??'',//花材名称
+                'itemCover'=> $productData[$productId]['cover']??'',//花材图片
+                'bigNum'=> $product['bigNum']??0,//采购数量(大单位)
+                'smallNum'=> $product['smallNum']??0,//采购数量(小单位)
+                'bigNumStock'=> $stockFormat['bigNum'],// 当时库存大单位数
+                'smallNumStock'=> $stockFormat['smallNum'],//当时库存 小单位数
+                'itemUnit'=> $ratio?2:1,//单位
+                'ratio'=>$ratio,// 比例
+                'rank'=>$rank,// 花材级别
+                'bigUnit'=> $productData[$productId]['bigUnit'],//大单位名称 扎
+                'smallUnit'=> $productData[$productId]['smallUnit'],//小单位名称 支
+            ];
+
+            $productList[$key]['itemInfo'] = json_encode($itemInfo);
+            $productList[$key]['itemId'] = $itemId;
+            $productList[$key]['itemNum'] = $itemNum;
+            $productList[$key]['price'] = $price;
+            $productList[$key]['ratio'] = $ratio;
+            $productList[$key]['totalPrice'] = $sellPrice;
+            $prePrice = bcadd($prePrice,$sellPrice,2);
         }
+        $prePrice = bcadd($prePrice,$data['sendCost'],2);
+        $actPrice = $prePrice;
+        $data['prePrice'] = $prePrice;
+        $data['actPrice'] = $actPrice;
+        $respond = self::add($data);
+        if (isset($data['product']) == false || empty($data['product'])) {
+            util::fail('请选择花材');
+        }
+
+
         PurchaseItemClass::batchAdd($productList);
 
         //供货商增加订单
@@ -60,8 +104,8 @@ class PurchaseClass extends BaseClass
         $shopId = $ghs['shopId'];
         $getType = $data['getType'];
         $orderData = [
-            'prePrice' => 0.01,
-            'actPrice' => 0.01,
+            'prePrice' => $prePrice,
+            'actPrice' => $actPrice,
             'num' => 1,
             'smallNum' => 3,
             'product' => $productList,
@@ -158,4 +202,4 @@ class PurchaseClass extends BaseClass
 
     }
 
-}
+}

+ 9 - 1
sql.sql

@@ -2257,4 +2257,12 @@ ALTER TABLE `xhGhs` CHANGE `ghsSjId` `sjId` INT(11) NOT NULL DEFAULT '0' COMMENT
 ALTER TABLE `xhGhs` CHANGE `ghsShopId` `shopId` INT(11) NOT NULL DEFAULT '0' COMMENT '供货商门店id';
 ALTER TABLE `xhGhs` DROP COLUMN `ownShopId`;
 ALTER TABLE `xhPurchase` MODIFY `shopId` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '门店ID' AFTER `merchantId`;
-ALTER TABLE `xhGhsPurchaseOrder` MODIFY `shopId` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '门店ID' AFTER `merchantId`;
+ALTER TABLE `xhGhsPurchaseOrder` MODIFY `shopId` INT(11) UNSIGNED NOT NULL DEFAULT '0' COMMENT '门店ID' AFTER `merchantId`;
+
+=============linqh 2021-4-27
+===
+ALTER TABLE `xhPurchaseItem`
+CHANGE COLUMN `num` `itemNum`  decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '大单位数量,支持小数点' AFTER `productId`,
+MODIFY COLUMN `price`  decimal(10,2) NOT NULL DEFAULT 0.00 COMMENT '单价' AFTER `ratio`,
+ADD COLUMN `itemId`  int(11) UNSIGNED NOT NULL DEFAULT 0 COMMENT '花材ID' AFTER `productId`,
+ADD COLUMN `itemInfo`  text NOT NULL COMMENT '花材信息json' AFTER `itemNum`;