shish 4 týždňov pred
rodič
commit
125a53631d

+ 6 - 35
app-ghs/controllers/StatItemController.php

@@ -79,7 +79,6 @@ class StatItemController extends BaseController
         $totalAmount = 0;
         $totalNum = 0;
         $totalMl = 0;
-        $relateOrderSns = [];
         foreach ($list as $order) {
             $orderSn = $order['orderSn'] ?? '';
             $status = $order['status'] ?? 0;
@@ -92,9 +91,6 @@ class StatItemController extends BaseController
                 //如果全部退款的花材也不统计
                 continue;
             }
-            if (!empty($orderSn)) {
-                $relateOrderSns[] = $orderSn;
-            }
             $itemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
             if (!empty($itemList)) {
                 foreach ($itemList as $item) {
@@ -109,7 +105,11 @@ class StatItemController extends BaseController
                         }
                     }
 
-                    $num = bcsub($item['xhNum'], $item['refundNum'], 2);
+                    $num = NextDayRefundService::payDayRemainNum(
+                        $item['xhNum'] ?? 0,
+                        $item['refundNum'] ?? 0,
+                        $item['nextRefundNum'] ?? 0
+                    );
                     $unitPrice = $item['xhUnitPrice'] ?? 0;
                     $unitCost = $item['cost'] ?? 0;
                     $unitGross = bcsub($unitPrice, $unitCost, 2);
@@ -147,37 +147,8 @@ class StatItemController extends BaseController
             }
         }
 
-        // 隔天退货已计入 refundNum:先按原单加回,再按售后通过日扣,避免支付日/通过日重复或漏扣
-        $addBackMap = NextDayRefundService::sumItemByProductForRelateOrderSns($this->mainId, $relateOrderSns);
-        foreach ($addBackMap as $pid => $row) {
-            if (!empty($staffId)) {
-                $currentCgStaffId = $productInfo[$pid]['cgStaffId'] ?? 0;
-                if ($staffId != $currentCgStaffId) {
-                    continue;
-                }
-            }
-            if (!isset($stat[$pid])) {
-                $stat[$pid] = [
-                    'productId' => $pid,
-                    'name' => $productInfo[$pid]['name'] ?? '',
-                    'py' => $productInfo[$pid]['py'] ?? '',
-                    'num' => '0.00',
-                    'amount' => '0.00',
-                    'gross' => '0.00',
-                ];
-            }
-            $addNum = (string)($row['num'] ?? '0');
-            $addAmt = (string)($row['amount'] ?? '0');
-            $stat[$pid]['num'] = bcadd((string)$stat[$pid]['num'], $addNum, 2);
-            $stat[$pid]['amount'] = bcadd((string)$stat[$pid]['amount'], $addAmt, 2);
-            // 毛利按退款金额近似加回(与客户业绩扣金额口径一致)
-            $stat[$pid]['gross'] = bcadd((string)$stat[$pid]['gross'], $addAmt, 2);
-            $totalNum = bcadd((string)$totalNum, $addNum, 2);
-            $totalAmount = bcadd((string)$totalAmount, $addAmt, 2);
-            $totalMl = bcadd((string)$totalMl, $addAmt, 2);
-        }
-
         // 通过日:退货扣数量+金额;仅退款只扣金额(按原单花材占比分摊)
+        // 支付日净销量已用 nextRefundNum(payDayRemainNum),无需再加回
         $deductMaps = [
             NextDayRefundService::sumItemByProduct($this->mainId, $currentStartTime, $currentEndTime),
             NextDayRefundService::sumMoneyOnlyAmountByProduct($this->mainId, $currentStartTime, $currentEndTime),

+ 6 - 1
biz-ghs/order/classes/RefundOrderClass.php

@@ -136,6 +136,8 @@ class RefundOrderClass extends BaseClass
         $refundSn = $refund->orderSn ?? '';
         $refundPrice = $refund->refundPrice ?? 0;
         $refundType = $refund->refundType ?? 1;
+        // 提前读取:退货累加 nextRefundNum 时要用(隔天售后数量单独记账)
+        $sameDay = intval($refund->sameDay ?? self::SAME_DAY_YES);
         if ($refundType == RefundOrderClass::REFUND_TYPE_MONEY_GOOD) {
             $refundItemList = RefundOrderItemClass::getAllByCondition(['orderSn' => $refundSn], null, '*', null, true);
             if (empty($refundItemList)) {
@@ -172,7 +174,11 @@ class RefundOrderClass extends BaseClass
                     if ($num > $remainNum) {
                         util::fail("{$itemName} 超过可退数量");
                     }
+                    // refundNum=总已退;隔天部分另记 nextRefundNum,支付日统计用 refundNum-nextRefundNum
                     $oneItem->refundNum = bcadd($refundNum, $num);
+                    if ($sameDay === self::SAME_DAY_NO) {
+                        $oneItem->nextRefundNum = bcadd($oneItem->nextRefundNum ?? 0, $num);
+                    }
                     $oneItem->save();
 
                     $currentCost = bcmul($cost, $num, 2);
@@ -245,7 +251,6 @@ class RefundOrderClass extends BaseClass
         $main->save();
 
         // 隔天售后:累计 nextDayTkPrice,不改 actPrice;资金按支付快照原路处理
-        $sameDay = intval($refund->sameDay ?? self::SAME_DAY_YES);
         if ($sameDay === self::SAME_DAY_NO) {
             \bizGhs\order\services\NextDayRefundService::applyGhsAmountAndFund($refund, $order);
             return;

+ 4 - 0
biz-ghs/order/models/OrderItem.php

@@ -4,6 +4,10 @@ namespace bizGhs\order\models;
 
 use bizGhs\base\models\Base;
 
+/**
+ * 供货商销售单明细 xhGhsOrderItem
+ * nextRefundNum:隔天售后已退数量;当天已退 = refundNum - nextRefundNum
+ */
 class OrderItem extends Base
 {
 

+ 128 - 0
biz-ghs/order/services/NextDayRefundService.php

@@ -613,6 +613,25 @@ class NextDayRefundService
     }
 
     /**
+     * 支付日净销量:当天已退 = refundNum - nextRefundNum,净销 = xhNum - 当天已退。
+     * 隔天退货记在 nextRefundNum,不在支付日从销量扣掉(通过日再扣)。
+     *
+     * @param mixed $xhNum 下单数量
+     * @param mixed $refundNum 总已退
+     * @param mixed $nextRefundNum 隔天已退
+     * @return string
+     */
+    public static function payDayRemainNum($xhNum, $refundNum, $nextRefundNum = 0)
+    {
+        $sameDayRefund = bcsub((string)$refundNum, (string)($nextRefundNum ?? 0), 2);
+        if (bccomp($sameDayRefund, '0', 2) < 0) {
+            $sameDayRefund = '0';
+        }
+        return bcsub((string)$xhNum, $sameDayRefund, 2);
+    }
+
+    /**
+     * @deprecated 已改用订单行 nextRefundNum + payDayRemainNum,保留兼容旧调用
      * 关联原单上「已发生」的隔天退货(不限通过日):用于销量按 payTime 统计时加回 refundNum 中的隔天部分,
      * 避免与按 passTime 扣减重复;口径对齐客户业绩(支付日先全额,通过日再扣)。
      *
@@ -752,4 +771,113 @@ class NextDayRefundService
         }
         return $map;
     }
+
+    /**
+     * 按配送员汇总隔天退货数量/金额(通过日;原单 sendStaffId)
+     * @return array sendStaffId => [num, amount]
+     */
+    public static function sumItemBySendStaff($mainId, $startTime, $endTime)
+    {
+        $sql = "SELECT IFNULL(o.sendStaffId,0) AS sendStaffId,
+                COALESCE(SUM(i.xhNum),0) AS num, COALESCE(SUM(i.xhPrice),0) AS amount
+            FROM xhRefundItem i
+            INNER JOIN xhRefund r ON r.orderSn = i.orderSn
+            INNER JOIN xhGhsOrder o ON o.orderSn = r.relateOrderSn
+            WHERE r.mainId=:mainId AND r.status=:status AND r.sameDay=:sameDay
+              AND r.refundType=:rtype
+              AND IFNULL(NULLIF(r.passTime,'0000-00-00 00:00:00'), r.addTime) BETWEEN :start AND :end
+            GROUP BY IFNULL(o.sendStaffId,0)";
+        $rows = Yii::$app->db->createCommand($sql, [
+            ':mainId' => $mainId,
+            ':status' => RefundOrderClass::STATUS_COMPLETE,
+            ':sameDay' => self::SAME_DAY_NO,
+            ':rtype' => RefundOrderClass::REFUND_TYPE_MONEY_GOOD,
+            ':start' => $startTime,
+            ':end' => $endTime,
+        ])->queryAll();
+        return self::mapStaffNumAmount($rows);
+    }
+
+    /**
+     * @deprecated 已改用订单行 nextRefundNum + payDayRemainNum,保留兼容旧调用
+     * 关联原单上已发生的隔天退货,按配送员汇总(支付日统计加回用)
+     */
+    public static function sumItemBySendStaffForRelateOrderSns($mainId, $relateOrderSns)
+    {
+        $relateOrderSns = array_values(array_unique(array_filter($relateOrderSns)));
+        if (empty($relateOrderSns)) {
+            return [];
+        }
+        $snParams = [];
+        foreach ($relateOrderSns as $i => $sn) {
+            $snParams[':sn' . $i] = $sn;
+        }
+        $in = implode(',', array_keys($snParams));
+        $sql = "SELECT IFNULL(o.sendStaffId,0) AS sendStaffId,
+                COALESCE(SUM(i.xhNum),0) AS num, COALESCE(SUM(i.xhPrice),0) AS amount
+            FROM xhRefundItem i
+            INNER JOIN xhRefund r ON r.orderSn = i.orderSn
+            INNER JOIN xhGhsOrder o ON o.orderSn = r.relateOrderSn
+            WHERE r.mainId=:mainId AND r.status=:status AND r.sameDay=:sameDay
+              AND r.refundType=:rtype
+              AND r.relateOrderSn IN ($in)
+            GROUP BY IFNULL(o.sendStaffId,0)";
+        $params = array_merge([
+            ':mainId' => $mainId,
+            ':status' => RefundOrderClass::STATUS_COMPLETE,
+            ':sameDay' => self::SAME_DAY_NO,
+            ':rtype' => RefundOrderClass::REFUND_TYPE_MONEY_GOOD,
+        ], $snParams);
+        $rows = Yii::$app->db->createCommand($sql, $params)->queryAll();
+        return self::mapStaffNumAmount($rows);
+    }
+
+    /**
+     * 隔天仅退款按配送员汇总金额(通过日)
+     */
+    public static function sumMoneyOnlyAmountBySendStaff($mainId, $startTime, $endTime)
+    {
+        $sql = "SELECT IFNULL(o.sendStaffId,0) AS sendStaffId, COALESCE(SUM(r.refundPrice),0) AS amount
+            FROM xhRefund r
+            INNER JOIN xhGhsOrder o ON o.orderSn = r.relateOrderSn
+            WHERE r.mainId=:mainId AND r.status=:status AND r.sameDay=:sameDay
+              AND r.refundType=:rtype
+              AND IFNULL(NULLIF(r.relateOrderSn,''), '') <> ''
+              AND IFNULL(NULLIF(r.passTime,'0000-00-00 00:00:00'), r.addTime) BETWEEN :start AND :end
+            GROUP BY IFNULL(o.sendStaffId,0)";
+        $rows = Yii::$app->db->createCommand($sql, [
+            ':mainId' => $mainId,
+            ':status' => RefundOrderClass::STATUS_COMPLETE,
+            ':sameDay' => self::SAME_DAY_NO,
+            ':rtype' => RefundOrderClass::REFUND_TYPE_MONEY,
+            ':start' => $startTime,
+            ':end' => $endTime,
+        ])->queryAll();
+        $map = [];
+        foreach ($rows as $row) {
+            $sid = intval($row['sendStaffId'] ?? 0);
+            $map[$sid] = [
+                'num' => '0.00',
+                'amount' => bcadd($row['amount'] ?? '0', '0', 2),
+            ];
+        }
+        return $map;
+    }
+
+    /**
+     * @param array $rows
+     * @return array
+     */
+    protected static function mapStaffNumAmount($rows)
+    {
+        $map = [];
+        foreach ($rows as $row) {
+            $sid = intval($row['sendStaffId'] ?? 0);
+            $map[$sid] = [
+                'num' => bcadd($row['num'] ?? '0', '0', 2),
+                'amount' => bcadd($row['amount'] ?? '0', '0', 2),
+            ];
+        }
+        return $map;
+    }
 }

+ 142 - 29
biz-ghs/stat/classes/StatSaleClass.php

@@ -585,7 +585,12 @@ class StatSaleClass extends BaseClass
                         $name = $orderItem->name ?? '';
                         $productId = $orderItem->productId ?? 0;
                         $num = $orderItem->xhNum ?? 0;
-                        $remainNum = bcsub($num, $refundNum);
+                        // 支付日净销量:当天已退=refundNum-nextRefundNum
+                        $remainNum = NextDayRefundService::payDayRemainNum(
+                            $num,
+                            $refundNum,
+                            $orderItem->nextRefundNum ?? 0
+                        );
 
                         $xhUnitPrice = $orderItem->xhUnitPrice ?? 0;
                         $amount = bcmul($remainNum, $xhUnitPrice, 2);
@@ -628,6 +633,10 @@ class StatSaleClass extends BaseClass
                                 if ($refund->refundType == 1) {
                                     //退货退款前面已经考虑,这里不再处理 OK
                                 } else {
+                                    // 隔天仅退款记在通过日,这里跳过避免与下方 sumMoneyOnly 重复
+                                    if (intval($refund->sameDay ?? RefundOrderClass::SAME_DAY_YES) === RefundOrderClass::SAME_DAY_NO) {
+                                        continue;
+                                    }
                                     $onlyRefund = bcadd($onlyRefund, $refund->refundPrice, 2);
                                 }
                             }
@@ -638,6 +647,20 @@ class StatSaleClass extends BaseClass
             }
         }
 
+        // 隔天售后:支付日已用 nextRefundNum;通过日再扣数量/金额;仅退款并入销售仅退款
+        $onlyRefund = bcadd(
+            (string)$onlyRefund,
+            self::applyNextDayAdjustToProductIncomeRows(
+                $arr,
+                $tbSaleIncome,
+                $productList,
+                $mainId,
+                $currentStartTime,
+                $currentEndTime
+            ),
+            2
+        );
+
         //零售开单
         $lsIncome = 0;
         $hdWhere = ['mainId' => $mainId, 'status' => ['in', [HdOrderClass::ORDER_STATUS_UN_SEND, HdOrderClass::ORDER_STATUS_SENDING, HdOrderClass::ORDER_STATUS_COMPLETE]]];
@@ -911,7 +934,11 @@ class StatSaleClass extends BaseClass
                         $name = $orderItem->name ?? '';
                         $productId = $orderItem->productId ?? 0;
                         $num = $orderItem->xhNum ?? 0;
-                        $remainNum = bcsub($num, $refundNum);
+                        $remainNum = NextDayRefundService::payDayRemainNum(
+                            $num,
+                            $refundNum,
+                            $orderItem->nextRefundNum ?? 0
+                        );
                         $classId = $orderItem->classId ?? 0;
                         $className = $classList[$classId]['name'] ?? '已删除';
                         $xhUnitPrice = $orderItem->xhUnitPrice ?? 0;
@@ -952,6 +979,10 @@ class StatSaleClass extends BaseClass
                                 if ($refund->refundType == 1) {
                                     //退货退款前面已经考虑,这里不再处理 OK
                                 } else {
+                                    // 隔天仅退款记在通过日,这里跳过避免与下方 sumMoneyOnly 重复
+                                    if (intval($refund->sameDay ?? RefundOrderClass::SAME_DAY_YES) === RefundOrderClass::SAME_DAY_NO) {
+                                        continue;
+                                    }
                                     $onlyRefund = bcadd($onlyRefund, $refund->refundPrice, 2);
                                 }
                             }
@@ -962,26 +993,7 @@ class StatSaleClass extends BaseClass
             }
         }
 
-        // 隔天售后:与花材销量同口径——加回原单 refundNum 中的隔天退货,再按通过日扣分类收入;仅退款进「销售仅退款」
-        $classRelateSns = [];
-        if (!empty($ghsOrderList)) {
-            foreach ($ghsOrderList as $ghsOrder) {
-                $book = $ghsOrder['book'] ?? 0;
-                $status = $ghsOrder['status'] ?? 0;
-                if ($book == 1 && $status == 2) {
-                    continue;
-                }
-                if ($status == 0 || $status == 5) {
-                    continue;
-                }
-                if (($ghsOrder['actPrice'] ?? 0) <= 0) {
-                    continue;
-                }
-                if (!empty($ghsOrder['orderSn'])) {
-                    $classRelateSns[] = $ghsOrder['orderSn'];
-                }
-            }
-        }
+        // 隔天售后:支付日已用 nextRefundNum;通过日再按售后单扣分类收入;仅退款进「销售仅退款」
         $productClassMap = ProductClass::getAllByCondition(['mainId' => $mainId], null, 'id,classId', 'id');
         $applyClassDelta = function ($pidMap, $sign) use (&$arr, &$classList, $productClassMap) {
             foreach ($pidMap as $pid => $row) {
@@ -1005,10 +1017,6 @@ class StatSaleClass extends BaseClass
                 $arr[$classId]['saleNum'] = bcadd((string)($arr[$classId]['saleNum'] ?? 0), $deltaNum, 2);
             }
         };
-        $applyClassDelta(
-            NextDayRefundService::sumItemByProductForRelateOrderSns($mainId, $classRelateSns),
-            1
-        );
         $applyClassDelta(
             NextDayRefundService::sumItemByProduct($mainId, $currentStartTime, $currentEndTime),
             -1
@@ -1454,14 +1462,23 @@ class StatSaleClass extends BaseClass
                 $orderItemList = OrderItemClass::getAllByCondition(['orderSn' => $orderSn], null, '*', null, true);
                 if (!empty($orderItemList)) {
                     foreach ($orderItemList as $orderItem) {
-                        $refundNum = $orderItem->refundNum ?? 0;
-                        $num = $orderItem->xhNum ?? 0;
-                        $remainNum = bcsub($num, $refundNum);
+                        $remainNum = NextDayRefundService::payDayRemainNum(
+                            $orderItem->xhNum ?? 0,
+                            $orderItem->refundNum ?? 0,
+                            $orderItem->nextRefundNum ?? 0
+                        );
                         $arr[$sendStaffId]['itemNum'] = bcadd($arr[$sendStaffId]['itemNum'], $remainNum);
                     }
                 }
             }
 
+            // 隔天售后:数量已用 nextRefundNum;通过日再扣数量/金额
+            self::applyNextDayAdjustToSendStaffRows(
+                $arr,
+                $mainId,
+                $currentStartTime,
+                $currentEndTime
+            );
         }
         if (!empty($arr)) {
             $arr = array_values($arr);
@@ -1571,4 +1588,100 @@ class StatSaleClass extends BaseClass
         return ['list' => $arr, 'totalAmount' => $totalAmount, 'totalNum' => $totalNum, 'totalCost' => $totalCost, 'totalProfit' => $totalProfit];
     }
 
+    /**
+     * 花材收支明细:支付日已用 nextRefundNum;此处按通过日扣退货数量/金额,并返回隔天仅退款合计。
+     *
+     * @param array $arr 产品收支行(引用修改 income/inNum)
+     * @param array $tbSaleIncome 归属成本花材销售明细(引用同步加减)
+     * @param array $productList 花材字典
+     * @param int $mainId
+     * @param string $startTime
+     * @param string $endTime
+     * @return string 通过日隔天「仅退款」合计,需加到 onlyRefund
+     */
+    private static function applyNextDayAdjustToProductIncomeRows(
+        &$arr,
+        &$tbSaleIncome,
+        $productList,
+        $mainId,
+        $startTime,
+        $endTime
+    ) {
+        $applyDelta = function ($pidMap, $sign) use (&$arr, &$tbSaleIncome, $productList) {
+            foreach ($pidMap as $pid => $row) {
+                $deltaNum = bcmul((string)($row['num'] ?? '0'), (string)$sign, 2);
+                $deltaAmt = bcmul((string)($row['amount'] ?? '0'), (string)$sign, 2);
+                if (bccomp($deltaAmt, '0', 2) == 0 && bccomp($deltaNum, '0', 2) == 0) {
+                    continue;
+                }
+                // 通过日扣减时:当日无该花材开单则不新建行(与花材销量一致)
+                if ($sign < 0 && !isset($arr[$pid])) {
+                    continue;
+                }
+                if (!isset($arr[$pid])) {
+                    $arr[$pid] = [
+                        'name' => $productList[$pid]['name'] ?? '已删除',
+                        'id' => $pid,
+                        'expend' => 0,
+                        'outNum' => 0,
+                        'inNum' => '0.00',
+                        'income' => '0.00',
+                    ];
+                }
+                $arr[$pid]['income'] = bcadd((string)($arr[$pid]['income'] ?? 0), $deltaAmt, 2);
+                $arr[$pid]['inNum'] = bcadd((string)($arr[$pid]['inNum'] ?? 0), $deltaNum, 2);
+                if (isset($tbSaleIncome[$pid])) {
+                    $tbSaleIncome[$pid]['price'] = bcadd((string)($tbSaleIncome[$pid]['price'] ?? 0), $deltaAmt, 2);
+                    $tbSaleIncome[$pid]['num'] = bcadd((string)($tbSaleIncome[$pid]['num'] ?? 0), $deltaNum, 2);
+                }
+            }
+        };
+
+        // 通过日:扣退货数量+金额
+        $applyDelta(
+            NextDayRefundService::sumItemByProduct($mainId, $startTime, $endTime),
+            -1
+        );
+
+        return NextDayRefundService::sumMoneyOnlyAmountByMainAndTime($mainId, $startTime, $endTime);
+    }
+
+    /**
+     * 配送业绩:支付日数量已用 nextRefundNum;通过日再扣数量/金额(仅退款只减金额)。
+     * 仅调整当日已有配送员行,不因纯售后新建行。
+     *
+     * @param array $arr sendStaffId => 业绩行(引用修改 itemNum/amount)
+     * @param int $mainId
+     * @param string $startTime
+     * @param string $endTime
+     */
+    private static function applyNextDayAdjustToSendStaffRows(
+        &$arr,
+        $mainId,
+        $startTime,
+        $endTime
+    ) {
+        $applyDelta = function ($staffMap, $sign) use (&$arr) {
+            foreach ($staffMap as $sid => $row) {
+                if (!isset($arr[$sid])) {
+                    continue;
+                }
+                $deltaNum = bcmul((string)($row['num'] ?? '0'), (string)$sign, 2);
+                $deltaAmt = bcmul((string)($row['amount'] ?? '0'), (string)$sign, 2);
+                $arr[$sid]['itemNum'] = bcadd((string)($arr[$sid]['itemNum'] ?? 0), $deltaNum, 2);
+                $arr[$sid]['amount'] = bcadd((string)($arr[$sid]['amount'] ?? 0), $deltaAmt, 2);
+            }
+        };
+
+        $applyDelta(
+            NextDayRefundService::sumItemBySendStaff($mainId, $startTime, $endTime),
+            -1
+        );
+        // 仅退款只减金额
+        $applyDelta(
+            NextDayRefundService::sumMoneyOnlyAmountBySendStaff($mainId, $startTime, $endTime),
+            -1
+        );
+    }
+
 }

+ 6 - 1
biz-hd/cg/classes/CgRefundClass.php

@@ -157,6 +157,8 @@ class CgRefundClass extends BaseClass
         }
         $refundType = $cgRefund->refundType ?? 1;
         $refundSn = $cgRefund->orderSn ?? '';
+        // 提前读取:退货累加 nextRefundNum 时要用
+        $sameDay = intval($cgRefund->sameDay ?? self::SAME_DAY_YES);
         $cgRefund->status = 1;
         $cgRefund->save();
 
@@ -256,7 +258,11 @@ class CgRefundClass extends BaseClass
                     if ($num > $remainNum) {
                         util::fail("{$itemName} 超过可退数量");
                     }
+                    // refundNum=总已退;隔天部分另记 nextRefundNum
                     $oneItem->refundNum = bcadd($refundNum, $num);
+                    if ($sameDay === self::SAME_DAY_NO) {
+                        $oneItem->nextRefundNum = bcadd($oneItem->nextRefundNum ?? 0, $num);
+                    }
                     $oneItem->save();
 
                     if ($refundSingle->xhUnitType == 1) {
@@ -297,7 +303,6 @@ class CgRefundClass extends BaseClass
         }
 
         // 隔天售后:累计 nextDayTkPrice,不改 actPrice;原路退在此发起
-        $sameDay = intval($cgRefund->sameDay ?? self::SAME_DAY_YES);
         if ($sameDay === self::SAME_DAY_NO) {
             \bizGhs\order\services\NextDayRefundService::applyCgAmountAndFund($cgRefund, $cg);
             return;

+ 4 - 0
biz-hd/purchase/models/PurchaseItem.php

@@ -4,6 +4,10 @@ namespace bizHd\purchase\models;
 
 use bizHd\base\models\Base;
 
+/**
+ * 花店采购单明细 xhCgItem
+ * nextRefundNum:隔天售后已退数量;当天已退 = refundNum - nextRefundNum
+ */
 class PurchaseItem extends Base
 {