fix(overseas): restore dispatch delivery returns
This commit is contained in:
@@ -50,7 +50,8 @@ test('P2 to P5 cover all frozen endpoints, replays and conflict boundaries witho
|
||||
'chargeAmount: 0.01', 'cartonMark:', 'fbaCartonMark:',
|
||||
'inventory-candidates', 'sourceInventoryBalanceId:', 'sourceInventoryPositionId:',
|
||||
'sourceInboundOrderId:', 'operationWarehouseId:', 'relabelItemForUnit', 'sourceLines.map',
|
||||
'const packageCount = 1', 'oldLabel: item.cartonMark',
|
||||
'const packageCount = 1', 'line.packageCount += additionalPackages', 'oldLabel: item.cartonMark',
|
||||
'id(candidate.itemId) !== id(item.itemId)', 'oldLabel: null',
|
||||
'newLabel: item.fbaCartonMark || item.newSkuCode',
|
||||
"operationType: changesCartonLabel ? 'CARTON_AND_SKU' : 'SKU_LABEL'", 'skuItems:',
|
||||
'P5换标费用冻结后开放PDA作业', 'P5换标完成后钱包结算收敛']) {
|
||||
|
||||
@@ -371,6 +371,14 @@ async function verifyRelabel(context, token, merchantToken, fixture) {
|
||||
}
|
||||
if (requiredPackages === 0) break
|
||||
}
|
||||
for (const line of sourceLines) {
|
||||
if (requiredPackages === 0) break
|
||||
const remainingCapacity = Number(line.position.availablePackages) - line.packageCount
|
||||
if (remainingCapacity <= 0) continue
|
||||
const additionalPackages = Math.min(requiredPackages, remainingCapacity)
|
||||
line.packageCount += additionalPackages
|
||||
requiredPackages -= additionalPackages
|
||||
}
|
||||
context.addStep(MODULE, 'P5客户库存候选返回换标权威来源', inventoryCandidatesResponse,
|
||||
requiredPackages === 0,
|
||||
`sourceLines=${sourceLines.length}, selectedPackages=${3 - requiredPackages}; ${trace(inventoryCandidatesResponse)}`, OPTIONS)
|
||||
@@ -456,7 +464,8 @@ async function verifyRelabel(context, token, merchantToken, fixture) {
|
||||
await expectConflict(context, token, 'POST', 'P5正常换标旧版本A0409', unitPath,
|
||||
{ ...scanBody, oldLabel: `${context.marker}-OLD-STALE`, idempotencyKey: key(context, 'RELABEL-STALE') })
|
||||
detail = scanned.data
|
||||
const skipItem = relabelItemForUnit(detail, 1)
|
||||
const skipItem = Array.isArray(detail?.items)
|
||||
? detail.items.find((candidate) => id(candidate?.itemId) && id(candidate.itemId) !== id(item.itemId)) : null
|
||||
const skipBody = { itemId: id(skipItem?.itemId), oldLabel: skipItem?.cartonMark,
|
||||
reason: `${context.marker}-skip`, expectedVersion: Number(detail.version),
|
||||
idempotencyKey: key(context, 'RELABEL-SKIP') }
|
||||
@@ -465,8 +474,8 @@ async function verifyRelabel(context, token, merchantToken, fixture) {
|
||||
context.assert(MODULE, 'P5跳过换标重放不重复计数', skipReplay.response,
|
||||
Number(skipReplay.data?.skippedPackages) === 1, trace(skipReplay.response), OPTIONS)
|
||||
detail = skipped.data
|
||||
const exceptionItem = relabelItemForUnit(detail, 2)
|
||||
const exceptionBody = { itemId: id(exceptionItem?.itemId), oldLabel: exceptionItem?.cartonMark,
|
||||
const exceptionItem = item
|
||||
const exceptionBody = { itemId: id(exceptionItem?.itemId), oldLabel: null,
|
||||
exceptionCode: 'DAMAGED', reason: `${context.marker}-damaged`, expectedVersion: Number(detail.version),
|
||||
idempotencyKey: key(context, 'RELABEL-EXCEPTION') }
|
||||
const exception = await request(context, token, 'POST', 'P5登记换标异常一箱',
|
||||
|
||||
Reference in New Issue
Block a user