@flowselections/logistiek-engine 1.0.153 → 1.0.155
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/BeheerPage.d.ts.map +1 -1
- package/dist-lib/components/BeheerPage.js +2 -1
- package/dist-lib/components/OpruimlijstKarrenCard.d.ts +2 -0
- package/dist-lib/components/OpruimlijstKarrenCard.d.ts.map +1 -0
- package/dist-lib/components/OpruimlijstKarrenCard.js +42 -0
- package/dist-lib/hooks/useWerkwijzeStatus.d.ts.map +1 -1
- package/dist-lib/hooks/useWerkwijzeStatus.js +28 -2
- package/dist-lib/integrations/supabase/types.d.ts +363 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/autoSend.server.d.ts.map +1 -1
- package/dist-lib/lib/autoSend.server.js +9 -0
- package/dist-lib/lib/handlers/logistics-tick.server.js +8 -0
- package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
- package/dist-lib/lib/modulePrompts.js +212 -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 +9 -6
- 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;;;;;;
|
|
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"}
|
|
@@ -55,6 +55,15 @@ export async function runAutoSendQueue(sb, opts = {}) {
|
|
|
55
55
|
if (uitkomst.soort === "verstuurd") {
|
|
56
56
|
run.sent++;
|
|
57
57
|
await finish(true, null, res.status);
|
|
58
|
+
// Zelfde route als na handmatig versturen: verzendbrief direct klaarzetten.
|
|
59
|
+
try {
|
|
60
|
+
await sb.rpc("logistics_shipping_note_ensure_accepted", { p_order_id: row.order_id, p_limit: 50 });
|
|
61
|
+
const { runShippingNoteQueue } = await import("./shippingNoteQueue.server.js");
|
|
62
|
+
await runShippingNoteQueue(sb, { limit: 10 });
|
|
63
|
+
}
|
|
64
|
+
catch {
|
|
65
|
+
/* de minuutronde pakt het alsnog op */
|
|
66
|
+
}
|
|
58
67
|
}
|
|
59
68
|
else if (uitkomst.soort === "definitief") {
|
|
60
69
|
run.definitief++;
|
|
@@ -239,6 +239,14 @@ async function runTickRound(supabase, tickJob, ident) {
|
|
|
239
239
|
catch {
|
|
240
240
|
/* vrijgeven mag de ronde niet blokkeren */
|
|
241
241
|
}
|
|
242
|
+
// 1.0.153: belading door Floriday geaccepteerd (op welke manier ook
|
|
243
|
+
// verstuurd)? Dan per kar een verzendbriefaanvraag klaarzetten.
|
|
244
|
+
try {
|
|
245
|
+
await supabase.rpc("logistics_shipping_note_ensure_accepted", { p_order_id: null, p_limit: 100 });
|
|
246
|
+
}
|
|
247
|
+
catch {
|
|
248
|
+
/* mag de ronde niet blokkeren */
|
|
249
|
+
}
|
|
242
250
|
const { runShippingNoteQueue } = await import("../shippingNoteQueue.server.js");
|
|
243
251
|
if (typeof runShippingNoteQueue !== "function") {
|
|
244
252
|
throw new Error("Deze versie van de Logistiek Engine bevat geen verzendbriefverwerking. Werk de module bij.");
|
|
@@ -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;AAmiLD,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"}
|
|
@@ -1016,6 +1016,40 @@ CONTROLELIJST
|
|
|
1016
1016
|
[ ] Geen eigen ladingdragercontrole meer.
|
|
1017
1017
|
[ ] Nieuwe Floriday-order die wel wordt ingedeeld: geen mail.
|
|
1018
1018
|
[ ] Mail noemt de koper als klant.
|
|
1019
|
+
[ ] Meld terug met je pakketversie.`,
|
|
1020
|
+
},
|
|
1021
|
+
{
|
|
1022
|
+
number: 23,
|
|
1023
|
+
title: "Buffertotalen in logistics_order_plan_coverage_list",
|
|
1024
|
+
date: "2026-10-16",
|
|
1025
|
+
summary: "Nieuwe kolommen buffer_order_count en buffer_cart_count; tel karren per gecombineerde order, niet per order.",
|
|
1026
|
+
body: `KOPPELPROMPT VERKOOP 23 – vereist Logistiek Engine 1.0.153
|
|
1027
|
+
|
|
1028
|
+
WAAROM
|
|
1029
|
+
Verkoop telde karren per order op (FO-2601428 + FO-2601429: 3 in plaats van 2)
|
|
1030
|
+
en elke order kreeg "gedeeld" omdat buffer_id altijd gevuld is.
|
|
1031
|
+
|
|
1032
|
+
WAT ER IS
|
|
1033
|
+
public.logistics_order_plan_coverage_list(p_order_ids uuid[]) heeft twee extra
|
|
1034
|
+
kolommen; de bestaande kolommen en hun volgorde zijn ongewijzigd:
|
|
1035
|
+
- buffer_order_count int – aantal orders in dezelfde gecombineerde order
|
|
1036
|
+
(niet verwijderd, niet geannuleerd); 1 = losse order
|
|
1037
|
+
- buffer_cart_count int – aantal unieke karren van de hele gecombineerde order
|
|
1038
|
+
(een gedeelde kar telt één keer)
|
|
1039
|
+
Rechten ongewijzigd: alleen ingelogde gebruikers (authenticated, service_role).
|
|
1040
|
+
|
|
1041
|
+
WAT JIJ DOET
|
|
1042
|
+
1. Toon "gedeeld" alleen als buffer_order_count > 1, niet op buffer_id.
|
|
1043
|
+
2. Toon het aantal karren van een gecombineerde order uit buffer_cart_count;
|
|
1044
|
+
tel cart_count van de losse orders niet bij elkaar op.
|
|
1045
|
+
3. Maximaal 1000 order-id's per aanroep, zoals nu.
|
|
1046
|
+
|
|
1047
|
+
REGELS
|
|
1048
|
+
- Match op id. Geen omgevingswaarden. Wijzig geen Engine-functies of -rechten.
|
|
1049
|
+
|
|
1050
|
+
CONTROLELIJST
|
|
1051
|
+
[ ] Buffer met 2 orders en 2 karren: beide orders tonen 2 karren, "gedeeld".
|
|
1052
|
+
[ ] Losse order: geen "gedeeld".
|
|
1019
1053
|
[ ] Meld terug met je pakketversie.`,
|
|
1020
1054
|
},
|
|
1021
1055
|
],
|
|
@@ -2096,6 +2130,98 @@ CENTRAL_AUTH_URL ontbreekt — poging 0 van 5".
|
|
|
2096
2130
|
CONTROLELIJST
|
|
2097
2131
|
[ ] Antwoord bevat code (of status) en error zoals hierboven.
|
|
2098
2132
|
[ ] Handtekening van de Engine wordt geaccepteerd met dezelfde sleutel.
|
|
2133
|
+
[ ] Meld terug met je pakketversie.`,
|
|
2134
|
+
},
|
|
2135
|
+
{
|
|
2136
|
+
number: 25,
|
|
2137
|
+
title: "Zelfde vertrek als de planning: vervoerder, momentsleutel en vertrek per kar",
|
|
2138
|
+
date: "2026-10-16",
|
|
2139
|
+
summary: "Lees order_carts.carrier_id, pickup_moment_key, departure_at en late_signup over voor de aanmeldmail.",
|
|
2140
|
+
body: `KOPPELPROMPT AFHANDELING 25 – vereist Logistiek Engine 1.0.153
|
|
2141
|
+
|
|
2142
|
+
WAAROM
|
|
2143
|
+
De aanmeldmail en de planning moeten altijd hetzelfde vertrek gebruiken. De
|
|
2144
|
+
Engine rekent nu het vertrek met jouw regel uit planning.ts en legt het per
|
|
2145
|
+
kar vast.
|
|
2146
|
+
|
|
2147
|
+
WAT DE ENGINE DOET (alleen lezen in carriers)
|
|
2148
|
+
- Vervoerder per order, op id: eerst orders.custom_fields->>'carrier' (bestaat de
|
|
2149
|
+
vervoerder), dan het werkgebied zoals jouw afh_signup_groups, dan de
|
|
2150
|
+
standaardvervoerder (is_default).
|
|
2151
|
+
- Regel: bezorgdag = dag 0; per moment pickup_days en signup_days in WERKdagen
|
|
2152
|
+
terugtellen; kies het eerstvolgende moment waarvan de aanmelddeadline op het
|
|
2153
|
+
binnenkomstmoment van de order nog niet voorbij was; alle deadlines voorbij:
|
|
2154
|
+
het laatste moment, gemarkeerd "te laat aangemeld".
|
|
2155
|
+
- Werkdagen en tijdzone komen uit de instellingen bij Werktijden (pickwerkdagen),
|
|
2156
|
+
niet vast ma–vr.
|
|
2157
|
+
- Een moment zonder pickup_time of signup_time wordt overgeslagen; jij vult nu
|
|
2158
|
+
16:00/17:30 in. Voorstel: neem de Engine-regel over (geen standaardtijd).
|
|
2159
|
+
|
|
2160
|
+
NIEUWE KOLOMMEN IN order_carts (gevuld door de Engine)
|
|
2161
|
+
- carrier_id uuid
|
|
2162
|
+
- pickup_moment_key text, formaat "<pickup_days>@<pickup_time>|<signup_days>@<signup_time>", bijv. "1@15:00|1@13:00"
|
|
2163
|
+
- departure_at timestamptz (berekend vertrek)
|
|
2164
|
+
- late_signup boolean
|
|
2165
|
+
pickup_moment_id blijft leeg (carriers.pickup_moments heeft geen id per moment).
|
|
2166
|
+
Een kar met pickup_locked = true wordt niet overschreven.
|
|
2167
|
+
|
|
2168
|
+
WAT JIJ DOET
|
|
2169
|
+
1. Lees voor de aanmeldmail per kar carrier_id, pickup_moment_key en departure_at
|
|
2170
|
+
uit order_carts, op kar-id. Groepeer daarop; reken niet zelf opnieuw.
|
|
2171
|
+
2. Ontbreekt departure_at (oude orders): val terug op je huidige berekening en
|
|
2172
|
+
toon in "Details voor beheer" dat de planning nog niets vastlegde.
|
|
2173
|
+
3. Toon late_signup als "te laat aangemeld".
|
|
2174
|
+
4. Vervang in afh_subtract_workdays de vaste ma–vr door de pickwerkdagen
|
|
2175
|
+
(public.logistics_is_pick_workday(date)), zodat beide kanten dezelfde dagen tellen.
|
|
2176
|
+
|
|
2177
|
+
VERZENDBRIEF
|
|
2178
|
+
Na een geaccepteerde belading (automatisch, handmatig of buffer) zet de Engine
|
|
2179
|
+
nu zelf per kar de Floriday-verzendbrief klaar. Je hoeft niets extra aan te
|
|
2180
|
+
roepen; de route logistics-shipping-note-now blijft werken.
|
|
2181
|
+
|
|
2182
|
+
REGELS
|
|
2183
|
+
- Match op id. Geen omgevingswaarden. Wijzig geen Engine-functies of -rechten.
|
|
2184
|
+
|
|
2185
|
+
CONTROLELIJST
|
|
2186
|
+
[ ] Order levering maandag, geplaatst vrijdag vóór 13:00: mail en planning "vr 15:00".
|
|
2187
|
+
[ ] Na 13:00 geplaatst: "te laat aangemeld", nooit een dag zonder ophaalmoment.
|
|
2188
|
+
[ ] Mail gebruikt departure_at uit order_carts.
|
|
2189
|
+
[ ] Meld terug met je pakketversie.`,
|
|
2190
|
+
},
|
|
2191
|
+
{
|
|
2192
|
+
number: 26,
|
|
2193
|
+
title: "Werkdagen alleen via logistics_is_pick_workday (incl. afwijkende dagen)",
|
|
2194
|
+
date: "2026-10-16",
|
|
2195
|
+
summary: "Gebruik voor de aanmeldmail uitsluitend public.logistics_is_pick_workday(date) als werkdagbron.",
|
|
2196
|
+
body: `KOPPELPROMPT AFHANDELING 26 – vereist Logistiek Engine 1.0.154
|
|
2197
|
+
|
|
2198
|
+
WAAROM
|
|
2199
|
+
Werkdagen moeten op één plek worden bepaald. Vanaf 1.0.154 neemt de Engine
|
|
2200
|
+
ook de "Afwijkende dagen" uit Werktijden mee.
|
|
2201
|
+
|
|
2202
|
+
WAT public.logistics_is_pick_workday(p_date date) RETURNS boolean NU DOET
|
|
2203
|
+
1. Afwijkende dag als gesloten ingesteld → false.
|
|
2204
|
+
2. Afwijkende dag met geldige tijden (sluit > opent) → true, ook op een dag
|
|
2205
|
+
die normaal dicht is (bijv. zaterdag).
|
|
2206
|
+
3. Geen afwijkende dag → true als de weekdag in de pickwerkdagen van de
|
|
2207
|
+
werkwijze staat ÉN er een actief openingsvenster in Werktijden is.
|
|
2208
|
+
4. Tijdzone ontbreekt in Werktijden → fout (fail closed), geen standaard.
|
|
2209
|
+
Naam, argument, returntype en rechten zijn ongewijzigd.
|
|
2210
|
+
De tijden van een afwijkende dag staan in public.logistics_day_windows(date).
|
|
2211
|
+
|
|
2212
|
+
WAT JIJ DOET
|
|
2213
|
+
1. Gebruik in afh_subtract_workdays en overal in de aanmeldmail uitsluitend
|
|
2214
|
+
public.logistics_is_pick_workday(date) om werkdagen te tellen. Haal eigen
|
|
2215
|
+
weekdaglijsten (ma–vr) en eigen feestdaglogica weg.
|
|
2216
|
+
2. Vang de fout bij ontbrekende tijdzone af en toon die in "Details voor
|
|
2217
|
+
beheer"; reken niet door met een standaard.
|
|
2218
|
+
|
|
2219
|
+
REGELS
|
|
2220
|
+
- Wijzig geen Engine-functies of -rechten. Geen omgevingswaarden.
|
|
2221
|
+
|
|
2222
|
+
CONTROLELIJST
|
|
2223
|
+
[ ] Maandag als gesloten afwijkende dag: aanmelddeadline en ophaalmoment schuiven naar de vorige werkdag, gelijk aan de planning.
|
|
2224
|
+
[ ] Zaterdag met afwijkende tijden telt als werkdag.
|
|
2099
2225
|
[ ] Meld terug met je pakketversie.`,
|
|
2100
2226
|
},
|
|
2101
2227
|
],
|
|
@@ -3963,6 +4089,56 @@ CONTROLELIJST
|
|
|
3963
4089
|
[ ] Buffer van 2 karren: na print+scan kar 1 blijft "PB-…-K2 · Kar 2 van 2" staan.
|
|
3964
4090
|
[ ] Wachtende deelkar is zichtbaar met "wacht tot", niet printbaar.
|
|
3965
4091
|
[ ] pickstation_auto_send_status toont "Verstuurd (handmatig) om …" na handmatig versturen.
|
|
4092
|
+
[ ] Meld terug met je pakketversie.`,
|
|
4093
|
+
},
|
|
4094
|
+
{
|
|
4095
|
+
number: 47,
|
|
4096
|
+
title: "Velden per kar: fust, vertrek, begin pickvenster en reden",
|
|
4097
|
+
date: "2026-10-16",
|
|
4098
|
+
summary: "pickStartsAt/reasonCode in de karplanstatus; cartCrates/departureAt in pickregel en karplan.",
|
|
4099
|
+
body: `KOPPELPROMPT PICKSCHERMEN 47 – vereist Logistiek Engine 1.0.153
|
|
4100
|
+
|
|
4101
|
+
WAAROM
|
|
4102
|
+
Het pickstation moet tonen wanneer een kar vertrekt, hoeveel fust er op déze
|
|
4103
|
+
kar staat en wanneer het picken begint, zonder zelf tijden af te leiden.
|
|
4104
|
+
|
|
4105
|
+
NIEUWE VELDEN (ontbrekende waarde = null, nooit een terugvalwaarde)
|
|
4106
|
+
1. logistics_cart_plan_status(p_ref) (en dus ook de openbare variant):
|
|
4107
|
+
- pickStartsAt: ISO-tijd in UTC, begin van het pickvenster, of null
|
|
4108
|
+
- reasonCode: 'pick_window_not_started' | 'not_released' | 'plan_missing' | 'ready'
|
|
4109
|
+
- reason blijft bestaan (tekst voor de medewerker)
|
|
4110
|
+
2. pick_queue.payload (alleen karregels van de Engine, payload.cartRowFor gevuld):
|
|
4111
|
+
- cartCrates: fust op déze kar
|
|
4112
|
+
- bufferCrates: fust van alle karren van de order of gecombineerde order
|
|
4113
|
+
- departureAt: ISO UTC vertrekmoment van de kar, of null
|
|
4114
|
+
- pickStartsAt: ISO UTC begin pickvenster, of null
|
|
4115
|
+
- forcedPickDay: 'JJJJ-MM-DD' als de regel bewust vooruit is gemaakt
|
|
4116
|
+
- payload.crates blijft ongewijzigd (totaal), gebruik voortaan cartCrates
|
|
4117
|
+
3. pick_queue_cart_plan(_queue_item_id), in de root én in elk element van carts[]:
|
|
4118
|
+
- cartCrates, bufferCrates, departureAt, pickStartsAt
|
|
4119
|
+
- releaseAt: ISO UTC moment waarop de kar printbaar wordt, of null
|
|
4120
|
+
- releaseReason: tekst waarom de kar nog niet vrij is, of null
|
|
4121
|
+
- carrierId, pickupMomentKey, lateSignup (alleen in carts[])
|
|
4122
|
+
|
|
4123
|
+
WAT JE TOONT
|
|
4124
|
+
- reasonCode = 'pick_window_not_started' en pickStartsAt gevuld:
|
|
4125
|
+
"Wordt vrijgegeven <dag> <datum> om <tijd>" (tijdzone van de vestiging).
|
|
4126
|
+
- departureAt gevuld: "Vertrek <dag> <tijd>". Null: geen vertrektijd tonen.
|
|
4127
|
+
- Fust: cartCrates; eventueel "van <bufferCrates>" ernaast.
|
|
4128
|
+
- Vooruit printen: kies alleen werkdagen. pick_sync_pick_day geeft bij een
|
|
4129
|
+
niet-werkdag { error: 'Kies een werkdag om vooruit te printen.' }; toon die tekst.
|
|
4130
|
+
Bij een bewust gekozen werkdag zijn alle karren printbaar, behalve een
|
|
4131
|
+
deelkar die nog wacht (printbaar=false, wachtTot, wachtReden).
|
|
4132
|
+
|
|
4133
|
+
REGELS
|
|
4134
|
+
- Match op id (cartId, queue-id), nooit op naam. Niets hardcoded.
|
|
4135
|
+
- Wijzig geen rechten of RLS; de rechten van deze functies zijn ongewijzigd.
|
|
4136
|
+
|
|
4137
|
+
CONTROLELIJST
|
|
4138
|
+
[ ] Order met levering maandag, geplaatst vrijdag: pickdag vrijdag, vertrek volgens ophaalmoment.
|
|
4139
|
+
[ ] Niet-vrijgegeven kar toont "Wordt vrijgegeven … om …".
|
|
4140
|
+
[ ] Bufferkar toont het eigen aantal fust (cartCrates), niet het totaal.
|
|
4141
|
+
[ ] Vooruit printen op een werkdag maakt karren printbaar, behalve een wachtende deelkar.
|
|
3966
4142
|
[ ] Meld terug met je pakketversie.`,
|
|
3967
4143
|
},
|
|
3968
4144
|
],
|
|
@@ -5292,6 +5468,42 @@ CONTROLELIJST
|
|
|
5292
5468
|
[ ] Terugmelding met de telling per bron.
|
|
5293
5469
|
[ ] Melding sluit vanzelf als de bron sluit.
|
|
5294
5470
|
[ ] Teller daalt; geen meldingen van verzonden of geannuleerde orders.
|
|
5471
|
+
[ ] Meld terug met je pakketversie.`,
|
|
5472
|
+
},
|
|
5473
|
+
{
|
|
5474
|
+
number: 2,
|
|
5475
|
+
title: "Vertrek per ophaalmoment en karrencontrole vandaag",
|
|
5476
|
+
date: "2026-10-16",
|
|
5477
|
+
summary: "Twee alleen-lezen functies voor het dashboard: logistics_pickup_moments_today en control_today_scan_summary.",
|
|
5478
|
+
body: `KOPPELPROMPT DASHBOARDS 2 – vereist Logistiek Engine 1.0.153
|
|
5479
|
+
|
|
5480
|
+
WAAROM
|
|
5481
|
+
Je vroeg om het vertrek per ophaalmoment vandaag en de karrencontrole van
|
|
5482
|
+
vandaag. Beide functies zijn er nu; alleen lezen, alleen voor ingelogde gebruikers.
|
|
5483
|
+
|
|
5484
|
+
1. public.logistics_pickup_moments_today() returns jsonb (array):
|
|
5485
|
+
{ carrier_id, pickup_moment_key, departure_at, naam_vervoerder, karren_totaal, karren_klaar }
|
|
5486
|
+
- Gegroepeerd op order_carts.carrier_id + pickup_moment_key + departure_at, nooit op naam.
|
|
5487
|
+
- "Vandaag" = logistics_local_today(): karren uit logistics_cart_index(vandaag, vandaag)
|
|
5488
|
+
plus karren met departure_at op vandaag (tijdzone van de vestiging).
|
|
5489
|
+
- karren_klaar = karren met een goedgekeurde controlescan (afmelden legt die ook vast).
|
|
5490
|
+
- Karren zonder vertrek: één aparte rij met carrier_id = null, pickup_moment_key = null,
|
|
5491
|
+
departure_at = null. naam_vervoerder is alleen voor weergave.
|
|
5492
|
+
- pickup_moment_id blijft leeg; gebruik het niet.
|
|
5493
|
+
|
|
5494
|
+
2. public.control_today_scan_summary() returns jsonb:
|
|
5495
|
+
{ karren_totaal, karren_gescand, dag }
|
|
5496
|
+
- Op unieke kar uit logistics_cart_index(vandaag, vandaag); gescand = goedgekeurde scan.
|
|
5497
|
+
- Dit is dezelfde definitie als de Controlepost. control_get_todays_carts() telt
|
|
5498
|
+
karnummers (ook losse/oude); gebruik daarom deze functie en niet die combinatie.
|
|
5499
|
+
|
|
5500
|
+
REGELS
|
|
5501
|
+
- Match op id. Geen omgevingswaarden. Wijzig geen Engine-functies of -rechten.
|
|
5502
|
+
|
|
5503
|
+
CONTROLELIJST
|
|
5504
|
+
[ ] Tegel "Vertrek vandaag" toont per ophaalmoment totaal en klaar.
|
|
5505
|
+
[ ] Karren zonder vertrek staan in een eigen rij.
|
|
5506
|
+
[ ] Karrencontrole vandaag gelijk aan de Controlepost.
|
|
5295
5507
|
[ ] Meld terug met je pakketversie.`,
|
|
5296
5508
|
},
|
|
5297
5509
|
],
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare const MODULE_VERSION = "1.0.
|
|
1
|
+
export declare const MODULE_VERSION = "1.0.155";
|
|
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.155";
|
|
@@ -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,
|
|
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"}
|
|
@@ -333,12 +333,15 @@ export async function runShippingNoteQueue(sb, options = {}) {
|
|
|
333
333
|
continue;
|
|
334
334
|
}
|
|
335
335
|
// De pakbon is de bron voor printplek en kar; de printer kiest de Layout maker.
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
|
|
341
|
-
|
|
336
|
+
// Aanvragen die zijn klaargezet na een geaccepteerde belading (1.0.153)
|
|
337
|
+
// hebben geen pakbon-printopdracht: dan geldt de kar van de aanvraag zelf.
|
|
338
|
+
const naAcceptatie = String(row.batch_key ?? "").startsWith("na-acceptatie:");
|
|
339
|
+
const { data: slip } = naAcceptatie
|
|
340
|
+
? { data: null }
|
|
341
|
+
: await sb.from("print_jobs").select("payload, is_herprint").eq("id", row.slip_job_id).maybeSingle();
|
|
342
|
+
const slipRow = naAcceptatie
|
|
343
|
+
? { payload: { cart_id: row.cart_id }, is_herprint: false }
|
|
344
|
+
: (slip ?? null);
|
|
342
345
|
if (!slipRow) {
|
|
343
346
|
await faal("pakbon_verdwenen", "De bijbehorende pakbon bestaat niet meer; er wordt geen losse verzendbrief gemaakt.", fulfillmentOrderId);
|
|
344
347
|
continue;
|