Переглянути джерело

改价,自动调价
采购后自动更新每扎成本价

林琦海 5 роки тому
батько
коміт
762fbc4933

+ 40 - 0
app/ghs/controllers/ProductController.php

@@ -56,6 +56,8 @@ class ProductController extends BaseController
         util::success($data);
     }
 
+
+
     //弃用
     public function actionList()
     {
@@ -74,6 +76,44 @@ class ProductController extends BaseController
     public function actionChangePrice()
     {
 
+        $productId = Yii::$app->request->post('productId',0);
+        $price = Yii::$app->request->post('price');
+
+        if(!is_numeric($price)){
+            util::fail("请输入正确价格");
+        }
+        if($price <= 0 ){
+            util::fail("价格不能小于0");
+        }
+
+        //判断是否有效
+        $productData = ProductClass::getProductData($productId,$this->shopId,true);
+        if(!$productData){
+            util::fail("花材不存在");
+        }
+        $productData->price = $price;
+        $productData->save();
+        util::complete("改价成功");
+    }
+
+    //恢复自动调价
+    public function actionAutoPrice()
+    {
+        $productId = Yii::$app->request->post('productId',0);
+        $productData = ProductClass::getById($productId);
+        if(!$productData){
+            util::fail("花材不存在");
+        }
+        $itemId = $productData['itemId'];
+        //获取该花材的每扎成本价和每扎加价
+        //自动调价=每扎成本价+每扎加价
+        $itemData = ItemClass::getItemData($itemId,$this->sjId);
+        if(!$itemData){
+            util::fail("出错拉");
+        }
+        $price = bcadd($itemData['unitCost'],$itemData['unitAddPrice'],2);
+        ProductClass::changePrice($productId,$this->shopId,$price);
+        util::complete("操作成功");
     }
 
 

+ 14 - 1
biz-ghs/item/classes/ItemClass.php

@@ -39,7 +39,7 @@ class ItemClass extends BaseClass
     }
 
     //修改花材的信息(库存预警、每扎加价、每扎重量)
-    public static function updateGshItem($id,$stockWarning,$unitAddPrice,$unitWeight)
+    public static function updateGshItem($id,$stockWarning,$unitAddPrice,$unitWeight,$unitCost)
     {
         $model = self::getById($id);
         if(!$model){
@@ -48,6 +48,7 @@ class ItemClass extends BaseClass
         $data['stockWarning'] = $stockWarning;
         $data['unitAddPrice'] = $unitAddPrice;
         $data['unitWeight'] = $unitWeight;
+        $data['unitCost'] = $unitCost;
         self::updateById($id,$data);
         return true;
 
@@ -93,4 +94,16 @@ class ItemClass extends BaseClass
         }
         return $data;
     }
+
+    //获取某个花材的信息 linqh 2021.1.28
+    public static function getItemData($itemId,$merchantId)
+    {
+        return self::getByCondition(['itemId'=>$itemId,'merchantId'=>$merchantId]);
+    }
+
+    //修改某个花材的成本价(采购之后要用到) linqh 2021.1.28
+    public static function changeCost($itemId,$merchantId,$unitCost)
+    {
+        return self::updateByCondition(['itemId'=>$itemId,'merchantId'=>$merchantId],['unitCost'=>$unitCost]);
+    }
 }

+ 7 - 2
biz-ghs/item/services/ItemService.php

@@ -81,6 +81,7 @@ class ItemService extends BaseService
         $stockWarning = $data['stockWarning']??0;
         $unitAddPrice = $data['unitAddPrice']??0;
         $unitWeight = $data['unitWeight']??0;
+        $unitCost = $data['unitCost']??0; //成本价
         if($stockWarning < 0 ){
             util::fail("库存预警不能小于0");
         }
@@ -88,9 +89,13 @@ class ItemService extends BaseService
             util::fail("每扎加价不能小于0");
         }
         if($unitWeight < 0 ){
-            util::fail("每扎重量不能小于0");
+            // util::fail("每扎重量不能小于0");
         }
-        ItemClass::updateGshItem($id,$stockWarning,$unitAddPrice,$unitWeight);
+        if($unitCost < 0 ){
+            util::fail("成本价不能小于0");
+        }
+
+        ItemClass::updateGshItem($id,$stockWarning,$unitAddPrice,$unitWeight,$unitCost);
     }
 
     //删除花材,同时修改itemInfo 的状态值 delStatus = 1

+ 31 - 0
biz-ghs/order/classes/PurchaseOrderClass.php

@@ -4,6 +4,7 @@ namespace bizGhs\order\classes;
 
 use bizGhs\admin\classes\AdminClass;
 use bizGhs\base\classes\BaseClass;
+use bizGhs\item\classes\ItemClass;
 use bizGhs\merchant\classes\SupplierClass;
 use bizGhs\order\traits\OrderTrait;
 use bizGhs\stock\services\StockRecordService;
@@ -64,6 +65,14 @@ class PurchaseOrderClass extends BaseClass
         $data['orderPrice'] = $orderPrice;
 
 
+        //总运费
+        $totalFreight = bcadd($packingCharge,$shortCharge,2);
+        $totalFreight = bcadd($totalFreight,$longCharge,2);
+        $totalFreight = bcadd($totalFreight,$pickCharge,2);
+        $totalFreight = bcadd($totalFreight,$localCharge,2);
+
+
+
         $connection = Yii::$app->db;
         $transaction = $connection->beginTransaction();
 
@@ -74,6 +83,16 @@ class PurchaseOrderClass extends BaseClass
             $batchData = self::groupOrderItem($ghsItemInfo,$orderSn);
             //写入详情表
             PurchaseOrderItemClass::batchAddOrderItem($batchData);
+
+            //总共多少扎(总扎数)
+            $totalItemNum = 0;
+            foreach ($batchData as $v){
+                $totalItemNum = bcadd($totalItemNum,$v['itemNum'],2);
+            }
+            //平均计算出每扎得运费:总运费/总扎数
+            $avgFreight = bcdiv($totalFreight,$totalItemNum,2);
+
+
             //现在暂时点击确定,完成 加库存
             foreach ($batchData as $v){
                 $itemId = $v['itemId'];
@@ -90,6 +109,18 @@ class PurchaseOrderClass extends BaseClass
                 StockRecordService::addPurchaseOrderRecord($record);
                 //加库存
                 ProductClass::addStockByItemNum($productId,$v['itemNum']);
+                //
+                //每扎的采购价
+                //总的采购价/扎数
+                $avgItemCost = 0;
+                if($v['itemNum']>0){
+                    $avgItemCost = bcdiv($v['itemPrice'],$v['itemNum'],2);
+                }
+                // 每扎采购价+每扎运费 = 每扎成本价
+                $avgCost = bcadd($avgItemCost,$avgFreight,2);
+                //修改 ghsItem 中的成本价
+                ItemClass::changeCost($itemId,$merchantId,$avgCost);
+
             }
             $transaction->commit();
             return $order;

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

@@ -375,4 +375,17 @@ class ProductClass extends BaseClass
         }
         return $itemIds;
     }
+
+    //获取当前门店下商品信息 linqh 2021.1.28
+    public static function getProductData($id,$shopId,$obj=false)
+    {
+        return ProductClass::getByCondition(['id'=>$id,'shopId'=>$shopId],$obj);
+    }
+
+    //修改价格 linqh 2021.1.28
+    public static function changePrice($id,$shopId,$price)
+    {
+        return ProductClass::updateByCondition(['id'=>$id,'shopId'=>$shopId],['price'=>$price]);
+    }
+
 }

+ 9 - 1
sql.sql

@@ -1016,4 +1016,12 @@ UPDATE `xhMerchant` SET deadline='2022-07-09 12:00:00';
 nginx增加
 "~^http://ghs.huahb.com" http://ghs.huahb.com;
 "~^https://ghs.huahb.com" https://ghs.huahb.com;
-增加ghs.huahb.com的nginx配置 增加api.ghs.huahb.com的nginx配置 增加二者的https访问
+增加ghs.huahb.com的nginx配置 增加api.ghs.huahb.com的nginx配置 增加二者的https访问
+
+
+======
+==linqh 2021.1.28
+ALTER TABLE `xhGhsItem`
+MODIFY COLUMN `addTime`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间' AFTER `unitAddPrice`,
+MODIFY COLUMN `updateTime`  timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '修改时间' AFTER `addTime`;
+