@flowselections/floriday-afhandeling-module 1.0.9 → 1.0.11
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/afhandeling/ControleLijstPrint.d.ts +7 -0
- package/dist-lib/components/afhandeling/ControleLijstPrint.d.ts.map +1 -0
- package/dist-lib/components/afhandeling/ControleLijstPrint.js +67 -0
- package/dist-lib/components/afhandeling/ControlePage.d.ts +2 -0
- package/dist-lib/components/afhandeling/ControlePage.d.ts.map +1 -0
- package/dist-lib/components/afhandeling/ControlePage.js +456 -0
- package/dist-lib/components/afhandeling/DagDetailDialog.d.ts +9 -0
- package/dist-lib/components/afhandeling/DagDetailDialog.d.ts.map +1 -0
- package/dist-lib/components/afhandeling/DagDetailDialog.js +149 -0
- package/dist-lib/components/afhandeling/LeveringenPage.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/LeveringenPage.js +11 -5
- package/dist-lib/components/afhandeling/PickAgendaView.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/PickAgendaView.js +13 -4
- package/dist-lib/components/afhandeling/PlanningAgendaPage.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/PlanningAgendaPage.js +2 -2
- package/dist-lib/components/afhandeling/ServiceAreaSelect.d.ts +12 -0
- package/dist-lib/components/afhandeling/ServiceAreaSelect.d.ts.map +1 -0
- package/dist-lib/components/afhandeling/ServiceAreaSelect.js +79 -0
- package/dist-lib/components/afhandeling/VervoerderForm.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/VervoerderForm.js +62 -6
- package/dist-lib/components/afhandeling/VervoerdersPage.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/VervoerdersPage.js +25 -6
- package/dist-lib/components/afhandeling/WeekAgendaView.d.ts +2 -1
- package/dist-lib/components/afhandeling/WeekAgendaView.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/WeekAgendaView.js +63 -18
- package/dist-lib/components/afhandeling/WeekdayPicker.d.ts +12 -0
- package/dist-lib/components/afhandeling/WeekdayPicker.d.ts.map +1 -0
- package/dist-lib/components/afhandeling/WeekdayPicker.js +30 -0
- package/dist-lib/components/pickstation/PakbonTemplate.d.ts +6 -2
- package/dist-lib/components/pickstation/PakbonTemplate.d.ts.map +1 -1
- package/dist-lib/components/pickstation/PakbonTemplate.js +37 -12
- package/dist-lib/components/settings/AfhandelingSettingsCard.d.ts.map +1 -1
- package/dist-lib/components/settings/AfhandelingSettingsCard.js +25 -6
- package/dist-lib/components/ui/responsive-dialog.d.ts +20 -0
- package/dist-lib/components/ui/responsive-dialog.d.ts.map +1 -0
- package/dist-lib/components/ui/responsive-dialog.js +44 -0
- package/dist-lib/hooks/useOrderPlanning.d.ts +3 -0
- package/dist-lib/hooks/useOrderPlanning.d.ts.map +1 -1
- package/dist-lib/hooks/useOrderPlanning.js +64 -12
- package/dist-lib/index.d.ts +1 -0
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +4 -2
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +2898 -147
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +2898 -147
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +2898 -147
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +2986 -155
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.js +1 -0
- package/dist-lib/lib/afhandelingSettings.functions.d.ts +10666 -5151
- package/dist-lib/lib/afhandelingSettings.functions.d.ts.map +1 -1
- package/dist-lib/lib/afhandelingSettings.functions.js +42 -2
- package/dist-lib/lib/carrierMatch.server.d.ts +27 -0
- package/dist-lib/lib/carrierMatch.server.d.ts.map +1 -0
- package/dist-lib/lib/carrierMatch.server.js +75 -0
- package/dist-lib/lib/carrierSignupMail.server.d.ts +56 -0
- package/dist-lib/lib/carrierSignupMail.server.d.ts.map +1 -0
- package/dist-lib/lib/carrierSignupMail.server.js +229 -0
- package/dist-lib/lib/carriers.functions.d.ts +36404 -15470
- package/dist-lib/lib/carriers.functions.d.ts.map +1 -1
- package/dist-lib/lib/carriers.functions.js +43 -2
- package/dist-lib/lib/cartAssignments.functions.d.ts +49609 -0
- package/dist-lib/lib/cartAssignments.functions.d.ts.map +1 -0
- package/dist-lib/lib/cartAssignments.functions.js +130 -0
- package/dist-lib/lib/cartControl.functions.d.ts +99259 -0
- package/dist-lib/lib/cartControl.functions.d.ts.map +1 -0
- package/dist-lib/lib/cartControl.functions.js +489 -0
- package/dist-lib/lib/cartMoveImpact.d.ts +8 -0
- package/dist-lib/lib/cartMoveImpact.d.ts.map +1 -0
- package/dist-lib/lib/cartMoveImpact.js +26 -0
- package/dist-lib/lib/cartRescheduling.d.ts +30 -0
- package/dist-lib/lib/cartRescheduling.d.ts.map +1 -0
- package/dist-lib/lib/cartRescheduling.js +71 -0
- package/dist-lib/lib/floriday.functions.d.ts +2902 -147
- package/dist-lib/lib/floriday.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday.functions.js +178 -98
- package/dist-lib/lib/geo/euServiceAreas.d.ts +30 -0
- package/dist-lib/lib/geo/euServiceAreas.d.ts.map +1 -0
- package/dist-lib/lib/geo/euServiceAreas.js +277 -0
- package/dist-lib/lib/invalidatePlanning.d.ts +11 -0
- package/dist-lib/lib/invalidatePlanning.d.ts.map +1 -0
- package/dist-lib/lib/invalidatePlanning.js +25 -0
- package/dist-lib/lib/pickstationI18n.d.ts +12 -0
- package/dist-lib/lib/pickstationI18n.d.ts.map +1 -1
- package/dist-lib/lib/pickstationI18n.js +72 -0
- package/dist-lib/lib/pickstationOrders.server.d.ts +2 -1
- package/dist-lib/lib/pickstationOrders.server.d.ts.map +1 -1
- package/dist-lib/lib/pickstationOrders.server.js +393 -178
- package/dist-lib/lib/pickstationTypes.d.ts +23 -2
- package/dist-lib/lib/pickstationTypes.d.ts.map +1 -1
- package/dist-lib/lib/planning.d.ts +41 -2
- package/dist-lib/lib/planning.d.ts.map +1 -1
- package/dist-lib/lib/planning.js +159 -36
- package/package.json +2 -2
|
@@ -4,16 +4,25 @@ import { useServerFn } from "@tanstack/react-start";
|
|
|
4
4
|
import { getFloridayOrders } from "../lib/floriday.functions";
|
|
5
5
|
import { getAfhandelingSettings } from "../lib/afhandelingSettings.functions";
|
|
6
6
|
import { listCarriers } from "../lib/carriers.functions";
|
|
7
|
+
import { listCartOverrides } from "../lib/cartAssignments.functions";
|
|
7
8
|
import { calculateOrderPlanning, distributePickDates, DEFAULT_PICKUP_MOMENT, } from "../lib/planning";
|
|
8
9
|
export function useOrderPlanning() {
|
|
9
10
|
const fetchOrders = useServerFn(getFloridayOrders);
|
|
10
11
|
const fetchSettings = useServerFn(getAfhandelingSettings);
|
|
11
12
|
const fetchCarriers = useServerFn(listCarriers);
|
|
13
|
+
const fetchOverrides = useServerFn(listCartOverrides);
|
|
12
14
|
const ordersQuery = useQuery({
|
|
13
15
|
queryKey: ["floriday", "orders"],
|
|
14
16
|
queryFn: async () => {
|
|
15
17
|
try {
|
|
16
|
-
|
|
18
|
+
const result = await fetchOrders();
|
|
19
|
+
if (result.error) {
|
|
20
|
+
console.warn("[useOrderPlanning] orders loaded with warning", {
|
|
21
|
+
message: result.error,
|
|
22
|
+
orderCount: result.orders.length,
|
|
23
|
+
});
|
|
24
|
+
}
|
|
25
|
+
return result;
|
|
17
26
|
}
|
|
18
27
|
catch (e) {
|
|
19
28
|
let message = "Onbekende fout";
|
|
@@ -27,6 +36,10 @@ export function useOrderPlanning() {
|
|
|
27
36
|
else {
|
|
28
37
|
message = String(e);
|
|
29
38
|
}
|
|
39
|
+
console.error("[useOrderPlanning] orders load failed", {
|
|
40
|
+
message,
|
|
41
|
+
action: "fetch planning orders",
|
|
42
|
+
});
|
|
30
43
|
return { orders: [], error: message };
|
|
31
44
|
}
|
|
32
45
|
},
|
|
@@ -39,7 +52,7 @@ export function useOrderPlanning() {
|
|
|
39
52
|
return await fetchSettings();
|
|
40
53
|
}
|
|
41
54
|
catch {
|
|
42
|
-
return { pickDaysBeforeTransport: 1, transportRegisterDaysBefore: 1, pickDistributionEnabled: false, maxWorkdaysEarlierPick: 2 };
|
|
55
|
+
return { pickDaysBeforeTransport: 1, transportRegisterDaysBefore: 1, pickDistributionEnabled: false, maxWorkdaysEarlierPick: 2, signupMailEnabled: false, signupMailLeadMinutes: 60, signupMailPurpose: "afhandeling_carrier_signup", pickWeekdays: [1, 2, 3, 4, 5] };
|
|
43
56
|
}
|
|
44
57
|
},
|
|
45
58
|
});
|
|
@@ -55,6 +68,18 @@ export function useOrderPlanning() {
|
|
|
55
68
|
},
|
|
56
69
|
retry: false,
|
|
57
70
|
});
|
|
71
|
+
const overridesQuery = useQuery({
|
|
72
|
+
queryKey: ["cart-overrides"],
|
|
73
|
+
queryFn: async () => {
|
|
74
|
+
try {
|
|
75
|
+
return await fetchOverrides();
|
|
76
|
+
}
|
|
77
|
+
catch {
|
|
78
|
+
return { overrides: [] };
|
|
79
|
+
}
|
|
80
|
+
},
|
|
81
|
+
retry: false,
|
|
82
|
+
});
|
|
58
83
|
const planned = useMemo(() => {
|
|
59
84
|
const orders = ordersQuery.data?.orders ?? [];
|
|
60
85
|
const settings = settingsQuery.data ?? {
|
|
@@ -62,29 +87,56 @@ export function useOrderPlanning() {
|
|
|
62
87
|
transportRegisterDaysBefore: 1,
|
|
63
88
|
pickDistributionEnabled: false,
|
|
64
89
|
maxWorkdaysEarlierPick: 2,
|
|
90
|
+
pickWeekdays: [1, 2, 3, 4, 5],
|
|
65
91
|
};
|
|
66
92
|
const carriers = carriersQuery.data?.carriers ?? [];
|
|
93
|
+
const overrides = overridesQuery.data?.overrides ?? [];
|
|
67
94
|
const defaultCarrier = carriers.find((c) => c.is_default);
|
|
68
95
|
const moments = defaultCarrier && defaultCarrier.pickup_moments.length > 0
|
|
69
96
|
? defaultCarrier.pickup_moments
|
|
70
97
|
: [DEFAULT_PICKUP_MOMENT];
|
|
71
|
-
const
|
|
72
|
-
|
|
73
|
-
|
|
98
|
+
const carrierPickupWeekdays = defaultCarrier?.pickup_weekdays ?? [1, 2, 3, 4, 5];
|
|
99
|
+
const carrierDeliveryWeekdays = defaultCarrier?.delivery_weekdays ?? [1, 2, 3, 4, 5];
|
|
100
|
+
const pickWeekdays = settings.pickWeekdays ?? [1, 2, 3, 4, 5];
|
|
101
|
+
const overrideMap = new Map();
|
|
102
|
+
for (const o of overrides) {
|
|
103
|
+
overrideMap.set(`${o.order_source}#${o.order_id}#${o.cart_index}`, {
|
|
104
|
+
date: new Date(o.pick_date),
|
|
105
|
+
movedFromDate: o.moved_from_date ? new Date(o.moved_from_date) : null,
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
const initial = orders.map((order) => {
|
|
109
|
+
const planning = calculateOrderPlanning(order.deliveryDate, {
|
|
74
110
|
pickupMoments: moments,
|
|
75
111
|
pickDurationWorkdays: settings.pickDaysBeforeTransport,
|
|
76
112
|
orderCreatedAt: order.createdAt,
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
113
|
+
pickWeekdays,
|
|
114
|
+
carrierPickupWeekdays,
|
|
115
|
+
carrierDeliveryWeekdays,
|
|
116
|
+
});
|
|
117
|
+
if (planning && defaultCarrier) {
|
|
118
|
+
planning.carrierName = defaultCarrier.name;
|
|
119
|
+
}
|
|
120
|
+
return { order, planning };
|
|
121
|
+
});
|
|
122
|
+
const distributed = distributePickDates(initial, {
|
|
80
123
|
enabled: Boolean(settings.pickDistributionEnabled),
|
|
81
124
|
maxWorkdaysEarlier: settings.maxWorkdaysEarlierPick ?? 0,
|
|
125
|
+
pickWeekdays,
|
|
126
|
+
getCartCount: (it) => it.order.cartCount ?? 1,
|
|
127
|
+
getCartOverride: (it, idx) => {
|
|
128
|
+
const src = it.order.source;
|
|
129
|
+
return overrideMap.get(`${src}#${it.order.id}#${idx}`) ?? null;
|
|
130
|
+
},
|
|
82
131
|
});
|
|
83
|
-
|
|
132
|
+
return distributed;
|
|
133
|
+
}, [ordersQuery.data, settingsQuery.data, carriersQuery.data, overridesQuery.data]);
|
|
84
134
|
return {
|
|
85
135
|
planned,
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
136
|
+
overrides: overridesQuery.data?.overrides ?? [],
|
|
137
|
+
isLoading: ordersQuery.isLoading || settingsQuery.isLoading || carriersQuery.isLoading || overridesQuery.isLoading,
|
|
138
|
+
error: ordersQuery.data?.orders?.length ? undefined : ordersQuery.data?.error,
|
|
139
|
+
warning: ordersQuery.data?.orders?.length ? ordersQuery.data?.error : undefined,
|
|
140
|
+
refetch: () => { void ordersQuery.refetch(); void overridesQuery.refetch(); },
|
|
89
141
|
};
|
|
90
142
|
}
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -6,6 +6,7 @@ export { NieuweLeveringPage } from "./components/afhandeling/NieuweLeveringPage"
|
|
|
6
6
|
export { PickAgendaView } from "./components/afhandeling/PickAgendaView";
|
|
7
7
|
export { PickingPage } from "./components/afhandeling/PickingPage";
|
|
8
8
|
export { PlanningAgendaPage } from "./components/afhandeling/PlanningAgendaPage";
|
|
9
|
+
export { ControlePage } from "./components/afhandeling/ControlePage";
|
|
9
10
|
export { AfhandelingSettingsCard } from "./components/settings/AfhandelingSettingsCard";
|
|
10
11
|
export { VervoerdersSettingsCard } from "./components/settings/VervoerdersSettingsCard";
|
|
11
12
|
export declare const floridayAfhandelingModule: FlowModule;
|
package/dist-lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAKxF,eAAO,MAAM,yBAAyB,EAAE,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6CAA6C,CAAC;AACjF,OAAO,EAAE,YAAY,EAAE,MAAM,uCAAuC,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AACxF,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAKxF,eAAO,MAAM,yBAAyB,EAAE,UAkBvC,CAAC"}
|
package/dist-lib/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { PackageCheck, CalendarCheck, CalendarRange } from "lucide-react";
|
|
1
|
+
import { PackageCheck, CalendarCheck, CalendarRange, ClipboardCheck } from "lucide-react";
|
|
2
2
|
export * from "./_core-safelist";
|
|
3
3
|
export { LeveringenPage } from "./components/afhandeling/LeveringenPage";
|
|
4
4
|
export { VervoerdersPage } from "./components/afhandeling/VervoerdersPage";
|
|
@@ -6,6 +6,7 @@ export { NieuweLeveringPage } from "./components/afhandeling/NieuweLeveringPage"
|
|
|
6
6
|
export { PickAgendaView } from "./components/afhandeling/PickAgendaView";
|
|
7
7
|
export { PickingPage } from "./components/afhandeling/PickingPage";
|
|
8
8
|
export { PlanningAgendaPage } from "./components/afhandeling/PlanningAgendaPage";
|
|
9
|
+
export { ControlePage } from "./components/afhandeling/ControlePage";
|
|
9
10
|
export { AfhandelingSettingsCard } from "./components/settings/AfhandelingSettingsCard";
|
|
10
11
|
export { VervoerdersSettingsCard } from "./components/settings/VervoerdersSettingsCard";
|
|
11
12
|
import { AfhandelingSettingsCard } from "./components/settings/AfhandelingSettingsCard";
|
|
@@ -13,7 +14,7 @@ import { VervoerdersSettingsCard } from "./components/settings/VervoerdersSettin
|
|
|
13
14
|
export const floridayAfhandelingModule = {
|
|
14
15
|
id: "afhandeling",
|
|
15
16
|
name: "Afhandeling",
|
|
16
|
-
version: "1.
|
|
17
|
+
version: "1.3.0",
|
|
17
18
|
nav: {
|
|
18
19
|
label: "Afhandeling",
|
|
19
20
|
href: "/afhandeling/picking",
|
|
@@ -21,6 +22,7 @@ export const floridayAfhandelingModule = {
|
|
|
21
22
|
children: [
|
|
22
23
|
{ label: "Pick Agenda", href: "/afhandeling/picking", icon: CalendarCheck },
|
|
23
24
|
{ label: "Planning en leveringen", href: "/afhandeling/leveringen", icon: CalendarRange },
|
|
25
|
+
{ label: "Controle karren", href: "/afhandeling/controle", icon: ClipboardCheck },
|
|
24
26
|
],
|
|
25
27
|
},
|
|
26
28
|
settingsCards: [
|