@flowselections/logistiek-engine 1.0.159 → 1.0.163
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/components/MinuutrondeCard.d.ts.map +1 -1
- package/dist-lib/components/MinuutrondeCard.js +1 -1
- package/dist-lib/hooks/useMinuutronde.d.ts +5 -0
- package/dist-lib/hooks/useMinuutronde.d.ts.map +1 -1
- package/dist-lib/hooks/useMinuutronde.js +3 -0
- package/dist-lib/integrations/supabase/types.d.ts +272 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
- package/dist-lib/lib/modulePrompts.js +107 -0
- package/dist-lib/lib/moduleVersion.d.ts +1 -1
- package/dist-lib/lib/moduleVersion.js +1 -1
- package/dist-lib/lib/planQueue.server.d.ts +2 -0
- package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/planQueue.server.js +11 -0
- package/package.json +1 -1
|
@@ -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;
|
|
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;AAuxLD,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"}
|
|
@@ -1050,6 +1050,113 @@ REGELS
|
|
|
1050
1050
|
CONTROLELIJST
|
|
1051
1051
|
[ ] Buffer met 2 orders en 2 karren: beide orders tonen 2 karren, "gedeeld".
|
|
1052
1052
|
[ ] Losse order: geen "gedeeld".
|
|
1053
|
+
[ ] Meld terug met je pakketversie.`,
|
|
1054
|
+
},
|
|
1055
|
+
{
|
|
1056
|
+
number: 24,
|
|
1057
|
+
title: "Ophaalmoment uitsluitend uit logistics_order_departure",
|
|
1058
|
+
date: "2026-10-19",
|
|
1059
|
+
summary: "Verkoop rekent ophalen/aanmelden zelf en toont bij HO-2601441 wo 21-10; de juiste uitkomst is di 20-10 15:00. Toon alleen wat de Engine teruggeeft.",
|
|
1060
|
+
body: `KOPPELPROMPT VERKOOP 24 – vereist Logistiek Engine 1.0.160
|
|
1061
|
+
|
|
1062
|
+
WAAROM
|
|
1063
|
+
Bij HO-2601441 (levering wo 21 okt 08:00, vervoerder met ophaalmoment
|
|
1064
|
+
"1 werkdag vóór levering 15:00, aanmelden 13:00") toont Verkoop
|
|
1065
|
+
"wo 21 okt 15:00 ophalen · aanmelden di 20 okt 13:00 · aanlevering 08:00".
|
|
1066
|
+
Dat klopt niet: ophalen is di 20 okt 15:00, aanmelden di 20 okt 13:00.
|
|
1067
|
+
Verkoop rekent het ophaalmoment zelf uit en telt de dagen voor ophalen niet
|
|
1068
|
+
terug. Pickstation, taken en karren gebruiken de Engine-uitkomst; Verkoop
|
|
1069
|
+
moet exact hetzelfde tonen.
|
|
1070
|
+
|
|
1071
|
+
WAT ER IS
|
|
1072
|
+
public.logistics_order_departure(p_order_id uuid) RETURNS jsonb
|
|
1073
|
+
Rechten: authenticated en service_role (niet anon). Eén aanroep per order.
|
|
1074
|
+
Velden (ontbrekend = null):
|
|
1075
|
+
- ok boolean – false als er geen geldig ophaalmoment is
|
|
1076
|
+
- reason text – Nederlandse reden als ok = false (of bij terugval op levermoment)
|
|
1077
|
+
- carrierId uuid – vervoerder van de order
|
|
1078
|
+
- momentKey text – ophaalmomentsleutel in Afhandeling-formaat, bv. "1@15:00|1@13:00"
|
|
1079
|
+
- departureAt timestamptz – ophaal/vertrekmoment
|
|
1080
|
+
- signupDeadline timestamptz – aanmelddeadline
|
|
1081
|
+
- lateSignup boolean – order kwam binnen na de aanmelddeadline
|
|
1082
|
+
Werkdagen komen uit logistics_is_pick_workday (incl. afwijkende dagen), de
|
|
1083
|
+
tijdzone uit Werktijden.
|
|
1084
|
+
|
|
1085
|
+
WAT JIJ DOET
|
|
1086
|
+
1. Verwijder de eigen berekening van ophaal- en aanmeldmoment in Verkoop.
|
|
1087
|
+
2. Toon "ophalen" uit departureAt en "aanmelden" uit signupDeadline, in de
|
|
1088
|
+
tijdzone die de Shell al gebruikt voor datums.
|
|
1089
|
+
3. lateSignup = true: toon "te laat aangemeld" naast het ophaalmoment.
|
|
1090
|
+
4. ok = false of geen antwoord: toon de reden uit reason, geen eigen
|
|
1091
|
+
berekening of terugvaltijd.
|
|
1092
|
+
5. "aanlevering" (levermoment van de order) mag blijven, maar los van het
|
|
1093
|
+
ophaalmoment.
|
|
1094
|
+
6. Meerdere orders tegelijk: roep per zichtbare order aan, of vraag de
|
|
1095
|
+
Engine om een lijstfunctie (meld dat terug); niet zelf rekenen.
|
|
1096
|
+
|
|
1097
|
+
REGELS
|
|
1098
|
+
- Match op id. Geen omgevingswaarden. Wijzig geen Engine-functies of -rechten.
|
|
1099
|
+
- Teksten in "je"-vorm, zonder technische termen.
|
|
1100
|
+
|
|
1101
|
+
CONTROLELIJST
|
|
1102
|
+
[ ] HO-2601441: "di 20 okt 15:00 ophalen · aanmelden di 20 okt 13:00".
|
|
1103
|
+
[ ] FO-2601440 (levering ma 26 okt): "vr 23 okt 15:00 ophalen".
|
|
1104
|
+
[ ] MO-2601442: "wo 21 okt 09:30 ophalen".
|
|
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.
|
|
1053
1160
|
[ ] Meld terug met je pakketversie.`,
|
|
1054
1161
|
},
|
|
1055
1162
|
],
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const MODULE_VERSION = "1.0.
|
|
1
|
+
export declare const MODULE_VERSION = "1.0.163";
|
|
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.163";
|
|
@@ -14,6 +14,8 @@ export declare function runPlanQueue(sb: SupabaseClient, options?: {
|
|
|
14
14
|
deadlineAt?: number;
|
|
15
15
|
limit?: number | null;
|
|
16
16
|
}): Promise<PlanQueueResult>;
|
|
17
|
+
/** Elke minuut: vertrek op nieuwe karren en taakstatus laten meelopen (alleen nieuwe orders). */
|
|
18
|
+
export declare const FOLLOW_UP_CALLS: readonly ["logistics_fill_cart_departure", "logistics_sync_task_status"];
|
|
17
19
|
/** Ruimt afgeronde wachtrijrijen op volgens de ingestelde bewaartermijn. */
|
|
18
20
|
export declare function prunePlanQueue(sb: SupabaseClient): Promise<void>;
|
|
19
21
|
//# sourceMappingURL=planQueue.server.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"planQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/planQueue.server.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAwBD,wFAAwF;AACxF,wBAAsB,YAAY,CAChC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC3D,OAAO,CAAC,eAAe,CAAC,CAwR1B;
|
|
1
|
+
{"version":3,"file":"planQueue.server.d.ts","sourceRoot":"","sources":["../../src/lib/planQueue.server.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAQ5D,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,2FAA2F;IAC3F,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAwBD,wFAAwF;AACxF,wBAAsB,YAAY,CAChC,EAAE,EAAE,cAAc,EAClB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAO,GAC3D,OAAO,CAAC,eAAe,CAAC,CAwR1B;AAgCD,iGAAiG;AACjG,eAAO,MAAM,eAAe,0EAA2E,CAAC;AAgCxG,4EAA4E;AAE5E,wBAAsB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
|
|
@@ -310,6 +310,16 @@ async function runDayLevelSteps(sb, dates, result) {
|
|
|
310
310
|
if (error && result.errors.length < 10)
|
|
311
311
|
result.errors.push(`${call.fn}: ${error.message}`);
|
|
312
312
|
}
|
|
313
|
+
await runCartAndTaskFollowUp(sb, result);
|
|
314
|
+
}
|
|
315
|
+
/** Elke minuut: vertrek op nieuwe karren en taakstatus laten meelopen (alleen nieuwe orders). */
|
|
316
|
+
export const FOLLOW_UP_CALLS = ["logistics_fill_cart_departure", "logistics_sync_task_status"];
|
|
317
|
+
async function runCartAndTaskFollowUp(sb, result) {
|
|
318
|
+
for (const fn of FOLLOW_UP_CALLS) {
|
|
319
|
+
const { error } = await sb.rpc(fn, {});
|
|
320
|
+
if (error && result.errors.length < 10)
|
|
321
|
+
result.errors.push(`${fn}: ${error.message}`);
|
|
322
|
+
}
|
|
313
323
|
}
|
|
314
324
|
/** Werkt alleen de pickwachtrij bij, ook als er niets te plannen viel. */
|
|
315
325
|
async function syncPickQueue(sb, result) {
|
|
@@ -322,6 +332,7 @@ async function syncPickQueue(sb, result) {
|
|
|
322
332
|
if (pruneError && result.errors.length < 10) {
|
|
323
333
|
result.errors.push(`logistics_prune_buffer_member_queue: ${pruneError.message}`);
|
|
324
334
|
}
|
|
335
|
+
await runCartAndTaskFollowUp(sb, result);
|
|
325
336
|
// Ook zonder nieuwe planning schuift de reis van bestaande orders door.
|
|
326
337
|
const { error: traceError } = await sb.rpc("logistics_trace_progress", { p_limit: 200 });
|
|
327
338
|
if (traceError && result.errors.length < 10) {
|