@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
@@ -0,0 +1,130 @@
1
+ import { createServerFn } from "@tanstack/react-start";
2
+ import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
3
+ function toISODate(d) {
4
+ const dt = typeof d === "string" ? new Date(d) : d;
5
+ const y = dt.getFullYear();
6
+ const m = String(dt.getMonth() + 1).padStart(2, "0");
7
+ const day = String(dt.getDate()).padStart(2, "0");
8
+ return `${y}-${m}-${day}`;
9
+ }
10
+ export const listCartOverrides = createServerFn({ method: "GET" })
11
+ .middleware([requireSupabaseAuth])
12
+ .handler(async ({ context }) => {
13
+ const supabase = context.supabase;
14
+ const { data, error } = await supabase
15
+ .from("cart_pick_overrides")
16
+ .select("id, order_id, order_source, cart_index, pick_date, moved_from_date, status, notes")
17
+ .limit(5000);
18
+ if (error)
19
+ throw new Error(error.message);
20
+ return { overrides: (data ?? []) };
21
+ });
22
+ export const moveCart = createServerFn({ method: "POST" })
23
+ .middleware([requireSupabaseAuth])
24
+ .inputValidator((d) => d)
25
+ .handler(async ({ data, context }) => {
26
+ const supabase = context.supabase;
27
+ const pickDate = toISODate(data.newDate);
28
+ const fromDate = data.fromDate ? toISODate(data.fromDate) : null;
29
+ const { data: row, error } = await supabase
30
+ .from("cart_pick_overrides")
31
+ .upsert({
32
+ order_id: data.orderId,
33
+ order_source: data.orderSource,
34
+ cart_index: data.cartIndex,
35
+ pick_date: pickDate,
36
+ moved_from_date: fromDate,
37
+ }, { onConflict: "order_id,order_source,cart_index" })
38
+ .select()
39
+ .single();
40
+ if (error)
41
+ throw new Error(error.message);
42
+ return { ok: true, override: row };
43
+ });
44
+ export const resetCartOverride = createServerFn({ method: "POST" })
45
+ .middleware([requireSupabaseAuth])
46
+ .inputValidator((d) => d)
47
+ .handler(async ({ data, context }) => {
48
+ const supabase = context.supabase;
49
+ const { error } = await supabase
50
+ .from("cart_pick_overrides")
51
+ .delete()
52
+ .eq("order_id", data.orderId)
53
+ .eq("order_source", data.orderSource)
54
+ .eq("cart_index", data.cartIndex);
55
+ if (error)
56
+ throw new Error(error.message);
57
+ return { ok: true };
58
+ });
59
+ export const resetAllCartOverrides = createServerFn({ method: "POST" })
60
+ .middleware([requireSupabaseAuth])
61
+ .handler(async ({ context }) => {
62
+ const supabase = context.supabase;
63
+ const { error, count } = await supabase
64
+ .from("cart_pick_overrides")
65
+ .delete({ count: "exact" })
66
+ .not("id", "is", null);
67
+ if (error)
68
+ throw new Error(error.message);
69
+ return { ok: true, deleted: count ?? 0 };
70
+ });
71
+ export const getOrderLines = createServerFn({ method: "GET" })
72
+ .middleware([requireSupabaseAuth])
73
+ .inputValidator((d) => d)
74
+ .handler(async ({ data, context }) => {
75
+ const supabase = context.supabase;
76
+ if (data.orderSource === "manual") {
77
+ const { data: items, error } = await supabase
78
+ .from("order_items")
79
+ .select("id, quantity, products(product, plants_per_crate, crates_per_layer, layers_per_cart)")
80
+ .eq("order_id", data.orderId);
81
+ if (error)
82
+ throw new Error(error.message);
83
+ const lines = (items ?? []).map((it) => {
84
+ const raw = it.products;
85
+ const p = Array.isArray(raw) ? raw[0] : raw;
86
+ const qty = Number(it.quantity ?? 0);
87
+ const perCrate = p?.plants_per_crate ? Number(p.plants_per_crate) : 0;
88
+ return {
89
+ id: it.id,
90
+ article: p?.product ?? "—",
91
+ plants: qty,
92
+ crates: perCrate > 0 ? Math.ceil(qty / perCrate) : null,
93
+ otherUnits: null,
94
+ };
95
+ });
96
+ return { lines };
97
+ }
98
+ // Floriday: salesorders_cache row contains one order; lines komen uit data JSON
99
+ const { data: row, error } = await supabase
100
+ .from("floriday_salesorders_cache")
101
+ .select("data")
102
+ .eq("floriday_id", data.orderId)
103
+ .maybeSingle();
104
+ if (error)
105
+ throw new Error(error.message);
106
+ const raw = (row?.data ?? {});
107
+ const items = raw.salesOrderLines ?? [];
108
+ const lines = items.map((l, idx) => ({
109
+ id: l.salesOrderLineId ?? `${data.orderId}-${idx}`,
110
+ article: l.tradeItemName ??
111
+ l.productName ??
112
+ "—",
113
+ plants: Number(l.numberOfPieces ?? l.quantity ?? 0),
114
+ crates: l.numberOfTradeUnits != null ? Number(l.numberOfTradeUnits) : null,
115
+ otherUnits: null,
116
+ }));
117
+ if (lines.length === 0) {
118
+ const pieces = Number(raw.numberOfPieces ?? 0);
119
+ if (pieces > 0) {
120
+ lines.push({
121
+ id: `${data.orderId}-0`,
122
+ article: raw.tradeItemName ?? "Bestelling",
123
+ plants: pieces,
124
+ crates: null,
125
+ otherUnits: null,
126
+ });
127
+ }
128
+ }
129
+ return { lines };
130
+ });