@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
|
@@ -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
|
+
});
|