@flowselections/logistiek-engine 1.0.129 → 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.
- package/dist-lib/integrations/supabase/types.d.ts +24 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/floridayDocuments.server.d.ts +4 -10
- package/dist-lib/lib/floridayDocuments.server.d.ts.map +1 -1
- package/dist-lib/lib/floridayDocuments.server.js +7 -88
- package/dist-lib/lib/floridayPush.server.d.ts.map +1 -1
- package/dist-lib/lib/floridayPush.server.js +4 -0
- package/dist-lib/lib/moduleVersion.d.ts +1 -1
- package/dist-lib/lib/moduleVersion.js +1 -1
- package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/shippingNoteQueue.server.js +15 -46
- package/package.json +1 -1
|
@@ -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
|
|
60
|
-
|
|
61
|
-
|
|
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":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,
|
|
1
|
+
{"version":3,"file":"floridayDocuments.server.d.ts","sourceRoot":"","sources":["../../src/lib/floridayDocuments.server.ts"],"names":[],"mappings":"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"}
|
|
@@ -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,
|
|
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
|
|
86
|
-
|
|
87
|
-
|
|
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
|
-
|
|
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,
|
|
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.
|
|
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.
|
|
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":"
|
|
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
|
-
//
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
}
|
|
240
|
-
|
|
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
|
-
|
|
261
|
-
|
|
262
|
-
|
|
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:
|
|
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:
|
|
285
|
-
rule: "Afhandeling is eigenaar van
|
|
286
|
-
nextStep: "Gaat
|
|
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
|
-
|
|
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.
|