@flowselections/pick-schermen-kwekers 1.0.84 → 1.0.89

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (85) hide show
  1. package/dist-lib/components/PickPublicPage.d.ts.map +1 -1
  2. package/dist-lib/components/PickPublicPage.js +12 -0
  3. package/dist-lib/components/pick/DocumentChoiceMelding.d.ts +1 -1
  4. package/dist-lib/components/pick/DocumentChoiceMelding.d.ts.map +1 -1
  5. package/dist-lib/components/pick/PickScherm.d.ts.map +1 -1
  6. package/dist-lib/components/pick/PickScherm.js +377 -159
  7. package/dist-lib/components/pick/werkvloer/Werkvloer.d.ts +52 -0
  8. package/dist-lib/components/pick/werkvloer/Werkvloer.d.ts.map +1 -0
  9. package/dist-lib/components/pick/werkvloer/Werkvloer.js +33 -0
  10. package/dist-lib/hooks/useCartStickerStates.d.ts +1 -1
  11. package/dist-lib/hooks/useCartStickerStates.d.ts.map +1 -1
  12. package/dist-lib/hooks/usePickConfig.d.ts +11 -11
  13. package/dist-lib/hooks/usePickConfig.d.ts.map +1 -1
  14. package/dist-lib/hooks/usePickPrintStatus.d.ts +3 -3
  15. package/dist-lib/hooks/usePickPrintStatus.d.ts.map +1 -1
  16. package/dist-lib/hooks/usePickPrintStatus.js +4 -4
  17. package/dist-lib/hooks/usePickQueue.d.ts +3 -3
  18. package/dist-lib/hooks/usePickQueue.d.ts.map +1 -1
  19. package/dist-lib/hooks/usePickReferenceData.d.ts +1 -1
  20. package/dist-lib/hooks/usePickReferenceData.d.ts.map +1 -1
  21. package/dist-lib/hooks/useShippingNoteStatus.d.ts +1 -1
  22. package/dist-lib/hooks/useShippingNoteStatus.d.ts.map +1 -1
  23. package/dist-lib/hooks/useShippingNoteStatus.js +11 -9
  24. package/dist-lib/hooks/useWerkvloer.d.ts +20 -0
  25. package/dist-lib/hooks/useWerkvloer.d.ts.map +1 -0
  26. package/dist-lib/hooks/useWerkvloer.js +98 -0
  27. package/dist-lib/integrations/supabase/client.js +1 -1
  28. package/dist-lib/integrations/supabase/client.server.js +1 -1
  29. package/dist-lib/integrations/supabase/types.d.ts +1331 -91
  30. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  31. package/dist-lib/lib/__tests__/pickPublicStatus.test.d.ts +2 -0
  32. package/dist-lib/lib/__tests__/pickPublicStatus.test.d.ts.map +1 -0
  33. package/dist-lib/lib/__tests__/pickPublicStatus.test.js +48 -0
  34. package/dist-lib/lib/labels.d.ts +2 -0
  35. package/dist-lib/lib/labels.d.ts.map +1 -1
  36. package/dist-lib/lib/labels.js +41 -0
  37. package/dist-lib/lib/pick142.d.ts.map +1 -1
  38. package/dist-lib/lib/pick142.js +7 -10
  39. package/dist-lib/lib/pick156.d.ts.map +1 -1
  40. package/dist-lib/lib/pick156.js +6 -20
  41. package/dist-lib/lib/pick159.js +1 -1
  42. package/dist-lib/lib/pickApi.d.ts +20 -0
  43. package/dist-lib/lib/pickApi.d.ts.map +1 -1
  44. package/dist-lib/lib/pickApi.js +27 -0
  45. package/dist-lib/lib/shippingNoteStatus.d.ts +1 -1
  46. package/dist-lib/lib/shippingNoteStatus.d.ts.map +1 -1
  47. package/dist-lib/lib/shippingNoteStatus.js +5 -2
  48. package/dist-lib/lib/werkvloer.d.ts +40 -0
  49. package/dist-lib/lib/werkvloer.d.ts.map +1 -0
  50. package/dist-lib/lib/werkvloer.js +121 -0
  51. package/dist-lib/lib/werkvloer.test.d.ts +2 -0
  52. package/dist-lib/lib/werkvloer.test.d.ts.map +1 -0
  53. package/dist-lib/lib/werkvloer.test.js +49 -0
  54. package/package.json +1 -1
  55. package/schema/pickschermen.sql +176 -0
  56. package/dist-lib/lib/layoutApi.d.ts +0 -23
  57. package/dist-lib/lib/layoutApi.d.ts.map +0 -1
  58. package/dist-lib/lib/layoutApi.js +0 -94
  59. package/dist-lib/lib/layoutMaker/documentProfiles.d.ts +0 -50
  60. package/dist-lib/lib/layoutMaker/documentProfiles.d.ts.map +0 -1
  61. package/dist-lib/lib/layoutMaker/documentProfiles.js +0 -458
  62. package/dist-lib/lib/layoutMaker/documentTypes.d.ts +0 -123
  63. package/dist-lib/lib/layoutMaker/documentTypes.d.ts.map +0 -1
  64. package/dist-lib/lib/layoutMaker/documentTypes.js +0 -74
  65. package/dist-lib/lib/layoutMaker/logoLibrary.d.ts +0 -13
  66. package/dist-lib/lib/layoutMaker/logoLibrary.d.ts.map +0 -1
  67. package/dist-lib/lib/layoutMaker/logoLibrary.js +0 -54
  68. package/dist-lib/lib/layoutMaker/pakbonBuilder.d.ts +0 -196
  69. package/dist-lib/lib/layoutMaker/pakbonBuilder.d.ts.map +0 -1
  70. package/dist-lib/lib/layoutMaker/pakbonBuilder.js +0 -813
  71. package/dist-lib/lib/layoutMaker/pakbonHtml.d.ts +0 -48
  72. package/dist-lib/lib/layoutMaker/pakbonHtml.d.ts.map +0 -1
  73. package/dist-lib/lib/layoutMaker/pakbonHtml.js +0 -703
  74. package/dist-lib/lib/layoutRenderer.d.ts +0 -7
  75. package/dist-lib/lib/layoutRenderer.d.ts.map +0 -1
  76. package/dist-lib/lib/layoutRenderer.js +0 -233
  77. package/dist-lib/lib/layoutTypes.d.ts +0 -84
  78. package/dist-lib/lib/layoutTypes.d.ts.map +0 -1
  79. package/dist-lib/lib/layoutTypes.js +0 -25
  80. package/dist-lib/lib/orderContext.d.ts +0 -50
  81. package/dist-lib/lib/orderContext.d.ts.map +0 -1
  82. package/dist-lib/lib/orderContext.js +0 -162
  83. package/dist-lib/lib/pakbonOrderInput.d.ts +0 -8
  84. package/dist-lib/lib/pakbonOrderInput.d.ts.map +0 -1
  85. package/dist-lib/lib/pakbonOrderInput.js +0 -150
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=pickPublicStatus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pickPublicStatus.test.d.ts","sourceRoot":"","sources":["../../../src/lib/__tests__/pickPublicStatus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,48 @@
1
+ import { beforeEach, describe, expect, it, vi } from "vitest";
2
+ const { rpc } = vi.hoisted(() => ({ rpc: vi.fn() }));
3
+ vi.mock("@flowselections/core", () => ({ supabase: { rpc } }));
4
+ vi.mock("../pickApi", async () => {
5
+ const { keyedRpc } = await import("../pick159.js");
6
+ return { pickDb: keyedRpc({ rpc }) };
7
+ });
8
+ import { fetchPrintStatus } from "../../hooks/usePickPrintStatus.js";
9
+ import { fetchAutoSend } from "../pick142.js";
10
+ import { fetchDocumentChoice } from "../pick156.js";
11
+ import { readShippingNoteStatus } from "../shippingNoteStatus.js";
12
+ import { setActiveDeviceKey } from "../pick159.js";
13
+ beforeEach(() => { rpc.mockReset(); setActiveDeviceKey(null); });
14
+ describe("openbaar pickstation: alleen eigen statusfuncties", () => {
15
+ it("printstatus zonder apparaat gebruikt altijd slug en stationswrapper", async () => {
16
+ rpc.mockResolvedValue({ data: { beschikbaar: true, items: [] }, error: null });
17
+ expect((await fetchPrintStatus(["row-1"], "station-a")).beschikbaar).toBe(true);
18
+ expect(rpc).toHaveBeenCalledExactlyOnceWith("pickstation_print_status", { p_slug: "station-a", p_queue_item_ids: ["row-1"], p_device_key: null });
19
+ });
20
+ it("ontbrekende slug doet geen directe Engine-aanroep", async () => {
21
+ expect((await fetchPrintStatus(["row-1"], null)).beschikbaar).toBe(false);
22
+ expect(await fetchAutoSend("order-1", null)).toBeNull();
23
+ expect(await fetchDocumentChoice({ queueItemId: "row-1", slug: null, payload: { orderId: "order-1" }, documentType: "pakbon" })).toEqual({ state: "unknown" });
24
+ await expect(readShippingNoteStatus("job-1", "cart-1", null)).rejects.toThrow();
25
+ expect(rpc).not.toHaveBeenCalled();
26
+ });
27
+ it("automatisch versturen zonder apparaat gebruikt de stationswrapper", async () => {
28
+ rpc.mockResolvedValue({ data: { toegang: true, status: { status: "verstuurd" } }, error: null });
29
+ expect((await fetchAutoSend("order-1", "station-a"))?.status).toBe("verstuurd");
30
+ expect(rpc).toHaveBeenCalledExactlyOnceWith("pickstation_auto_send_status", { p_slug: "station-a", p_order_id: "order-1", p_device_key: null });
31
+ });
32
+ it("documentkeuze zonder apparaat gebruikt de rij en slug", async () => {
33
+ rpc.mockResolvedValue({ data: { toegang: true, resultaat: { ok: true, layout_id: "layout-1" } }, error: null });
34
+ expect(await fetchDocumentChoice({ queueItemId: "row-1", slug: "station-a", payload: {}, documentType: "pakbon" })).toEqual({ state: "ok", layoutId: "layout-1" });
35
+ expect(rpc).toHaveBeenCalledExactlyOnceWith("pickstation_document_for_order", { p_slug: "station-a", p_queue_item_id: "row-1", p_device_key: null });
36
+ });
37
+ it("verzendbriefstatus zonder apparaat gebruikt de nieuwe stationscontrole", async () => {
38
+ rpc.mockResolvedValue({ data: { status: "geprint" }, error: null });
39
+ expect((await readShippingNoteStatus("job-1", "cart-1", "station-a")).status).toBe("geprint");
40
+ expect(rpc).toHaveBeenCalledExactlyOnceWith("pickstation_shipping_note_status", { p_slug: "station-a", p_slip_job_id: "job-1", p_cart_id: "cart-1", p_device_key: null });
41
+ });
42
+ it("gekoppeld apparaat houdt de eigen sleutel bij dezelfde wrapper", async () => {
43
+ setActiveDeviceKey("device-test");
44
+ rpc.mockResolvedValue({ data: { status: "geprint" }, error: null });
45
+ await readShippingNoteStatus("job-1", null, "station-a");
46
+ expect(rpc).toHaveBeenCalledExactlyOnceWith("pickstation_shipping_note_status", { p_slug: "station-a", p_slip_job_id: "job-1", p_cart_id: null, p_device_key: "device-test" });
47
+ });
48
+ });
@@ -3,6 +3,8 @@
3
3
  * Onbekend → "Overig"; de ruwe waarde gaat alleen naar console.warn.
4
4
  */
5
5
  export declare const LABELS: Record<string, Record<string, string>>;
6
+ /** Tekst uit de werkvloerset. */
7
+ export declare function wv(key: string): string;
6
8
  export declare function label(kind: keyof typeof LABELS | string, raw: string | null | undefined): string;
7
9
  /** Technische fout → één gewone zin met wat de gebruiker kan doen. */
8
10
  export declare function plainError(e: unknown, fallback: string): string;
@@ -1 +1 @@
1
- {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/lib/labels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAqCzD,CAAC;AAEF,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,OAAO,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMhG;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ/D"}
1
+ {"version":3,"file":"labels.d.ts","sourceRoot":"","sources":["../../src/lib/labels.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CA0EzD,CAAC;AAEF,iCAAiC;AACjC,wBAAgB,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAEtC;AAED,wBAAgB,KAAK,CAAC,IAAI,EAAE,MAAM,OAAO,MAAM,GAAG,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAMhG;AAED,sEAAsE;AACtE,wBAAgB,UAAU,CAAC,CAAC,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAQ/D"}
@@ -39,7 +39,48 @@ export const LABELS = {
39
39
  afleverbrief: "Afleverbrief",
40
40
  sticker: "Sticker",
41
41
  },
42
+ /** Werkvloerscherm (pickscherm). */
43
+ werkvloer: {
44
+ today: "Vandaag",
45
+ more: "Meer",
46
+ printNext: "Print volgende order",
47
+ print: "Print",
48
+ fetchData: "Pakbon ophalen",
49
+ inPrint: "Wordt geprint",
50
+ lockedOther: "Wordt door iemand anders geprint",
51
+ tabTodo: "Nog te printen",
52
+ tabPrinted: "Geprint vandaag",
53
+ reprint: "Opnieuw printen",
54
+ preview: "Voorbeeld",
55
+ markPrinted: "Markeer als geprint",
56
+ emptyTodo: "Alles is geprint voor deze dag.",
57
+ emptyPrinted: "Er is nog niets geprint.",
58
+ noNext: "Er is nu geen order klaar om te printen.",
59
+ offline: "Geen verbinding. Printen kan weer zodra de verbinding terug is.",
60
+ busy: "Bezig met printen…",
61
+ callLead: "Roep de teamleider.",
62
+ printerNoAnswer: "De printer reageert niet.",
63
+ yesterday: "gisteren",
64
+ urgent: "spoed",
65
+ urgentBadge: "Spoed",
66
+ cancel: "Annuleren",
67
+ pickDay: "Pickdag",
68
+ search: "Zoek op order, klant of barcode",
69
+ documentFilter: "Documentsoort (alleen bekijken)",
70
+ allDocuments: "Alle",
71
+ leadActions: "Teamleider-acties op de kaarten",
72
+ scan: "Pakbon scannen",
73
+ fetchNotes: "Verzendbrieven ophalen",
74
+ earlier: "Nog niet gescand van eerdere dagen",
75
+ language: "Taal",
76
+ noPrinter: "Er is nog geen printer gekoppeld aan dit station. Roep de teamleider.",
77
+ close: "Sluiten",
78
+ },
42
79
  };
80
+ /** Tekst uit de werkvloerset. */
81
+ export function wv(key) {
82
+ return LABELS.werkvloer[key] ?? key;
83
+ }
43
84
  export function label(kind, raw) {
44
85
  if (raw == null || raw === "")
45
86
  return "Overig";
@@ -1 +1 @@
1
- {"version":3,"file":"pick142.d.ts","sourceRoot":"","sources":["../../src/lib/pick142.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pick142.d.ts","sourceRoot":"","sources":["../../src/lib/pick142.ts"],"names":[],"mappings":"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"}
@@ -112,19 +112,16 @@ export function parseAutoSend(value, withEnvelope) {
112
112
  };
113
113
  }
114
114
  export async function fetchAutoSend(orderId, slug) {
115
+ if (!slug?.trim())
116
+ return null;
115
117
  try {
116
- if (slug) {
117
- const { data, error } = await pickDb.rpc("pickstation_auto_send_status", { p_slug: slug, p_order_id: orderId });
118
- if (error)
119
- return null;
120
- return parseAutoSend(data, true);
121
- }
122
- const { data, error } = await pickDb.rpc("logistics_auto_send_status", { p_order_id: orderId });
118
+ const { data, error } = await pickDb.rpc("pickstation_auto_send_status", { p_slug: slug, p_order_id: orderId });
123
119
  if (error)
124
- return null;
125
- return parseAutoSend(data, false);
120
+ throw error;
121
+ return parseAutoSend(data, true);
126
122
  }
127
- catch {
123
+ catch (error) {
124
+ console.error("Pickstation: automatisch versturen kon niet worden gelezen", error);
128
125
  return null;
129
126
  }
130
127
  }
@@ -1 +1 @@
1
- {"version":3,"file":"pick156.d.ts","sourceRoot":"","sources":["../../src/lib/pick156.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,kBAAkB,yDAAyD,CAAC;AACzF,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AACnE,eAAO,MAAM,yBAAyB,6DAA6D,CAAC;AAEpG,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACxC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACvD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAMzB,sGAAsG;AACtG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAMhE;AAED,2EAA2E;AAC3E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAKvE;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAErG;AAOD,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAAC,cAAc,CAAC,CAiB1B"}
1
+ {"version":3,"file":"pick156.d.ts","sourceRoot":"","sources":["../../src/lib/pick156.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,kBAAkB,yDAAyD,CAAC;AACzF,eAAO,MAAM,uBAAuB,8BAA8B,CAAC;AACnE,eAAO,MAAM,yBAAyB,6DAA6D,CAAC;AAEpG,MAAM,MAAM,cAAc,GACtB;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACxC;IAAE,KAAK,EAAE,SAAS,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACvD;IAAE,KAAK,EAAE,MAAM,CAAA;CAAE,GACjB;IAAE,KAAK,EAAE,SAAS,CAAA;CAAE,CAAC;AAMzB,sGAAsG;AACtG,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAMhE;AAED,2EAA2E;AAC3E,wBAAgB,0BAA0B,CAAC,GAAG,EAAE,OAAO,GAAG,cAAc,CAKvE;AAED,6FAA6F;AAC7F,wBAAgB,cAAc,CAAC,MAAM,EAAE,cAAc,GAAG,IAAI,GAAG,SAAS,EAAE,SAAS,EAAE,OAAO,GAAG,OAAO,CAErG;AAED,wBAAsB,mBAAmB,CAAC,MAAM,EAAE;IAChD,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,GAAG,OAAO,CAAC,cAAc,CAAC,CAQ1B"}
@@ -31,28 +31,14 @@ export function parseStationDocumentChoice(raw) {
31
31
  export function isPrintBlocked(choice, isReprint) {
32
32
  return !isReprint && choice?.state === "blocked";
33
33
  }
34
- function orderIdOf(payload) {
35
- const p = rec(payload);
36
- return p ? txt(p["orderId"]) ?? txt(p["order_id"]) : null;
37
- }
38
34
  export async function fetchDocumentChoice(params) {
39
- if (params.slug) {
40
- const { data, error } = await db.rpc("pickstation_document_for_order", {
41
- p_slug: params.slug,
42
- p_queue_item_id: params.queueItemId,
43
- });
44
- if (error)
45
- throw new Error(error.message);
46
- return parseStationDocumentChoice(data);
47
- }
48
- const orderId = orderIdOf(params.payload);
49
- if (!orderId || !params.documentType)
50
- return { state: "none" };
51
- const { data, error } = await db.rpc("logistics_document_for_order", {
52
- p_order_id: orderId,
53
- p_documenttype: params.documentType,
35
+ if (!params.slug?.trim())
36
+ return { state: "unknown" };
37
+ const { data, error } = await db.rpc("pickstation_document_for_order", {
38
+ p_slug: params.slug,
39
+ p_queue_item_id: params.queueItemId,
54
40
  });
55
41
  if (error)
56
42
  throw new Error(error.message);
57
- return parseDocumentChoice(data);
43
+ return parseStationDocumentChoice(data);
58
44
  }
@@ -98,7 +98,7 @@ export const KEYED_RPCS = new Set([
98
98
  "pickstation_sticker_reprint", "pickstation_print_status", "pickstation_cart_sticker_states",
99
99
  "pick_read_station", "pick_read_locks", "pick_read_queue", "pick_read_country_counts", "pick_read_by_code",
100
100
  "pick_read_unscanned_earlier", "pick_resolve_scan_code", "pick_read_print_job_uitwijk", "pick_read_vroege_sticker_waarschuwing",
101
- "pick_read_shared_cart_messages",
101
+ "pick_read_shared_cart_messages", "pick_claim_order_v1", "pickstation_shipping_note_status",
102
102
  ]);
103
103
  /** Engine-functies: via een eigen pickstation_-omhulsel met sleutelcontrole. */
104
104
  export const ENGINE_WRAPPED = new Set([
@@ -159,6 +159,24 @@ export declare const pickApi: {
159
159
  /** Alleen opdrachten van deze pickdag (YYYY-MM-DD). */
160
160
  pickDay?: string | null;
161
161
  }): Promise<PickQueueItem>;
162
+ /**
163
+ * Zet in één stap een hele order (of gezamenlijke levering) vast. De eerste
164
+ * vrije uit `unitRefs` wint; dezelfde sleutel opnieuw geeft dezelfde uitkomst.
165
+ */
166
+ claimOrder(args: {
167
+ stationId: string;
168
+ sessionId: string;
169
+ unitRefs: string[];
170
+ idempotencyKey: string;
171
+ pickDay: string | null;
172
+ timeout: number;
173
+ }): Promise<{
174
+ ok: boolean;
175
+ herhaald: boolean;
176
+ unitRef: string | null;
177
+ queueItemIds: string[];
178
+ reden: string | null;
179
+ }>;
162
180
  claim(args: {
163
181
  itemId: string;
164
182
  stationId: string | null;
@@ -200,6 +218,8 @@ export declare const pickApi: {
200
218
  pickMode: string | null;
201
219
  showCartControl: boolean;
202
220
  cartsPerPrint: number | null;
221
+ /** Engine-instelling: belading/verzendbrief automatisch na de eindcontrole. null = onbekend. */
222
+ autoSendLoading: boolean | null;
203
223
  } | null>;
204
224
  /**
205
225
  * Toestand van de karplanning volgens de Engine: pas tonen als de planning
@@ -1 +1 @@
1
- {"version":3,"file":"pickApi.d.ts","sourceRoot":"","sources":["../../src/lib/pickApi.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pickApi.d.ts","sourceRoot":"","sources":["../../src/lib/pickApi.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,KAAK,EACV,YAAY,EACZ,WAAW,EACX,gBAAgB,EAChB,gBAAgB,EAChB,QAAQ,EACR,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,oBAAoB,EACpB,uBAAuB,EACvB,WAAW,EAEX,aAAa,EACb,UAAU,EACV,YAAY,EACZ,WAAW,EACX,eAAe,EACf,UAAU,EACV,QAAQ,EACT,MAAM,aAAa,CAAC;AACrB,OAAO,EAA2C,KAAK,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAM7F,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,KAAK,GAAG,CAAC;IACzB,GAAG,EAAE,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,CAAC;QAAE,IAAI,EAAE,GAAG,CAAC;QAAC,KAAK,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IACxF,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,CAAC;IAC/B,aAAa,EAAE,CAAC,CAAC,EAAE,GAAG,KAAK,IAAI,CAAC;IAChC,IAAI,EAAE,OAAO,QAAQ,CAAC,IAAI,CAAC;CAC5B,CAAC;AAGF,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,YAAY,GAAG,YAAY,CAajE;AACD,QAAA,MAAM,EAAE,cAAwB,CAAC;AAEjC,OAAO,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;AAExB,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;IAC1B,wEAAwE;IACxE,UAAU,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAChC,MAAM,EAAE;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACtI,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAaD,sEAAsE;AACtE,wBAAsB,cAAc,CAClC,MAAM,EAAE,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,EACjC,IAAI,EAAE;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,EAAE,GACzC,OAAO,CAAC,WAAW,EAAE,CAAC,CAiBxB;AAOD,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,yEAAyE;IACzE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,uEAAuE;IACvE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,6EAA6E;IAC7E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,4EAA4E;IAC5E,SAAS,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAClC;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,OAAO,GAAG,aAAa,GAAG,IAAI,CAarE;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,aAAa,CAAC;IACpB,IAAI,EAAE,iBAAiB,EAAE,CAAC;IAC1B,6DAA6D;IAC7D,KAAK,EAAE,mBAAmB,EAAE,CAAC;CAC9B;AAyBD,eAAO,MAAM,OAAO;;;;IAYlB,gEAAgE;;IAOhE,gDAAgD;;IAOhD,mEAAmE;gCACjC,MAAM,GAAG,OAAO,CAAC,oBAAoB,GAAG,IAAI,CAAC;IAM/E,6DAA6D;;IAO7D,yEAAyE;mCACpC,MAAM,eAAe,MAAM,GAAG,IAAI;;;;;wBAoB7C,MAAM;wBAIN,MAAM;kCAKI,MAAM;0BACN,MAAM;qBAAe,MAAM;oBAAc,MAAM,GAAG,IAAI;;sBAIlE,MAAM;;IAS9B,wEAAwE;sBAChD,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IAM9C,6EAA6E;yBAClD,OAAO,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAQrE,uEAAuE;qBAChD,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS7C;;;;OAIG;IACH,yFAAyF;iBACtE,OAAO,CAAC,IAAI,CAAC;IAWhC,4FAA4F;oBACtE;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE;;;;;;wBAiB9D;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE;IAanE,qDAAqD;kBACjC;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC/B,UAAU,CAAC,EAAE,OAAO,CAAC;QACrB,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,CAAC,EAAE,YAAY,EAAE,CAAC;QAC3B,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB;;;;IA4BD,2FAA2F;qBACpE,MAAM,cAAc,MAAM;IASjD,uFAAuF;2BAC1D;QAAE,SAAS,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;oBAMhD;QACpB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,uDAAuD;QACvD,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACzB;IAcD;;;OAGG;qBACoB;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,QAAQ,EAAE,MAAM,EAAE,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QACvB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,EAAE,CAAC;QAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;gBAoBnG;QAChB,MAAM,EAAE,MAAM,CAAC;QACf,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;KACjB;IAYD,gFAAgF;0BACpD,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAMjE;;;;;OAKG;8BAC6B,OAAO,CAAC;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC;IAYjG;;;;;OAKG;IACH,sFAAsF;oCAChD,MAAM,WAAW,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;yBAYtE,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAOvE;;;;OAIG;gBACe,OAAO,CAAC;QACxB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,eAAe,EAAE,OAAO,CAAC;QACzB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;QAC7B,gGAAgG;QAChG,eAAe,EAAE,OAAO,GAAG,IAAI,CAAC;KACjC,GAAG,IAAI,CAAC;IAoBT;;;OAGG;wBACuB,MAAM,GAAG,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,YAAY,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAYhK,6FAA6F;4BAC/D,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IAOjF;;;OAGG;IACH,2DAA2D;qBAC1C;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE;+BAIpB,MAAM,GAAG,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC;IAItE,mFAAmF;sCAC3C,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,YAAY,GAAG,IAAI,CAAC;QAAC,UAAU,EAAE,gBAAgB,EAAE,CAAA;KAAE,CAAC;IAOvH,mEAAmE;8BACnC,MAAM,aAAa,MAAM,UAAU,MAAM;IAWzE,yFAAyF;+BACxD,MAAM,aAAa,MAAM,WAAW,MAAM,EAAE;IAU7E,4EAA4E;0BAChD,MAAM,aAAa,MAAM;IAUrD;;;;OAIG;oBACmB,MAAM,aAAa,MAAM;IAS/C,+DAA+D;wBACrC,MAAM,aAAa,MAAM,UAAU,MAAM;IAUnE,sEAAsE;0BAC1C,MAAM;IAMlC,qEAAqE;4BACvC,MAAM,EAAE;IAOtC,mEAAmE;uBAC1C,MAAM,aAAa,MAAM,WAAU,MAAM,GAAG,IAAI;IAUzE,yFAAyF;0BAC7D,MAAM,aAAa,MAAM,UAAU,MAAM,SAAS,MAAM;IAWpF,2EAA2E;2BAEjE,MAAM,aACH,MAAM,QACX,KAAK,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IAYhD,kEAAkE;2BACrC,MAAM,aAAa,MAAM;IAStD;;;OAGG;wBACuB,MAAM,aAAa,MAAM,WAAU,MAAM,GAAG,IAAI;wBAYhD,MAAM;uBAKP,MAAM;eAWd,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;oBAOlB;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;;YAiB/E,MAAM;oBACE,MAAM;mBACP,MAAM,GAAG,IAAI;oBACZ,MAAM;sBACJ,MAAM;;;YAMhB,MAAM;gBACF,MAAM;oBACF,MAAM;iBACT,MAAM,GAAG,IAAI;uBACP,MAAM,GAAG,IAAI;oBAChB,MAAM,GAAG,IAAI;;kBAIT,MAAM,OAAO,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;kBAMpC,MAAM,MAAM,MAAM;CAIvC,CAAC;AAEF,wBAAgB,YAAY,IAAI,MAAM,CASrC"}
@@ -309,6 +309,30 @@ export const pickApi = {
309
309
  throw new Error(error.message);
310
310
  return data;
311
311
  },
312
+ /**
313
+ * Zet in één stap een hele order (of gezamenlijke levering) vast. De eerste
314
+ * vrije uit `unitRefs` wint; dezelfde sleutel opnieuw geeft dezelfde uitkomst.
315
+ */
316
+ async claimOrder(args) {
317
+ const { data, error } = await db.rpc("pick_claim_order_v1", {
318
+ _station_id: args.stationId,
319
+ _session_id: args.sessionId,
320
+ _unit_refs: args.unitRefs,
321
+ _idempotency_key: args.idempotencyKey,
322
+ _pick_day: args.pickDay,
323
+ _timeout_seconds: args.timeout,
324
+ });
325
+ if (error)
326
+ throw new Error(error.message);
327
+ const r = (data && typeof data === "object" ? data : {});
328
+ return {
329
+ ok: r["ok"] === true,
330
+ herhaald: r["herhaald"] === true,
331
+ unitRef: typeof r["unitRef"] === "string" ? r["unitRef"] : null,
332
+ queueItemIds: Array.isArray(r["queueItemIds"]) ? r["queueItemIds"].filter((x) => typeof x === "string") : [],
333
+ reden: typeof r["reden"] === "string" ? r["reden"] : null,
334
+ };
335
+ },
312
336
  async claim(args) {
313
337
  const { data, error } = await db.rpc("pick_claim_document", {
314
338
  _queue_item_id: args.itemId,
@@ -396,6 +420,9 @@ export const pickApi = {
396
420
  pickMode: typeof modeText === "string" && modeText.trim() ? modeText : null,
397
421
  showCartControl: (row["showCartControl"] ?? row["show_cart_control"]) === true,
398
422
  cartsPerPrint: Number.isFinite(count) && count >= 1 ? Math.round(count) : null,
423
+ autoSendLoading: typeof (row["autoSendLoading"] ?? row["auto_send_loading"]) === "boolean"
424
+ ? (row["autoSendLoading"] ?? row["auto_send_loading"])
425
+ : null,
399
426
  };
400
427
  },
401
428
  /**
@@ -31,5 +31,5 @@ export declare function shippingNoteMessage(state: ShippingNoteStatus): string |
31
31
  * Leest de verzendbriefstatus bij een pakbon-printopdracht. Het print_job-id is
32
32
  * de sleutel; het kar-id is alleen de terugval.
33
33
  */
34
- export declare function readShippingNoteStatus(slipJobId: string | null, cartId: string | null): Promise<ShippingNoteStatus>;
34
+ export declare function readShippingNoteStatus(slipJobId: string | null, cartId: string | null, slug: string | null): Promise<ShippingNoteStatus>;
35
35
  //# sourceMappingURL=shippingNoteStatus.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shippingNoteStatus.d.ts","sourceRoot":"","sources":["../../src/lib/shippingNoteStatus.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,GACT,aAAa,CAAC;AAElB,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,8DAA8D;IAC9D,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACnC;AAeD,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAEhF;AAED,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAEzE;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IACtD,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC,CAuBD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,GAAG,OAAO,CAEpF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAI5E;AA6CD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,GACpB,OAAO,CAAC,kBAAkB,CAAC,CAO7B"}
1
+ {"version":3,"file":"shippingNoteStatus.d.ts","sourceRoot":"","sources":["../../src/lib/shippingNoteStatus.ts"],"names":[],"mappings":"AAIA,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,GACT,aAAa,CAAC;AAElB,8EAA8E;AAC9E,MAAM,MAAM,kBAAkB,GAAG,UAAU,GAAG,OAAO,CAAC;AAEtD,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,GAAG,IAAI,CAAC;IACtC,2DAA2D;IAC3D,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,8DAA8D;IAC9D,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;CACnC;AAeD,uFAAuF;AACvF,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAEhF;AAED,qFAAqF;AACrF,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAEzE;AAED;;;;;;GAMG;AACH,wBAAsB,sBAAsB,IAAI,OAAO,CAAC;IACtD,EAAE,EAAE,OAAO,CAAC;IACZ,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC,CAuBD;AAED,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,sBAAsB,GAAG,IAAI,GAAG,OAAO,CAEpF;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,kBAAkB,GAAG,MAAM,GAAG,IAAI,CAI5E;AA6CD;;;GAGG;AACH,wBAAsB,sBAAsB,CAC1C,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,IAAI,EAAE,MAAM,GAAG,IAAI,GAClB,OAAO,CAAC,kBAAkB,CAAC,CAS7B"}
@@ -107,8 +107,11 @@ function parseStatus(raw) {
107
107
  * Leest de verzendbriefstatus bij een pakbon-printopdracht. Het print_job-id is
108
108
  * de sleutel; het kar-id is alleen de terugval.
109
109
  */
110
- export async function readShippingNoteStatus(slipJobId, cartId) {
111
- const { data, error } = await pickDb.rpc("logistics_shipping_note_status", {
110
+ export async function readShippingNoteStatus(slipJobId, cartId, slug) {
111
+ if (!slug?.trim())
112
+ throw new Error("Het pickstation ontbreekt; open het scherm opnieuw.");
113
+ const { data, error } = await pickDb.rpc("pickstation_shipping_note_status", {
114
+ p_slug: slug,
112
115
  p_slip_job_id: slipJobId,
113
116
  p_cart_id: cartId,
114
117
  });
@@ -0,0 +1,40 @@
1
+ import type { PickQueueItem } from "./pickTypes.js";
2
+ /**
3
+ * Werkvloer: één kaart per order of gezamenlijke levering. De sleutel is
4
+ * exact dezelfde als in de databasefunctie pick_claim_order_v1:
5
+ * unitRef → unit_ref → ordernummer → regel-id.
6
+ */
7
+ export declare function cardKeyOf(item: PickQueueItem): string;
8
+ export interface WerkvloerCard {
9
+ key: string;
10
+ rows: PickQueueItem[];
11
+ orderNumbers: string[];
12
+ customer: string | null;
13
+ carts: number | null;
14
+ urgent: boolean;
15
+ /** Vroegste aanmeldmoment: "sinds 13:00". */
16
+ since: string | null;
17
+ /** Laatste printmoment (tabblad Geprint vandaag). */
18
+ printedAt: string | null;
19
+ }
20
+ /** Groepeert in de volgorde van de server; de eerste regel van een groep bepaalt de plek. */
21
+ export declare function groupCards(items: PickQueueItem[]): WerkvloerCard[];
22
+ /** Een karregel is één kar; anders het aantal karren van de regel; onbekend = null. */
23
+ export declare function cartsOfRow(item: PickQueueItem): number | null;
24
+ export declare function cartsText(n: number | null): string | null;
25
+ /** "FO-2601420 · FHN Testcentrum · 10 karren · spoed" */
26
+ export declare function cardSummary(card: WerkvloerCard): string;
27
+ /** "sinds 13:00", "sinds gisteren" of "sinds do 5 nov" (vestigingstijdzone). */
28
+ export declare function sinceLabel(iso: string | null, tz: string | null, now?: Date): string | null;
29
+ /** Tijd HH:MM in de vestigingstijdzone. */
30
+ export declare function timeLabel(iso: string | null, tz: string | null): string | null;
31
+ /** "6 van 10 karren geprint. Printer reageert niet. Roep de teamleider." */
32
+ export declare function partialFailText(done: number, total: number, reason: string | null): string;
33
+ /** "Verstuurd naar printer Hal 1 · 12 documenten" */
34
+ export declare function sentText(printer: string | null, docs: number): string;
35
+ export declare function reprintQuestion(printedAt: string | null, tz: string | null): string;
36
+ /** Printopdracht door de printer ontvangen (of verder). */
37
+ export declare const ACCEPTED_STATUSES: Set<string>;
38
+ /** Wachtrij-telling als echt getal: "12 orders nog te printen". */
39
+ export declare function todoCountText(n: number): string;
40
+ //# sourceMappingURL=werkvloer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"werkvloer.d.ts","sourceRoot":"","sources":["../../src/lib/werkvloer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAIrD;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qDAAqD;IACrD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAsBlE;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAM7D;AASD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAIvD;AAcD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAa,GAAG,MAAM,GAAG,IAAI,CASjG;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAE9E;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAI1F;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGnF;AAED,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,aAA6E,CAAC;AAE5G,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C"}
@@ -0,0 +1,121 @@
1
+ import { wv } from "./labels.js";
2
+ /**
3
+ * Werkvloer: één kaart per order of gezamenlijke levering. De sleutel is
4
+ * exact dezelfde als in de databasefunctie pick_claim_order_v1:
5
+ * unitRef → unit_ref → ordernummer → regel-id.
6
+ */
7
+ export function cardKeyOf(item) {
8
+ const p = (item.payload && typeof item.payload === "object" ? item.payload : {});
9
+ const ref = textOf(p["unitRef"]) ?? textOf(p["unit_ref"]);
10
+ return ref ?? textOf(item.order_number) ?? item.id;
11
+ }
12
+ /** Groepeert in de volgorde van de server; de eerste regel van een groep bepaalt de plek. */
13
+ export function groupCards(items) {
14
+ const rows = Array.isArray(items) ? items : [];
15
+ const byKey = new Map();
16
+ const order = [];
17
+ for (const item of rows) {
18
+ const key = cardKeyOf(item);
19
+ let card = byKey.get(key);
20
+ if (!card) {
21
+ card = { key, rows: [], orderNumbers: [], customer: null, carts: 0, urgent: false, since: null, printedAt: null };
22
+ byKey.set(key, card);
23
+ order.push(key);
24
+ }
25
+ card.rows.push(item);
26
+ for (const nr of orderNumbersOf(item))
27
+ if (!card.orderNumbers.includes(nr))
28
+ card.orderNumbers.push(nr);
29
+ card.customer = card.customer ?? textOf(item.customer_name);
30
+ card.urgent = card.urgent || item.is_urgent === true;
31
+ if (item.announced_at && (!card.since || item.announced_at < card.since))
32
+ card.since = item.announced_at;
33
+ if (item.printed_at && (!card.printedAt || item.printed_at > card.printedAt))
34
+ card.printedAt = item.printed_at;
35
+ const n = cartsOfRow(item);
36
+ card.carts = card.carts === null || n === null ? null : card.carts + n;
37
+ }
38
+ return order.map((k) => byKey.get(k)).map((c) => ({ ...c, carts: c.carts === 0 ? null : c.carts }));
39
+ }
40
+ /** Een karregel is één kar; anders het aantal karren van de regel; onbekend = null. */
41
+ export function cartsOfRow(item) {
42
+ const p = (item.payload && typeof item.payload === "object" ? item.payload : {});
43
+ if (p["cartRowFor"] != null)
44
+ return 1;
45
+ if (typeof item.cart_count === "number" && item.cart_count > 0)
46
+ return item.cart_count;
47
+ const n = Number(p["cartTotal"] ?? p["cart_total"] ?? p["totalCarts"]);
48
+ return Number.isFinite(n) && n > 0 ? Math.round(n) : null;
49
+ }
50
+ function orderNumbersOf(item) {
51
+ const p = (item.payload && typeof item.payload === "object" ? item.payload : {});
52
+ const list = Array.isArray(p["orderNumbers"]) ? p["orderNumbers"].map(textOf).filter((x) => !!x) : [];
53
+ const own = textOf(item.order_number);
54
+ return own && !list.includes(own) ? [own, ...list] : list.length ? list : own ? [own] : [];
55
+ }
56
+ export function cartsText(n) {
57
+ if (n === null)
58
+ return null;
59
+ return n === 1 ? "1 kar" : `${n} karren`;
60
+ }
61
+ /** "FO-2601420 · FHN Testcentrum · 10 karren · spoed" */
62
+ export function cardSummary(card) {
63
+ return [card.orderNumbers.join(" + ") || null, card.customer, cartsText(card.carts), card.urgent ? wv("urgent") : null]
64
+ .filter(Boolean)
65
+ .join(" · ");
66
+ }
67
+ function partsIn(iso, tz) {
68
+ const d = new Date(iso);
69
+ if (Number.isNaN(d.getTime()))
70
+ return null;
71
+ const opts = { timeZone: tz ?? "Europe/Amsterdam" };
72
+ const day = new Intl.DateTimeFormat("en-CA", { ...opts, year: "numeric", month: "2-digit", day: "2-digit" }).format(d);
73
+ const time = new Intl.DateTimeFormat("nl-NL", { ...opts, hour: "2-digit", minute: "2-digit", hour12: false }).format(d);
74
+ const dayLabel = new Intl.DateTimeFormat("nl-NL", { ...opts, weekday: "short", day: "numeric", month: "short" })
75
+ .format(d)
76
+ .replace(/\./g, "");
77
+ return { day, time, dayLabel };
78
+ }
79
+ /** "sinds 13:00", "sinds gisteren" of "sinds do 5 nov" (vestigingstijdzone). */
80
+ export function sinceLabel(iso, tz, now = new Date()) {
81
+ if (!iso)
82
+ return null;
83
+ const p = partsIn(iso, tz);
84
+ const today = partsIn(now.toISOString(), tz);
85
+ if (!p || !today)
86
+ return null;
87
+ if (p.day === today.day)
88
+ return `sinds ${p.time}`;
89
+ const y = partsIn(new Date(now.getTime() - 86400000).toISOString(), tz);
90
+ if (y && p.day === y.day)
91
+ return `sinds ${wv("yesterday")}`;
92
+ return `sinds ${p.dayLabel}`;
93
+ }
94
+ /** Tijd HH:MM in de vestigingstijdzone. */
95
+ export function timeLabel(iso, tz) {
96
+ return iso ? partsIn(iso, tz)?.time ?? null : null;
97
+ }
98
+ /** "6 van 10 karren geprint. Printer reageert niet. Roep de teamleider." */
99
+ export function partialFailText(done, total, reason) {
100
+ const r = (reason ?? wv("printerNoAnswer")).trim();
101
+ const head = total > 1 || done > 0 ? `${done} van ${total} ${total === 1 ? "kar" : "karren"} geprint. ` : "";
102
+ return `${head}${r.endsWith(".") ? r : `${r}.`} ${wv("callLead")}`;
103
+ }
104
+ /** "Verstuurd naar printer Hal 1 · 12 documenten" */
105
+ export function sentText(printer, docs) {
106
+ const p = printer ? `Verstuurd naar printer ${printer}` : "Verstuurd naar de printer";
107
+ return `${p} · ${docs} ${docs === 1 ? "document" : "documenten"}`;
108
+ }
109
+ export function reprintQuestion(printedAt, tz) {
110
+ const t = timeLabel(printedAt, tz);
111
+ return t ? `Deze order is om ${t} al geprint. Opnieuw printen?` : "Deze order is al geprint. Opnieuw printen?";
112
+ }
113
+ /** Printopdracht door de printer ontvangen (of verder). */
114
+ export const ACCEPTED_STATUSES = new Set(["verzonden", "bezig", "printing", "voltooid", "printed", "done"]);
115
+ /** Wachtrij-telling als echt getal: "12 orders nog te printen". */
116
+ export function todoCountText(n) {
117
+ return n === 1 ? "1 order nog te printen" : `${n} orders nog te printen`;
118
+ }
119
+ function textOf(v) {
120
+ return typeof v === "string" && v.trim() ? v.trim() : null;
121
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=werkvloer.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"werkvloer.test.d.ts","sourceRoot":"","sources":["../../src/lib/werkvloer.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,49 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { cardKeyOf, cardSummary, groupCards, partialFailText, reprintQuestion, sentText, sinceLabel, todoCountText } from "./werkvloer.js";
3
+ const row = (o) => ({
4
+ id: o.id ?? Math.random().toString(),
5
+ order_number: null,
6
+ customer_name: null,
7
+ is_urgent: false,
8
+ announced_at: "2026-11-05T12:00:00Z",
9
+ printed_at: null,
10
+ cart_count: 0,
11
+ payload: {},
12
+ ...o,
13
+ });
14
+ describe("werkvloer", () => {
15
+ it("sleutel per kaart is gelijk aan de databasefunctie: unitRef, dan ordernummer", () => {
16
+ expect(cardKeyOf(row({ order_number: "FO-1", payload: { unitRef: "U9" } }))).toBe("U9");
17
+ expect(cardKeyOf(row({ order_number: "FO-1", payload: { unitRef: "" } }))).toBe("FO-1");
18
+ });
19
+ it("gezamenlijke levering: meerdere orders op één kaart, karren opgeteld", () => {
20
+ const cards = groupCards([
21
+ row({ order_number: "FO-1", payload: { unitRef: "L1", cartRowFor: "x" } }),
22
+ row({ order_number: "FO-2", payload: { unitRef: "L1", cartRowFor: "y" } }),
23
+ row({ order_number: "FO-3", cart_count: 10, is_urgent: true }),
24
+ ]);
25
+ expect(cards).toHaveLength(2);
26
+ expect(cards[0].orderNumbers).toEqual(["FO-1", "FO-2"]);
27
+ expect(cards[0].carts).toBe(2);
28
+ expect(cards[1].carts).toBe(10);
29
+ });
30
+ it("tekst onder de hoofdknop", () => {
31
+ const [c] = groupCards([row({ order_number: "FO-2601420", customer_name: "FHN Testcentrum", cart_count: 10, is_urgent: true })]);
32
+ expect(cardSummary(c)).toBe("FO-2601420 · FHN Testcentrum · 10 karren · spoed");
33
+ });
34
+ it("deels mislukt: 6 van 10 karren", () => {
35
+ expect(partialFailText(6, 10, "Printer reageert niet.")).toBe("6 van 10 karren geprint. Printer reageert niet. Roep de teamleider.");
36
+ });
37
+ it("bevestiging en vraag bij opnieuw printen", () => {
38
+ expect(sentText("Hal 1", 3)).toBe("Verstuurd naar printer Hal 1 · 3 documenten");
39
+ expect(reprintQuestion("2026-11-05T13:05:00Z", "Europe/Amsterdam")).toBe("Deze order is om 14:05 al geprint. Opnieuw printen?");
40
+ });
41
+ it("sinds-tijd in de vestigingstijdzone", () => {
42
+ const now = new Date("2026-11-05T14:00:00Z");
43
+ expect(sinceLabel("2026-11-05T12:00:00Z", "Europe/Amsterdam", now)).toBe("sinds 13:00");
44
+ expect(sinceLabel("2026-11-04T12:00:00Z", "Europe/Amsterdam", now)).toBe("sinds gisteren");
45
+ });
46
+ it("teller als echt getal", () => {
47
+ expect(todoCountText(12)).toBe("12 orders nog te printen");
48
+ });
49
+ });
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/pick-schermen-kwekers",
3
- "version": "1.0.84",
3
+ "version": "1.0.89",
4
4
  "flowselections": {
5
5
  "moduleId": "pick-schermen",
6
6
  "schema": {