@flowselections/logistiek-engine 1.0.162 → 1.0.167

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 (37) hide show
  1. package/dist-lib/components/BeheerPage.d.ts.map +1 -1
  2. package/dist-lib/components/BeheerPage.js +3 -1
  3. package/dist-lib/components/GeblokkeerdeStickersCard.d.ts +2 -0
  4. package/dist-lib/components/GeblokkeerdeStickersCard.d.ts.map +1 -0
  5. package/dist-lib/components/GeblokkeerdeStickersCard.js +31 -0
  6. package/dist-lib/components/HerindelingMeldingCard.d.ts +2 -0
  7. package/dist-lib/components/HerindelingMeldingCard.d.ts.map +1 -0
  8. package/dist-lib/components/HerindelingMeldingCard.js +37 -0
  9. package/dist-lib/index.d.ts +2 -0
  10. package/dist-lib/index.d.ts.map +1 -1
  11. package/dist-lib/index.js +2 -0
  12. package/dist-lib/integrations/supabase/types.d.ts +253 -0
  13. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  14. package/dist-lib/lib/autoSend.server.d.ts.map +1 -1
  15. package/dist-lib/lib/autoSend.server.js +14 -0
  16. package/dist-lib/lib/externalFulfillment.d.ts +14 -0
  17. package/dist-lib/lib/externalFulfillment.d.ts.map +1 -0
  18. package/dist-lib/lib/externalFulfillment.js +26 -0
  19. package/dist-lib/lib/loadCarrierPlanning.server.d.ts.map +1 -1
  20. package/dist-lib/lib/loadCarrierPlanning.server.js +12 -2
  21. package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
  22. package/dist-lib/lib/modulePrompts.js +243 -0
  23. package/dist-lib/lib/moduleVersion.d.ts +1 -1
  24. package/dist-lib/lib/moduleVersion.js +1 -1
  25. package/dist-lib/lib/ruleEngineSchema.d.ts.map +1 -1
  26. package/dist-lib/lib/ruleEngineSchema.js +1 -0
  27. package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -1
  28. package/dist-lib/lib/shippingNoteQueue.server.js +12 -0
  29. package/dist-lib/lib/shippingNoteStates.d.ts +4 -0
  30. package/dist-lib/lib/shippingNoteStates.d.ts.map +1 -1
  31. package/dist-lib/lib/shippingNoteStates.js +4 -0
  32. package/dist-lib/lib/stickerQueue.server.d.ts.map +1 -1
  33. package/dist-lib/lib/stickerQueue.server.js +85 -9
  34. package/dist-lib/lib/stickerRules.d.ts +2 -0
  35. package/dist-lib/lib/stickerRules.d.ts.map +1 -1
  36. package/dist-lib/lib/stickerRules.js +5 -0
  37. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"autoSend.server.d.ts","sourceRoot":"","sources":["../../src/lib/autoSend.server.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAW5D,uFAAuF;AACvF,wBAAsB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS/E;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;;GAkEvF"}
1
+ {"version":3,"file":"autoSend.server.d.ts","sourceRoot":"","sources":["../../src/lib/autoSend.server.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAW5D,uFAAuF;AACvF,wBAAsB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAS/E;AAED,wBAAsB,gBAAgB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO;;;;;;GAmFvF"}
@@ -36,6 +36,20 @@ export async function runAutoSendQueue(sb, opts = {}) {
36
36
  await finish(false, configReden ?? AUTO_SEND_ADRES_REDEN, null, true);
37
37
  continue;
38
38
  }
39
+ // 1.0.166: volledig afgehandeld in Floriday => nooit automatisch versturen. Onleesbaar => later opnieuw.
40
+ {
41
+ const { data: extern, error: externError } = await sb.rpc("logistics_order_external_state", { p_order_id: row.order_id });
42
+ if (externError) {
43
+ run.failed++;
44
+ await finish(false, `Afhandeling in Floriday niet leesbaar: ${externError.message}`, null);
45
+ continue;
46
+ }
47
+ if (extern?.full === true) {
48
+ run.definitief++;
49
+ await finish(false, "Afgehandeld in Floriday; niet automatisch verstuurd.", null, false, true);
50
+ continue;
51
+ }
52
+ }
39
53
  try {
40
54
  const body = autoSendBody(row.order_id);
41
55
  const ts = Date.now();
@@ -0,0 +1,14 @@
1
+ export declare const EXTERN_AFGEHANDELD_REDEN = "Afgehandeld in Floriday";
2
+ export interface ExterneAfhandeling {
3
+ order_id: string;
4
+ full_fulfilled: boolean;
5
+ sales_order_ids: string[];
6
+ }
7
+ /** Is deze orderregel in Floriday afgehandeld? */
8
+ export declare function regelExternAfgehandeld(afhandeling: ExterneAfhandeling | null | undefined, sourceLineKey: unknown): boolean;
9
+ /** Filtert afgehandelde regels weg; regels van orders zonder afhandeling blijven. */
10
+ export declare function zonderExternAfgehandeld<T extends {
11
+ order_id?: unknown;
12
+ source_line_key?: unknown;
13
+ }>(regels: T[], afhandelingen: ExterneAfhandeling[]): T[];
14
+ //# sourceMappingURL=externalFulfillment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"externalFulfillment.d.ts","sourceRoot":"","sources":["../../src/lib/externalFulfillment.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,wBAAwB,4BAA4B,CAAC;AAElE,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,OAAO,CAAC;IACxB,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAID,kDAAkD;AAClD,wBAAgB,sBAAsB,CACpC,WAAW,EAAE,kBAAkB,GAAG,IAAI,GAAG,SAAS,EAClD,aAAa,EAAE,OAAO,GACrB,OAAO,CAMT;AAED,qFAAqF;AACrF,wBAAgB,uBAAuB,CAAC,CAAC,SAAS;IAAE,QAAQ,CAAC,EAAE,OAAO,CAAC;IAAC,eAAe,CAAC,EAAE,OAAO,CAAA;CAAE,EACjG,MAAM,EAAE,CAAC,EAAE,EACX,aAAa,EAAE,kBAAkB,EAAE,GAClC,CAAC,EAAE,CAML"}
@@ -0,0 +1,26 @@
1
+ // ============================================================================
2
+ // src/lib/externalFulfillment.ts — "Afgehandeld in Floriday" (Verkoop 1.0.96)
3
+ // ============================================================================
4
+ // Bron van waarheid is de Engine-tabel logistics_external_fulfillment, gevuld
5
+ // door logistics_apply_external_fulfillment na controle van de melding.
6
+ // Matcht altijd op order-id en Floriday-salesOrderId, nooit op naam.
7
+ // ============================================================================
8
+ export const EXTERN_AFGEHANDELD_REDEN = "Afgehandeld in Floriday";
9
+ const norm = (v) => String(v ?? "").trim().toLowerCase();
10
+ /** Is deze orderregel in Floriday afgehandeld? */
11
+ export function regelExternAfgehandeld(afhandeling, sourceLineKey) {
12
+ if (!afhandeling)
13
+ return false;
14
+ if (afhandeling.full_fulfilled === true)
15
+ return true;
16
+ const ids = Array.isArray(afhandeling.sales_order_ids) ? afhandeling.sales_order_ids.map(norm) : [];
17
+ const key = norm(sourceLineKey);
18
+ return key !== "" && ids.includes(key);
19
+ }
20
+ /** Filtert afgehandelde regels weg; regels van orders zonder afhandeling blijven. */
21
+ export function zonderExternAfgehandeld(regels, afhandelingen) {
22
+ const perOrder = new Map();
23
+ for (const a of Array.isArray(afhandelingen) ? afhandelingen : [])
24
+ perOrder.set(String(a.order_id), a);
25
+ return (Array.isArray(regels) ? regels : []).filter((r) => !regelExternAfgehandeld(perOrder.get(String(r.order_id ?? "")), r.source_line_key));
26
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"loadCarrierPlanning.server.d.ts","sourceRoot":"","sources":["../../src/lib/loadCarrierPlanning.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"loadCarrierPlanning.server.d.ts","sourceRoot":"","sources":["../../src/lib/loadCarrierPlanning.server.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAGL,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,KAAK,gBAAgB,EACtB,MAAM,sBAAsB,CAAC;AAG9B,OAAO,EAA0B,KAAK,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACrF,OAAO,EAA+C,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAcrG,wBAAsB,6BAA6B,CAAC,EAAE,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAwB/G;AAMD,UAAU,QAAQ;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,wDAAwD;AACxD,MAAM,MAAM,cAAc,GACtB,WAAW,GACX,eAAe,GACf,kBAAkB,GAClB,aAAa,GACb,SAAS,GACT,MAAM,CAAC;AAgBX;;;;;GAKG;AACH,wBAAgB,2BAA2B,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,GAAG,IAAI,CAQ7E;AAED;;;;GAIG;AACH,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,OAAO,GAAG,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAYrF;AAgED,MAAM,WAAW,aAAa;IAC5B,mFAAmF;IACnF,cAAc,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;IACvC,sFAAsF;IACtF,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAC;IACxD,iEAAiE;IACjE,OAAO,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,gGAAgG;IAChG,UAAU,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,YAAY,EAAE,CAAA;KAAE,CAAC,CAAC;IAC1E,kFAAkF;IAClF,KAAK,CAAC,EAAE,KAAK,CAAC;QAAE,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,aAAa,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACjF;AAED,iFAAiF;AACjF,MAAM,WAAW,YAAY;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,GAAG,EAAE,MAAM,CAAC;CACb;AAED,6FAA6F;AAC7F,MAAM,WAAW,cAAc;IAC7B,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,GAAG,KAAK,GAAG,WAAW,GAAG,aAAa,GAAG,UAAU,GAAG,MAAM,GAAG,MAAM,CAAC;IAC1F,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,OAAO,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAChB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB;AAED,6EAA6E;AAC7E,wBAAgB,eAAe,CAC7B,KAAK,EAAE;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,YAAY,EAAE,CAAA;CAAE,GAAG,SAAS,EAClE,YAAY,EAAE,MAAM,GACnB,YAAY,EAAE,GAAG,IAAI,CAmBvB;AAaD;;;;;;;;;GASG;AACH,wBAAsB,0BAA0B,CAC9C,EAAE,EAAE,cAAc,EAClB,IAAI,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAChC,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6I7B;AAMD,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC,CAO3F;AAUD,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,WAAW,EAAE,OAAO,CAAC;IACrB,8CAA8C;IAC9C,YAAY,EAAE,UAAU,GAAG,YAAY,CAAC;CACzC;AAOD,wFAAwF;AACxF,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,CAwBzF;AAED;;;;;;GAMG;AACH,wBAAsB,kBAAkB,CACtC,EAAE,EAAE,cAAc,GACjB,OAAO,CAAC,UAAU,GAAG,oBAAoB,CAAC,CAW5C;AAED,2FAA2F;AAC3F,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,aAAa,GAAG,IAAI,GAAG,cAAc,CAaxG;AAMD;;;;GAIG;AACH,wBAAgB,qBAAqB,CACnC,MAAM,EAAE,gBAAgB,EAAE,EAC1B,OAAO,EAAE,cAAc,EACvB,OAAO,EAAE,QAAQ,GAChB,eAAe,EAAE,CAkEnB;AAUD,oFAAoF;AACpF,eAAO,MAAM,qBAAqB,uBAAuB,CAAC;AAK1D;;;;GAIG;AACH,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,MAAM,EACd,IAAI,EAAE,aAAa,GAClB,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CA4BhC;AAyCD,wBAAgB,4BAA4B,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,eAAe,EAAE,CAwCtF;AAsED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,OAAO,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,mBAAmB,EAAE,OAAO,CAAC;IAC7B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,OAAO,CAAC,EAAE,QAAQ,GAAG,SAAS,CAAC;IAC/B,mDAAmD;IACnD,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iFAAiF;IACjF,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,KAAK,CAAC,EAAE,eAAe,EAAE,CAAC;CAC3B;AAGD,MAAM,WAAW,aAAa;IAC5B,4CAA4C;IAC5C,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,sEAAsE;IACtE,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAGD,UAAU,qBAAqB;IAC7B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAED,MAAM,WAAW,mBAAmB;IAClC,uEAAuE;IACvE,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,iEAAiE;IACjE,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,uEAAuE;IACvE,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED;;;;;GAKG;AACH,wBAAgB,8BAA8B,CAC5C,KAAK,EAAE,eAAe,EAAE,EACxB,WAAW,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAChC,eAAe,GAAE,mBAAwB,GACxC,qBAAqB,EAAE,CAoCzB;AAqBD;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,MAAM,EAAE,CAAC,CAoCnB;AAID;;;;;;;;;;;GAWG;AACH,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,EAChB,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CAuCvB;AAED,qFAAqF;AACrF,eAAO,MAAM,mBAAmB,gFAC+C,CAAC;AAqjChF,wBAAsB,mBAAmB,CACvC,EAAE,EAAE,cAAc,EAClB,OAAO,EAAE,MAAM,EACf,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,GAAG,IAAI,CAAC,CAI9B"}
@@ -11,6 +11,7 @@ import { MODULE_VERSION } from "./moduleVersion.js";
11
11
  import { fallbackCarrierProfile } from "./loadCarrierTypes.js";
12
12
  import { planByDimensions, DIMENSION_PLANNER_VERSION } from "./dimensionPlanner.js";
13
13
  import { buildDimensionItems, carrierDimensions } from "./dimensionData.server.js";
14
+ import { zonderExternAfgehandeld } from "./externalFulfillment.js";
14
15
  // ---------------------------------------------------------------------------
15
16
  // Buffer
16
17
  // ---------------------------------------------------------------------------
@@ -881,14 +882,23 @@ async function replanBufferUnlocked(sb, bufferId, options = {}) {
881
882
  }
882
883
  }
883
884
  const idList = orderIds.length > 0 ? orderIds : ["00000000-0000-0000-0000-000000000000"];
884
- const { data: items } = await sb
885
+ const { data: rawItems } = await sb
885
886
  .from("order_items")
886
887
  .select("id, order_id, product_id, product_name, quantity, plants_per_crate, crates_per_layer, layers_per_cart, " +
887
- "packing_locked_at, packing_locked_by, " +
888
+ "packing_locked_at, packing_locked_by, source_line_key, " +
888
889
  "products(plants_per_crate, crates_per_layer, layers_per_cart, weight, floriday_trade_item_id)")
889
890
  .in("order_id", idList)
890
891
  // Regels in quarantaine (Verkoop-herstel) nooit inplannen.
891
892
  .is("quarantined_at", null);
893
+ // 1.0.166: regels die in Floriday zijn afgehandeld nooit inplannen. Onleesbaar = niet plannen (fail closed).
894
+ const { data: extern, error: externError } = await sb
895
+ .from("logistics_external_fulfillment")
896
+ .select("order_id, full_fulfilled, sales_order_ids")
897
+ .in("order_id", idList);
898
+ if (externError) {
899
+ throw new Error(`Afhandeling in Floriday kon niet worden gelezen: ${externError.message}`);
900
+ }
901
+ const items = zonderExternAfgehandeld((Array.isArray(rawItems) ? rawItems : []), (Array.isArray(extern) ? extern : []));
892
902
  // Duidelijk teveel identieke bestelregels: niet rekenen maar blokkeren.
893
903
  // Een indeling op opgeblazen aantallen is fout en loopt in een timeout.
894
904
  {
@@ -1 +1 @@
1
- {"version":3,"file":"modulePrompts.d.ts","sourceRoot":"","sources":["../../src/lib/modulePrompts.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;CAKvB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAKhE,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAguLD,eAAO,MAAM,cAAc,EAAE,YAAY,EAUL,CAAC;AAErC,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,CAmBR;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,IAAI,MAAM,CAiB9C;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAIR"}
1
+ {"version":3,"file":"modulePrompts.d.ts","sourceRoot":"","sources":["../../src/lib/modulePrompts.ts"],"names":[],"mappings":"AAWA;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;;CAKvB,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,oBAAoB,CAAC;AAKhE,MAAM,WAAW,oBAAoB;IACnC,6DAA6D;IAC7D,MAAM,EAAE,MAAM,CAAC;IACf,mCAAmC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,yDAAyD;IACzD,IAAI,EAAE,MAAM,CAAC;IACb,6CAA6C;IAC7C,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,iFAAiF;IACjF,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,+BAA+B;IAC/B,IAAI,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,eAAe,CAAC;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,oBAAoB,EAAE,CAAC;CACnC;AAw9LD,eAAO,MAAM,cAAc,EAAE,YAAY,EAUL,CAAC;AAErC,gEAAgE;AAChE,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EACpB,QAAQ,EAAE,oBAAoB,GAC7B,MAAM,CAmBR;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAE9D;AAED,oEAAoE;AACpE,wBAAgB,qBAAqB,IAAI,MAAM,CAiB9C;AAED,wBAAgB,oBAAoB,CAClC,SAAS,EAAE,eAAe,EAC1B,cAAc,CAAC,EAAE,MAAM,GACtB,MAAM,CAIR"}
@@ -1103,6 +1103,136 @@ CONTROLELIJST
1103
1103
  [ ] FO-2601440 (levering ma 26 okt): "vr 23 okt 15:00 ophalen".
1104
1104
  [ ] MO-2601442: "wo 21 okt 09:30 ophalen".
1105
1105
  [ ] Order zonder vervoerder: reden zichtbaar, geen verzonnen tijd.
1106
+ [ ] Meld terug met je pakketversie.`,
1107
+ },
1108
+ {
1109
+ number: 25,
1110
+ title: "Ophaalmoment als lijst en als voorbeeld bij Bestelling aanmaken",
1111
+ date: "2026-10-19",
1112
+ summary: "logistics_order_departure_list voor overzichten en logistics_departure_preview voor Bestelling aanmaken; niet zelf rekenen.",
1113
+ body: `KOPPELPROMPT VERKOOP 25 – vereist Logistiek Engine 1.0.162 (aanvulling op 24)
1114
+
1115
+ WAT ER IS
1116
+ 1. public.logistics_order_departure_list(p_order_ids uuid[])
1117
+ RETURNS TABLE(order_id uuid, ok boolean, reason text, "carrierId" uuid,
1118
+ "momentKey" text, "departureAt" timestamptz,
1119
+ "signupDeadline" timestamptz, "lateSignup" boolean)
1120
+ Zelfde uitkomst als logistics_order_departure per order. Maximaal 1000
1121
+ id's per aanroep; onbekende order: ok = false met reden.
1122
+ 50 orders: ca. 45 ms.
1123
+ 2. public.logistics_departure_preview(p_carrier_id uuid, p_delivery_location text,
1124
+ p_delivery_date date, p_moment_key text DEFAULT NULL)
1125
+ RETURNS jsonb. Voor "Bestelling aanmaken", zonder order.
1126
+ - p_carrier_id leeg: de Engine kiest de vervoerder op de afleverlocatie
1127
+ (p_delivery_location = id óf GLN van de afleverlocatie).
1128
+ - p_moment_key: een momentKey uit moments[] als de gebruiker zelf kiest.
1129
+ Velden:
1130
+ - ok, reason, carrierId, timezone
1131
+ - moments[]: { momentKey, departureAt, signupDeadline, feasible }
1132
+ - chosen: { momentKey, departureAt, signupDeadline }
1133
+ - deliveryDateFeasible boolean + reason (bv. "Aanmelden kan tot di 20-10 13:00.")
1134
+ - firstFeasibleDeliveryDate date + firstFeasibleReason (zoekt max. 30 dagen vooruit)
1135
+ Rechten beide: authenticated en service_role, niet anon.
1136
+
1137
+ WAT JIJ DOET
1138
+ 1. Overzichten met meerdere orders: één aanroep van
1139
+ logistics_order_departure_list met de zichtbare order-id's (in delen van
1140
+ max. 1000), in plaats van per order.
1141
+ 2. Bestelling aanmaken: roep logistics_departure_preview aan bij wijziging
1142
+ van vervoerder, afleverlocatie, leverdatum of gekozen ophaalmoment.
1143
+ - Toon de ophaalmomenten uit moments[]; niet-haalbare (feasible = false)
1144
+ grijs.
1145
+ - deliveryDateFeasible = false: toon reason en bied
1146
+ firstFeasibleDeliveryDate aan met firstFeasibleReason.
1147
+ - ok = false: toon reason, geen eigen berekening of terugvaltijd.
1148
+ 3. Geen eigen berekening van werkdagen, tijdzone of ophaalmomenten.
1149
+
1150
+ REGELS
1151
+ - Match op id. Geen omgevingswaarden. Wijzig geen Engine-functies of -rechten.
1152
+ - Teksten in "je"-vorm, zonder technische termen.
1153
+
1154
+ CONTROLELIJST
1155
+ [ ] Overzicht met 50 orders: één aanroep, zelfde tijden als per order.
1156
+ [ ] Bestelling aanmaken, vervoerder Testvervoerder, levering di 20-10 (nu ma 16:45):
1157
+ "Aanmelden voor deze leverdatum kon tot ma 19-10 13:00", voorstel wo 21-10.
1158
+ [ ] Levering wo 21-10: haalbaar, ophalen di 20-10 15:00, aanmelden di 13:00.
1159
+ [ ] Afleverlocatie als GLN zonder vervoerder: vervoerder wordt gekozen.
1160
+ [ ] Meld terug met je pakketversie.`,
1161
+ },
1162
+ {
1163
+ number: 26,
1164
+ title: "Afgehandeld in Floriday (Verkoop 1.0.96)",
1165
+ date: "2026-10-19",
1166
+ summary: "Engine verwerkt de melding 'Afgehandeld in Floriday' (volledig of per Floriday-bestelling); Verkoop leest de stand via de dekking.",
1167
+ withSharedContract: false,
1168
+ body: `KOPPELPROMPT VERKOOP 26 – Afgehandeld in Floriday (Engine 1.0.166)
1169
+
1170
+ CONTEXT
1171
+ Verkoop 1.0.96 meldt een order die in Floriday zelf is afgehandeld. De Engine
1172
+ 1.0.166 verwerkt die melding. Er verandert niets aan bestaande Engine-functies
1173
+ die jij al aanroept, behalve twee uitbreidingen op de dekking (zie onder).
1174
+
1175
+ WAT JIJ STUURT (ongewijzigd t.o.v. jouw plan)
1176
+ logistics_emit_event(
1177
+ p_source_module => 'verkoop',
1178
+ p_event_type => 'order.changed',
1179
+ p_order_ref => <order-id (uuid) of ordernummer>,
1180
+ p_payload => {
1181
+ "orderId": "<order-id>", -- aanbevolen
1182
+ "reason": "Afgehandeld in Floriday", -- exact deze tekst
1183
+ "floridayExternalFulfilledFull": true|false, -- verplicht, echte boolean
1184
+ "floridayExternalFulfilledSalesOrderIds": ["<salesOrderId uuid>", ...]
1185
+ },
1186
+ p_idempotency_key => 'extern-afgehandeld:<order-id>:<salesOrderIds gesorteerd>'
1187
+ )
1188
+ Zet VÓÓR de melding op de order:
1189
+ - custom_fields.floriday_external_fulfilled_at (verplicht bij full = true)
1190
+ - custom_fields.floriday_external_fulfilled_sales_order_ids (array; moet alle
1191
+ id's uit de melding bevatten)
1192
+
1193
+ WAT DE ENGINE DOET
1194
+ - Controle (fail closed). De melding wordt "failed" met een duidelijke reden
1195
+ in logistics_events.error, en er verandert niets, als:
1196
+ - de order niet gevonden wordt op order-id of ordernummer;
1197
+ - floridayExternalFulfilledFull geen true/false is;
1198
+ - full = true maar floriday_external_fulfilled_at ontbreekt;
1199
+ - een id uit de melding niet in floriday_external_fulfilled_sales_order_ids staat;
1200
+ - full = false zonder id's, of een id hoort bij geen enkele orderregel
1201
+ (order_items.source_line_key).
1202
+ - full = true: open taken geannuleerd (reden "Afgehandeld in Floriday"), eigen
1203
+ open pickregels geannuleerd (cancelled_at + reden, niets verwijderd), eigen
1204
+ karren gearchiveerd (omkeerbaar). Gedeelde kar: alleen het deel van deze
1205
+ order; de andere orders op die kar worden opnieuw ingedeeld, een al
1206
+ geprinte/gescande kar blijft staan en telt voor deze order als afgehandeld.
1207
+ - full = false: alleen de regels van de genoemde Floriday-bestellingen gaan uit
1208
+ de planning; de order wordt opnieuw ingepland zonder die regels.
1209
+ - Ook als de order al deels gepickt is: gewoon afronden, geen blokkade.
1210
+ - Geen verzendbrief, geen automatische verzending (bij full), geen
1211
+ klantstickers; zo'n sticker wordt nooit als "handled" afgemeld in Floriday.
1212
+ - Dezelfde melding nog eens sturen doet niets extra.
1213
+
1214
+ WAT JIJ DAARNA LEEST
1215
+ 1. logistics_order_plan_coverage(p_order_id uuid) -> jsonb
1216
+ - Nieuw veld externalFulfilled: null, of
1217
+ { full, salesOrderIds[], reason, appliedAt, eventId }.
1218
+ - full = true: state = 'afgehandeld_extern', label = 'Afgehandeld in Floriday'.
1219
+ - full = false: progressPct/state tellen alleen de regels die nog lopen.
1220
+ 2. logistics_order_plan_coverage_list(p_order_ids uuid[]) -> zelfde kolommen
1221
+ als nu; bij full = true is state 'afgehandeld_extern' en label
1222
+ 'Afgehandeld in Floriday'.
1223
+ 3. Is de melding mislukt? Lees logistics_events.status/error op het eventId
1224
+ dat logistics_emit_event teruggeeft, en toon de reden.
1225
+
1226
+ REGELS
1227
+ - Match op order-id en Floriday-salesOrderId (uuid), nooit op naam.
1228
+ - Geen omgevingswaarden. Wijzig geen Engine-functies of -rechten.
1229
+ - Teksten in "je"-vorm, zonder technische termen.
1230
+
1231
+ CONTROLELIJST
1232
+ [ ] Volledig afgehandelde order: dekking toont "Afgehandeld in Floriday".
1233
+ [ ] Samengevoegde order, één bestelling afgehandeld: dekking telt alleen de rest.
1234
+ [ ] Melding met een salesOrderId dat bij geen regel hoort: jij toont de reden
1235
+ uit logistics_events.error.
1106
1236
  [ ] Meld terug met je pakketversie.`,
1107
1237
  },
1108
1238
  ],
@@ -4259,6 +4389,50 @@ pickstation_cart_sticker_state en elke eigen query op karren.
4259
4389
 
4260
4390
  CONTROLELIJST
4261
4391
  [ ] Een gearchiveerde kar verschijnt niet op het pickscherm en is niet printbaar.
4392
+ [ ] Meld terug met je pakketversie.`,
4393
+ },
4394
+ {
4395
+ number: 49,
4396
+ title: "Knop “Stickers opnieuw printen” op het pickstation",
4397
+ date: "2026-10-19",
4398
+ summary: "Knop op het openbare pickstation die via pickstation_sticker_reprint de klantstickers van een kar opnieuw laat printen.",
4399
+ body: `WAAROM
4400
+ Op het pickstation moet je klantstickers van een kar opnieuw kunnen laten
4401
+ printen, bijvoorbeeld als een vel vastloopt. Een herprint van de pakbon print
4402
+ de stickers nooit opnieuw; dat kan alleen met deze aparte knop. De Engine
4403
+ (1.0.164) levert de functie.
4404
+
4405
+ WAT JE BOUWT
4406
+ Een knop "Stickers opnieuw printen" bij een kar op het openbare pickstation.
4407
+ - Toon de knop alleen als public.pickstation_cart_sticker_state(p_slug,
4408
+ p_cart_id) toegang = true geeft en de stand van de kar minstens één
4409
+ klantsticker heeft die al in de printwachtrij stond of is afgemeld.
4410
+ - Na een klik eerst een bevestiging: "Stickers van deze kar opnieuw printen?"
4411
+ met een optioneel veld voor de reden.
4412
+ - Daarna aanroepen:
4413
+ rpc('pickstation_sticker_reprint', {
4414
+ p_slug: <slug van dit station>,
4415
+ p_cart_id: <id van de kar>,
4416
+ p_reden: <reden of null>
4417
+ })
4418
+ Antwoord:
4419
+ { ok: true, aantal: n } -> melding "n sticker(s) opnieuw in de printwachtrij".
4420
+ { ok: false, reden } -> reden in gewone taal tonen:
4421
+ onbekend_of_inactief_station -> "Dit pickstation is onbekend of staat uit."
4422
+ niet_in_wachtrij_station -> "Deze kar hoort niet bij dit pickstation."
4423
+ geen_eerder_geprinte_sticker -> "Er is voor deze kar nog geen sticker geprint."
4424
+ - De opdracht zelf komt binnen een minuut in de printwachtrij, via de
4425
+ stickerronde van de Engine. Toon na het verversen gewoon de stand van de kar.
4426
+
4427
+ REGELS
4428
+ - Geen eigen printopdrachten maken. Altijd via pickstation_sticker_reprint.
4429
+ - Pas de functie niet aan; de slugcontrole zit in de Engine.
4430
+ - Geen URL's of vaste id's in code.
4431
+
4432
+ CONTROLELIJST
4433
+ [ ] De knop staat alleen bij karren met een al geprinte klantsticker.
4434
+ [ ] Een verkeerd station of een verkeerde kar geeft een duidelijke melding.
4435
+ [ ] Een herprint van de pakbon print geen stickers opnieuw.
4262
4436
  [ ] Meld terug met je pakketversie.`,
4263
4437
  },
4264
4438
  ],
@@ -5352,6 +5526,45 @@ CONTROLELIJST
5352
5526
  [ ] Testpakbon zonder kar wordt aangenomen in de Printwachtrij.
5353
5527
  [ ] Testpakbon toont geen barcode.
5354
5528
  [ ] Gewone pakbon zonder kar wordt nog steeds geweigerd.
5529
+ [ ] Meld terug met je pakketversie.`,
5530
+ },
5531
+ {
5532
+ number: 9,
5533
+ title: "Klantstickers: floriday_sticker_id op elke opdracht",
5534
+ date: "2026-10-19",
5535
+ summary: "Antwoord op 1.63.3: elke klantstickeropdracht draagt floriday_sticker_id; should_be_printed=false wordt geen opdracht.",
5536
+ body: `WAAROM
5537
+ Antwoord op jullie verzoek in 1.63.3. De Logistiek Engine (1.0.164) maakt
5538
+ klantstickers via de stickerronde aan, met documenttype 'sticker' en via
5539
+ layout_print_document.
5540
+
5541
+ WAT DE ENGINE NU MEESTUURT (payload van elke klantstickeropdracht)
5542
+ - floriday_sticker_id: het Floriday-stickernummer (stickerId), als tekst.
5543
+ Nooit een naam.
5544
+ - sticker_id: dezelfde waarde (oud veld, blijft staan).
5545
+ - sticker_type: POT, PRODUCT, SLEEVE, PACKAGE, LAYER of LOAD_CARRIER.
5546
+ - sticker_formaat_mm: { breedte, hoogte }, als die bekend is.
5547
+ - cart_id, order_id, order_number, print_plek_id, kopieen.
5548
+ - is_herprint: true alleen bij een expliciete herprint vanaf het pickstation
5549
+ (met herprint_reden). Een herprint van een pakbon maakt nooit
5550
+ stickeropdrachten.
5551
+
5552
+ AFSPRAKEN
5553
+ - should_be_printed = false: de Engine maakt geen opdracht aan. Jullie regel
5554
+ "geannuleerd / niet_nodig, geen nieuwe poging" blijft het vangnet als
5555
+ Floriday het later omzet.
5556
+ - Maat: lees die met floriday_sticker_id uit Floriday-authenticatie; anders uit
5557
+ de pdf; is die ook onbekend, dan niet printen (jullie regel).
5558
+ - Het aantal staat in kopieen. De pdf komt zonder verdubbelde pagina's.
5559
+
5560
+ WAT JE BOUWT
5561
+ Niets nieuws, als dit klopt met wat jullie in 1.63.3 lezen. Controleer het en
5562
+ meld terug.
5563
+
5564
+ CONTROLELIJST
5565
+ [ ] Een klantstickeropdracht van de Engine wordt herkend op floriday_sticker_id.
5566
+ [ ] should_be_printed = false bij Floriday leidt tot 'niet_nodig' zonder nieuwe poging.
5567
+ [ ] is_herprint = true wordt als herprint verwerkt.
5355
5568
  [ ] Meld terug met je pakketversie.`,
5356
5569
  },
5357
5570
  ],
@@ -5587,6 +5800,36 @@ CONTROLELIJST
5587
5800
  [ ] Geen vaste projectlink meer in de cron.
5588
5801
  [ ] Meld terug met je pakketversie.`,
5589
5802
  },
5803
+ {
5804
+ number: 6,
5805
+ title: "Klantsticker-pdf zonder verdubbelde pagina’s",
5806
+ date: "2026-10-19",
5807
+ summary: "De Engine print het aantal zelf; haal de stickerpdf op zonder verdubbelde pagina’s en meld hoe het nu gaat.",
5808
+ body: `WAAROM
5809
+ De Logistiek Engine 1.0.164 maakt bij elke Floriday-klantsticker de
5810
+ printopdracht(en) aan op het moment dat de pakbon van de kar print, met het
5811
+ aantal uit stickerFileInformation.numberOfCopies (Suppliers API 2026v1). Je
5812
+ sync draait al en slaagt (in staging nu 0 stickers), en
5813
+ floriday_customer_stickers_cache heeft al sales_order_id, sticker_width_mm,
5814
+ sticker_height_mm, sticker_type, should_be_printed en data. Er ontbreekt nog
5815
+ één ding.
5816
+
5817
+ WAT JE BOUWT
5818
+ (a) Haal de pdf van een klantsticker (GET /customer-stickers/{stickerId}) op
5819
+ met duplicatePagesBasedOnNumberOfCopies=false, of laat die parameter weg
5820
+ als false de standaard is. De Engine print het aantal zelf via kopieen.
5821
+ Verdubbelde pagina's plus kopieen geeft dubbel zoveel stickers.
5822
+ (b) Meld in je terugmelding hoe getFlorydayDocument (kind "customer-sticker")
5823
+ dit nu doet: met of zonder verdubbelde pagina's.
5824
+
5825
+ REGELS
5826
+ - Verander niets aan de cachekolommen of de sync zelf; die zijn goed.
5827
+ - Geen URL's, sleutels of vaste id's in code of migraties.
5828
+
5829
+ CONTROLELIJST
5830
+ [ ] Klantsticker-pdf wordt opgehaald zonder verdubbelde pagina's.
5831
+ [ ] Terugmelding: hoe het nu gaat en vanaf welke pakketversie het goed is.`,
5832
+ },
5590
5833
  ],
5591
5834
  },
5592
5835
  dashboards: {
@@ -1,2 +1,2 @@
1
- export declare const MODULE_VERSION = "1.0.162";
1
+ export declare const MODULE_VERSION = "1.0.167";
2
2
  //# sourceMappingURL=moduleVersion.d.ts.map
@@ -1,2 +1,2 @@
1
1
  // Automatisch gegenereerd door prebuild:lib; niet handmatig aanpassen.
2
- export const MODULE_VERSION = "1.0.162";
2
+ export const MODULE_VERSION = "1.0.167";
@@ -1 +1 @@
1
- {"version":3,"file":"ruleEngineSchema.d.ts","sourceRoot":"","sources":["../../src/lib/ruleEngineSchema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ruleEngineSchema.d.ts","sourceRoot":"","sources":["../../src/lib/ruleEngineSchema.ts"],"names":[],"mappings":"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"}
@@ -763,6 +763,7 @@ export const RULE_STEPS = [
763
763
  {
764
764
  key: "sticker_release",
765
765
  label: "Wanneer worden de stickers vrijgegeven?",
766
+ description: "Floriday-klantstickers printen altijd bij de pakbon van de kar.",
766
767
  type: "radio",
767
768
  default: "with_pick_release",
768
769
  options: [
@@ -1 +1 @@
1
- {"version":3,"file":"shippingNoteQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/shippingNoteQueue.server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAoCD,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,eAAe,CAAC,CA+d1B;AAMD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC;AAElE,qGAAqG;AACrG,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAQ9F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAG5E;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAI3E"}
1
+ {"version":3,"file":"shippingNoteQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/shippingNoteQueue.server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,eAAe;IAC9B,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,qEAAqE;IACrE,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,QAAQ,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAoCD,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAC/B,OAAO,CAAC,eAAe,CAAC,CA+e1B;AAMD,MAAM,MAAM,mBAAmB,GAAG,QAAQ,GAAG,aAAa,GAAG,IAAI,CAAC;AAElE,qGAAqG;AACrG,wBAAsB,uBAAuB,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAQ9F;AAED,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,mBAAmB,CAG5E;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,mBAAmB,GAAG,MAAM,CAI3E"}
@@ -198,6 +198,18 @@ export async function runShippingNoteQueue(sb, options = {}) {
198
198
  await faal("sales_order_ontbreekt", "Deze Floriday-order mist het Floriday-nummer. Werk de order bij via Orders.");
199
199
  continue;
200
200
  }
201
+ // 1.0.166: in Floriday afgehandeld (buiten het ERP om)? Geen verzendbrief.
202
+ {
203
+ const { data: extern, error: externError } = await sb.rpc("logistics_sales_order_external_fulfilled", { p_order_id: row.order_id, p_sales_order_id: salesOrderId });
204
+ if (externError) {
205
+ await wacht(`Afhandeling in Floriday kon niet worden gelezen: ${externError.message}`, "tijdelijk");
206
+ continue;
207
+ }
208
+ if (extern === true) {
209
+ await definitief("afgehandeld_in_floriday");
210
+ continue;
211
+ }
212
+ }
201
213
  // Geannuleerd in Floriday? Dan direct stoppen in plaats van de volle wachttijd.
202
214
  const { isFloridayCancelled, FLORIDAY_CANCELLED_REASON } = await import("./floridayCancellation.server.js");
203
215
  const annulering = await isFloridayCancelled(sb, {
@@ -14,6 +14,10 @@ export declare const SHIPPING_NOTE_DEFINITIEVE_FOUTEN: {
14
14
  readonly reden: "De gegevens van deze order zijn ongeldig voor Floriday.";
15
15
  readonly advies: "Controleer de order (artikelen, karren, lagen) en druk daarna op 'Opnieuw starten'.";
16
16
  };
17
+ readonly afgehandeld_in_floriday: {
18
+ readonly reden: "Deze order (of Floriday-bestelling) is in Floriday zelf afgehandeld; er wordt geen verzendbrief gemaakt.";
19
+ readonly advies: "Niets doen; de afhandeling liep buiten het ERP om.";
20
+ };
17
21
  };
18
22
  export type ShippingNoteDefinitieveFout = keyof typeof SHIPPING_NOTE_DEFINITIEVE_FOUTEN;
19
23
  /** Instelling in module_runtime_config; geheel getal 1..200, startwaarde 60. */
@@ -1 +1 @@
1
- {"version":3,"file":"shippingNoteStates.d.ts","sourceRoot":"","sources":["../../src/lib/shippingNoteStates.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB,sFAAuF,CAAC;AAC5H,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,kEAAkE;AAClE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;CAanC,CAAC;AACX,MAAM,MAAM,2BAA2B,GAAG,MAAM,OAAO,gCAAgC,CAAC;AAExF,gFAAgF;AAChF,eAAO,MAAM,8BAA8B,yCAAyC,CAAC;AACrF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAKnF"}
1
+ {"version":3,"file":"shippingNoteStates.d.ts","sourceRoot":"","sources":["../../src/lib/shippingNoteStates.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,uBAAuB,sFAAuF,CAAC;AAC5H,MAAM,MAAM,wBAAwB,GAAG,CAAC,OAAO,uBAAuB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEhF,kEAAkE;AAClE,eAAO,MAAM,gCAAgC;;;;;;;;;;;;;;;;;CAiBnC,CAAC;AACX,MAAM,MAAM,2BAA2B,GAAG,MAAM,OAAO,gCAAgC,CAAC;AAExF,gFAAgF;AAChF,eAAO,MAAM,8BAA8B,yCAAyC,CAAC;AACrF,eAAO,MAAM,8BAA8B,IAAI,CAAC;AAChD,eAAO,MAAM,8BAA8B,MAAM,CAAC;AAElD,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAG9D;AAED,kFAAkF;AAClF,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,2BAA2B,GAAG,IAAI,CAKnF"}
@@ -17,6 +17,10 @@ export const SHIPPING_NOTE_DEFINITIEVE_FOUTEN = {
17
17
  reden: "De gegevens van deze order zijn ongeldig voor Floriday.",
18
18
  advies: "Controleer de order (artikelen, karren, lagen) en druk daarna op 'Opnieuw starten'.",
19
19
  },
20
+ afgehandeld_in_floriday: {
21
+ reden: "Deze order (of Floriday-bestelling) is in Floriday zelf afgehandeld; er wordt geen verzendbrief gemaakt.",
22
+ advies: "Niets doen; de afhandeling liep buiten het ERP om.",
23
+ },
20
24
  };
21
25
  /** Instelling in module_runtime_config; geheel getal 1..200, startwaarde 60. */
22
26
  export const SHIPPING_NOTE_MAX_ATTEMPTS_KEY = "logistics_shipping_note_max_attempts";
@@ -1 +1 @@
1
- {"version":3,"file":"stickerQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/stickerQueue.server.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAc5D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAgCD,wBAAsB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CA+P5G"}
1
+ {"version":3,"file":"stickerQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/stickerQueue.server.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAe5D,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAoCD,wBAAsB,eAAe,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAA;CAAO,GAAG,OAAO,CAAC,UAAU,CAAC,CA2T5G"}