@flowselections/floriday-afhandeling-module 1.0.25 → 1.0.27

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 (123) hide show
  1. package/dist-lib/components/afhandeling/CapacityWarning.d.ts +10 -0
  2. package/dist-lib/components/afhandeling/CapacityWarning.d.ts.map +1 -0
  3. package/dist-lib/components/afhandeling/CapacityWarning.js +12 -0
  4. package/dist-lib/components/afhandeling/ControlePage.d.ts.map +1 -1
  5. package/dist-lib/components/afhandeling/ControlePage.js +7 -2
  6. package/dist-lib/components/afhandeling/DagDetailDialog.d.ts.map +1 -1
  7. package/dist-lib/components/afhandeling/DagDetailDialog.js +158 -62
  8. package/dist-lib/components/afhandeling/LeveringenPage.d.ts.map +1 -1
  9. package/dist-lib/components/afhandeling/LeveringenPage.js +2 -10
  10. package/dist-lib/components/afhandeling/PickAgendaView.d.ts.map +1 -1
  11. package/dist-lib/components/afhandeling/PickAgendaView.js +4 -11
  12. package/dist-lib/components/afhandeling/VervoerdersPage.d.ts.map +1 -1
  13. package/dist-lib/components/afhandeling/VervoerdersPage.js +2 -5
  14. package/dist-lib/components/afhandeling/VerzetOrderDialog.d.ts +14 -0
  15. package/dist-lib/components/afhandeling/VerzetOrderDialog.d.ts.map +1 -0
  16. package/dist-lib/components/afhandeling/VerzetOrderDialog.js +203 -0
  17. package/dist-lib/components/afhandeling/WeekAgendaView.d.ts.map +1 -1
  18. package/dist-lib/components/afhandeling/WeekAgendaView.js +7 -3
  19. package/dist-lib/components/pickstation/PickstationPage.d.ts.map +1 -1
  20. package/dist-lib/components/pickstation/PickstationPage.js +1 -0
  21. package/dist-lib/components/settings/VervoerdersSettingsCard.d.ts.map +1 -1
  22. package/dist-lib/components/settings/VervoerdersSettingsCard.js +2 -5
  23. package/dist-lib/hooks/useCapacityCheck.d.ts +10 -0
  24. package/dist-lib/hooks/useCapacityCheck.d.ts.map +1 -0
  25. package/dist-lib/hooks/useCapacityCheck.js +22 -0
  26. package/dist-lib/hooks/useEngineTasks.d.ts +14 -0
  27. package/dist-lib/hooks/useEngineTasks.d.ts.map +1 -0
  28. package/dist-lib/hooks/useEngineTasks.js +49 -0
  29. package/dist-lib/hooks/useOrderPlanning.d.ts +8 -2
  30. package/dist-lib/hooks/useOrderPlanning.d.ts.map +1 -1
  31. package/dist-lib/hooks/useOrderPlanning.js +95 -93
  32. package/dist-lib/index.d.ts +0 -3
  33. package/dist-lib/index.d.ts.map +1 -1
  34. package/dist-lib/index.js +1 -5
  35. package/dist-lib/integrations/supabase/auth-middleware.d.ts +9010 -5433
  36. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  37. package/dist-lib/integrations/supabase/client.d.ts +9010 -5433
  38. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  39. package/dist-lib/integrations/supabase/client.server.d.ts +9010 -5433
  40. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  41. package/dist-lib/integrations/supabase/types.d.ts +9184 -5544
  42. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  43. package/dist-lib/lib/afhandelingSettings.functions.d.ts +7186 -32
  44. package/dist-lib/lib/afhandelingSettings.functions.d.ts.map +1 -1
  45. package/dist-lib/lib/carriers.functions.d.ts +17965 -80
  46. package/dist-lib/lib/carriers.functions.d.ts.map +1 -1
  47. package/dist-lib/lib/cartAssignments.functions.d.ts +17965 -80
  48. package/dist-lib/lib/cartAssignments.functions.d.ts.map +1 -1
  49. package/dist-lib/lib/cartControl.functions.d.ts +35962 -170
  50. package/dist-lib/lib/cartControl.functions.d.ts.map +1 -1
  51. package/dist-lib/lib/cartControl.functions.js +103 -13
  52. package/dist-lib/lib/floriday.functions.d.ts +9010 -5433
  53. package/dist-lib/lib/floriday.functions.d.ts.map +1 -1
  54. package/dist-lib/lib/logisticsEngine/capacity.d.ts +19 -0
  55. package/dist-lib/lib/logisticsEngine/capacity.d.ts.map +1 -0
  56. package/dist-lib/lib/logisticsEngine/capacity.js +91 -0
  57. package/dist-lib/lib/logisticsEngine/engine.d.ts +99 -0
  58. package/dist-lib/lib/logisticsEngine/engine.d.ts.map +1 -0
  59. package/dist-lib/lib/logisticsEngine/engine.js +102 -0
  60. package/dist-lib/lib/logisticsEngine/reschedule.d.ts +65 -0
  61. package/dist-lib/lib/logisticsEngine/reschedule.d.ts.map +1 -0
  62. package/dist-lib/lib/logisticsEngine/reschedule.js +86 -0
  63. package/dist-lib/lib/logisticsEngine/staffPlanning.d.ts +37 -0
  64. package/dist-lib/lib/logisticsEngine/staffPlanning.d.ts.map +1 -0
  65. package/dist-lib/lib/logisticsEngine/staffPlanning.js +100 -0
  66. package/dist-lib/lib/serverFnError.d.ts +10 -0
  67. package/dist-lib/lib/serverFnError.d.ts.map +1 -0
  68. package/dist-lib/lib/serverFnError.js +29 -0
  69. package/dist-lib/lib/serverRoutes/index.d.ts +0 -1
  70. package/dist-lib/lib/serverRoutes/index.d.ts.map +1 -1
  71. package/dist-lib/lib/serverRoutes/index.js +0 -1
  72. package/dist-lib/lib/timezone.d.ts +27 -0
  73. package/dist-lib/lib/timezone.d.ts.map +1 -0
  74. package/dist-lib/lib/timezone.js +68 -0
  75. package/package.json +6 -21
  76. package/dist-lib/components/engine/CapaciteitsmaatregelenPage.d.ts +0 -2
  77. package/dist-lib/components/engine/CapaciteitsmaatregelenPage.d.ts.map +0 -1
  78. package/dist-lib/components/engine/CapaciteitsmaatregelenPage.js +0 -40
  79. package/dist-lib/components/engine/CapaciteitsmonitorPage.d.ts +0 -2
  80. package/dist-lib/components/engine/CapaciteitsmonitorPage.d.ts.map +0 -1
  81. package/dist-lib/components/engine/CapaciteitsmonitorPage.js +0 -49
  82. package/dist-lib/components/engine/FormulesPage.d.ts +0 -2
  83. package/dist-lib/components/engine/FormulesPage.d.ts.map +0 -1
  84. package/dist-lib/components/engine/FormulesPage.js +0 -252
  85. package/dist-lib/components/engine/PlaceholderPage.d.ts +0 -6
  86. package/dist-lib/components/engine/PlaceholderPage.d.ts.map +0 -1
  87. package/dist-lib/components/engine/PlaceholderPage.js +0 -6
  88. package/dist-lib/components/engine/StrategieenPage.d.ts +0 -2
  89. package/dist-lib/components/engine/StrategieenPage.d.ts.map +0 -1
  90. package/dist-lib/components/engine/StrategieenPage.js +0 -80
  91. package/dist-lib/lib/logisticsEngine/capacity.functions.d.ts +0 -64978
  92. package/dist-lib/lib/logisticsEngine/capacity.functions.d.ts.map +0 -1
  93. package/dist-lib/lib/logisticsEngine/capacity.functions.js +0 -90
  94. package/dist-lib/lib/logisticsEngine/config.d.ts +0 -140
  95. package/dist-lib/lib/logisticsEngine/config.d.ts.map +0 -1
  96. package/dist-lib/lib/logisticsEngine/config.js +0 -488
  97. package/dist-lib/lib/logisticsEngine/enginePickTime.d.ts +0 -29
  98. package/dist-lib/lib/logisticsEngine/enginePickTime.d.ts.map +0 -1
  99. package/dist-lib/lib/logisticsEngine/enginePickTime.js +0 -136
  100. package/dist-lib/lib/logisticsEngine/evaluate.functions.d.ts +0 -16278
  101. package/dist-lib/lib/logisticsEngine/evaluate.functions.d.ts.map +0 -1
  102. package/dist-lib/lib/logisticsEngine/evaluate.functions.js +0 -104
  103. package/dist-lib/lib/logisticsEngine/expression.d.ts +0 -21
  104. package/dist-lib/lib/logisticsEngine/expression.d.ts.map +0 -1
  105. package/dist-lib/lib/logisticsEngine/expression.js +0 -263
  106. package/dist-lib/lib/logisticsEngine/formulas.functions.d.ts +0 -32512
  107. package/dist-lib/lib/logisticsEngine/formulas.functions.d.ts.map +0 -1
  108. package/dist-lib/lib/logisticsEngine/formulas.functions.js +0 -58
  109. package/dist-lib/lib/logisticsEngine/safetyLayer.d.ts +0 -83
  110. package/dist-lib/lib/logisticsEngine/safetyLayer.d.ts.map +0 -1
  111. package/dist-lib/lib/logisticsEngine/safetyLayer.js +0 -182
  112. package/dist-lib/lib/logisticsEngine/strategies.functions.d.ts +0 -129961
  113. package/dist-lib/lib/logisticsEngine/strategies.functions.d.ts.map +0 -1
  114. package/dist-lib/lib/logisticsEngine/strategies.functions.js +0 -176
  115. package/dist-lib/lib/logisticsEngine/variables.d.ts +0 -29
  116. package/dist-lib/lib/logisticsEngine/variables.d.ts.map +0 -1
  117. package/dist-lib/lib/logisticsEngine/variables.js +0 -144
  118. package/dist-lib/lib/logisticsEngine/wizard.functions.d.ts +0 -64976
  119. package/dist-lib/lib/logisticsEngine/wizard.functions.d.ts.map +0 -1
  120. package/dist-lib/lib/logisticsEngine/wizard.functions.js +0 -175
  121. package/dist-lib/lib/serverRoutes/logisticsTick.handler.d.ts +0 -3
  122. package/dist-lib/lib/serverRoutes/logisticsTick.handler.d.ts.map +0 -1
  123. package/dist-lib/lib/serverRoutes/logisticsTick.handler.js +0 -42
@@ -1,90 +0,0 @@
1
- import { createServerFn } from "@tanstack/react-start";
2
- import { requireSupabaseAuth } from "../../integrations/supabase/auth-middleware";
3
- import { DEFAULT_CAPACITY_SETTINGS, evaluateCapacity, } from "./safetyLayer";
4
- function mergeSettings(raw) {
5
- const r = (raw ?? {});
6
- return {
7
- ...DEFAULT_CAPACITY_SETTINGS,
8
- ...r,
9
- measures: Array.isArray(r.measures) && r.measures.length > 0 ? r.measures : DEFAULT_CAPACITY_SETTINGS.measures,
10
- };
11
- }
12
- export const getCapacitySettings = createServerFn({ method: "GET" })
13
- .middleware([requireSupabaseAuth])
14
- .handler(async ({ context }) => {
15
- const supabase = context.supabase;
16
- const { data, error } = await supabase
17
- .from("logistics_capacity_settings")
18
- .select("settings")
19
- .eq("user_id", context.userId)
20
- .maybeSingle();
21
- if (error)
22
- throw new Error(error.message);
23
- return { settings: mergeSettings(data?.settings) };
24
- });
25
- export const saveCapacitySettings = createServerFn({ method: "POST" })
26
- .middleware([requireSupabaseAuth])
27
- .inputValidator((d) => ({ settings: d.settings }))
28
- .handler(async ({ data, context }) => {
29
- const supabase = context.supabase;
30
- const clean = mergeSettings(data.settings);
31
- const { error } = await supabase
32
- .from("logistics_capacity_settings")
33
- .upsert({
34
- user_id: context.userId,
35
- settings: clean,
36
- updated_at: new Date().toISOString(),
37
- }, { onConflict: "user_id" });
38
- if (error)
39
- throw new Error(error.message);
40
- return { ok: true, settings: clean };
41
- });
42
- export const evaluateCapacityFn = createServerFn({ method: "POST" })
43
- .middleware([requireSupabaseAuth])
44
- .inputValidator((d) => ({
45
- input: d.input,
46
- log: d.log !== false,
47
- note: d.note ?? null,
48
- }))
49
- .handler(async ({ data, context }) => {
50
- const supabase = context.supabase;
51
- const { data: row } = await supabase
52
- .from("logistics_capacity_settings")
53
- .select("settings")
54
- .eq("user_id", context.userId)
55
- .maybeSingle();
56
- const settings = mergeSettings(row?.settings);
57
- const evaluation = evaluateCapacity(data.input, settings);
58
- if (data.log) {
59
- await supabase.from("logistics_capacity_events").insert({
60
- user_id: context.userId,
61
- status: evaluation.status,
62
- required_carts: evaluation.requiredCarts,
63
- available_carts: evaluation.availableCarts,
64
- reserve_minutes: evaluation.reserveMinutes,
65
- shortage_carts: evaluation.shortageCarts,
66
- measures: evaluation.measures,
67
- outcome: evaluation.status === "green"
68
- ? "healthy"
69
- : evaluation.stillShortAfterMeasures > 0
70
- ? "needs-intervention"
71
- : "measures-suggested",
72
- note: data.note,
73
- });
74
- }
75
- return { evaluation };
76
- });
77
- export const listCapacityEvents = createServerFn({ method: "GET" })
78
- .middleware([requireSupabaseAuth])
79
- .handler(async ({ context }) => {
80
- const supabase = context.supabase;
81
- const { data, error } = await supabase
82
- .from("logistics_capacity_events")
83
- .select("*")
84
- .eq("user_id", context.userId)
85
- .order("created_at", { ascending: false })
86
- .limit(50);
87
- if (error)
88
- throw new Error(error.message);
89
- return { events: (data ?? []) };
90
- });
@@ -1,140 +0,0 @@
1
- /**
2
- * Wizard-configuratie voor de Logistieke Configurator.
3
- * De gebruiker beantwoordt vragen in gewone taal; deze module vertaalt
4
- * de antwoorden naar de onderliggende formules per slot.
5
- */
6
- export type OrderMode = "per-order" | "per-customer" | "per-location" | "per-cart" | "custom";
7
- export type CombineMode = "none" | "auction" | "bvo" | "all";
8
- export type CustomersPerLayer = "multi" | "single";
9
- export type CartFullMode = "auto" | "pct" | "layers" | "weight" | "custom";
10
- export type PackingSlipTiming = "cart-full" | "batch-close" | "pickstation";
11
- export type DeliveryNoteTiming = "floriday" | "pickstation" | "manual";
12
- export type PickReadyMode = "auto" | "custom";
13
- export type PickReadyControl = "none" | "quality" | "cart" | "both" | "manual";
14
- export type PickPlanningReleaseMode = "latest" | "hours-before-departure" | "between-signup-window" | "fixed-time" | "days-before-delivery" | "manual" | "custom";
15
- export interface WorkBreak {
16
- /** Starttijd pauze "HH:MM". */
17
- start: string;
18
- /** Eindtijd pauze "HH:MM". */
19
- end: string;
20
- /** Optioneel label, bv. "Lunch". */
21
- label?: string;
22
- }
23
- export interface WorkingSchedule {
24
- /** ISO-dagnummers waarop het pickteam werkt (1=ma … 7=zo). */
25
- weekdays: number[];
26
- /** Starttijd werkdag "HH:MM". */
27
- startTime: string;
28
- /** Eindtijd werkdag "HH:MM". */
29
- endTime: string;
30
- /** Pauzes die van de beschikbare werktijd worden afgetrokken. */
31
- breaks: WorkBreak[];
32
- }
33
- export interface WizardConfig {
34
- orderMode: OrderMode;
35
- workingSchedule: WorkingSchedule;
36
- combine: {
37
- mode: CombineMode;
38
- maxLayersOwnCart: number;
39
- maxCustomersPerCart: number;
40
- sameCarrier: boolean;
41
- sameRoute: boolean;
42
- sameLocation: boolean;
43
- sameCrateType: boolean;
44
- sameDeliveryDate: boolean;
45
- customersPerLayer: CustomersPerLayer;
46
- };
47
- cartFull: {
48
- mode: CartFullMode;
49
- fillPct: number;
50
- maxLayers: number;
51
- maxWeight: number;
52
- customExpression: string;
53
- };
54
- cartClose: {
55
- whenFull: boolean;
56
- whenCapacityReached: boolean;
57
- when30minLeft: boolean;
58
- whenTransportRegistered: boolean;
59
- onlyManual: boolean;
60
- };
61
- documents: {
62
- packingSlip: PackingSlipTiming;
63
- deliveryNote: DeliveryNoteTiming;
64
- };
65
- pickPlanningRelease: {
66
- mode: PickPlanningReleaseMode;
67
- hoursBeforeDeparture: number;
68
- fixedTime: string;
69
- daysBeforeDelivery: number;
70
- safetyBufferMinutes: number;
71
- customExpression: string;
72
- /** Vensterbreedte: hoeveel werkuren vóór het aanmeldmoment mogen karren naar het Pickstation. */
73
- hoursBeforeSignupWindow: number;
74
- /** Extra werkuren dat karren eerder naar het Pickstation mogen als het te druk wordt. */
75
- earlyPickHours: number;
76
- /** Mogen niet-volle karren ook vóór het aanmeldmoment vrijgegeven worden? */
77
- incompleteCartsBeforeSignup: boolean;
78
- /** Buffer als vaste minuten of als percentage van benodigde picktijd. */
79
- safetyBufferMode: "minutes" | "percent";
80
- safetyBufferPercent: number;
81
- };
82
- pickstationVisibility: {
83
- mode: PickReadyMode;
84
- logistics: {
85
- batchClosed: boolean;
86
- cartBuilt: boolean;
87
- cartFull: boolean;
88
- plannerApproved: boolean;
89
- capacityReleased: boolean;
90
- };
91
- documents: {
92
- packingSlip: boolean;
93
- deliveryNote: boolean;
94
- transportLabel: boolean;
95
- };
96
- control: PickReadyControl;
97
- };
98
- startMoment: {
99
- autoWhenCapacity: boolean;
100
- safetyBufferMinutes: number;
101
- capacityMode: "carts-per-hour" | "minutes-per-cart";
102
- pickCapacityPerHour: number;
103
- minutesPerCart: number;
104
- };
105
- continuous: {
106
- enabled: boolean;
107
- normalPickHours: number;
108
- allowEarlier: boolean;
109
- maxEarlierHours: number;
110
- incompleteCartsMode: "immediate" | "after-registration";
111
- ordersAfterRegistration: "current-batch" | "new-batch" | "next-round";
112
- keepStationFilled: boolean;
113
- evenWorkload: boolean;
114
- };
115
- }
116
- export declare const CONTINUOUS_PRESET: WizardConfig["continuous"];
117
- export declare const DEFAULT_CONFIG: WizardConfig;
118
- /** Slot-key gebruikt om de wizard-JSON zelf op te slaan. */
119
- export declare const CONFIG_SLOT = "_wizard_config";
120
- export interface CompiledFormula {
121
- slot: string;
122
- expression: string;
123
- }
124
- /** Vertaal wizard-config naar formule-expressies per slot. */
125
- export declare function compileConfig(c: WizardConfig): CompiledFormula[];
126
- /** Genereer een leesbare samenvatting in gewone Nederlandse taal. */
127
- export declare function summarizeConfig(c: WizardConfig): string[];
128
- /** Praktijkvoorbeeld — puur illustratief, gebaseerd op de instellingen. */
129
- export interface LivePreview {
130
- orders: number;
131
- carts: number;
132
- full: number;
133
- combined: number;
134
- rest: number;
135
- pickStart: string;
136
- packingSlipTime: string;
137
- pickstationStart: string;
138
- }
139
- export declare function computePreview(c: WizardConfig): LivePreview;
140
- //# sourceMappingURL=config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../../src/lib/logisticsEngine/config.ts"],"names":[],"mappings":"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"}