@flowselections/logistiek-engine 1.0.128 → 1.0.131

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.
@@ -56,16 +56,10 @@ export interface FulfillmentSendResult {
56
56
  * Laatste poort vóór de gateway: de gedeelde wachter bepaalt of er iets weg
57
57
  * mag. Fail closed — is de poort niet leesbaar, dan versturen we niet.
58
58
  */
59
- export declare function sendFlorydayFulfillmentOrder(supabase: SupabaseClient, body: unknown, caller?: string, orderRef?: string | null): Promise<FulfillmentSendResult>;
60
- /**
61
- * Officiele verzendbrief laten aanmaken in Floriday.
62
- *
63
- * Dit is geen afhandeling van de order: er wordt alleen een fulfillment-order
64
- * (afleverbrief) aangemaakt zodat Floriday een officieel document heeft. De
65
- * poort kent hiervoor een eigen schakelaar; staat die uit, dan gaat er niets
66
- * weg en blijft de aanvraag wachten.
67
- */
68
- export declare function createFlorydayDeliveryNote(supabase: SupabaseClient, orderRef: string, caller?: string): Promise<{
59
+ export declare const ENGINE_MAAKT_GEEN_AFLEVEROPDRACHT = "De Logistiek Engine maakt nooit zelf een afleveropdracht in Floriday aan; Afhandeling is daarvan eigenaar.";
60
+ export declare function sendFlorydayFulfillmentOrder(_supabase: SupabaseClient, _body: unknown, _caller?: string, _orderRef?: string | null): Promise<FulfillmentSendResult>;
61
+ /** Uitgeschakeld: de Engine maakt nooit zelf een afleveropdracht aan. */
62
+ export declare function createFlorydayDeliveryNote(_supabase: SupabaseClient, _orderRef: string, _caller?: string): Promise<{
69
63
  ok: boolean;
70
64
  fulfillmentOrderId: string | null;
71
65
  error: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"floridayDocuments.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayDocuments.server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"floridayDocuments.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayDocuments.server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAKL,KAAK,QAAQ,EACb,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,EACzB,MAAM,uDAAuD,CAAC;AAC/D,OAAO,EAA2B,KAAK,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAE9F;;;;GAIG;AACH,wBAAsB,4BAA4B,CAChD,QAAQ,EAAE,cAAc,EACxB,kBAAkB,EAAE,MAAM,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAO9B;AAED,MAAM,MAAM,mBAAmB,GAAG,SAAS,GAAG,MAAM,CAAC;AAErD,MAAM,WAAW,wBAAwB;IACvC,EAAE,EAAE,IAAI,CAAC;IACT,WAAW,EAAE,mBAAmB,CAAC;IACjC,UAAU,EAAE;QACV,EAAE,EAAE,MAAM,CAAC;QACX,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;QACjC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;QACxB,SAAS,EAAE,OAAO,CAAC;KACpB,GAAG,IAAI,CAAC;CACV;AAED,MAAM,WAAW,uBAAuB;IACtC,EAAE,EAAE,KAAK,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AAED;;;;;GAKG;AACH,wBAAsB,2BAA2B,CAC/C,QAAQ,EAAE,cAAc,GACvB,OAAO,CAAC,wBAAwB,GAAG,uBAAuB,CAAC,CAqB7D;AAED,sEAAsE;AACtE,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE,aAAa,CAAC,GACnC,OAAO,CAAC,SAAS,CAAC,CAOpB;AAED,yDAAyD;AACzD,wBAAsB,yBAAyB,CAC7C,QAAQ,EAAE,cAAc,EACxB,KAAK,EAAE;IAAE,KAAK,EAAE,iBAAiB,EAAE,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,CAAA;CAAE,GAC/D,OAAO,CAAC,mBAAmB,CAAC,CAW9B;AAED,2EAA2E;AAC3E,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE;QACP,EAAE,EAAE,OAAO,CAAC;QACZ,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB,CAAC;IACF,wEAAwE;IACxE,EAAE,CAAC,EAAE,OAAO,CAAC;IACb,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,eAAO,MAAM,iCAAiC,+GACgE,CAAC;AAE/G,wBAAsB,4BAA4B,CAChD,SAAS,EAAE,cAAc,EACzB,KAAK,EAAE,OAAO,EACd,OAAO,SAAqB,EAC5B,SAAS,GAAE,MAAM,GAAG,IAAW,GAC9B,OAAO,CAAC,qBAAqB,CAAC,CAEhC;AAED,yEAAyE;AACzE,wBAAsB,0BAA0B,CAC9C,SAAS,EAAE,cAAc,EACzB,SAAS,EAAE,MAAM,EACjB,OAAO,SAAqB,GAC3B,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAErG;AAMD,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,gBAAgB,GAAG,gBAAgB,GAAG,kBAAkB,CAAC;AAEtG,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,OAAO,CAAC;IACf,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,oEAAoE;AACpE,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,cAAc,EACxB,IAAI,EAAE;IACJ,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,GACA,OAAO,CAAC,UAAU,CAAC,CAiCrB;AAED,wBAAsB,mBAAmB,CACvC,QAAQ,EAAE,cAAc,EACxB,EAAE,EAAE,MAAM,GAAG,IAAI,EACjB,EAAE,EAAE,OAAO,EACX,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,iBAWtB"}
@@ -11,7 +11,7 @@
11
11
  // cache-tabellen zijn admin-only.
12
12
  // - Geen eigen token-logica, geen florydayFetch, geen HMAC, geen secrets.
13
13
  // ============================================================================
14
- import { runActiveEnvironment, runPdf, runPdfBulkMerged, runFulfillmentOrderSend, runFulfillmentOrderStatus, } from "@flowselections/floriday-authenticatie-module/gateway";
14
+ import { runActiveEnvironment, runPdf, runPdfBulkMerged, runFulfillmentOrderStatus, } from "@flowselections/floriday-authenticatie-module/gateway";
15
15
  import { decideFulfillmentStatus } from "./floridayCartCarriers.js";
16
16
  /**
17
17
  * Status van een fulfillment-order bij Floriday (leesactie). Pas bij
@@ -82,94 +82,13 @@ export async function getFlorydayMergedDocument(supabase, input) {
82
82
  * Laatste poort vóór de gateway: de gedeelde wachter bepaalt of er iets weg
83
83
  * mag. Fail closed — is de poort niet leesbaar, dan versturen we niet.
84
84
  */
85
- export async function sendFlorydayFulfillmentOrder(supabase, body, caller = "logistiek-engine", orderRef = null) {
86
- const { floridayStatusGuard, logFloridaySend } = await import("./floridayGuard.server.js");
87
- const decision = await floridayStatusGuard(supabase, {
88
- orderRef,
89
- action: "fulfillment_order_send",
90
- // Zonder ordernummer valt er niets te toetsen aan een controlescan; de
91
- // schakelaar blijft dan de enige, en dus beslissende, poort.
92
- requireApproval: Boolean(orderRef),
93
- module: caller,
94
- });
95
- if (!decision.allowed) {
96
- return {
97
- status: 0,
98
- payload: {
99
- ok: false,
100
- skipped: true,
101
- error: decision.reason ?? "Statuswijzigingen naar Floriday zijn niet toegestaan.",
102
- },
103
- };
104
- }
105
- const result = (await runFulfillmentOrderSend(supabase, body, caller));
106
- await logFloridaySend(supabase, {
107
- orderRef,
108
- action: "fulfillment_order_send",
109
- ok: (result?.payload?.ok ?? result?.ok) === true,
110
- httpStatus: typeof result?.status === "number" ? result.status : null,
111
- detail: result?.payload?.error ?? result?.error ?? null,
112
- module: caller,
113
- });
114
- return result;
85
+ export const ENGINE_MAAKT_GEEN_AFLEVEROPDRACHT = "De Logistiek Engine maakt nooit zelf een afleveropdracht in Floriday aan; Afhandeling is daarvan eigenaar.";
86
+ export async function sendFlorydayFulfillmentOrder(_supabase, _body, _caller = "logistiek-engine", _orderRef = null) {
87
+ return { status: 0, payload: { ok: false, skipped: true, error: ENGINE_MAAKT_GEEN_AFLEVEROPDRACHT } };
115
88
  }
116
- /**
117
- * Officiele verzendbrief laten aanmaken in Floriday.
118
- *
119
- * Dit is geen afhandeling van de order: er wordt alleen een fulfillment-order
120
- * (afleverbrief) aangemaakt zodat Floriday een officieel document heeft. De
121
- * poort kent hiervoor een eigen schakelaar; staat die uit, dan gaat er niets
122
- * weg en blijft de aanvraag wachten.
123
- */
124
- export async function createFlorydayDeliveryNote(supabase, orderRef, caller = "logistiek-engine") {
125
- const { floridayStatusGuard, logFloridaySend } = await import("./floridayGuard.server.js");
126
- const decision = await floridayStatusGuard(supabase, {
127
- orderRef,
128
- action: "delivery_note_create",
129
- requireApproval: false,
130
- module: caller,
131
- });
132
- if (!decision.allowed) {
133
- return {
134
- ok: false,
135
- fulfillmentOrderId: null,
136
- skipped: true,
137
- error: decision.reason ?? "Een verzendbrief aanmaken in Floriday is niet toegestaan.",
138
- };
139
- }
140
- const { buildFloridayPayload } = await import("./floridayPush.server.js");
141
- const built = await buildFloridayPayload(supabase, orderRef);
142
- if (!built.ok) {
143
- return { ok: false, fulfillmentOrderId: null, skipped: false, error: built.error };
144
- }
145
- try {
146
- const result = (await runFulfillmentOrderSend(supabase, built.payload, caller));
147
- const payload = result?.payload ?? null;
148
- const ok = (payload?.ok ?? result?.ok) === true;
149
- const error = payload?.error ?? result?.error ?? null;
150
- await logFloridaySend(supabase, {
151
- orderRef,
152
- action: "delivery_note_create",
153
- ok,
154
- httpStatus: typeof result?.status === "number" ? result.status : null,
155
- detail: error ?? null,
156
- module: caller,
157
- });
158
- return {
159
- ok,
160
- fulfillmentOrderId: payload?.fulfillmentOrderId ?? null,
161
- skipped: false,
162
- error: ok ? null : (error ?? "Floriday gaf geen bevestiging op de verzendbrief."),
163
- };
164
- }
165
- catch (e) {
166
- return {
167
- ok: false,
168
- fulfillmentOrderId: null,
169
- skipped: false,
170
- error: String(e?.message ?? e),
171
- };
172
- }
89
+ /** Uitgeschakeld: de Engine maakt nooit zelf een afleveropdracht aan. */
90
+ export async function createFlorydayDeliveryNote(_supabase, _orderRef, _caller = "logistiek-engine") {
91
+ return { ok: false, fulfillmentOrderId: null, skipped: true, error: ENGINE_MAAKT_GEEN_AFLEVEROPDRACHT };
173
92
  }
174
93
  /** Claim een printregel. fresh=false betekent: er is al geprint. */
175
94
  export async function claimDocumentPrint(supabase, args) {
@@ -1 +1 @@
1
- {"version":3,"file":"floridayPush.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayPush.server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAc/C,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUlD;AAaD,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,OAAO,2BAA2B,EAAE,WAAW,EAAE,CAAC;CACjE;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAUnE;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CACN;IACE,EAAE,EAAE,IAAI,CAAC;IACT,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,EAAE,OAAO,2BAA2B,EAAE,oBAAoB,EAAE,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAC7C,CAoEA;AAED,8CAA8C;AAC9C,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAiItB;AAQD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3F;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AA6BD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,eAAe,CAAC,CAwL1B;AAQD,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F"}
1
+ {"version":3,"file":"floridayPush.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayPush.server.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,eAAO,MAAM,mBAAmB,KAAK,CAAC;AACtC,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAc/C,mFAAmF;AACnF,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAUlD;AAaD,MAAM,WAAW,mBAAmB;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,YAAY,EAAE,OAAO,2BAA2B,EAAE,WAAW,EAAE,CAAC;CACjE;AAED,MAAM,MAAM,WAAW,GACnB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,mBAAmB,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACxD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,OAAO,CAAA;CAAE,CAAC;AAUnE;;;;GAIG;AACH,wBAAsB,8BAA8B,CAClD,EAAE,EAAE,cAAc,EAClB,YAAY,EAAE,MAAM,GACnB,OAAO,CACN;IACE,EAAE,EAAE,IAAI,CAAC;IACT,eAAe,EAAE,MAAM,CAAC;IACxB,qBAAqB,EAAE,MAAM,EAAE,CAAC;IAChC,cAAc,EAAE,OAAO,2BAA2B,EAAE,oBAAoB,EAAE,CAAC;IAC3E,OAAO,EAAE,MAAM,CAAC;CACjB,GACD;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAC7C,CAoEA;AAED,8CAA8C;AAC9C,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,WAAW,CAAC,CAiItB;AAQD,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAW3F;AAED,wBAAsB,mBAAmB,CAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAGhG;AA6BD;;;;;;GAMG;AACH,MAAM,MAAM,WAAW,GAAG,IAAI,GAAG,OAAO,GAAG,mBAAmB,GAAG,gBAAgB,CAAC;AAElF,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,gBAAgB,EAAE,MAAM,CAAC;IACzB,aAAa,EAAE,MAAM,CAAC;IACtB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;CACjB;AAYD,wBAAsB,oBAAoB,CACxC,EAAE,EAAE,cAAc,EAClB,IAAI,GAAE;IAAE,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,MAAM,CAAA;CAAO,GACjD,OAAO,CAAC,eAAe,CAAC,CA4L1B;AAQD,wBAAsB,wBAAwB,CAAC,EAAE,EAAE,cAAc,EAAE,IAAI,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC,CAS3F"}
@@ -288,6 +288,10 @@ export async function runFloridayPushQueue(sb, opts = {}) {
288
288
  notApplicable: 0,
289
289
  unknown: 0,
290
290
  };
291
+ // De Engine verstuurt nooit zelf een afleveropdracht (sinds 1.0.130),
292
+ // ongeacht belading_verstuurder. De wachtrij wordt niet meer verwerkt.
293
+ if (out.claimed === 0)
294
+ return out;
291
295
  // Poort 0: alleen als de Engine de belading verstuurt (instelling
292
296
  // belading_verstuurder = engine). Ontbreekt of anders: niets versturen.
293
297
  try {
@@ -1,2 +1,2 @@
1
- export declare const MODULE_VERSION = "1.0.128";
1
+ export declare const MODULE_VERSION = "1.0.131";
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.128";
2
+ export const MODULE_VERSION = "1.0.131";
@@ -1 +1 @@
1
- {"version":3,"file":"shippingNoteQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/shippingNoteQueue.server.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAO5D,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,CA4c1B;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;AAO5D,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,CA4a1B;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"}
@@ -11,7 +11,6 @@
11
11
  // Er wordt niets bevestigd of afgehandeld, en er komen geen omgevings- of
12
12
  // klantwaarden in deze code.
13
13
  // ============================================================================
14
- import { isKenmerkOntbreekt } from "./kenmerk.js";
15
14
  import { trace, newTraceId, classifyError } from "./trace.server.js";
16
15
  import { FLOW_NODE } from "./flowNodes.js";
17
16
  import { printViaLayout } from "./layoutPrint.server.js";
@@ -233,47 +232,20 @@ export async function runShippingNoteQueue(sb, options = {}) {
233
232
  // (alleen lezen). Is de verzendbrief er nog niet, dan wachten zonder poging.
234
233
  }
235
234
  else if (!bestaandeFo) {
236
- // Pas ná een goedgekeurde controlescan laten aanmaken.
237
- const { data: goedgekeurd, error: goedError } = await sb.rpc("logistics_floriday_order_approved", {
238
- _order_ref: row.order_number,
239
- });
240
- if (goedError || goedgekeurd !== true) {
241
- await houdVast(goedError
242
- ? "De goedkeuring van de controlescan kan niet gelezen worden; er gaat niets naar Floriday."
243
- : "Wacht op een goedgekeurde controlescan voordat Floriday de verzendbrief aanmaakt.");
244
- continue;
245
- }
246
- const { createFlorydayDeliveryNote } = await import("./floridayDocuments.server.js");
247
- const startAanmaak = Date.now();
248
- const aangemaakt = await createFlorydayDeliveryNote(sb, row.order_number);
249
- await trace(sb, {
250
- ...basis,
251
- step: "Floriday: verzendbrief aanvragen",
252
- status: aangemaakt.fulfillmentOrderId ? "geslaagd" : aangemaakt.ok ? "wachtend" : "mislukt",
253
- externalSystem: "floriday",
254
- externalAction: "fulfillment-order aanmaken",
255
- ...(aangemaakt.fulfillmentOrderId ? { externalRef: aangemaakt.fulfillmentOrderId } : {}),
256
- externalResponse: aangemaakt,
257
- durationMs: Date.now() - startAanmaak,
258
- ...(aangemaakt.error ? { error: aangemaakt.error } : {}),
235
+ // Stap 1 bestaat niet meer: de Engine maakt nooit zelf een
236
+ // afleveropdracht aan. Alleen het vaste kenmerk van Afhandeling
237
+ // overnemen, en pas als Afhandeling het met succes verstuurde.
238
+ const { data: kenmerk } = await sb.rpc("logistics_afhandeling_fulfillment_order", {
239
+ _order_id: row.order_id,
259
240
  });
260
- if (aangemaakt.fulfillmentOrderId) {
261
- bestaandeFo = aangemaakt.fulfillmentOrderId;
262
- await sb
263
- .from("logistics_slip_shipping_note")
264
- .update({ fulfillment_order_id: bestaandeFo })
265
- .eq("id", row.id)
266
- .is("fulfillment_order_id", null);
267
- }
268
- else if (aangemaakt.skipped) {
269
- await houdVast(aangemaakt.error ?? "De poort staat het aanmaken van de verzendbrief niet toe.");
270
- continue;
271
- }
272
- else if (!aangemaakt.ok && isKenmerkOntbreekt(aangemaakt.error)) {
273
- // Vaste kenmerken zijn van Afhandeling; de Engine maakt ze nooit zelf.
241
+ const k = (kenmerk ?? {});
242
+ const foAfh = String(k.fulfillmentOrderId ?? "").trim() || null;
243
+ if (!foAfh || k.verstuurd !== true) {
274
244
  await sb.rpc("logistics_slip_note_hold_kenmerk", {
275
245
  _id: row.id,
276
- _reason: `Wacht op vast kenmerk van Afhandeling: ${aangemaakt.error}`,
246
+ _reason: foAfh
247
+ ? "Wacht tot Afhandeling de belading met succes naar Floriday heeft gestuurd."
248
+ : "Wacht op vast kenmerk van Afhandeling.",
277
249
  });
278
250
  run.waiting++;
279
251
  await trace(sb, {
@@ -281,16 +253,13 @@ export async function runShippingNoteQueue(sb, options = {}) {
281
253
  step: "Wacht op vast kenmerk van Afhandeling",
282
254
  status: "wachtend",
283
255
  decision: "wacht_op_kenmerk",
284
- reason: aangemaakt.error ?? "Vast kenmerk ontbreekt.",
285
- rule: "Afhandeling is eigenaar van fulfillmentOrderId/loadCarrierReference/loadCarrierItemId",
286
- nextStep: "Gaat pas verder als Afhandeling het kenmerk vastlegt of belading_verstuurder op 'afhandeling' staat",
256
+ reason: foAfh ? "Kenmerk vastgelegd, nog niet verstuurd." : "Nog geen kenmerk van Afhandeling.",
257
+ rule: "Afhandeling is eigenaar van de afleveropdracht en haar vaste kenmerken",
258
+ nextStep: "Gaat vanzelf verder zodra Afhandeling met succes verstuurde",
287
259
  });
288
260
  continue;
289
261
  }
290
- else if (!aangemaakt.ok) {
291
- await wacht(`Wachten op Floriday-verzendbrief: ${aangemaakt.error ?? "Floriday heeft het document nog niet aangemaakt."}`, aangemaakt.skipped ? "nog_niet_beschikbaar" : classifyFloridayReason(aangemaakt.error ?? ""));
292
- continue;
293
- }
262
+ bestaandeFo = foAfh;
294
263
  }
295
264
  // Stap 2: status bij Floriday teruglezen. Alleen bij ACCEPTED/DELIVERED
296
265
  // bestaat het officiële document; FAILED is definitief met Floridays reden.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/logistiek-engine",
3
- "version": "1.0.128",
3
+ "version": "1.0.131",
4
4
  "flowselections": {
5
5
  "moduleId": "logistiek-engine",
6
6
  "pages": [