|
|
@@ -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)
|
|
|
{
|