46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
export const RECEIVING_PHOTO_ROLES = ['LICENSE_PLATE', 'CONTAINER_SEAL', 'DOOR_OPEN']
|
|||
|
|
|
||
|
|
const number = (value) => Math.max(0, Number(value || 0))
|
||
|
|
|
||
|
|
export function normalizeReceivingInbound(value = {}) {
|
||
|
|
return {
|
||
|
|
...value,
|
||
|
|
plannedPalletCount: number(value.plannedPalletCount),
|
||
|
|
totalPackages: number(value.totalPackages),
|
||
|
|
receivedPackages: number(value.receivedPackages),
|
||
|
|
pendingPackages: number(value.pendingPackages)
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export function normalizeReceivingCandidate(value = {}) {
|
||
|
|
return {
|
||
|
|
...value,
|
||
|
|
destinationCodes: Array.isArray(value.destinationCodes) ? value.destinationCodes.filter(Boolean) : [],
|
||
|
|
plannedPalletCount: number(value.plannedPalletCount),
|
||
|
|
totalPackages: number(value.totalPackages),
|
||
|
|
receivedPackages: number(value.receivedPackages),
|
||
|
|
currentAccount: value.currentAccount === true
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export function normalizeReceivingSession(value) {
|
||
|
|
if (!value) return null
|
||
|
|
const photos = Array.isArray(value.photos) ? value.photos : []
|
||
|
|
return {
|
||
|
|
...value,
|
||
|
|
photos: RECEIVING_PHOTO_ROLES.map((role) => photos.find((photo) => photo?.role === role)).filter(Boolean),
|
||
|
|
totalPackages: number(value.totalPackages),
|
||
|
|
receivedPackages: number(value.receivedPackages),
|
||
|
|
pendingPackages: number(value.pendingPackages),
|
||
|
|
inbounds: Array.isArray(value.inbounds) ? value.inbounds.map(normalizeReceivingInbound) : []
|
||
|
|
}
|
||
|
|
}
|
||
|
|
|
||
|
|
export function isNoCurrentReceiving(error) {
|
||
|
|
return ['404', 'A0404', 'B0404'].includes(String(error?.code || ''))
|
||
|
|
}
|
||
|
|
|
||
|
|
export function isReceivingConflict(error) {
|
||
|
|
return ['409', 'A0409', 'B0409'].includes(String(error?.code || ''))
|
||
|
|
}
|