shish преди 2 месеца
родител
ревизия
4a8cdf08de
променени са 1 файла, в които са добавени 21 реда и са изтрити 8 реда
  1. 21 8
      biz-ghs/clear/classes/ClearClass.php

+ 21 - 8
biz-ghs/clear/classes/ClearClass.php

@@ -320,7 +320,7 @@ class ClearClass extends BaseClass
     }
 
     /**
-     * 结账单详情(供货商销售单):订单仍待结时返回已销账结账单链接列表
+     * 结账单详情(供货商销售单):附加 orderClearList,与订单详情 OrderService 一致
      */
     protected static function buildPartialClearLinksForSaleOrders($saleList)
     {
@@ -331,8 +331,8 @@ class ClearClass extends BaseClass
         foreach ($saleList as $order) {
             $row = self::normalizeOrderRow($order);
             $orderId = intval($row['id'] ?? 0);
-            $remain = bcadd((string)($row['remainDebtPrice'] ?? '0'), '0', 2);
-            $row['orderClearList'] = ($orderId > 0 && bccomp($remain, '0', 2) > 0)
+            $row['remainDebtPrice'] = bcadd((string)($row['remainDebtPrice'] ?? '0'), '0', 2);
+            $row['orderClearList'] = $orderId > 0
                 ? OrderCgClearClass::listPaidClearRecordsForOrder($orderId)
                 : [];
             $out[] = $row;
@@ -341,7 +341,7 @@ class ClearClass extends BaseClass
     }
 
     /**
-     * 结账单详情(花店采购单):订单仍待结时返回已销账结账单链接列表
+     * 结账单详情(花店采购单):附加 orderClearList;待结以批发销售单为准(采购单可能滞后)
      */
     protected static function buildPartialClearLinksForPurchaseOrders($cgList)
     {
@@ -353,15 +353,28 @@ class ClearClass extends BaseClass
             $row = self::normalizeOrderRow($purchase);
             $cgId = intval($row['id'] ?? 0);
             $saleId = intval($row['saleId'] ?? 0);
-            $remain = bcadd((string)($row['remainDebtPrice'] ?? '0'), '0', 2);
-            $row['orderClearList'] = ($cgId > 0 && bccomp($remain, '0', 2) > 0)
-                ? OrderCgClearClass::listPaidClearRecordsForPurchase($cgId, $saleId)
-                : [];
+            $row['remainDebtPrice'] = self::resolvePurchaseRemainDebtPrice($row);
+            $row['orderClearList'] = OrderCgClearClass::listPaidClearRecordsForPurchase($cgId, $saleId);
             $out[] = $row;
         }
         return $out;
     }
 
+    /** 采购单待结:优先对齐 xhOrder.remainDebtPrice */
+    protected static function resolvePurchaseRemainDebtPrice(array $row)
+    {
+        $remain = bcadd((string)($row['remainDebtPrice'] ?? '0'), '0', 2);
+        $saleId = intval($row['saleId'] ?? 0);
+        if ($saleId <= 0) {
+            return $remain;
+        }
+        $sale = OrderClass::getById($saleId, true);
+        if (empty($sale)) {
+            return $remain;
+        }
+        return bcadd((string)($sale->remainDebtPrice ?? '0'), '0', 2);
+    }
+
     /** 统一订单行为数组,便于前端附加 orderClearList */
     protected static function normalizeOrderRow($row)
     {