@flowselections/floriday-afhandeling-module 1.0.43 → 1.0.45
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/ControlePage.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/ControlePage.js +92 -54
- package/dist-lib/components/afhandeling/WeekAgendaView.d.ts.map +1 -1
- package/dist-lib/components/afhandeling/WeekAgendaView.js +24 -1
- package/dist-lib/hooks/useCartIndex.d.ts.map +1 -1
- package/dist-lib/hooks/useCartIndex.js +16 -7
- package/dist-lib/hooks/useEngineBufferEvents.d.ts +12 -0
- package/dist-lib/hooks/useEngineBufferEvents.d.ts.map +1 -0
- package/dist-lib/hooks/useEngineBufferEvents.js +52 -0
- package/dist-lib/hooks/useEngineTasks.d.ts.map +1 -1
- package/dist-lib/hooks/useEngineTasks.js +8 -18
- package/dist-lib/hooks/useKnownOrders.d.ts +1 -0
- package/dist-lib/hooks/useKnownOrders.d.ts.map +1 -1
- package/dist-lib/hooks/useKnownOrders.js +28 -2
- package/dist-lib/hooks/useOrderPickDates.d.ts +1 -1
- package/dist-lib/hooks/useOrderPickDates.d.ts.map +1 -1
- package/dist-lib/hooks/useOrderPickDates.js +5 -3
- package/dist-lib/hooks/usePickAgenda.d.ts +4 -0
- package/dist-lib/hooks/usePickAgenda.d.ts.map +1 -1
- package/dist-lib/hooks/usePickAgenda.js +23 -16
- package/dist-lib/hooks/usePickMode.d.ts +8 -2
- package/dist-lib/hooks/usePickMode.d.ts.map +1 -1
- package/dist-lib/hooks/usePickMode.js +17 -9
- package/dist-lib/index.d.ts +1 -2
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +1 -33
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +3256 -191
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +3256 -191
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/moduleClient.d.ts +3257 -190
- package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +3354 -261
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/afhandelingSettings.functions.d.ts +6144 -14
- package/dist-lib/lib/afhandelingSettings.functions.d.ts.map +1 -1
- package/dist-lib/lib/carriers.functions.d.ts +15375 -40
- package/dist-lib/lib/carriers.functions.d.ts.map +1 -1
- package/dist-lib/lib/cartAssignments.functions.d.ts +15360 -35
- package/dist-lib/lib/cartAssignments.functions.d.ts.map +1 -1
- package/dist-lib/lib/cartControl.functions.d.ts +33902 -104
- package/dist-lib/lib/cartControl.functions.d.ts.map +1 -1
- package/dist-lib/lib/cartControl.functions.js +389 -259
- package/dist-lib/lib/deliveryNote.functions.d.ts +3256 -191
- package/dist-lib/lib/deliveryNote.functions.d.ts.map +1 -1
- package/dist-lib/lib/engineLayouts.functions.d.ts +3256 -191
- package/dist-lib/lib/engineLayouts.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday.functions.d.ts +6146 -14
- package/dist-lib/lib/floriday.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday.functions.js +1 -0
- package/dist-lib/lib/orderFulfilment.functions.d.ts +3256 -191
- package/dist-lib/lib/orderFulfilment.functions.d.ts.map +1 -1
- package/dist-lib/lib/pickDates.functions.d.ts +3260 -190
- package/dist-lib/lib/pickDates.functions.d.ts.map +1 -1
- package/dist-lib/lib/pickDates.functions.js +30 -3
- package/dist-lib/lib/pickMode.d.ts +20 -2
- package/dist-lib/lib/pickMode.d.ts.map +1 -1
- package/dist-lib/lib/pickMode.js +65 -16
- package/dist-lib/lib/realtimeBus.d.ts +20 -0
- package/dist-lib/lib/realtimeBus.d.ts.map +1 -0
- package/dist-lib/lib/realtimeBus.js +56 -0
- package/dist-lib/lib/serverFnError.d.ts +12 -0
- package/dist-lib/lib/serverFnError.d.ts.map +1 -1
- package/dist-lib/lib/serverFnError.js +48 -1
- package/dist-lib/moduleDefinition.d.ts +3 -0
- package/dist-lib/moduleDefinition.d.ts.map +1 -0
- package/dist-lib/moduleDefinition.js +36 -0
- package/package.json +2 -2
|
@@ -6,6 +6,8 @@ export interface PickAgendaOrder {
|
|
|
6
6
|
carts: number;
|
|
7
7
|
plants: number;
|
|
8
8
|
shifted: boolean;
|
|
9
|
+
/** Verkoop-module zegt: deze order is afgehandeld (verzonden/geleverd). */
|
|
10
|
+
fulfilled?: boolean;
|
|
9
11
|
}
|
|
10
12
|
/** Eén dagregel uit `logistics_pick_agenda`. */
|
|
11
13
|
export interface PickAgendaDay {
|
|
@@ -16,6 +18,8 @@ export interface PickAgendaDay {
|
|
|
16
18
|
inPreparation: number;
|
|
17
19
|
ready: number;
|
|
18
20
|
shiftedCount: number;
|
|
21
|
+
/** Aantal orders van deze dag dat al is afgehandeld. */
|
|
22
|
+
doneCount: number;
|
|
19
23
|
orders: PickAgendaOrder[];
|
|
20
24
|
}
|
|
21
25
|
export declare function usePickAgenda(from: string | null, to: string | null): {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePickAgenda.d.ts","sourceRoot":"","sources":["../../src/hooks/usePickAgenda.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePickAgenda.d.ts","sourceRoot":"","sources":["../../src/hooks/usePickAgenda.ts"],"names":[],"mappings":"AAQA,kDAAkD;AAClD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,OAAO,CAAC;IACjB,2EAA2E;IAC3E,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,gDAAgD;AAChD,MAAM,WAAW,aAAa;IAC5B,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,MAAM,CAAC;IACd,YAAY,EAAE,MAAM,CAAC;IACrB,wDAAwD;IACxD,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,eAAe,EAAE,CAAC;CAC3B;AAwCD,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI;;;;;EA6GnE"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { useEffect, useMemo } from "react";
|
|
2
2
|
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
3
3
|
import { supabase } from "../integrations/supabase/moduleClient";
|
|
4
|
+
import { debounce, subscribeTable } from "../lib/realtimeBus";
|
|
4
5
|
import { useKnownOrders } from "./useKnownOrders";
|
|
5
6
|
import { useOrderPickDates } from "./useOrderPickDates";
|
|
6
7
|
function toOrders(value) {
|
|
@@ -30,9 +31,10 @@ function shiftDay(day, delta) {
|
|
|
30
31
|
}
|
|
31
32
|
export function usePickAgenda(from, to) {
|
|
32
33
|
const queryClient = useQueryClient();
|
|
33
|
-
//
|
|
34
|
-
// zetten ze terug op hun oorspronkelijke dag
|
|
35
|
-
|
|
34
|
+
// Beperkte marge rond de zichtbare week: de Engine schuift oude taken naar
|
|
35
|
+
// vandaag en wij zetten ze terug op hun oorspronkelijke dag. Een venster van
|
|
36
|
+
// een half jaar haalde honderden dagen op die daarna toch werden weggefilterd.
|
|
37
|
+
const wideFrom = from ? shiftDay(from, -21) : null;
|
|
36
38
|
const wideTo = to ? shiftDay(to, 30) : null;
|
|
37
39
|
const queryKey = ["logistics-pick-agenda", wideFrom, wideTo];
|
|
38
40
|
const query = useQuery({
|
|
@@ -41,7 +43,10 @@ export function usePickAgenda(from, to) {
|
|
|
41
43
|
staleTime: 30000,
|
|
42
44
|
retry: false,
|
|
43
45
|
refetchInterval: 60000,
|
|
46
|
+
refetchIntervalInBackground: false,
|
|
44
47
|
refetchOnWindowFocus: true,
|
|
48
|
+
// Vorige week blijft zichtbaar tijdens het laden van een nieuwe week.
|
|
49
|
+
placeholderData: (prev) => prev,
|
|
45
50
|
queryFn: async () => {
|
|
46
51
|
const { data, error } = await supabase.rpc("logistics_pick_agenda", {
|
|
47
52
|
p_from: wideFrom,
|
|
@@ -58,29 +63,29 @@ export function usePickAgenda(from, to) {
|
|
|
58
63
|
inPreparation: Number(d.in_preparation ?? 0),
|
|
59
64
|
ready: Number(d.ready ?? 0),
|
|
60
65
|
shiftedCount: Number(d.shifted_count ?? 0),
|
|
66
|
+
doneCount: 0,
|
|
61
67
|
orders: toOrders(d.orders),
|
|
62
68
|
}));
|
|
63
69
|
},
|
|
64
70
|
});
|
|
65
|
-
// Ververs zodra de Engine taken wijzigt
|
|
66
|
-
//
|
|
67
|
-
//
|
|
71
|
+
// Ververs zodra de Engine taken wijzigt, via één gedeelde verbinding en met
|
|
72
|
+
// samenvoegen van seintjes: de Engine schrijft tientallen taken achter elkaar
|
|
73
|
+
// en elke wijziging afzonderlijk opnieuw ophalen liet het scherm blokkeren.
|
|
68
74
|
useEffect(() => {
|
|
69
|
-
const
|
|
70
|
-
.channel(`pick-agenda-logistics-tasks-${Math.random().toString(36).slice(2)}`)
|
|
71
|
-
.on("postgres_changes", { event: "*", schema: "public", table: "logistics_tasks" }, () => {
|
|
75
|
+
const refresh = debounce(() => {
|
|
72
76
|
queryClient.invalidateQueries({ queryKey: ["logistics-pick-agenda"] });
|
|
73
|
-
})
|
|
74
|
-
|
|
77
|
+
}, 750);
|
|
78
|
+
const off = subscribeTable("logistics_tasks", refresh);
|
|
75
79
|
return () => {
|
|
76
|
-
|
|
80
|
+
refresh.cancel();
|
|
81
|
+
off();
|
|
77
82
|
};
|
|
78
83
|
}, [queryClient]);
|
|
79
84
|
// Orders die de Verkoop-module niet kent horen hier niet te staan, en orders
|
|
80
85
|
// die de Engine ná hun leverdatum plant gaan terug naar hun eigen dag. De
|
|
81
86
|
// dagtotalen worden opnieuw opgeteld uit wat overblijft.
|
|
82
|
-
const { isKnownRef } = useKnownOrders();
|
|
83
|
-
const { correctPickDate } = useOrderPickDates();
|
|
87
|
+
const { isKnownRef, isFulfilledRef } = useKnownOrders();
|
|
88
|
+
const { correctPickDate } = useOrderPickDates(wideFrom, wideTo);
|
|
84
89
|
const days = useMemo(() => {
|
|
85
90
|
const perDay = new Map();
|
|
86
91
|
for (const d of query.data ?? []) {
|
|
@@ -91,7 +96,7 @@ export function usePickAgenda(from, to) {
|
|
|
91
96
|
continue;
|
|
92
97
|
const dag = correctPickDate(o.orderRef, d.pickDate);
|
|
93
98
|
const list = perDay.get(dag) ?? [];
|
|
94
|
-
list.push(o);
|
|
99
|
+
list.push({ ...o, fulfilled: isFulfilledRef(o.orderRef) });
|
|
95
100
|
perDay.set(dag, list);
|
|
96
101
|
}
|
|
97
102
|
}
|
|
@@ -101,6 +106,7 @@ export function usePickAgenda(from, to) {
|
|
|
101
106
|
continue;
|
|
102
107
|
if (to && pickDate > to)
|
|
103
108
|
continue;
|
|
109
|
+
const doneCount = orders.filter((o) => o.fulfilled || o.status === "done" || o.status === "completed").length;
|
|
104
110
|
const ready = orders.filter((o) => o.status === "ready" || o.status === "done").length;
|
|
105
111
|
out.push({
|
|
106
112
|
pickDate,
|
|
@@ -111,11 +117,12 @@ export function usePickAgenda(from, to) {
|
|
|
111
117
|
ready,
|
|
112
118
|
inPreparation: Math.max(0, orders.length - ready),
|
|
113
119
|
shiftedCount: orders.filter((o) => o.shifted).length,
|
|
120
|
+
doneCount,
|
|
114
121
|
});
|
|
115
122
|
}
|
|
116
123
|
out.sort((a, b) => a.pickDate.localeCompare(b.pickDate));
|
|
117
124
|
return out;
|
|
118
|
-
}, [query.data, isKnownRef, correctPickDate, from, to]);
|
|
125
|
+
}, [query.data, isKnownRef, isFulfilledRef, correctPickDate, from, to]);
|
|
119
126
|
const byDate = new Map();
|
|
120
127
|
for (const d of days)
|
|
121
128
|
byDate.set(d.pickDate, d);
|
|
@@ -1,10 +1,16 @@
|
|
|
1
|
+
import { type PickModeInfo } from "../lib/pickMode";
|
|
1
2
|
/**
|
|
2
3
|
* De Engine bepaalt de actieve pickmethode. Alleen bij "picken per kar"
|
|
3
|
-
* bestaat er een karcontrolestap.
|
|
4
|
+
* bestaat er een karcontrolestap. Mislukt het ophalen, dan blijft de laatst
|
|
5
|
+
* bekende werkwijze gelden en melden we dat als fout — nooit stil uitzetten.
|
|
4
6
|
*/
|
|
5
7
|
export declare function usePickMode(): {
|
|
6
|
-
pickMode: "
|
|
8
|
+
pickMode: import("..").PickMode;
|
|
7
9
|
showCartControl: boolean;
|
|
8
10
|
isLoading: boolean;
|
|
11
|
+
isError: boolean;
|
|
12
|
+
isUnknown: boolean;
|
|
13
|
+
error: string | undefined;
|
|
14
|
+
refetch: (options?: import("@tanstack/query-core").RefetchOptions) => Promise<import("@tanstack/query-core").QueryObserverResult<NoInfer<PickModeInfo>, Error>>;
|
|
9
15
|
};
|
|
10
16
|
//# sourceMappingURL=usePickMode.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePickMode.d.ts","sourceRoot":"","sources":["../../src/hooks/usePickMode.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePickMode.d.ts","sourceRoot":"","sources":["../../src/hooks/usePickMode.ts"],"names":[],"mappings":"AAEA,OAAO,EAKL,KAAK,YAAY,EAClB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,wBAAgB,WAAW;;;;;;;;EAkC1B"}
|
|
@@ -1,19 +1,20 @@
|
|
|
1
1
|
import { useEffect } from "react";
|
|
2
2
|
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
3
|
-
import { fetchPickMode, startPickModeWatch, subscribePickMode, } from "../lib/pickMode";
|
|
3
|
+
import { fetchPickMode, getPickMode, startPickModeWatch, subscribePickMode, } from "../lib/pickMode";
|
|
4
4
|
/**
|
|
5
5
|
* De Engine bepaalt de actieve pickmethode. Alleen bij "picken per kar"
|
|
6
|
-
* bestaat er een karcontrolestap.
|
|
6
|
+
* bestaat er een karcontrolestap. Mislukt het ophalen, dan blijft de laatst
|
|
7
|
+
* bekende werkwijze gelden en melden we dat als fout — nooit stil uitzetten.
|
|
7
8
|
*/
|
|
8
9
|
export function usePickMode() {
|
|
9
10
|
const queryClient = useQueryClient();
|
|
10
11
|
const query = useQuery({
|
|
11
12
|
queryKey: ["logistics-pick-mode"],
|
|
12
|
-
staleTime:
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
13
|
+
staleTime: 60000,
|
|
14
|
+
refetchOnWindowFocus: false,
|
|
15
|
+
refetchOnMount: false,
|
|
16
|
+
retry: 1,
|
|
17
|
+
retryDelay: (attempt) => Math.min(1000 * 2 ** attempt, 15000),
|
|
17
18
|
queryFn: fetchPickMode,
|
|
18
19
|
});
|
|
19
20
|
// Live meelopen met wijzigingen in de instellingen van de Engine.
|
|
@@ -23,9 +24,16 @@ export function usePickMode() {
|
|
|
23
24
|
queryClient.invalidateQueries({ queryKey: ["logistics-pick-mode"] });
|
|
24
25
|
});
|
|
25
26
|
}, [queryClient]);
|
|
27
|
+
// Bij een fout heeft de query geen data; de module-cache houdt de laatst
|
|
28
|
+
// succesvol opgehaalde werkwijze vast.
|
|
29
|
+
const info = query.data ?? getPickMode();
|
|
26
30
|
return {
|
|
27
|
-
pickMode:
|
|
28
|
-
showCartControl:
|
|
31
|
+
pickMode: info.pickMode,
|
|
32
|
+
showCartControl: info.showCartControl === true,
|
|
29
33
|
isLoading: query.isLoading,
|
|
34
|
+
isError: query.isError,
|
|
35
|
+
isUnknown: info.status !== "ok",
|
|
36
|
+
error: query.error instanceof Error ? query.error.message : info.lastError,
|
|
37
|
+
refetch: query.refetch,
|
|
30
38
|
};
|
|
31
39
|
}
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import type { FlowModule } from "@flowselections/core";
|
|
2
1
|
export * from "./_core-safelist";
|
|
3
2
|
export { LeveringenPage } from "./components/afhandeling/LeveringenPage";
|
|
4
3
|
export { VervoerdersPage } from "./components/afhandeling/VervoerdersPage";
|
|
@@ -16,5 +15,5 @@ export { calculateEarliestDeliveryDate, calculateOrderPlanning, DEFAULT_PICKUP_M
|
|
|
16
15
|
export { carrierLeadDaysFromMoments, normalizePickupMoments, sanitizeWeekdays, selectCarrierForTarget, type CarrierOrderTarget, type CarrierPlanningInfo, } from "./lib/carrierPlanning";
|
|
17
16
|
export { ensurePickMode, fetchPickMode, getPickMode, refreshPickMode, startPickModeWatch, subscribePickMode, type PickMode, type PickModeInfo } from "./lib/pickMode";
|
|
18
17
|
export { usePickMode } from "./hooks/usePickMode";
|
|
19
|
-
export
|
|
18
|
+
export { floridayAfhandelingModule } from "./moduleDefinition";
|
|
20
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist-lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,0CAA0C,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,MAAM,yCAAyC,CAAC;AACzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,iDAAiD,CAAC;AACzF,OAAO,EAAE,oBAAoB,EAAE,MAAM,+CAA+C,CAAC;AACrF,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;AAExF,OAAO,EACL,6BAA6B,EAC7B,sBAAsB,EACtB,qBAAqB,EACrB,KAAK,qBAAqB,EAC1B,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,0BAA0B,EAC1B,sBAAsB,EACtB,gBAAgB,EAChB,sBAAsB,EACtB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,GACzB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,eAAe,EAAE,kBAAkB,EAAE,iBAAiB,EAAE,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,gBAAgB,CAAC;AACtK,OAAO,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC"}
|
package/dist-lib/index.js
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import { PackageCheck, CalendarCheck, CalendarRange, ClipboardCheck } from "lucide-react";
|
|
2
1
|
export * from "./_core-safelist";
|
|
3
2
|
export { LeveringenPage } from "./components/afhandeling/LeveringenPage";
|
|
4
3
|
export { VervoerdersPage } from "./components/afhandeling/VervoerdersPage";
|
|
@@ -14,37 +13,6 @@ export { AfhandelingSettingsCard } from "./components/settings/AfhandelingSettin
|
|
|
14
13
|
export { VervoerdersSettingsCard } from "./components/settings/VervoerdersSettingsCard";
|
|
15
14
|
export { calculateEarliestDeliveryDate, calculateOrderPlanning, DEFAULT_PICKUP_MOMENT, } from "./lib/planning";
|
|
16
15
|
export { carrierLeadDaysFromMoments, normalizePickupMoments, sanitizeWeekdays, selectCarrierForTarget, } from "./lib/carrierPlanning";
|
|
17
|
-
import { AfhandelingSettingsCard } from "./components/settings/AfhandelingSettingsCard";
|
|
18
|
-
import { VervoerdersSettingsCard } from "./components/settings/VervoerdersSettingsCard";
|
|
19
|
-
import { ensurePickMode, getPickMode } from "./lib/pickMode";
|
|
20
16
|
export { ensurePickMode, fetchPickMode, getPickMode, refreshPickMode, startPickModeWatch, subscribePickMode } from "./lib/pickMode";
|
|
21
17
|
export { usePickMode } from "./hooks/usePickMode";
|
|
22
|
-
|
|
23
|
-
{ label: "Pick Agenda", href: "/afhandeling/picking", icon: CalendarCheck },
|
|
24
|
-
{ label: "Planning en leveringen", href: "/afhandeling/leveringen", icon: CalendarRange },
|
|
25
|
-
];
|
|
26
|
-
const cartControlChild = {
|
|
27
|
-
label: "Controle karren",
|
|
28
|
-
href: "/afhandeling/controle",
|
|
29
|
-
icon: ClipboardCheck,
|
|
30
|
-
};
|
|
31
|
-
export const floridayAfhandelingModule = {
|
|
32
|
-
id: "afhandeling",
|
|
33
|
-
name: "Afhandeling",
|
|
34
|
-
version: "1.4.0",
|
|
35
|
-
nav: {
|
|
36
|
-
label: "Afhandeling",
|
|
37
|
-
href: "/afhandeling/picking",
|
|
38
|
-
icon: PackageCheck,
|
|
39
|
-
// De Engine beslist: karcontrole hoort alleen bij "picken per kar".
|
|
40
|
-
// Zonder antwoord blijft het item verborgen (fail closed).
|
|
41
|
-
get children() {
|
|
42
|
-
void ensurePickMode();
|
|
43
|
-
return getPickMode().showCartControl ? [...baseChildren, cartControlChild] : baseChildren;
|
|
44
|
-
},
|
|
45
|
-
},
|
|
46
|
-
settingsCards: [
|
|
47
|
-
{ component: VervoerdersSettingsCard, order: 80 },
|
|
48
|
-
{ component: AfhandelingSettingsCard, order: 100 },
|
|
49
|
-
],
|
|
50
|
-
};
|
|
18
|
+
export { floridayAfhandelingModule } from "./moduleDefinition";
|