shish 2 месяцев назад
Родитель
Сommit
57f1063cec
1 измененных файлов с 57 добавлено и 2 удалено
  1. 57 2
      biz-ghs/clear/classes/ClearClass.php

+ 57 - 2
biz-ghs/clear/classes/ClearClass.php

@@ -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;
+    }
+
 }