feat: simplify same-carton SKU editing

This commit is contained in:
2026-09-11 16:50:23 +08:00
parent ec7f76fede
commit 23cef8e106
4 changed files with 106 additions and 18 deletions
+8 -5
View File
@@ -150,8 +150,10 @@ export function validateFirstLegOrderDraft(draft: FirstLegOrderDraft) {
const first = groups.get(group)
if (!first) groups.set(group, item)
else if (first.packageCount !== item.packageCount || first.packageType !== item.packageType
|| first.lengthCm !== item.lengthCm || first.widthCm !== item.widthCm || first.heightCm !== item.heightCm) {
errors.push(`混箱组合 ${group} 的箱数、包装类型和箱规必须一致`)
|| first.lengthCm !== item.lengthCm || first.widthCm !== item.widthCm || first.heightCm !== item.heightCm
|| first.grossWeightKg !== item.grossWeightKg || first.netWeightKg !== item.netWeightKg
|| first.volumeCbm !== item.volumeCbm) {
errors.push(`同箱 SKU 的箱数、包装类型、箱规、重量和体积必须一致`)
}
})
}
@@ -164,13 +166,14 @@ export function summarizeFirstLegCargo(items: FirstLegCargoItem[]) {
return items.reduce(
(summary, item) => {
const group = item.packingGroupNo.trim()
const packageCount = group && countedGroups.has(group) ? 0 : item.packageCount
const alreadyCounted = Boolean(group && countedGroups.has(group))
const packageCount = alreadyCounted ? 0 : item.packageCount
if (group) countedGroups.add(group)
return ({
pieces: summary.pieces + item.pieces,
packageCount: summary.packageCount + packageCount,
grossWeightKg: summary.grossWeightKg + item.grossWeightKg,
volumeCbm: summary.volumeCbm + item.volumeCbm,
grossWeightKg: summary.grossWeightKg + (alreadyCounted ? 0 : item.grossWeightKg),
volumeCbm: summary.volumeCbm + (alreadyCounted ? 0 : item.volumeCbm),
})
},
{ pieces: 0, packageCount: 0, grossWeightKg: 0, volumeCbm: 0 },