|
|
@@ -291,7 +291,7 @@ class ClearClass extends BaseClass
|
|
|
$clearId = intval($info['id'] ?? 0);
|
|
|
$cgArr = OrderCgClearClass::getCgIdsByClearId($clearId);
|
|
|
$cgList = empty($cgArr) ? [] : PurchaseClass::getAllByCondition(['id' => ['in', $cgArr]], null, '*', null);
|
|
|
- $info['orderList'] = $cgList;
|
|
|
+ $info['orderList'] = self::buildPartialClearLinksForPurchaseOrders($cgList);
|
|
|
$info['orderNum'] = count($cgArr);
|
|
|
$clearStyle = $info['clearStyle'] ?? dict::getDict('clearStyle', 'hd2Gys');
|
|
|
$operator = $info['customShopAdminName'] ?? '';
|
|
|
@@ -308,7 +308,7 @@ class ClearClass extends BaseClass
|
|
|
$clearId = intval($info['id'] ?? 0);
|
|
|
$saleArr = OrderCgClearClass::getOrderIdsByClearId($clearId);
|
|
|
$saleList = empty($saleArr) ? [] : OrderClass::getAllByCondition(['id' => ['in', $saleArr]], null, '*', null);
|
|
|
- $info['orderList'] = $saleList;
|
|
|
+ $info['orderList'] = self::buildPartialClearLinksForSaleOrders($saleList);
|
|
|
$info['orderNum'] = count($saleArr);
|
|
|
$type = $info['clearStyle'] ?? dict::getDict('clearStyle', 'gys2KmGys');
|
|
|
$operator = $info['ghsShopAdminName'] ?? '';
|
|
|
@@ -319,4 +319,59 @@ class ClearClass extends BaseClass
|
|
|
return $info;
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 结账单详情(供货商销售单):订单仍待结时返回已销账结账单链接列表。
|
|
|
+ */
|
|
|
+ protected static function buildPartialClearLinksForSaleOrders($saleList)
|
|
|
+ {
|
|
|
+ if (empty($saleList)) {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+ $out = [];
|
|
|
+ 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)
|
|
|
+ ? OrderCgClearClass::listPaidClearRecordsForOrder($orderId)
|
|
|
+ : [];
|
|
|
+ $out[] = $row;
|
|
|
+ }
|
|
|
+ return $out;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 结账单详情(花店采购单):订单仍待结时返回已销账结账单链接列表。
|
|
|
+ */
|
|
|
+ protected static function buildPartialClearLinksForPurchaseOrders($cgList)
|
|
|
+ {
|
|
|
+ if (empty($cgList)) {
|
|
|
+ return [];
|
|
|
+ }
|
|
|
+ $out = [];
|
|
|
+ foreach ($cgList as $purchase) {
|
|
|
+ $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)
|
|
|
+ : [];
|
|
|
+ $out[] = $row;
|
|
|
+ }
|
|
|
+ return $out;
|
|
|
+ }
|
|
|
+
|
|
|
+ /** 统一订单行为数组,便于前端附加 orderClearList */
|
|
|
+ protected static function normalizeOrderRow($row)
|
|
|
+ {
|
|
|
+ if (is_array($row)) {
|
|
|
+ return $row;
|
|
|
+ }
|
|
|
+ if (is_object($row) && method_exists($row, 'getAttributes')) {
|
|
|
+ return $row->getAttributes();
|
|
|
+ }
|
|
|
+ return (array)$row;
|
|
|
+ }
|
|
|
+
|
|
|
}
|