Press n or j to go to the next uncovered block, b, p or k for the previous block.
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 | 1x 1x 1x 1x 1x | import {PmoStatus, TimelineStep} from '../types';
import {Constants} from '../configs';
/**
* Map nextStatus → link URI (Next Stage Page)
*/
export function getNotificationLink(nextStatus: number, pmoId?: number): string {
const base: Record<number, string> = {
[PmoStatus.NEW]: '/scan-code/drop-result',
[PmoStatus.DROPPED]: '/scan-code/receive-result',
[PmoStatus.RECEIVED]: '/scan-code/packing-result',
[PmoStatus.PACKING]: '/scan-code/packed-result',
[PmoStatus.PACKED]: '/scan-code/for-pickup-result',
[PmoStatus.PICKUP]: '/scan-code/picked-result',
[PmoStatus.COMPLETED]: '/scan-code/completed-result',
[PmoStatus.REJECTED]: '/scan-code/rejected-result',
};
const path = base[nextStatus] ?? '/scan-code';
return pmoId ? `${path}?pmoId=${pmoId}` : path;
}
/**
* Map nextStatus → notification template key (status update)
*/
export function getStatusUpdateNotificationTemplate(nextStatus: number): string | null {
const map: Record<number, string> = {
[PmoStatus.DROPPED]: Constants.Notification.Drop,
[PmoStatus.RECEIVED]: Constants.Notification.Receive,
[PmoStatus.PACKING]: Constants.Notification.Packing,
[PmoStatus.PACKED]: Constants.Notification.Packed,
[PmoStatus.PICKUP]: Constants.Notification.Pickup,
[PmoStatus.COMPLETED]: Constants.Notification.PickedUp,
};
return map[nextStatus] ?? null;
}
export function getRejectNotificationTemplate(fromStatus: number): string {
return `scan_reject_${fromStatus}`;
} |