@flowselections/floriday-verkoop-module 1.0.54 → 1.0.56
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/verkoop/OrderKarindelingCard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderKarindelingCard.js +7 -3
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +45 -0
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +45 -0
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +45 -0
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +45 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/cart-lock.functions.d.ts +45 -0
- package/dist-lib/lib/cart-lock.functions.d.ts.map +1 -1
- package/dist-lib/lib/cart-planning-settings.functions.d.ts +495 -0
- package/dist-lib/lib/cart-planning-settings.functions.d.ts.map +1 -1
- package/dist-lib/lib/cart-replan.functions.d.ts +137 -26
- package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
- package/dist-lib/lib/cart-replan.functions.js +93 -63
- package/dist-lib/lib/create-order.functions.d.ts +765 -0
- package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +135 -0
- package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +45 -0
- package/dist-lib/lib/floriday-logistic-labels.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-mirror.functions.d.ts +45 -0
- package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-public.functions.d.ts +315 -0
- package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-writes.functions.d.ts +225 -0
- package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
- package/dist-lib/lib/invoice-timing.functions.d.ts +180 -0
- package/dist-lib/lib/invoice-timing.functions.d.ts.map +1 -1
- package/dist-lib/lib/invoice-timing.functions.js +12 -6
- package/dist-lib/lib/load-carriers.functions.d.ts +45 -0
- package/dist-lib/lib/load-carriers.functions.d.ts.map +1 -1
- package/dist-lib/lib/logistics-engine.functions.d.ts +225 -0
- package/dist-lib/lib/logistics-engine.functions.d.ts.map +1 -1
- package/dist-lib/lib/logistics-engine.functions.js +10 -5
- package/dist-lib/lib/logistics-stock.functions.d.ts +90 -0
- package/dist-lib/lib/logistics-stock.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-addresses.functions.d.ts +45 -0
- package/dist-lib/lib/order-addresses.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-addresses.functions.js +15 -9
- package/dist-lib/lib/order-buffers.functions.d.ts +135 -0
- package/dist-lib/lib/order-buffers.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-buffers.functions.js +10 -10
- package/dist-lib/lib/order-carrier.functions.d.ts +90 -0
- package/dist-lib/lib/order-carrier.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-carrier.functions.js +20 -11
- package/dist-lib/lib/order-pickup.functions.d.ts +90 -0
- package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-pickup.functions.js +20 -11
- package/dist-lib/lib/order-row.server.d.ts +24 -0
- package/dist-lib/lib/order-row.server.d.ts.map +1 -0
- package/dist-lib/lib/order-row.server.js +58 -0
- package/dist-lib/lib/order-shipments.functions.d.ts +180 -0
- package/dist-lib/lib/order-shipments.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-shipments.functions.js +11 -6
- package/dist-lib/lib/product-name.d.ts +3 -0
- package/dist-lib/lib/product-name.d.ts.map +1 -0
- package/dist-lib/lib/product-name.js +43 -0
- package/dist-lib/lib/salesorders-list.functions.d.ts +45 -0
- package/dist-lib/lib/salesorders-list.functions.d.ts.map +1 -1
- package/dist-lib/lib/salesorders.functions.d.ts +225 -0
- package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
- package/dist-lib/lib/stock-consumption-alerts.functions.d.ts +90 -0
- package/dist-lib/lib/stock-consumption-alerts.functions.d.ts.map +1 -1
- package/dist-lib/lib/tradeitems.functions.d.ts +45 -0
- package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
- package/package.json +1 -1
|
@@ -7,6 +7,7 @@
|
|
|
7
7
|
import { createServerFn } from "@tanstack/react-start";
|
|
8
8
|
import { z } from "zod";
|
|
9
9
|
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
10
|
+
import { resolveOrderRow } from "./order-row.server";
|
|
10
11
|
const ShipmentItemInput = z.object({
|
|
11
12
|
orderItemId: z.string().uuid(),
|
|
12
13
|
productId: z.string().uuid().nullable().optional(),
|
|
@@ -14,7 +15,7 @@ const ShipmentItemInput = z.object({
|
|
|
14
15
|
quantity: z.number().positive(),
|
|
15
16
|
});
|
|
16
17
|
const CreateShipmentInput = z.object({
|
|
17
|
-
orderId: z.string().
|
|
18
|
+
orderId: z.string().min(1),
|
|
18
19
|
deliveryDate: z.string().min(1).nullable().optional(),
|
|
19
20
|
carrierId: z.string().uuid().nullable().optional(),
|
|
20
21
|
deliveryLocationId: z.string().uuid().nullable().optional(),
|
|
@@ -63,17 +64,20 @@ async function assertRemainingCapacity(supabase, orderId, incoming, ignoreShipme
|
|
|
63
64
|
}
|
|
64
65
|
export const listOrderShipments = createServerFn({ method: "GET" })
|
|
65
66
|
.middleware([requireSupabaseAuth])
|
|
66
|
-
.inputValidator((input) => z.object({ orderId: z.string().
|
|
67
|
+
.inputValidator((input) => z.object({ orderId: z.string().min(1) }).parse(input))
|
|
67
68
|
.handler(async ({ data, context }) => {
|
|
69
|
+
// DTO-id kan een Floriday salesOrderId zijn; resolveOrderRow vertaalt dat.
|
|
70
|
+
const orderRow = await resolveOrderRow(context.supabase, data.orderId);
|
|
71
|
+
const orderId = orderRow.id;
|
|
68
72
|
const { data: shipments } = await context.supabase
|
|
69
73
|
.from("order_shipments")
|
|
70
74
|
.select("id, order_id, shipment_number, delivery_date, carrier_id, delivery_location_id, status, shipped_at, notes, created_at, order_shipment_items(id, order_item_id, product_id, product_name, quantity)")
|
|
71
|
-
.eq("order_id",
|
|
75
|
+
.eq("order_id", orderId)
|
|
72
76
|
.order("shipment_number");
|
|
73
77
|
const { data: items } = await context.supabase
|
|
74
78
|
.from("order_items")
|
|
75
79
|
.select("id, product_id, product_name, quantity, unit, products(plants_per_crate)")
|
|
76
|
-
.eq("order_id",
|
|
80
|
+
.eq("order_id", orderId);
|
|
77
81
|
// Totalen per order-item: besteld, geleverd (shipped), gepland (planned).
|
|
78
82
|
const shipped = new Map();
|
|
79
83
|
const planned = new Map();
|
|
@@ -114,11 +118,12 @@ export const createShipment = createServerFn({ method: "POST" })
|
|
|
114
118
|
.middleware([requireSupabaseAuth])
|
|
115
119
|
.inputValidator((input) => CreateShipmentInput.parse(input))
|
|
116
120
|
.handler(async ({ data, context }) => {
|
|
117
|
-
await
|
|
121
|
+
const orderRow = await resolveOrderRow(context.supabase, data.orderId);
|
|
122
|
+
await assertRemainingCapacity(context.supabase, orderRow.id, data.items.map((i) => ({ orderItemId: i.orderItemId, quantity: i.quantity })));
|
|
118
123
|
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
119
124
|
const { data: shipment, error } = await supabaseAdmin.from("order_shipments")
|
|
120
125
|
.insert({
|
|
121
|
-
order_id:
|
|
126
|
+
order_id: orderRow.id,
|
|
122
127
|
delivery_date: data.deliveryDate ?? null,
|
|
123
128
|
carrier_id: data.carrierId ?? null,
|
|
124
129
|
delivery_location_id: data.deliveryLocationId ?? null,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"product-name.d.ts","sourceRoot":"","sources":["../../src/lib/product-name.ts"],"names":[],"mappings":"AAoBA,2EAA2E;AAC3E,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAiBhE"}
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
// Gedeelde helper voor artikelnamen met taalvarianten.
|
|
2
|
+
//
|
|
3
|
+
// `order_items.product_name` (en dus `order_cart_items.product_name`) kan een
|
|
4
|
+
// JSON-string met taalvarianten bevatten, bijv. {"nl":"plant test"}.
|
|
5
|
+
// De SQL-planner (`logistics_plan_buffer_sql`) doet hetzelfde met:
|
|
6
|
+
// CASE WHEN product_name ~ '^\s*\{' THEN (product_name::jsonb ->> 'nl') ELSE product_name END
|
|
7
|
+
// Voorkeur: 'nl' → eerste beschikbare taal → rauwe waarde.
|
|
8
|
+
function fromObject(obj) {
|
|
9
|
+
const preferred = ["nl", "NL", "nl-NL", "en", "EN", "en-GB", "en-US"];
|
|
10
|
+
for (const key of preferred) {
|
|
11
|
+
const v = obj[key];
|
|
12
|
+
if (typeof v === "string" && v.trim())
|
|
13
|
+
return v;
|
|
14
|
+
}
|
|
15
|
+
for (const v of Object.values(obj)) {
|
|
16
|
+
if (typeof v === "string" && v.trim())
|
|
17
|
+
return v;
|
|
18
|
+
}
|
|
19
|
+
return null;
|
|
20
|
+
}
|
|
21
|
+
/** Geeft een leesbare artikelnaam terug; valt terug op de rauwe waarde. */
|
|
22
|
+
export function resolveProductName(value) {
|
|
23
|
+
if (value == null)
|
|
24
|
+
return null;
|
|
25
|
+
if (typeof value === "object") {
|
|
26
|
+
return fromObject(value) ?? null;
|
|
27
|
+
}
|
|
28
|
+
if (typeof value !== "string")
|
|
29
|
+
return String(value);
|
|
30
|
+
const raw = value;
|
|
31
|
+
if (!/^\s*\{/.test(raw))
|
|
32
|
+
return raw;
|
|
33
|
+
try {
|
|
34
|
+
const parsed = JSON.parse(raw);
|
|
35
|
+
if (parsed && typeof parsed === "object" && !Array.isArray(parsed)) {
|
|
36
|
+
return fromObject(parsed) ?? raw;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
catch {
|
|
40
|
+
// geen geldige JSON — rauwe waarde tonen
|
|
41
|
+
}
|
|
42
|
+
return raw;
|
|
43
|
+
}
|
|
@@ -10735,6 +10735,24 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
10735
10735
|
};
|
|
10736
10736
|
Relationships: [];
|
|
10737
10737
|
};
|
|
10738
|
+
maps_job_lease: {
|
|
10739
|
+
Row: {
|
|
10740
|
+
job: string;
|
|
10741
|
+
locked_until: string;
|
|
10742
|
+
updated_at: string;
|
|
10743
|
+
};
|
|
10744
|
+
Insert: {
|
|
10745
|
+
job: string;
|
|
10746
|
+
locked_until?: string;
|
|
10747
|
+
updated_at?: string;
|
|
10748
|
+
};
|
|
10749
|
+
Update: {
|
|
10750
|
+
job?: string;
|
|
10751
|
+
locked_until?: string;
|
|
10752
|
+
updated_at?: string;
|
|
10753
|
+
};
|
|
10754
|
+
Relationships: [];
|
|
10755
|
+
};
|
|
10738
10756
|
maps_request_queue: {
|
|
10739
10757
|
Row: {
|
|
10740
10758
|
attempts: number;
|
|
@@ -10796,6 +10814,7 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
10796
10814
|
last_error: string | null;
|
|
10797
10815
|
last_error_at: string | null;
|
|
10798
10816
|
last_success_at: string | null;
|
|
10817
|
+
provider: string;
|
|
10799
10818
|
updated_at: string;
|
|
10800
10819
|
};
|
|
10801
10820
|
Insert: {
|
|
@@ -10807,6 +10826,7 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
10807
10826
|
last_error?: string | null;
|
|
10808
10827
|
last_error_at?: string | null;
|
|
10809
10828
|
last_success_at?: string | null;
|
|
10829
|
+
provider?: string;
|
|
10810
10830
|
updated_at?: string;
|
|
10811
10831
|
};
|
|
10812
10832
|
Update: {
|
|
@@ -10818,6 +10838,7 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
10818
10838
|
last_error?: string | null;
|
|
10819
10839
|
last_error_at?: string | null;
|
|
10820
10840
|
last_success_at?: string | null;
|
|
10841
|
+
provider?: string;
|
|
10821
10842
|
updated_at?: string;
|
|
10822
10843
|
};
|
|
10823
10844
|
Relationships: [];
|
|
@@ -13596,6 +13617,8 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
13596
13617
|
foutmelding: string | null;
|
|
13597
13618
|
gebruiker_id: string | null;
|
|
13598
13619
|
gebruiker_naam: string;
|
|
13620
|
+
gebruikte_bron: string | null;
|
|
13621
|
+
gebruikte_layout_id: string | null;
|
|
13599
13622
|
gestart_op: string | null;
|
|
13600
13623
|
herkomst: string | null;
|
|
13601
13624
|
id: string;
|
|
@@ -13626,6 +13649,8 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
13626
13649
|
foutmelding?: string | null;
|
|
13627
13650
|
gebruiker_id?: string | null;
|
|
13628
13651
|
gebruiker_naam?: string;
|
|
13652
|
+
gebruikte_bron?: string | null;
|
|
13653
|
+
gebruikte_layout_id?: string | null;
|
|
13629
13654
|
gestart_op?: string | null;
|
|
13630
13655
|
herkomst?: string | null;
|
|
13631
13656
|
id?: string;
|
|
@@ -13656,6 +13681,8 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
13656
13681
|
foutmelding?: string | null;
|
|
13657
13682
|
gebruiker_id?: string | null;
|
|
13658
13683
|
gebruiker_naam?: string;
|
|
13684
|
+
gebruikte_bron?: string | null;
|
|
13685
|
+
gebruikte_layout_id?: string | null;
|
|
13659
13686
|
gestart_op?: string | null;
|
|
13660
13687
|
herkomst?: string | null;
|
|
13661
13688
|
id?: string;
|
|
@@ -20325,6 +20352,8 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
20325
20352
|
foutmelding: string | null;
|
|
20326
20353
|
gebruiker_id: string | null;
|
|
20327
20354
|
gebruiker_naam: string;
|
|
20355
|
+
gebruikte_bron: string | null;
|
|
20356
|
+
gebruikte_layout_id: string | null;
|
|
20328
20357
|
gestart_op: string | null;
|
|
20329
20358
|
herkomst: string | null;
|
|
20330
20359
|
id: string;
|
|
@@ -20446,6 +20475,8 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
20446
20475
|
foutmelding: string | null;
|
|
20447
20476
|
gebruiker_id: string | null;
|
|
20448
20477
|
gebruiker_naam: string;
|
|
20478
|
+
gebruikte_bron: string | null;
|
|
20479
|
+
gebruikte_layout_id: string | null;
|
|
20449
20480
|
gestart_op: string | null;
|
|
20450
20481
|
herkomst: string | null;
|
|
20451
20482
|
id: string;
|
|
@@ -21502,6 +21533,12 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
21502
21533
|
};
|
|
21503
21534
|
Returns: string;
|
|
21504
21535
|
};
|
|
21536
|
+
logistics_document_type_map: {
|
|
21537
|
+
Args: {
|
|
21538
|
+
_document_code: string;
|
|
21539
|
+
};
|
|
21540
|
+
Returns: import("../integrations/supabase/types").Database["public"]["Enums"]["doc_layout_type"][];
|
|
21541
|
+
};
|
|
21505
21542
|
logistics_emit_event: {
|
|
21506
21543
|
Args: {
|
|
21507
21544
|
p_event_type: string;
|
|
@@ -22582,6 +22619,14 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
22582
22619
|
};
|
|
22583
22620
|
Returns: undefined;
|
|
22584
22621
|
};
|
|
22622
|
+
replace_order_carts: {
|
|
22623
|
+
Args: {
|
|
22624
|
+
p_buffer_id: string;
|
|
22625
|
+
p_carts: import("../integrations/supabase/types").Json;
|
|
22626
|
+
p_order_id: string;
|
|
22627
|
+
};
|
|
22628
|
+
Returns: import("../integrations/supabase/types").Json;
|
|
22629
|
+
};
|
|
22585
22630
|
reset_floriday_sync_cursor: {
|
|
22586
22631
|
Args: {
|
|
22587
22632
|
p_connection_id: string;
|