52 lines
1.8 KiB
JavaScript
52 lines
1.8 KiB
JavaScript
import { getList as getReceivablePayableDetailList } from '@/api/settlement/receivable-payable-detail';
|
|
import { getList as getWaybillList } from '@/api/business/waybill-manage';
|
|
|
|
// 结算明细的「单据号」是应收应付明细单据号(应收 YS…/应付 YF…),按结算类型落到对应菜单页
|
|
const SETTLEMENT_DETAIL_PATHS = {
|
|
receivable: '/settlement/receivable-detail',
|
|
payable: '/settlement/payable-detail',
|
|
};
|
|
|
|
const unwrapPage = response => {
|
|
const body = response?.data || response || {};
|
|
return body?.data || body;
|
|
};
|
|
|
|
const firstRecordId = data => (Array.isArray(data) ? data : data?.records || [])[0]?.id || '';
|
|
|
|
export const settlementDetailPath = settlementType =>
|
|
SETTLEMENT_DETAIL_PATHS[settlementType] || SETTLEMENT_DETAIL_PATHS.payable;
|
|
|
|
/**
|
|
* 结算明细行「单据号」对应的应收应付明细ID:已落库的明细自带 sourceDetailId,未落库的行按单据号回查。
|
|
*/
|
|
export const resolveReceivablePayableDetailId = async (row = {}, settlementType) => {
|
|
if (row.sourceDetailId) return row.sourceDetailId;
|
|
if (!row.documentNo) return '';
|
|
try {
|
|
const data = unwrapPage(
|
|
await getReceivablePayableDetailList(1, 1, {
|
|
documentNo: row.documentNo,
|
|
settlementType,
|
|
})
|
|
);
|
|
return firstRecordId(data);
|
|
} catch (error) {
|
|
return '';
|
|
}
|
|
};
|
|
|
|
/**
|
|
* 结算明细行「运单号」对应的运单ID:总单来源的明细没有 waybillId(运单号列存的是总单号),按运单号回查。
|
|
*/
|
|
export const resolveWaybillId = async (row = {}) => {
|
|
if (row.waybillId) return row.waybillId;
|
|
if (!row.waybillNo) return '';
|
|
try {
|
|
const data = unwrapPage(await getWaybillList(1, 1, { waybillNo: row.waybillNo }));
|
|
return firstRecordId(data);
|
|
} catch (error) {
|
|
return '';
|
|
}
|
|
};
|