@flowselections/logistiek-engine 1.0.16 → 1.0.18

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 (33) hide show
  1. package/dist-lib/components/RuleEnginePage.js +1 -1
  2. package/dist-lib/components/rule-engine/RuleFieldInput.d.ts +1 -1
  3. package/dist-lib/components/rule-engine/RuleFieldInput.d.ts.map +1 -1
  4. package/dist-lib/components/rule-engine/RuleFieldInput.js +11 -3
  5. package/dist-lib/hooks/useDocumentLayouts.d.ts +1 -0
  6. package/dist-lib/hooks/useDocumentLayouts.d.ts.map +1 -1
  7. package/dist-lib/hooks/useDocumentLayouts.js +8 -1
  8. package/dist-lib/integrations/supabase/auth-middleware.d.ts +55 -1
  9. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  10. package/dist-lib/integrations/supabase/client.server.d.ts +55 -1
  11. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  12. package/dist-lib/integrations/supabase/moduleClient.d.ts +55 -1
  13. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  14. package/dist-lib/integrations/supabase/types.d.ts +58 -1
  15. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  16. package/dist-lib/lib/floridayDocuments.functions.d.ts +165 -3
  17. package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
  18. package/dist-lib/lib/floridayPush.functions.d.ts +55 -1
  19. package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
  20. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +275 -5
  21. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
  22. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +110 -2
  23. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
  24. package/dist-lib/lib/logisticsRecalculate.functions.d.ts +55 -1
  25. package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
  26. package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
  27. package/dist-lib/lib/modulePrompts.js +159 -0
  28. package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
  29. package/dist-lib/lib/planQueue.server.js +12 -0
  30. package/dist-lib/lib/ruleEngineSchema.d.ts +7 -1
  31. package/dist-lib/lib/ruleEngineSchema.d.ts.map +1 -1
  32. package/dist-lib/lib/ruleEngineSchema.js +48 -8
  33. package/package.json +1 -1
@@ -330,6 +330,62 @@ Regels:
330
330
  - Stuur loadCarrierType in logistics_emit_event en logistics_buffer_decision altijd
331
331
  met een van bovenstaande codes mee, nooit met een eigen naam of vrije tekst.`,
332
332
  },
333
+ {
334
+ number: 6,
335
+ title: "Karindeling: eigen planner eruit, Engine-planner erin",
336
+ date: "2026-08-27",
337
+ summary: "Nieuwe eis bovenop prompt 1 t/m 5: /api/public/cron/replan-carts schrijft nog eigen karren met algorithm_version 1 en valt terug op 1×1×1.",
338
+ body: `AANVULLING op koppelprompt 1 t/m 5 (die blijven gewoon geldig).
339
+
340
+ GEMETEN PROBLEEM (Mathot productie, 27-08-2026)
341
+ public.order_carts bevat 11.560 rijen met algorithm_version = 1, nog steeds
342
+ groeiend (laatste 13:12:59). Zetten we cron 113 (elke minuut naar
343
+ /api/public/cron/replan-carts) uit, dan stopt de aanwas onmiddellijk. De
344
+ schrijver is dus de Verkoop-module.
345
+
346
+ Bewijs in de Verkoop-module:
347
+ - src/lib/cart-replan.functions.ts, regel ~178-190: INSERT in order_carts met
348
+ algorithm_version: CART_PLANNER_VERSION.
349
+ - src/lib/cart-planner.ts, regel 14: export const CART_PLANNER_VERSION = 1.
350
+ - src/lib/cart-replan.functions.ts, regel ~208: INSERT in order_cart_items.
351
+ - src/lib/create-order.functions.ts, regel ~1196 + ~1203 en ~1296 + ~1313:
352
+ INSERTs die algorithm_version en source helemaal niet zetten, dus de
353
+ kolomdefaults ('auto', 1) gebruiken.
354
+ - Dit pad rekent zélf (planCarts uit src/lib/cart-planner.ts). Het roept de
355
+ gedeelde Engine-planner (loadCarrierPlanning / planByFloridayPacking,
356
+ LOAD_CARRIER_PLANNER_VERSION = 3) NIET aan.
357
+ - Terugval bij ontbrekende belading: in de mapping naar PlannerInputItem staat
358
+ overal \`?? 1\` (plants_per_crate, crates_per_layer, layers_per_cart). Bij een
359
+ order zonder bekende belading levert dat stilzwijgend 1×1×1 op — precies wat de
360
+ beslisregel van 26-08 verbiedt. De guard (B1/B2/B3) zit niet in dit pad.
361
+
362
+ WAT ER MOET GEBEUREN — voorkeur A, minimaal B.
363
+
364
+ A (voorkeur). Laat /api/public/cron/replan-carts niet meer zelf rekenen.
365
+ Roep de gedeelde planner van de Logistics Engine aan
366
+ (@flowselections/logistiek-engine → loadCarrierPlanning /
367
+ planByFloridayPacking) en schrijf uitsluitend het resultaat weg. Verwijder
368
+ src/lib/cart-planner.ts als schrijfpad. Reden: één rekenhart, dus geen derde
369
+ afwijkende indeling naast TS en SQL.
370
+
371
+ B (alleen als A nu te groot is, en dan als tussenstap):
372
+ - Zet in ELKE INSERT in order_carts expliciet
373
+ algorithm_version: LOAD_CARRIER_PLANNER_VERSION (nu 3) en source
374
+ ('auto' | 'manual' | 'floriday'). Ook in create-order.functions.ts regel
375
+ ~1196 en ~1296. Vertrouw nooit op de kolomdefault.
376
+ - Neem dezelfde guard over als de Engine: is de belading van een orderregel
377
+ onbekend (geen plants_per_crate / crates_per_layer / layers_per_cart op de
378
+ regel én niet op het product), dan wordt die regel NIET ingedeeld. Geen
379
+ \`?? 1\`, nooit terugvallen op 1×1×1. Meld het als blokkade op de order,
380
+ zodat een medewerker de belading invult.
381
+ - Verwijder alle bestaande rijen met algorithm_version < 3 pas nadat A of B
382
+ live is; anders komen ze binnen een minuut terug.
383
+
384
+ NIET DOEN
385
+ - De kolomdefaults van order_carts niet weghalen en algorithm_version niet
386
+ NOT NULL maken; dat kan pas als alle schrijfpaden de kolom zetten.
387
+ - De beslisregel van 26-08 (B1/B2/B3) niet wijzigen — alleen overnemen.`,
388
+ },
333
389
  ],
334
390
  },
335
391
  afhandeling: {
@@ -746,6 +802,79 @@ CONTROLELIJST
746
802
  [ ] Geen eigen indeling of eigen taken als fallback.
747
803
  [ ] Weergave werkt bij zonder handmatig verversen.`,
748
804
  },
805
+ {
806
+ number: 10,
807
+ title: "Instellingen opschonen: planning en printen komen van de Engine/Layout maker",
808
+ date: "2026-08-27",
809
+ summary: "Nieuwe eis bovenop prompt 1 t/m 9: de settingscard 'Afhandeling — Planning' wordt opgeruimd.",
810
+ body: `AANVULLING op prompt 1 t/m 9 (die blijven gewoon geldig).
811
+
812
+ De settingscard "Afhandeling — Planning" bevat een aantal velden die inmiddels
813
+ worden bepaald door de Logistics Engine of de Layout maker. Deze module mag die
814
+ velden niet meer zelf uitlezen of tonen.
815
+
816
+ Haal weg uit de settingscard en bijbehorende schermen:
817
+
818
+ 1. "Aantal pickdagen (werkdagen vóór ophaaldag)"
819
+ 2. "Extra pickdagen bij stickers"
820
+ 3. "Orderpickdagen (werkdagen)"
821
+ 4. "Pickverdeling over werkdagen"
822
+ 5. "Automatische Floriday-verwerking pauzeren"
823
+ 6. "Afleverbrief automatisch printen"
824
+ 7. "Werkplek (voor printen)"
825
+
826
+ Waarom deze velden overbodig zijn:
827
+ - Aantal pickdagen, extra pickdagen, orderpickdagen en pickverdeling worden
828
+ volledig bepaald door de Logistics Engine (stap 3 "Order picken" en
829
+ ophaalmomenten). De Engine plant planned_start en planned_end per taak.
830
+ - "Automatische Floriday-verwerking pauzeren" heeft geen lezer meer in deze
831
+ module.
832
+ - "Afleverbrief automatisch printen" is geen printerkeuze maar een trigger.
833
+ De Logistics Engine neemt die trigger over: Afhandeling maakt zelf geen
834
+ printopdrachten meer aan voor afleverbrieven, maar consumeert
835
+ print.shipping_note-taken uit public.logistics_tasks. De Engine bepaalt of
836
+ en wanneer een afleverbrief wordt vrijgegeven voor printen.
837
+ - "Werkplek (voor printen)" is overbodig omdat locatiegebonden printen het
838
+ domein is van de Logistics Engine (via print_plek_id in de taak-payload).
839
+ Zonder werkplek en zonder print_plek_id valt de Layout maker terug op de
840
+ standaardlayout of standaardregels voor documenttype "afleverbrief".
841
+
842
+ Printer-beslisvolgorde in de Layout maker:
843
+
844
+ 1. printer_id op de opdracht (expliciet meegegeven)
845
+ 2. print_plek_id -> regel van de printplek
846
+ 3. werkplek -> printplek van die computer, dan werkplek-uitzondering
847
+ 4. printer gekoppeld aan de (standaard)layout van het documenttype
848
+ 5. standaardregel: documenttype + papierformaat
849
+ 6. standaardregel: documenttype alleen
850
+
851
+ Zonder werkplek en zonder print_plek_id slaat een afleverbrief-print stap 1-3
852
+ over en komt hij op de printer van de standaardlayout of de standaardregels
853
+ uit. Wil men locatiegebonden printen, dan moet dat via de Logistics Engine
854
+ (print_plek_id) of een expliciete printer_id op de opdracht.
855
+
856
+ Wat blijft staan:
857
+ - "Aanmeldmail vervoerders" (+ minuten vóór aanmelddeadline en e-mail-doeleinde)
858
+ blijft bestaan. Dat is eigen functionaliteit van de Afhandeling-module.
859
+
860
+ Voorwaarde:
861
+ Er moet minstens één printer voor documenttype "afleverbrief" zijn ingesteld
862
+ in de Layout maker: hetzij aan de standaardlayout, hetzij via
863
+ Layouts en printers -> Standaardregels. Ontbreekt die, dan mislukt de
864
+ automatische print met de leesbare foutmelding:
865
+ "Geen printer voor afleverbrief — stel dit in bij Layouts en printers → Routering".
866
+
867
+ Database:
868
+ - Droppen geen kolommen of rijen. De kolommen in afhandeling_settings blijven
869
+ staan, maar worden niet meer gelezen of getoond.
870
+
871
+ CONTROLELIJST
872
+ [ ] Alle zeven velden zijn verwijderd uit de settingscard.
873
+ [ ] Aanmeldmail-instellingen zijn nog zichtbaar en werken nog.
874
+ [ ] Er worden geen eigen planningsberekeningen meer gedaan; alles komt uit public.logistics_tasks.
875
+ [ ] Afleverbrieven worden alleen nog aangemaakt via print.shipping_note-taken, niet spontaan.
876
+ [ ] De kolommen in afhandeling_settings zijn niet gedropt.`,
877
+ },
749
878
  ],
750
879
  },
751
880
  pickschermen: {
@@ -1026,6 +1155,36 @@ CONTROLELIJST
1026
1155
  [ ] Nieuwe printopdrachten bevatten payload.print_plek_id.
1027
1156
  [ ] Deze module kiest nergens zelf een printer.`,
1028
1157
  },
1158
+ {
1159
+ number: 9,
1160
+ title: "Layout per ordersoort uit de Engine, anders de actieve layout",
1161
+ date: "2026-08-26",
1162
+ summary: "De Engine stuurt per werkwijze (ordersoort) een layout mee; is dat veld leeg, dan wint de actieve layout uit de Layout maker.",
1163
+ body: `Deze prompt vervangt niets uit prompt 1 t/m 8; hij komt er bovenop.
1164
+
1165
+ Wat er verandert in de Logistiek Engine: per werkwijze (ordersoort) kan een
1166
+ gebruiker voor pakbon, sticker, verzendbrief en productiebon kiezen welke
1167
+ layout gebruikt wordt. Kiest hij "Automatisch", dan blijft print_jobs.layout_id
1168
+ leeg. Dat is een geldige situatie, geen fout.
1169
+
1170
+ Vaste volgorde bij het bepalen van wat er geprint wordt:
1171
+ 1. Kant-en-klare PDF (pdf_url / pdf_base64, bijvoorbeeld Floriday- of
1172
+ klantstickers): ongewijzigd printen, layout negeren.
1173
+ 2. print_jobs.layout_id gevuld: exact die layout renderen.
1174
+ 3. Layout_id leeg: de layout die bij dat documenttype op actief staat.
1175
+ 4. Geen van alle: opdracht op mislukt met de leesbare reden
1176
+ "Maak een layout aan en zet die op actief."
1177
+
1178
+ Regels:
1179
+ - Kies nooit zelf een andere layout wanneer layout_id gevuld is.
1180
+ - Verander de meegestuurde printplek niet; de printer komt uit de Layout maker.
1181
+ - Hardcode geen layout-, printer- of documenttypenamen.
1182
+
1183
+ CONTROLELIJST
1184
+ [ ] Order met meegestuurde layout gebruikt exact die layout.
1185
+ [ ] Order zonder layout gebruikt de actieve layout van dat documenttype.
1186
+ [ ] Floriday-PDF wordt ongewijzigd geprint.`,
1187
+ },
1029
1188
  ],
1030
1189
  },
1031
1190
  scanners: {
@@ -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;AAI5D,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,CAiG1B;AA2BD,4EAA4E;AAC5E,wBAAsB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
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;AAI5D,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,CAsG1B;AAmCD,4EAA4E;AAE5E,wBAAsB,cAAc,CAAC,EAAE,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC,CAEtE"}
@@ -115,6 +115,11 @@ export async function runPlanQueue(sb, options = {}) {
115
115
  if (result.planned > 0) {
116
116
  await runDayLevelSteps(sb, touchedDates, result);
117
117
  }
118
+ else {
119
+ // De pickwachtrij is een reconciliatie tussen orders en pick_queue en mag
120
+ // niet afhangen van of er deze minuut iets gepland is.
121
+ await syncPickQueue(sb, result);
122
+ }
118
123
  return result;
119
124
  }
120
125
  /** Dagniveau-stappen: taken inplannen, tellingen bijwerken en capaciteit controleren. */
@@ -136,6 +141,13 @@ async function runDayLevelSteps(sb, dates, result) {
136
141
  result.errors.push(`${call.fn}: ${error.message}`);
137
142
  }
138
143
  }
144
+ /** Werkt alleen de pickwachtrij bij, ook als er niets te plannen viel. */
145
+ async function syncPickQueue(sb, result) {
146
+ const { error } = await sb.rpc("logistics_sync_pick_queue", {});
147
+ if (error && result.errors.length < 10) {
148
+ result.errors.push(`logistics_sync_pick_queue: ${error.message}`);
149
+ }
150
+ }
139
151
  /** Ruimt afgeronde wachtrijrijen op volgens de ingestelde bewaartermijn. */
140
152
  export async function prunePlanQueue(sb) {
141
153
  await sb.rpc("logistics_plan_prune");
@@ -1,4 +1,4 @@
1
- export type FieldType = "toggle" | "select" | "number" | "text" | "textarea" | "time" | "priority" | "radio" | "days" | "layout" | "pickstation";
1
+ export type FieldType = "toggle" | "select" | "number" | "text" | "textarea" | "time" | "priority" | "radio" | "days" | "layout" | "pickstation" | "guidance";
2
2
  export interface FieldOption {
3
3
  value: string;
4
4
  label: string;
@@ -24,6 +24,12 @@ export interface RuleField {
24
24
  default?: unknown;
25
25
  /** Alleen bij type "layout": welke documenttypes uit de Layout maker gekozen mogen worden. */
26
26
  layoutTypes?: string[];
27
+ /** Alleen bij type "guidance": uitleg over waar je wat instelt. */
28
+ guidance?: {
29
+ engine: string;
30
+ layoutMaker: string;
31
+ pickstations: string;
32
+ };
27
33
  /** Veld alleen tonen als een ander veld deze waarde heeft. Optioneel uit een andere stap via `step`. */
28
34
  dependsOn?: RuleDependency | RuleDependency[];
29
35
  }
@@ -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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"}
@@ -654,10 +654,20 @@ export const RULE_STEPS = [
654
654
  { key: "packing_slip_station", label: "Pickstation", type: "pickstation" },
655
655
  {
656
656
  key: "packing_slip_layout",
657
- label: "Layout",
657
+ label: "Welke layout voor dit soort orders?",
658
658
  type: "layout",
659
659
  layoutTypes: ["pakbon"],
660
- description: "Welke layout uit de Layout maker gebruikt wordt voor de pakbon.",
660
+ description: "Kies de layout die bij dit soort orders hoort. Op \u201cAutomatisch\u201d pakt de Layout maker zijn eigen actieve layout. Levert Floriday een kant-en-klare pakbon als PDF, dan wordt die altijd gebruikt.",
661
+ },
662
+ {
663
+ key: "packing_slip_help",
664
+ label: "Waar stel ik dit in?",
665
+ type: "guidance",
666
+ guidance: {
667
+ engine: "Hier bepaal je w\u00e1nneer de pakbon vrijkomt, naar welk pickstation hij gaat en welke layout bij dit soort orders hoort.",
668
+ layoutMaker: "In de Layout maker teken je de layout zelf, zet je er \u00e9\u00e9n op actief en koppel je printplekken aan computers en printers. Welke printer er print, bepaal je daar.",
669
+ pickstations: "Op de pickschermen koppel je elk pickstation aan een printplek uit de Layout maker. Ontbreekt die koppeling, dan blijft de printopdracht wachten in plaats van op een willekeurige printer te belanden.",
670
+ },
661
671
  },
662
672
  ],
663
673
  },
@@ -696,10 +706,20 @@ export const RULE_STEPS = [
696
706
  { key: "sticker_station", label: "Pickstation", type: "pickstation" },
697
707
  {
698
708
  key: "sticker_layout",
699
- label: "Layout",
709
+ label: "Welke layout voor dit soort orders?",
700
710
  type: "layout",
701
711
  layoutTypes: ["sticker", "etiket"],
702
- description: "Welke layout uit de Layout maker gebruikt wordt voor stickers.",
712
+ description: "Kies de layout die bij dit soort orders hoort. Op \u201cAutomatisch\u201d pakt de Layout maker zijn eigen actieve layout. Levert Floriday kant-en-klare stickers als PDF, dan worden die altijd gebruikt.",
713
+ },
714
+ {
715
+ key: "sticker_help",
716
+ label: "Waar stel ik dit in?",
717
+ type: "guidance",
718
+ guidance: {
719
+ engine: "Hier bepaal je w\u00e1nneer de stickers vrijkomen, naar welk pickstation ze gaan en welke layout bij dit soort orders hoort.",
720
+ layoutMaker: "In de Layout maker teken je de layout zelf, zet je er \u00e9\u00e9n op actief en koppel je printplekken aan computers en printers. Welke printer er print, bepaal je daar.",
721
+ pickstations: "Op de pickschermen koppel je elk pickstation aan een printplek uit de Layout maker. Ontbreekt die koppeling, dan blijft de printopdracht wachten in plaats van op een willekeurige printer te belanden.",
722
+ },
703
723
  },
704
724
  ],
705
725
  },
@@ -722,10 +742,20 @@ export const RULE_STEPS = [
722
742
  { key: "shipping_note_station", label: "Pickstation", type: "pickstation" },
723
743
  {
724
744
  key: "shipping_note_layout",
725
- label: "Layout",
745
+ label: "Welke layout voor dit soort orders?",
726
746
  type: "layout",
727
747
  layoutTypes: ["transportdocument", "verzendlabel"],
728
- description: "Welke layout uit de Layout maker gebruikt wordt voor de verzendbrief.",
748
+ description: "Kies de layout die bij dit soort orders hoort. Op \u201cAutomatisch\u201d pakt de Layout maker zijn eigen actieve layout. Levert Floriday een kant-en-klare brief als PDF, dan wordt die altijd gebruikt.",
749
+ },
750
+ {
751
+ key: "shipping_note_help",
752
+ label: "Waar stel ik dit in?",
753
+ type: "guidance",
754
+ guidance: {
755
+ engine: "Hier bepaal je w\u00e1nneer de verzendbrief vrijkomt, naar welk pickstation hij gaat en welke layout bij dit soort orders hoort.",
756
+ layoutMaker: "In de Layout maker teken je de layout zelf, zet je er \u00e9\u00e9n op actief en koppel je printplekken aan computers en printers. Welke printer er print, bepaal je daar.",
757
+ pickstations: "Op de pickschermen koppel je elk pickstation aan een printplek uit de Layout maker. Ontbreekt die koppeling, dan blijft de printopdracht wachten in plaats van op een willekeurige printer te belanden.",
758
+ },
729
759
  },
730
760
  ],
731
761
  },
@@ -754,10 +784,20 @@ export const RULE_STEPS = [
754
784
  { key: "production_note_station", label: "Pickstation", type: "pickstation" },
755
785
  {
756
786
  key: "production_note_layout",
757
- label: "Layout",
787
+ label: "Welke layout voor dit soort orders?",
758
788
  type: "layout",
759
789
  layoutTypes: ["productiebon", "magazijnlijst"],
760
- description: "Welke layout uit de Layout maker gebruikt wordt voor de productiebon.",
790
+ description: "Kies de layout die bij dit soort orders hoort. Laat je dit op \u201cAutomatisch\u201d staan, dan pakt de Layout maker zijn eigen actieve layout.",
791
+ },
792
+ {
793
+ key: "production_note_help",
794
+ label: "Waar stel ik dit in?",
795
+ type: "guidance",
796
+ guidance: {
797
+ engine: "Hier bepaal je w\u00e1nneer de productiebon vrijkomt, naar welk pickstation hij gaat en welke layout bij dit soort orders hoort.",
798
+ layoutMaker: "In de Layout maker teken je de layout zelf, zet je er \u00e9\u00e9n op actief en koppel je printplekken aan computers en printers. Welke printer er print, bepaal je daar.",
799
+ pickstations: "Op de pickschermen koppel je elk pickstation aan een printplek uit de Layout maker. Ontbreekt die koppeling, dan blijft de printopdracht wachten in plaats van op een willekeurige printer te belanden.",
800
+ },
761
801
  },
762
802
  ],
763
803
  },
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/logistiek-engine",
3
- "version": "1.0.16",
3
+ "version": "1.0.18",
4
4
  "flowselections": {
5
5
  "moduleId": "logistiek-engine",
6
6
  "pages": [