@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.
Files changed (96) hide show
  1. package/dist-lib/components/afhandeling/ControleLijstPrint.d.ts +7 -0
  2. package/dist-lib/components/afhandeling/ControleLijstPrint.d.ts.map +1 -0
  3. package/dist-lib/components/afhandeling/ControleLijstPrint.js +67 -0
  4. package/dist-lib/components/afhandeling/ControlePage.d.ts +2 -0
  5. package/dist-lib/components/afhandeling/ControlePage.d.ts.map +1 -0
  6. package/dist-lib/components/afhandeling/ControlePage.js +456 -0
  7. package/dist-lib/components/afhandeling/DagDetailDialog.d.ts +9 -0
  8. package/dist-lib/components/afhandeling/DagDetailDialog.d.ts.map +1 -0
  9. package/dist-lib/components/afhandeling/DagDetailDialog.js +149 -0
  10. package/dist-lib/components/afhandeling/LeveringenPage.d.ts.map +1 -1
  11. package/dist-lib/components/afhandeling/LeveringenPage.js +11 -5
  12. package/dist-lib/components/afhandeling/PickAgendaView.d.ts.map +1 -1
  13. package/dist-lib/components/afhandeling/PickAgendaView.js +13 -4
  14. package/dist-lib/components/afhandeling/PlanningAgendaPage.d.ts.map +1 -1
  15. package/dist-lib/components/afhandeling/PlanningAgendaPage.js +2 -2
  16. package/dist-lib/components/afhandeling/ServiceAreaSelect.d.ts +12 -0
  17. package/dist-lib/components/afhandeling/ServiceAreaSelect.d.ts.map +1 -0
  18. package/dist-lib/components/afhandeling/ServiceAreaSelect.js +79 -0
  19. package/dist-lib/components/afhandeling/VervoerderForm.d.ts.map +1 -1
  20. package/dist-lib/components/afhandeling/VervoerderForm.js +62 -6
  21. package/dist-lib/components/afhandeling/VervoerdersPage.d.ts.map +1 -1
  22. package/dist-lib/components/afhandeling/VervoerdersPage.js +25 -6
  23. package/dist-lib/components/afhandeling/WeekAgendaView.d.ts +2 -1
  24. package/dist-lib/components/afhandeling/WeekAgendaView.d.ts.map +1 -1
  25. package/dist-lib/components/afhandeling/WeekAgendaView.js +63 -18
  26. package/dist-lib/components/afhandeling/WeekdayPicker.d.ts +12 -0
  27. package/dist-lib/components/afhandeling/WeekdayPicker.d.ts.map +1 -0
  28. package/dist-lib/components/afhandeling/WeekdayPicker.js +30 -0
  29. package/dist-lib/components/pickstation/PakbonTemplate.d.ts +6 -2
  30. package/dist-lib/components/pickstation/PakbonTemplate.d.ts.map +1 -1
  31. package/dist-lib/components/pickstation/PakbonTemplate.js +37 -12
  32. package/dist-lib/components/settings/AfhandelingSettingsCard.d.ts.map +1 -1
  33. package/dist-lib/components/settings/AfhandelingSettingsCard.js +25 -6
  34. package/dist-lib/components/ui/responsive-dialog.d.ts +20 -0
  35. package/dist-lib/components/ui/responsive-dialog.d.ts.map +1 -0
  36. package/dist-lib/components/ui/responsive-dialog.js +44 -0
  37. package/dist-lib/hooks/useOrderPlanning.d.ts +3 -0
  38. package/dist-lib/hooks/useOrderPlanning.d.ts.map +1 -1
  39. package/dist-lib/hooks/useOrderPlanning.js +64 -12
  40. package/dist-lib/index.d.ts +1 -0
  41. package/dist-lib/index.d.ts.map +1 -1
  42. package/dist-lib/index.js +4 -2
  43. package/dist-lib/integrations/supabase/auth-middleware.d.ts +2898 -147
  44. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  45. package/dist-lib/integrations/supabase/client.d.ts +2898 -147
  46. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  47. package/dist-lib/integrations/supabase/client.server.d.ts +2898 -147
  48. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  49. package/dist-lib/integrations/supabase/types.d.ts +2986 -155
  50. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  51. package/dist-lib/integrations/supabase/types.js +1 -0
  52. package/dist-lib/lib/afhandelingSettings.functions.d.ts +10666 -5151
  53. package/dist-lib/lib/afhandelingSettings.functions.d.ts.map +1 -1
  54. package/dist-lib/lib/afhandelingSettings.functions.js +42 -2
  55. package/dist-lib/lib/carrierMatch.server.d.ts +27 -0
  56. package/dist-lib/lib/carrierMatch.server.d.ts.map +1 -0
  57. package/dist-lib/lib/carrierMatch.server.js +75 -0
  58. package/dist-lib/lib/carrierSignupMail.server.d.ts +56 -0
  59. package/dist-lib/lib/carrierSignupMail.server.d.ts.map +1 -0
  60. package/dist-lib/lib/carrierSignupMail.server.js +229 -0
  61. package/dist-lib/lib/carriers.functions.d.ts +36404 -15470
  62. package/dist-lib/lib/carriers.functions.d.ts.map +1 -1
  63. package/dist-lib/lib/carriers.functions.js +43 -2
  64. package/dist-lib/lib/cartAssignments.functions.d.ts +49609 -0
  65. package/dist-lib/lib/cartAssignments.functions.d.ts.map +1 -0
  66. package/dist-lib/lib/cartAssignments.functions.js +130 -0
  67. package/dist-lib/lib/cartControl.functions.d.ts +99259 -0
  68. package/dist-lib/lib/cartControl.functions.d.ts.map +1 -0
  69. package/dist-lib/lib/cartControl.functions.js +489 -0
  70. package/dist-lib/lib/cartMoveImpact.d.ts +8 -0
  71. package/dist-lib/lib/cartMoveImpact.d.ts.map +1 -0
  72. package/dist-lib/lib/cartMoveImpact.js +26 -0
  73. package/dist-lib/lib/cartRescheduling.d.ts +30 -0
  74. package/dist-lib/lib/cartRescheduling.d.ts.map +1 -0
  75. package/dist-lib/lib/cartRescheduling.js +71 -0
  76. package/dist-lib/lib/floriday.functions.d.ts +2902 -147
  77. package/dist-lib/lib/floriday.functions.d.ts.map +1 -1
  78. package/dist-lib/lib/floriday.functions.js +178 -98
  79. package/dist-lib/lib/geo/euServiceAreas.d.ts +30 -0
  80. package/dist-lib/lib/geo/euServiceAreas.d.ts.map +1 -0
  81. package/dist-lib/lib/geo/euServiceAreas.js +277 -0
  82. package/dist-lib/lib/invalidatePlanning.d.ts +11 -0
  83. package/dist-lib/lib/invalidatePlanning.d.ts.map +1 -0
  84. package/dist-lib/lib/invalidatePlanning.js +25 -0
  85. package/dist-lib/lib/pickstationI18n.d.ts +12 -0
  86. package/dist-lib/lib/pickstationI18n.d.ts.map +1 -1
  87. package/dist-lib/lib/pickstationI18n.js +72 -0
  88. package/dist-lib/lib/pickstationOrders.server.d.ts +2 -1
  89. package/dist-lib/lib/pickstationOrders.server.d.ts.map +1 -1
  90. package/dist-lib/lib/pickstationOrders.server.js +393 -178
  91. package/dist-lib/lib/pickstationTypes.d.ts +23 -2
  92. package/dist-lib/lib/pickstationTypes.d.ts.map +1 -1
  93. package/dist-lib/lib/planning.d.ts +41 -2
  94. package/dist-lib/lib/planning.d.ts.map +1 -1
  95. package/dist-lib/lib/planning.js +159 -36
  96. 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
- return await fetchOrders();
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 initial = orders.map((order) => ({
72
- order,
73
- planning: calculateOrderPlanning(order.deliveryDate, {
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
- return distributePickDates(initial, {
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
- }, [ordersQuery.data, settingsQuery.data, carriersQuery.data]);
132
+ return distributed;
133
+ }, [ordersQuery.data, settingsQuery.data, carriersQuery.data, overridesQuery.data]);
84
134
  return {
85
135
  planned,
86
- isLoading: ordersQuery.isLoading || settingsQuery.isLoading || carriersQuery.isLoading,
87
- error: ordersQuery.data?.error,
88
- refetch: () => { void ordersQuery.refetch(); },
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
  }
@@ -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;
@@ -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,UAiBvC,CAAC"}
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.2.0",
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: [