Kaynağa Gözat

预订统计

shish 2 yıl önce
ebeveyn
işleme
ed86bb471a

+ 23 - 7
biz-ghs/book/classes/StatBookClass.php

@@ -12,8 +12,7 @@ class StatBookClass extends BaseClass
 
     public static $baseFile = '\bizGhs\book\models\StatBook';
 
-    //预订单统计 ssh 20220402
-    public static function addBookOrderItem($item, $order)
+    public static function addItem($data, $order)
     {
         $shopId = $order->shopId ?? 0;
         $shop = ShopClass::getById($shopId, true);
@@ -22,20 +21,37 @@ class StatBookClass extends BaseClass
         }
         $bookSn = $shop->bookSn ?? '';
         $mainId = $order->mainId ?? 0;
-        $itemId = $item->productId ?? 0;
-        $ptItemId = $item->itemId ?? 0;
+        $itemId = $data['productId'] ?? 0;
+        $ptItemId = $data['ptItemId'] ?? 0;
         //预订单只会有大单位
-        $num = $item->xhNum ?? 0;
-        $name = $item->name ?? '';
+        $num = $data['num'] ?? 0;
+        $name = $data['name'] ?? '';
         $stat = self::getByCondition(['mainId' => $mainId, 'bookSn' => $bookSn, 'itemId' => $itemId,], true);
         if (empty($stat)) {
             $stat = self::add(['mainId' => $mainId, 'itemId' => $itemId, 'ptItemId' => $ptItemId, 'name' => $name, 'bookSn' => $bookSn,], true);
         }
         $id = $stat->id;
         $unique = self::getLockById($id);
-        $currentNum = bcadd($unique->num, $num, 2);
+        $currentNum = bcadd($unique->num, $num);
         $unique->num = $currentNum;
         $unique->save();
+
+        $customId = $order->customId ?? 0;
+        $has = StatBookItemClass::getByCondition(['mainId' => $mainId, 'itemId' => $itemId, 'customId' => $customId,], true);
+        if (empty($has)) {
+            $customName = $order->customName ?? '';
+            $currentData = [
+                'mainId' => $mainId,
+                'itemId' => $itemId,
+                'customId' => $customId,
+                'customName' => $customName,
+            ];
+            $has = StatBookItemClass::add($currentData, true);
+        }
+        $hasId = $has->id ?? 0;
+        $has = StatBookItemClass::getLockById($hasId);
+        $has->bookNum = bcadd($has->bookNum, $num);
+        $has->save();
     }
 
 }

+ 9 - 1
biz-ghs/order/classes/OrderItemClass.php

@@ -3,7 +3,7 @@
 namespace bizGhs\order\classes;
 
 use biz\product\classes\XjClass;
-use biz\stat\classes\StatBookClass;
+use bizGhs\book\classes\StatBookClass;
 use bizGhs\custom\classes\CustomClass;
 use bizGhs\ghs\classes\GhsClass;
 use bizGhs\product\classes\ProductClass;
@@ -119,6 +119,14 @@ class OrderItemClass extends BaseClass
             $current['belongCost'] = $belongCost;
             self::add($current);
 
+            $thisData = [
+                'productId' => $productId,
+                'ptItemId' => $ptItemId,
+                'num' => $num,
+                'name' => $info['name'] ?? '',
+            ];
+            StatBookClass::addItem($thisData, $order);
+
             $productList[] = [
                 'productId' => $productId,
                 'num' => $num,

+ 7 - 1
biz-ghs/order/services/OrderService.php

@@ -760,7 +760,13 @@ class OrderService extends BaseService
             $itemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
             if (!empty($itemList)) {
                 foreach ($itemList as $currentItem) {
-                    StatBookClass::addBookOrderItem($currentItem, $order);
+                    $thisData = [
+                        'productId' => $currentItem->productId,
+                        'ptItemId' => $currentItem->itemId,
+                        'num' => $currentItem->xhNum,
+                        'name' => $currentItem->name,
+                    ];
+                    StatBookClass::addItem($thisData, $order);
                 }
             }
         } else {