shish 4 år sedan
förälder
incheckning
573e4934bc

+ 11 - 6
biz-ghs/order/classes/StockWastageOrderClass.php

@@ -8,6 +8,7 @@ use biz\stat\classes\StatOutClass;
 use biz\stat\classes\StatWastClass;
 use bizGhs\order\traits\OrderTrait;
 use bizGhs\product\classes\ProductClass;
+use bizGhs\shop\classes\MainClass;
 use bizGhs\stock\classes\StockRecordClass;
 use common\components\dict;
 use common\components\orderSn;
@@ -78,6 +79,10 @@ class StockWastageOrderClass extends BaseClass
         if (empty($shop)) {
             util::fail('没有找到门店');
         }
+        $main = MainClass::getLockById($mainId);
+        if (empty($main)) {
+            util::fail('没有main信息');
+        }
 
         //计算成本价
         $wastage = 0;
@@ -86,13 +91,13 @@ class StockWastageOrderClass extends BaseClass
             $cost = $v['itemCost'] ?? 0;
             $wastage = bcadd($wastage, bcmul($num, $cost, 2), 2);
         }
-        $currentTotalExpend = bcadd($shop->totalExpend, $wastage, 2);
-        $shop->totalExpend = $currentTotalExpend;
-        $currentWast = bcadd($shop->totalWast, $wastage, 2);
-        $shop->totalWast = $currentWast;
-        $shop->save();
+        $currentTotalExpend = bcadd($main->totalExpend, $wastage, 2);
+        $main->totalExpend = $currentTotalExpend;
+        $currentWast = bcadd($main->totalWast, $wastage, 2);
+        $main->totalWast = $currentWast;
+        $main->save();
 
-        StatWastClass::replace($shop, $wastage);
+        StatWastClass::replace($main, $shop, $wastage);
 
         return $order;
 

+ 4 - 4
biz/stat/classes/StatWastClass.php

@@ -13,12 +13,12 @@ class StatWastClass extends BaseClass
     //获取总和 ssh 20210829
     public static function getSum($where)
     {
-        $amount = self::sum($where,'amount');
+        $amount = self::sum($where, 'amount');
         return empty($amount) ? 0 : $amount;
     }
 
     //盘盈统计 ssh 20210827
-    public static function replace($shop, $amount, $date = null)
+    public static function replace($main, $shop, $amount, $date = null)
     {
         $sjId = $shop->sjId;
         $shopId = $shop->id;
@@ -31,10 +31,10 @@ class StatWastClass extends BaseClass
         $unique = self::getLockById($id);
         $currentAmount = bcadd($unique->amount, $amount, 2);
         $unique->amount = $currentAmount;
-        $unique->totalAmount = $shop->totalWast;
+        $unique->totalAmount = $main->totalWast;
         $unique->num += 1;
         $unique->save();
-        StatWastMonthClass::replace($shop, $amount, $time);
+        StatWastMonthClass::replace($main, $shop, $amount, $time);
     }
 
 }

+ 2 - 2
biz/stat/classes/StatWastMonthClass.php

@@ -11,7 +11,7 @@ class StatWastMonthClass extends BaseClass
     public static $baseFile = '\biz\stat\models\StatWastMonth';
 
     //每月盘亏统计 ssh 20210827
-    public static function replace($shop, $amount, $date = null)
+    public static function replace($main, $shop, $amount, $date = null)
     {
         if ($date == null) {
             $time = date('Ym');
@@ -33,7 +33,7 @@ class StatWastMonthClass extends BaseClass
         $unique = self::getLockById($id);
         $currentAmount = bcadd($unique->amount, $amount, 2);
         $unique->amount = $currentAmount;
-        $unique->totalAmount = $shop->totalWast;
+        $unique->totalAmount = $main->totalWast;
         $unique->num += 1;
         $unique->save();
     }

+ 4 - 0
console/controllers/InitController.php

@@ -32,6 +32,8 @@ use biz\stat\classes\StatStockInClass;
 use biz\stat\classes\StatStockInMonthClass;
 use biz\stat\classes\StatStockOutClass;
 use biz\stat\classes\StatStockOutMonthClass;
+use biz\stat\classes\StatWastClass;
+use biz\stat\classes\StatWastMonthClass;
 use bizGhs\cg\classes\CgClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\item\classes\ItemClass;
@@ -506,6 +508,8 @@ class InitController extends Controller
         StatPdAddMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
         StatPdSubClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
         StatPdSubMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
+        StatWastClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
+        StatWastMonthClass::updateByCondition(['shopId' => $shopId], ['mainId' => $mainId]);
     }
 
     public static function setGhs($shopId, $mainId)

+ 5 - 1
sql.sql

@@ -1027,4 +1027,8 @@ ALTER TABLE xhGhsStockInOrder ADD outMainId INT NOT NULL DEFAULT 0 COMMENT '中
 ALTER TABLE xhGhsStockInOrder ADD inMainId INT NOT NULL DEFAULT 0 COMMENT '中央id' AFTER `inShopId`;
 ALTER TABLE xhGhsStockInOrderItem ADD shopId INT NOT NULL DEFAULT 0 COMMENT '门店id' AFTER `productId`;
 ALTER TABLE xhGhsStockInOrderItem ADD mainId INT NOT NULL DEFAULT 0 COMMENT '中央id' AFTER `shopId`;
-ALTER TABLE xhOrder ADD `userId` INT NOT NULL DEFAULT 0 COMMENT '用户id' AFTER `customId`;
+ALTER TABLE xhOrder ADD `userId` INT NOT NULL DEFAULT 0 COMMENT '用户id' AFTER `customId`;
+ALTER TABLE xhStatWast ADD mainId INT NOT NULL DEFAULT 0 COMMENT '' AFTER `shopId`;
+ALTER TABLE xhStatWastMonth ADD mainId INT NOT NULL DEFAULT 0 COMMENT '' AFTER `shopId`;
+ALTER TABLE xhStatWast DROP INDEX `shop`;
+ALTER TABLE xhStatWastMonth DROP INDEX `shop`;