This commit is contained in:
2026-08-12 17:34:03 +08:00
parent b5649cf8ae
commit b3b8d94957
10 changed files with 333 additions and 13 deletions
@@ -79,7 +79,7 @@ async function createExtraPayable(context, fixture, index) {
if (!feeItem || !inboundId || !partnerId) return null
const body = { feeItemId: Number(feeItem.id), direction: 'PAYABLE', businessDate: new Date().toISOString().slice(0, 10),
unitPrice: 90 + index * 10, amount: 90 + index * 10, currency: 'CNY', settlementIncluded: true,
partnerId: Number(partnerId), partnerName: fixture.supplier?.supplierName || null, remark: `${MARKER}-AP-${index}` }
partnerId, partnerName: fixture.supplier?.supplierName || null, remark: `${MARKER}-AP-${index}` }
const basePath = `/api/platform/v1/inbounds/${inboundId}/fee-details`
const createdResponse = await write(context, 'POST', `${basePath}?accountId=10001`, body, `extra-payable-${index}`)
const created = data(createdResponse)
@@ -133,7 +133,7 @@ async function createAp(context, fixture, source, role) {
const response = await write(context, 'POST', `${BASE}/payable-settlements`, {
customerId: 10001, supplierId: id(source.supplierId), feeSourceIds: [Number(source.feeSourceId)],
dueDate: new Date().toISOString().slice(0, 10), currency: 'CNY',
}, `ap-${role}-${source.feeSourceId}-create`)
}, `ap-${role}-${source.feeSourceId}-${source.supplierId}-create`)
const value = data(response)
record(context, `${role} 创建应付结算单`, response, ok(response) && settlementId(value),
`settlementId=${settlementId(value)}, status=${value?.paymentStatus}`)
@@ -141,7 +141,7 @@ async function createAp(context, fixture, source, role) {
}
async function findPayableBySource(context, feeSourceId) {
const listResponse = await context.request('GET', `${BASE}/payable-settlements?customerId=10001`)
const listResponse = await context.request('GET', `${BASE}/payable-settlements?customerId=10001&page=1&pageSize=200`)
for (const item of rows(data(listResponse))) {
const detailResponse = await context.request('GET', `${BASE}/settlements/${settlementId(item)}`)
const value = data(detailResponse)
@@ -205,8 +205,11 @@ async function recoverExistingDemo(context, reportPath) {
}
const approved = await approveAndInclude(context, { feeSourceId: payableIds[index] }, role)
const existing = approved?.statementGenerated === true ? await findPayableBySource(context, payableIds[index]) : null
const recoverySupplierId = role === 'apPartial'
? id(matrix.payableSettlements?.apPaid?.supplierId)
: id(fixture.supplier?.supplierId)
const settlement = existing?.value ?? await createAp(context, fixture, {
feeSourceId: payableIds[index], supplierId: id(fixture.supplier?.supplierId),
feeSourceId: payableIds[index], supplierId: recoverySupplierId,
}, role)
if (existing?.value) record(context, `${role} 回读已有应付结算单`, existing.response, true,
`settlementId=${settlementId(existing.value)}, feeSourceId=${payableIds[index]}`)