|
|
@@ -205,42 +205,29 @@ class OrderCgClearClass extends BaseClass
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
- * 采购单关联的已销结账单(按 cgId / 销售单 orderId 合并去重)
|
|
|
+ * 采购单关联的已销结账单(仅本采购单在结账单中的销账额,勿与 saleId 查询合并以免重复累加)
|
|
|
*/
|
|
|
public static function listPaidClearRecordsForPurchase($purchaseId, $saleOrderId = 0)
|
|
|
{
|
|
|
$purchaseId = intval($purchaseId);
|
|
|
$saleOrderId = intval($saleOrderId);
|
|
|
- $merged = [];
|
|
|
|
|
|
- if ($saleOrderId > 0) {
|
|
|
- foreach (self::listPaidClearRecordsForOrder($saleOrderId) as $row) {
|
|
|
- $merged[intval($row['clearId'])] = $row;
|
|
|
- }
|
|
|
- }
|
|
|
if ($purchaseId > 0) {
|
|
|
$cgList = self::getAllByCondition([
|
|
|
'cgId' => $purchaseId,
|
|
|
'status' => self::STATUS_HAS_PAY,
|
|
|
], 'id asc', '*', null, true);
|
|
|
- foreach (self::mapPaidClearRecordRows($cgList) as $row) {
|
|
|
- $clearId = intval($row['clearId']);
|
|
|
- if ($clearId <= 0) {
|
|
|
- continue;
|
|
|
- }
|
|
|
- if (!isset($merged[$clearId])) {
|
|
|
- $merged[$clearId] = $row;
|
|
|
- continue;
|
|
|
- }
|
|
|
- $merged[$clearId]['amount'] = bcadd($merged[$clearId]['amount'], $row['amount'], 2);
|
|
|
+ if (!empty($cgList)) {
|
|
|
+ return self::mapPaidClearRecordRows($cgList);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- if (empty($merged)) {
|
|
|
- return [];
|
|
|
+ // 旧数据可能只有 orderId、未写 cgId
|
|
|
+ if ($saleOrderId > 0) {
|
|
|
+ return self::listPaidClearRecordsForOrder($saleOrderId);
|
|
|
}
|
|
|
- ksort($merged);
|
|
|
- return array_values($merged);
|
|
|
+
|
|
|
+ return [];
|
|
|
}
|
|
|
|
|
|
protected static function mapPaidClearRecordRows($list)
|