@flowselections/floriday-verkoop-module 1.0.87 → 1.0.90
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/CreateOrderPage.js +1 -1
- package/dist-lib/components/verkoop/DiagnoseConnectionDialog.js +1 -1
- package/dist-lib/components/verkoop/EditLocalOrderDialog.js +3 -3
- package/dist-lib/components/verkoop/OrderControlStatusCard.js +1 -1
- package/dist-lib/components/verkoop/OrderKarindelingCard.js +2 -2
- package/dist-lib/components/verkoop/OrderLinePackingCard.js +1 -1
- package/dist-lib/components/verkoop/OrderShipmentsCard.js +1 -1
- package/dist-lib/components/verkoop/ProductDimensionsSettings.js +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailView.js +12 -12
- package/dist-lib/components/verkoop/SalesOrdersFilterPanel.d.ts +1 -1
- package/dist-lib/components/verkoop/SalesOrdersFilters.js +1 -1
- package/dist-lib/components/verkoop/SalesOrdersTable.d.ts +1 -1
- package/dist-lib/components/verkoop/SalesOrdersTable.js +2 -2
- package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.js +1 -1
- package/dist-lib/components/verkoop/VerkoopOrdersPage.js +15 -15
- package/dist-lib/index.d.ts +4 -5
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +5 -6
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +1 -1
- package/dist-lib/lib/belading.server.js +1 -1
- package/dist-lib/lib/buffer-events.functions.d.ts +1 -1
- package/dist-lib/lib/buffer-events.functions.js +1 -1
- package/dist-lib/lib/cart-layers.functions.d.ts +4 -4
- package/dist-lib/lib/cart-layers.functions.js +2 -2
- package/dist-lib/lib/cart-lock.functions.d.ts +1 -1
- package/dist-lib/lib/cart-lock.functions.js +2 -2
- package/dist-lib/lib/cart-planning-settings.functions.d.ts +11 -11
- package/dist-lib/lib/cart-planning-settings.functions.js +1 -1
- package/dist-lib/lib/cart-replan.functions.d.ts +4 -4
- package/dist-lib/lib/cart-replan.functions.js +9 -9
- package/dist-lib/lib/create-order.functions.d.ts +18 -18
- package/dist-lib/lib/create-order.functions.js +15 -15
- package/dist-lib/lib/cron/index.d.ts +3 -3
- package/dist-lib/lib/cron/index.js +3 -3
- package/dist-lib/lib/cron/invoice-due.js +1 -1
- package/dist-lib/lib/cron/sync-salesorders.js +2 -2
- package/dist-lib/lib/cron/sync-tradeitems.js +1 -1
- package/dist-lib/lib/engine-block-alerts.server.js +4 -4
- package/dist-lib/lib/expand-group-order-items.d.ts +1 -1
- package/dist-lib/lib/floriday-change-diff.check.js +2 -2
- package/dist-lib/lib/floriday-gateway.server.d.ts +1 -1
- package/dist-lib/lib/floriday-gateway.server.js +2 -2
- package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +2 -2
- package/dist-lib/lib/floriday-logistic-labels.functions.js +5 -5
- package/dist-lib/lib/floriday-mirror.functions.d.ts +1 -1
- package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-mirror.functions.js +19 -12
- package/dist-lib/lib/floriday-public.functions.d.ts +7 -7
- package/dist-lib/lib/floriday-public.functions.js +2 -2
- package/dist-lib/lib/floriday-status.d.ts +1 -1
- package/dist-lib/lib/floriday-status.server.d.ts +1 -1
- package/dist-lib/lib/floriday-status.server.js +2 -2
- package/dist-lib/lib/floriday-sync.js +1 -1
- package/dist-lib/lib/floriday-unlinked-products.js +1 -1
- package/dist-lib/lib/floriday-writes.functions.d.ts +3 -3
- package/dist-lib/lib/floriday-writes.functions.js +3 -3
- package/dist-lib/lib/invoice-timing.functions.d.ts +5 -5
- package/dist-lib/lib/invoice-timing.functions.js +8 -8
- package/dist-lib/lib/invoice-timing.server.d.ts +8 -3
- package/dist-lib/lib/invoice-timing.server.d.ts.map +1 -1
- package/dist-lib/lib/invoice-timing.server.js +70 -34
- package/dist-lib/lib/load-carriers.functions.d.ts +2 -2
- package/dist-lib/lib/load-carriers.functions.js +2 -2
- package/dist-lib/lib/load-carriers.server.d.ts +1 -1
- package/dist-lib/lib/load-carriers.server.js +1 -1
- package/dist-lib/lib/logistics-buffer.server.js +1 -1
- package/dist-lib/lib/logistics-engine.functions.d.ts +8 -8
- package/dist-lib/lib/logistics-engine.functions.js +6 -6
- package/dist-lib/lib/logistics-engine.server.d.ts +1 -1
- package/dist-lib/lib/logistics-engine.server.js +4 -4
- package/dist-lib/lib/logistics-stock.functions.d.ts +3 -3
- package/dist-lib/lib/logistics-stock.functions.js +3 -3
- package/dist-lib/lib/order-addresses.functions.d.ts +1 -1
- package/dist-lib/lib/order-addresses.functions.js +2 -2
- package/dist-lib/lib/order-block-mail.server.js +3 -3
- package/dist-lib/lib/order-buffers.functions.d.ts +3 -3
- package/dist-lib/lib/order-buffers.functions.js +3 -3
- package/dist-lib/lib/order-cancel.server.js +6 -6
- package/dist-lib/lib/order-carrier.functions.d.ts +2 -2
- package/dist-lib/lib/order-carrier.functions.js +2 -2
- package/dist-lib/lib/order-fulfill.functions.d.ts +1 -1
- package/dist-lib/lib/order-fulfill.functions.js +3 -3
- package/dist-lib/lib/order-item-packing.functions.d.ts +3 -3
- package/dist-lib/lib/order-item-packing.functions.js +3 -3
- package/dist-lib/lib/order-patch.check.d.ts +2 -0
- package/dist-lib/lib/order-patch.check.d.ts.map +1 -0
- package/dist-lib/lib/order-patch.check.js +40 -0
- package/dist-lib/lib/order-patch.d.ts +18 -0
- package/dist-lib/lib/order-patch.d.ts.map +1 -0
- package/dist-lib/lib/order-patch.js +105 -0
- package/dist-lib/lib/order-pickup.functions.d.ts +2 -2
- package/dist-lib/lib/order-pickup.functions.js +3 -3
- package/dist-lib/lib/order-shipments.functions.d.ts +4 -4
- package/dist-lib/lib/order-shipments.functions.js +6 -6
- package/dist-lib/lib/plan-coverage.check.js +1 -1
- package/dist-lib/lib/plan-coverage.server.d.ts +1 -1
- package/dist-lib/lib/plan-coverage.server.js +1 -1
- package/dist-lib/lib/product-dimensions.functions.d.ts +2 -2
- package/dist-lib/lib/product-dimensions.functions.js +1 -1
- package/dist-lib/lib/salesorders-list.functions.d.ts +5 -5
- package/dist-lib/lib/salesorders-list.functions.js +4 -4
- package/dist-lib/lib/salesorders-list.server.d.ts +2 -2
- package/dist-lib/lib/salesorders-list.server.js +17 -17
- package/dist-lib/lib/salesorders-mapping.d.ts +3 -3
- package/dist-lib/lib/salesorders-mapping.js +2 -2
- package/dist-lib/lib/salesorders.functions.d.ts +7 -7
- package/dist-lib/lib/salesorders.functions.js +20 -20
- package/dist-lib/lib/stock-consumption-alerts.functions.d.ts +2 -2
- package/dist-lib/lib/stock-consumption-alerts.functions.js +1 -1
- package/dist-lib/lib/tradeitems.functions.d.ts +1068 -1068
- package/dist-lib/lib/tradeitems.functions.js +3 -3
- package/dist-lib/lib/useAllowedLoadCarriers.d.ts +1 -1
- package/dist-lib/lib/useAllowedLoadCarriers.js +1 -1
- package/dist-lib/lib/useBufferEvents.d.ts +1 -1
- package/dist-lib/lib/useBufferEvents.js +2 -2
- package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts +2 -2
- package/dist-lib/lib/useLocalSalesOrderDetailQuery.js +2 -2
- package/dist-lib/lib/useSalesOrderDetailQuery.d.ts +1 -1
- package/dist-lib/lib/useSalesOrderDetailQuery.js +2 -2
- package/dist-lib/lib/useSalesOrdersQuery.d.ts +2 -2
- package/dist-lib/lib/useSalesOrdersQuery.js +3 -3
- package/package.json +2 -2
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
export declare const listCustomersForCreateOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
2
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
2
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
3
3
|
userId: string;
|
|
4
4
|
claims: import("@supabase/auth-js").User;
|
|
5
5
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
6
6
|
items: any[];
|
|
7
7
|
}>>;
|
|
8
8
|
export declare const ensureCustomerFromTwinfield: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
9
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
9
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
10
10
|
userId: string;
|
|
11
11
|
claims: import("@supabase/auth-js").User;
|
|
12
12
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -15,7 +15,7 @@ export declare const ensureCustomerFromTwinfield: import("@tanstack/start-client
|
|
|
15
15
|
id: string;
|
|
16
16
|
}>>;
|
|
17
17
|
export declare const listProductsForCreateOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
18
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
18
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
19
19
|
userId: string;
|
|
20
20
|
claims: import("@supabase/auth-js").User;
|
|
21
21
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
@@ -36,7 +36,7 @@ export declare const listProductsForCreateOrder: import("@tanstack/start-client-
|
|
|
36
36
|
}[];
|
|
37
37
|
}>>;
|
|
38
38
|
export declare const listDeliveryLocationsForCustomerCO: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
39
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
39
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
40
40
|
userId: string;
|
|
41
41
|
claims: import("@supabase/auth-js").User;
|
|
42
42
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -63,7 +63,7 @@ export declare const listDeliveryLocationsForCustomerCO: import("@tanstack/start
|
|
|
63
63
|
}[];
|
|
64
64
|
}>>;
|
|
65
65
|
export declare const listPickupLocationsCO: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
66
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
66
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
67
67
|
userId: string;
|
|
68
68
|
claims: import("@supabase/auth-js").User;
|
|
69
69
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
@@ -73,7 +73,7 @@ export declare const listPickupLocationsCO: import("@tanstack/start-client-core"
|
|
|
73
73
|
}[];
|
|
74
74
|
}>>;
|
|
75
75
|
export declare const listCarriersForCreateOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
76
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
76
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
77
77
|
userId: string;
|
|
78
78
|
claims: import("@supabase/auth-js").User;
|
|
79
79
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
@@ -88,20 +88,20 @@ export declare const listCarriersForCreateOrder: import("@tanstack/start-client-
|
|
|
88
88
|
signup_days_before_delivery: number;
|
|
89
89
|
pickup_weekdays: number[];
|
|
90
90
|
delivery_weekdays: number[];
|
|
91
|
-
pickup_moments: import("../integrations/supabase/types").Json;
|
|
91
|
+
pickup_moments: import("../integrations/supabase/types.js").Json;
|
|
92
92
|
}[];
|
|
93
93
|
}>>;
|
|
94
94
|
export declare const listBeladingOptionsForProducts: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
95
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
95
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
96
96
|
userId: string;
|
|
97
97
|
claims: import("@supabase/auth-js").User;
|
|
98
98
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
99
99
|
productIds: string[];
|
|
100
100
|
}, Promise<{
|
|
101
|
-
byProduct: Record<string, import("./belading.server").BeladingOption[]>;
|
|
101
|
+
byProduct: Record<string, import("./belading.server.js").BeladingOption[]>;
|
|
102
102
|
}>>;
|
|
103
103
|
export declare const listBeladingOptions: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
104
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
104
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
105
105
|
userId: string;
|
|
106
106
|
claims: import("@supabase/auth-js").User;
|
|
107
107
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
@@ -115,14 +115,14 @@ export declare const listBeladingOptions: import("@tanstack/start-client-core").
|
|
|
115
115
|
}[];
|
|
116
116
|
}>>;
|
|
117
117
|
export declare const getOrderPickDaysCO: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
118
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
118
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
119
119
|
userId: string;
|
|
120
120
|
claims: import("@supabase/auth-js").User;
|
|
121
121
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
122
122
|
pickDays: number;
|
|
123
123
|
}>>;
|
|
124
124
|
export declare const createManualOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
125
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
125
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
126
126
|
userId: string;
|
|
127
127
|
claims: import("@supabase/auth-js").User;
|
|
128
128
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -151,7 +151,7 @@ export declare const createManualOrder: import("@tanstack/start-client-core").Op
|
|
|
151
151
|
orderId: string;
|
|
152
152
|
}>>;
|
|
153
153
|
export declare const cancelLocalOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
154
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
154
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
155
155
|
userId: string;
|
|
156
156
|
claims: import("@supabase/auth-js").User;
|
|
157
157
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -163,7 +163,7 @@ export declare const cancelLocalOrder: import("@tanstack/start-client-core").Opt
|
|
|
163
163
|
reversedKeys: number;
|
|
164
164
|
}>>;
|
|
165
165
|
export declare const deleteLocalOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
166
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
166
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
167
167
|
userId: string;
|
|
168
168
|
claims: import("@supabase/auth-js").User;
|
|
169
169
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -178,7 +178,7 @@ export declare const deleteLocalOrder: import("@tanstack/start-client-core").Opt
|
|
|
178
178
|
* voorstel plus zijn regels verwijderen.
|
|
179
179
|
*/
|
|
180
180
|
export declare const deleteMailboxProposal: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
181
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
181
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
182
182
|
userId: string;
|
|
183
183
|
claims: import("@supabase/auth-js").User;
|
|
184
184
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -187,7 +187,7 @@ export declare const deleteMailboxProposal: import("@tanstack/start-client-core"
|
|
|
187
187
|
ok: true;
|
|
188
188
|
}>>;
|
|
189
189
|
export declare const getLocalOrderForEdit: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
190
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
190
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
191
191
|
userId: string;
|
|
192
192
|
claims: import("@supabase/auth-js").User;
|
|
193
193
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -213,7 +213,7 @@ export declare const getLocalOrderForEdit: import("@tanstack/start-client-core")
|
|
|
213
213
|
}[];
|
|
214
214
|
}>>;
|
|
215
215
|
export declare const updateLocalOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
216
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
216
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
217
217
|
userId: string;
|
|
218
218
|
claims: import("@supabase/auth-js").User;
|
|
219
219
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -238,7 +238,7 @@ export declare const updateLocalOrder: import("@tanstack/start-client-core").Opt
|
|
|
238
238
|
ok: true;
|
|
239
239
|
}>>;
|
|
240
240
|
export declare const getEffectivePrices: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
241
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
241
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
242
242
|
userId: string;
|
|
243
243
|
claims: import("@supabase/auth-js").User;
|
|
244
244
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
// Deelt DB-queries met de Mailbox-module zodat beide manieren van
|
|
3
3
|
// orderinvoer identieke lijsten, validaties en berekeningen gebruiken.
|
|
4
4
|
import { createServerFn } from "@tanstack/react-start";
|
|
5
|
-
import { productNameForStorage } from "./product-name";
|
|
5
|
+
import { productNameForStorage } from "./product-name.js";
|
|
6
6
|
import { z } from "zod";
|
|
7
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
7
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
8
8
|
// ─── Klanten ────────────────────────────────────────────────────────────────
|
|
9
9
|
// Bron 1: lokale `customers` (incl. eerder geïmporteerde Twinfield-klanten).
|
|
10
10
|
// Bron 2: `twinfield_customers_cache` — klanten die alleen in Twinfield staan.
|
|
@@ -557,7 +557,7 @@ export const listBeladingOptionsForProducts = createServerFn({ method: "POST" })
|
|
|
557
557
|
.middleware([requireSupabaseAuth])
|
|
558
558
|
.inputValidator((input) => z.object({ productIds: z.array(z.string()).max(200) }).parse(input))
|
|
559
559
|
.handler(async ({ data, context }) => {
|
|
560
|
-
const { computeBeladingByProduct } = await import("./belading.server");
|
|
560
|
+
const { computeBeladingByProduct } = await import("./belading.server.js");
|
|
561
561
|
const byProduct = await computeBeladingByProduct(context.supabase, data.productIds);
|
|
562
562
|
return { byProduct };
|
|
563
563
|
});
|
|
@@ -674,7 +674,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
|
|
|
674
674
|
// Voorraadcontrole van de Engine — die beslist of een order met producten
|
|
675
675
|
// zonder voorraad aangemaakt mag worden.
|
|
676
676
|
{
|
|
677
|
-
const { assertOrderAllowed } = await import("./logistics-stock.server");
|
|
677
|
+
const { assertOrderAllowed } = await import("./logistics-stock.server.js");
|
|
678
678
|
await assertOrderAllowed(context.supabase, data.lines.map((l) => ({ productId: l.product_id, quantity: Number(l.quantity) })));
|
|
679
679
|
}
|
|
680
680
|
// Validatie eerst mogelijke leverdatum — o.b.v. de aanmeldmomenten van de
|
|
@@ -684,7 +684,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
|
|
|
684
684
|
throw new Error("Selecteer een vervoerder");
|
|
685
685
|
}
|
|
686
686
|
// Ladingdrager: zonder keuze de standaard van de Engine; geen eigen controle.
|
|
687
|
-
const { resolveLoadCarrierType } = await import("./load-carriers.server");
|
|
687
|
+
const { resolveLoadCarrierType } = await import("./load-carriers.server.js");
|
|
688
688
|
const loadCarrierType = await resolveLoadCarrierType(context.supabase, data.loadCarrierType);
|
|
689
689
|
const c = data.carrierId
|
|
690
690
|
? (await context.supabase
|
|
@@ -700,7 +700,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
|
|
|
700
700
|
.order("updated_at", { ascending: false })
|
|
701
701
|
.limit(1).maybeSingle();
|
|
702
702
|
const pickDays = Math.max(0, Number(settings?.pick_days_before_transport ?? 0));
|
|
703
|
-
const { computeEarliestDelivery, nowInAmsterdam, resolveDeliveryTimeForDate } = await import("./carrier-availability");
|
|
703
|
+
const { computeEarliestDelivery, nowInAmsterdam, resolveDeliveryTimeForDate } = await import("./carrier-availability.js");
|
|
704
704
|
const nowLocal = nowInAmsterdam();
|
|
705
705
|
const earliest = computeEarliestDelivery(c, pickDays, nowLocal);
|
|
706
706
|
// Aanlevertijd van het aanmeldmoment dat bij deze leverdatum hoort (bv. 20:00).
|
|
@@ -717,7 +717,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
|
|
|
717
717
|
throw new Error(`Leverdatum (${data.deliveryDate}) ligt voor de eerst mogelijke datum (${earliestISO}). Het eerstvolgende aanmeldmoment van de vervoerder is ${earliest.signupDeadlineISO ?? "onbekend"} (orderpicktijd ${pickDays}d, levertijd ${carrierDeliveryDays}d).`);
|
|
718
718
|
}
|
|
719
719
|
}
|
|
720
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
720
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
721
721
|
// Zorg dat elk product_id (= identiteit uit de voorraadmodule) een rij
|
|
722
722
|
// in `products` heeft — de order_items FK vereist dit én de karindeling
|
|
723
723
|
// van de Engine joined op products voor de packing-waarden.
|
|
@@ -867,7 +867,7 @@ export const createManualOrder = createServerFn({ method: "POST" })
|
|
|
867
867
|
// deze module stoot dat niet zelf meer aan.
|
|
868
868
|
// Logistics Engine informeren (schaduwmodus): Engine plant de keten.
|
|
869
869
|
try {
|
|
870
|
-
const { notifyEngineOrder } = await import("./logistics-engine.server");
|
|
870
|
+
const { notifyEngineOrder } = await import("./logistics-engine.server.js");
|
|
871
871
|
await notifyEngineOrder(order.id, "order.received");
|
|
872
872
|
}
|
|
873
873
|
catch (err) {
|
|
@@ -885,7 +885,7 @@ export const cancelLocalOrder = createServerFn({ method: "POST" })
|
|
|
885
885
|
.object({ orderId: z.string().uuid(), reason: z.string().max(500).optional() })
|
|
886
886
|
.parse(input))
|
|
887
887
|
.handler(async ({ data, context }) => {
|
|
888
|
-
const { cancelLocalOrderInternal } = await import("./order-cancel.server");
|
|
888
|
+
const { cancelLocalOrderInternal } = await import("./order-cancel.server.js");
|
|
889
889
|
return await cancelLocalOrderInternal({
|
|
890
890
|
orderId: data.orderId,
|
|
891
891
|
reason: data.reason ?? null,
|
|
@@ -901,7 +901,7 @@ export const deleteLocalOrder = createServerFn({ method: "POST" })
|
|
|
901
901
|
.middleware([requireSupabaseAuth])
|
|
902
902
|
.inputValidator((input) => z.object({ orderId: z.string().uuid() }).parse(input))
|
|
903
903
|
.handler(async ({ data, context }) => {
|
|
904
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
904
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
905
905
|
const { data: order, error: oErr } = await supabaseAdmin
|
|
906
906
|
.from("orders")
|
|
907
907
|
.select("id, custom_fields, order_source")
|
|
@@ -1006,7 +1006,7 @@ export const deleteMailboxProposal = createServerFn({ method: "POST" })
|
|
|
1006
1006
|
.middleware([requireSupabaseAuth])
|
|
1007
1007
|
.inputValidator((input) => z.object({ proposalId: z.string().uuid() }).parse(input))
|
|
1008
1008
|
.handler(async ({ data }) => {
|
|
1009
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
1009
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
1010
1010
|
const { data: proposal, error: pErr } = await supabaseAdmin
|
|
1011
1011
|
.from("mailbox_order_proposals")
|
|
1012
1012
|
.select("id, created_order_id")
|
|
@@ -1252,7 +1252,7 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
|
|
|
1252
1252
|
.middleware([requireSupabaseAuth])
|
|
1253
1253
|
.inputValidator((input) => UpdateLocalOrderInput.parse(input))
|
|
1254
1254
|
.handler(async ({ data, context }) => {
|
|
1255
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
1255
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
1256
1256
|
const { data: order, error: oErr } = await supabaseAdmin
|
|
1257
1257
|
.from("orders")
|
|
1258
1258
|
.select("id, custom_fields, order_source, is_reservation, plan_locked_at")
|
|
@@ -1324,7 +1324,7 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
|
|
|
1324
1324
|
for (const n of newItems)
|
|
1325
1325
|
lines.push({ productId: n.productId, quantity: n.quantity });
|
|
1326
1326
|
if (lines.length > 0) {
|
|
1327
|
-
const { assertOrderAllowed } = await import("./logistics-stock.server");
|
|
1327
|
+
const { assertOrderAllowed } = await import("./logistics-stock.server.js");
|
|
1328
1328
|
await assertOrderAllowed(context.supabase, lines);
|
|
1329
1329
|
}
|
|
1330
1330
|
}
|
|
@@ -1386,7 +1386,7 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
|
|
|
1386
1386
|
.select("delivery_days, signup_time_1, signup_time_2, signup_days_before_delivery, pickup_weekdays, delivery_weekdays, pickup_moments")
|
|
1387
1387
|
.eq("id", cf.carrier)
|
|
1388
1388
|
.maybeSingle();
|
|
1389
|
-
const { resolveDeliveryTimeForDate, nowInAmsterdam } = await import("./carrier-availability");
|
|
1389
|
+
const { resolveDeliveryTimeForDate, nowInAmsterdam } = await import("./carrier-availability.js");
|
|
1390
1390
|
newDeliveryTime =
|
|
1391
1391
|
resolveDeliveryTimeForDate(carrierRow, data.deliveryDate, nowInAmsterdam()) ??
|
|
1392
1392
|
newDeliveryTime;
|
|
@@ -1428,7 +1428,7 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
|
|
|
1428
1428
|
// Karindeling: de Logistiek Engine plant opnieuw in haar eigen ronde.
|
|
1429
1429
|
// Logistics Engine informeren (schaduwmodus): Engine plant de keten.
|
|
1430
1430
|
try {
|
|
1431
|
-
const { notifyEngineOrder } = await import("./logistics-engine.server");
|
|
1431
|
+
const { notifyEngineOrder } = await import("./logistics-engine.server.js");
|
|
1432
1432
|
await notifyEngineOrder(data.orderId, "order.changed");
|
|
1433
1433
|
}
|
|
1434
1434
|
catch (err) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
export { replanCartsCron, replanCartsCronHint } from "./replan-carts";
|
|
2
|
-
export { syncSalesOrdersCron, syncSalesOrdersCronHint } from "./sync-salesorders";
|
|
3
|
-
export { invoiceDueCron, invoiceDueCronHint } from "./invoice-due";
|
|
1
|
+
export { replanCartsCron, replanCartsCronHint } from "./replan-carts.js";
|
|
2
|
+
export { syncSalesOrdersCron, syncSalesOrdersCronHint } from "./sync-salesorders.js";
|
|
3
|
+
export { invoiceDueCron, invoiceDueCronHint } from "./invoice-due.js";
|
|
4
4
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export { replanCartsCron, replanCartsCronHint } from "./replan-carts";
|
|
2
|
-
export { syncSalesOrdersCron, syncSalesOrdersCronHint } from "./sync-salesorders";
|
|
3
|
-
export { invoiceDueCron, invoiceDueCronHint } from "./invoice-due";
|
|
1
|
+
export { replanCartsCron, replanCartsCronHint } from "./replan-carts.js";
|
|
2
|
+
export { syncSalesOrdersCron, syncSalesOrdersCronHint } from "./sync-salesorders.js";
|
|
3
|
+
export { invoiceDueCron, invoiceDueCronHint } from "./invoice-due.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runInvoiceTimingCycle } from "../invoice-timing.server";
|
|
1
|
+
import { runInvoiceTimingCycle } from "../invoice-timing.server.js";
|
|
2
2
|
export async function invoiceDueCron(request, _supabase) {
|
|
3
3
|
const apikey = request.headers.get("apikey") ?? request.headers.get("x-api-key");
|
|
4
4
|
const expected = process.env.SUPABASE_PUBLISHABLE_KEY;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runSalesOrdersSyncFromCron } from "../salesorders.functions";
|
|
1
|
+
import { runSalesOrdersSyncFromCron } from "../salesorders.functions.js";
|
|
2
2
|
const LOCK_KEY = "verkoop:salesorders-sync";
|
|
3
3
|
const LOCK_SECONDS = 600;
|
|
4
4
|
export async function syncSalesOrdersCron(request, _supabase) {
|
|
@@ -7,7 +7,7 @@ export async function syncSalesOrdersCron(request, _supabase) {
|
|
|
7
7
|
if (!expected || !apikey || apikey !== expected) {
|
|
8
8
|
return new Response("Unauthorized", { status: 401 });
|
|
9
9
|
}
|
|
10
|
-
const { supabaseAdmin } = await import("../../integrations/supabase/client.server");
|
|
10
|
+
const { supabaseAdmin } = await import("../../integrations/supabase/client.server.js");
|
|
11
11
|
// Slot: voorkomt dat twee rondes elkaar overlappen. Faalt gesloten.
|
|
12
12
|
const { data: acquired, error: lockErr } = await supabaseAdmin.rpc("try_acquire_job_lock", { _key: LOCK_KEY, _seconds: LOCK_SECONDS, _owner: "sync-salesorders" });
|
|
13
13
|
if (lockErr) {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { runTradeItemsSyncFromCron } from "../tradeitems.functions";
|
|
1
|
+
import { runTradeItemsSyncFromCron } from "../tradeitems.functions.js";
|
|
2
2
|
export async function syncTradeItemsCron(request, _supabase) {
|
|
3
3
|
const apikey = request.headers.get("apikey") ?? request.headers.get("x-api-key");
|
|
4
4
|
const expected = process.env.SUPABASE_PUBLISHABLE_KEY;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// met de reden van de Engine.
|
|
4
4
|
// - Open alarm sluit vanzelf zodra de Engine definitief = false en status "done" meldt.
|
|
5
5
|
// - Fail closed: lukt een vraag niet, dan geen mail en niets vrijgeven.
|
|
6
|
-
import { decideAlertAction, parseDefinitiveBlock } from "./engine-block-alerts";
|
|
6
|
+
import { decideAlertAction, parseDefinitiveBlock } from "./engine-block-alerts.js";
|
|
7
7
|
export const ENGINE_BLOCK_REASON_KEY = "engine_definitief";
|
|
8
8
|
const MAX_CHECKS = 200;
|
|
9
9
|
export async function checkDefinitiveBlocks() {
|
|
@@ -11,7 +11,7 @@ export async function checkDefinitiveBlocks() {
|
|
|
11
11
|
let mailed = 0;
|
|
12
12
|
let closed = 0;
|
|
13
13
|
try {
|
|
14
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
14
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
15
15
|
const sb = supabaseAdmin;
|
|
16
16
|
// Open alarmen (op order-id).
|
|
17
17
|
const { data: openRows, error: openErr } = await sb
|
|
@@ -32,7 +32,7 @@ export async function checkDefinitiveBlocks() {
|
|
|
32
32
|
if (oErr)
|
|
33
33
|
throw new Error(oErr.message);
|
|
34
34
|
const candidateIds = (orders ?? []).map((o) => String(o.id));
|
|
35
|
-
const { loadPlanCoverage } = await import("./plan-coverage.server");
|
|
35
|
+
const { loadPlanCoverage } = await import("./plan-coverage.server.js");
|
|
36
36
|
const coverage = candidateIds.length ? await loadPlanCoverage(sb, candidateIds, "list") : new Map();
|
|
37
37
|
const toCheck = new Set(openIds);
|
|
38
38
|
for (const id of candidateIds) {
|
|
@@ -41,7 +41,7 @@ export async function checkDefinitiveBlocks() {
|
|
|
41
41
|
toCheck.add(id);
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
|
-
const { notifyOrderBlocked, clearOrderBlockNotifications } = await import("./order-block-mail.server");
|
|
44
|
+
const { notifyOrderBlocked, clearOrderBlockNotifications } = await import("./order-block-mail.server.js");
|
|
45
45
|
for (const orderId of Array.from(toCheck).slice(0, MAX_CHECKS)) {
|
|
46
46
|
const { data, error } = await sb.rpc("logistics_order_definitively_blocked", { p_order_id: orderId });
|
|
47
47
|
if (error) {
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Controle zonder testomgeving: `bun src/lib/floriday-change-diff.check.ts`.
|
|
2
|
-
import { diffBuyerChanges } from "./floriday-change-diff";
|
|
3
|
-
import { notReportedState } from "./floriday-status";
|
|
2
|
+
import { diffBuyerChanges } from "./floriday-change-diff.js";
|
|
3
|
+
import { notReportedState } from "./floriday-status.js";
|
|
4
4
|
let failed = 0;
|
|
5
5
|
const eq = (name, got, want) => {
|
|
6
6
|
const ok = JSON.stringify(got) === JSON.stringify(want);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SupabaseClient } from "@supabase/supabase-js";
|
|
2
|
-
import { type FloridayConnectionRow } from "./floriday-sync";
|
|
2
|
+
import { type FloridayConnectionRow } from "./floriday-sync.js";
|
|
3
3
|
export type FlorydayEnvironment = "staging" | "live";
|
|
4
4
|
export declare function apiBaseFor(env: FlorydayEnvironment | string | null | undefined): string;
|
|
5
5
|
export declare function pickActiveConnection(supabase: SupabaseClient, env: FlorydayEnvironment | string): Promise<FloridayConnectionRow & {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { FLORIDAY_API_BASES } from "./floriday-sync";
|
|
2
|
-
import { getFlorydayTokenFromCentral } from "./floriday-central-token.server";
|
|
1
|
+
import { FLORIDAY_API_BASES } from "./floriday-sync.js";
|
|
2
|
+
import { getFlorydayTokenFromCentral } from "./floriday-central-token.server.js";
|
|
3
3
|
export function apiBaseFor(env) {
|
|
4
4
|
return env === "live" || env === "production" || env === "prod"
|
|
5
5
|
? FLORIDAY_API_BASES.production
|
|
@@ -14,7 +14,7 @@ export interface DeliveryNoteDTO {
|
|
|
14
14
|
errorMessage: string | null;
|
|
15
15
|
}
|
|
16
16
|
export declare const listLogisticLabelsForOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
17
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
17
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
18
18
|
userId: string;
|
|
19
19
|
claims: import("@supabase/auth-js").User;
|
|
20
20
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -24,7 +24,7 @@ export declare const listLogisticLabelsForOrder: import("@tanstack/start-client-
|
|
|
24
24
|
orderNumber: string | null;
|
|
25
25
|
}>>;
|
|
26
26
|
export declare const registerDeliveryNote: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
27
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
27
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
28
28
|
userId: string;
|
|
29
29
|
claims: import("@supabase/auth-js").User;
|
|
30
30
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -13,9 +13,9 @@
|
|
|
13
13
|
// komen mee naar de UI (423 = levering nog in concept, 404 = niet gevonden).
|
|
14
14
|
import { createServerFn } from "@tanstack/react-start";
|
|
15
15
|
import { z } from "zod";
|
|
16
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
17
|
-
import { florydayFetchBinary } from "./floriday-gateway.server";
|
|
18
|
-
import { resolveOrderRow } from "./order-row.server";
|
|
16
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
17
|
+
import { florydayFetchBinary } from "./floriday-gateway.server.js";
|
|
18
|
+
import { resolveOrderRow } from "./order-row.server.js";
|
|
19
19
|
const BUCKET = "delivery-notes";
|
|
20
20
|
function foutTekst(status, detail) {
|
|
21
21
|
if (status === 423) {
|
|
@@ -109,7 +109,7 @@ export const listLogisticLabelsForOrder = createServerFn({ method: "POST" })
|
|
|
109
109
|
.inputValidator((d) => ListSchema.parse(d))
|
|
110
110
|
.handler(async ({ data, context }) => {
|
|
111
111
|
const supabase = context.supabase;
|
|
112
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
112
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
113
113
|
// 1. Onze eigen order erbij zoeken (lokaal ordernummer koppelen).
|
|
114
114
|
let orderId = null;
|
|
115
115
|
let orderNumber = null;
|
|
@@ -265,7 +265,7 @@ export const registerDeliveryNote = createServerFn({ method: "POST" })
|
|
|
265
265
|
.handler(async ({ data, context }) => {
|
|
266
266
|
const supabase = context.supabase;
|
|
267
267
|
const order = await resolveOrderRow(supabase, data.orderId);
|
|
268
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
268
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
269
269
|
const binair = atob(data.pdfBase64);
|
|
270
270
|
const bytes = new Uint8Array(binair.length);
|
|
271
271
|
for (let i = 0; i < binair.length; i++)
|
|
@@ -17,7 +17,7 @@ interface MirrorResult {
|
|
|
17
17
|
}
|
|
18
18
|
export declare function mirrorFloridayOrdersFromCron(limit?: number): Promise<MirrorResult>;
|
|
19
19
|
export declare const mirrorFloridayOrders: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
20
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
20
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
21
21
|
userId: string;
|
|
22
22
|
claims: import("@supabase/auth-js").User;
|
|
23
23
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"floriday-mirror.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-mirror.functions.ts"],"names":[],"mappings":"AA+IA,UAAU,YAAY;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;
|
|
1
|
+
{"version":3,"file":"floriday-mirror.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-mirror.functions.ts"],"names":[],"mappings":"AA+IA,UAAU,YAAY;IACpB,EAAE,EAAE,OAAO,CAAC;IACZ,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0DAA0D;IAC1D,OAAO,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IACnD,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAs3CD,wBAAsB,4BAA4B,CAAC,KAAK,SAAgB,yBAEvE;AAED,eAAO,MAAM,oBAAoB;;;;8CAEP,OAAO;;yBAG0C,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { diffBuyerChanges } from "./floriday-change-diff";
|
|
1
|
+
import { diffBuyerChanges } from "./floriday-change-diff.js";
|
|
2
2
|
// Spiegelt Floriday-verkooporders (FO's) uit `floriday_salesorders_cache`
|
|
3
3
|
// naar de lokale `orders`-tabel, zodat ze via `resolveBufferForOrderInternal`
|
|
4
4
|
// in dezelfde buffer terechtkomen als lokale orders en gedeelde karren
|
|
@@ -11,10 +11,10 @@ import { diffBuyerChanges } from "./floriday-change-diff";
|
|
|
11
11
|
// nooit tegelijk dezelfde orders verwerken.
|
|
12
12
|
import { createServerFn } from "@tanstack/react-start";
|
|
13
13
|
import { z } from "zod";
|
|
14
|
-
import { deriveOrderLevel } from "./floriday-order-level";
|
|
15
|
-
import { productNameForStorage } from "./product-name";
|
|
16
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
17
|
-
import { resolveBufferForOrderInternal } from "./order-buffers.functions";
|
|
14
|
+
import { deriveOrderLevel } from "./floriday-order-level.js";
|
|
15
|
+
import { productNameForStorage } from "./product-name.js";
|
|
16
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
17
|
+
import { resolveBufferForOrderInternal } from "./order-buffers.functions.js";
|
|
18
18
|
const LOOKBACK_DAYS = 14;
|
|
19
19
|
const DEFAULT_BATCH = 200;
|
|
20
20
|
/** Onbekend blijft onbekend: geen stilzwijgende 1. Zelfde helper als de planner. */
|
|
@@ -68,7 +68,7 @@ function buyerOrgIdOf(row) {
|
|
|
68
68
|
* Maakt nooit klanten aan en overschrijft nooit een bestaande koppeling.
|
|
69
69
|
*/
|
|
70
70
|
async function linkCustomersForFloridayOrders() {
|
|
71
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
71
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
72
72
|
const { data: custs, error: cErr } = await supabaseAdmin
|
|
73
73
|
.from("customers")
|
|
74
74
|
.select("id, floriday_organization_id")
|
|
@@ -135,7 +135,7 @@ function pickString(value) {
|
|
|
135
135
|
const MIRROR_LOCK_KEY = "verkoop:floriday-mirror";
|
|
136
136
|
const MIRROR_LOCK_SECONDS = 600;
|
|
137
137
|
async function mirrorInternal(limit) {
|
|
138
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
138
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
139
139
|
const empty = (reason, ok) => ({
|
|
140
140
|
ok, processed: 0, inserted: 0, updated: 0, skipped: 0, failed: 0, errors: ok ? [] : [reason], skipped_reason: reason,
|
|
141
141
|
});
|
|
@@ -157,8 +157,8 @@ async function mirrorInternal(limit) {
|
|
|
157
157
|
}
|
|
158
158
|
}
|
|
159
159
|
async function mirrorUnlocked(limit) {
|
|
160
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
161
|
-
const { loadFloridayFulfillmentStates, expectedPackagesFromSalesOrder, isFullyFulfilled, } = await import("./floriday-fulfillment-status.server");
|
|
160
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
161
|
+
const { loadFloridayFulfillmentStates, expectedPackagesFromSalesOrder, isFullyFulfilled, } = await import("./floriday-fulfillment-status.server.js");
|
|
162
162
|
const cutoffIso = new Date(Date.now() - LOOKBACK_DAYS * 24 * 60 * 60 * 1000).toISOString();
|
|
163
163
|
// Recente/toekomstige FO's uit de cache.
|
|
164
164
|
const { data: cacheRows, error: cacheErr } = await supabaseAdmin
|
|
@@ -1081,9 +1081,16 @@ async function mirrorUnlocked(limit) {
|
|
|
1081
1081
|
orderId = target.id;
|
|
1082
1082
|
handledOrderIds.add(orderId);
|
|
1083
1083
|
if (changedKeys.length > 0) {
|
|
1084
|
+
// Alleen gewijzigde velden, en ook in de database "alleen als anders"
|
|
1085
|
+
// (IS DISTINCT FROM): een gelijktijdige ronde schrijft dan niets.
|
|
1086
|
+
const { distinctFilter } = await import("./order-patch.js");
|
|
1087
|
+
const diff = {};
|
|
1088
|
+
for (const k of changedKeys)
|
|
1089
|
+
diff[k] = patch[k];
|
|
1084
1090
|
const { error: uErr } = await supabaseAdmin.from("orders")
|
|
1085
|
-
.update(
|
|
1086
|
-
.eq("id", orderId)
|
|
1091
|
+
.update(diff)
|
|
1092
|
+
.eq("id", orderId)
|
|
1093
|
+
.or(distinctFilter(diff));
|
|
1087
1094
|
if (uErr)
|
|
1088
1095
|
throw new Error(uErr.message);
|
|
1089
1096
|
updated++;
|
|
@@ -1341,7 +1348,7 @@ async function mirrorUnlocked(limit) {
|
|
|
1341
1348
|
// Annuleringen uit Floriday afhandelen (koppelprompt 1.0.77).
|
|
1342
1349
|
for (const cid of Array.from(new Set(floridayCancelIds))) {
|
|
1343
1350
|
try {
|
|
1344
|
-
const { handleFloridayCancellation } = await import("./order-cancel.server");
|
|
1351
|
+
const { handleFloridayCancellation } = await import("./order-cancel.server.js");
|
|
1345
1352
|
const res = await handleFloridayCancellation(cid);
|
|
1346
1353
|
if (res !== "cancelled")
|
|
1347
1354
|
errors.push(`${cid}: ${res}`);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const getFlorydayCachedList: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
2
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
2
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
3
3
|
userId: string;
|
|
4
4
|
claims: import("@supabase/auth-js").User;
|
|
5
5
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -14,7 +14,7 @@ export declare const getFlorydayCachedList: import("@tanstack/start-client-core"
|
|
|
14
14
|
rows: any;
|
|
15
15
|
}>>;
|
|
16
16
|
export declare const getFlorydayCodeList: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
17
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
17
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
18
18
|
userId: string;
|
|
19
19
|
claims: import("@supabase/auth-js").User;
|
|
20
20
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -25,7 +25,7 @@ export declare const getFlorydayCodeList: import("@tanstack/start-client-core").
|
|
|
25
25
|
items: any;
|
|
26
26
|
}>>;
|
|
27
27
|
export declare const getFlorydayAllowedValues: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
28
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
28
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
29
29
|
userId: string;
|
|
30
30
|
claims: import("@supabase/auth-js").User;
|
|
31
31
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -36,7 +36,7 @@ export declare const getFlorydayAllowedValues: import("@tanstack/start-client-co
|
|
|
36
36
|
values: any;
|
|
37
37
|
}>>;
|
|
38
38
|
export declare const assertFlorydayValue: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
39
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
39
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
40
40
|
userId: string;
|
|
41
41
|
claims: import("@supabase/auth-js").User;
|
|
42
42
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -57,7 +57,7 @@ export declare const assertFlorydayValue: import("@tanstack/start-client-core").
|
|
|
57
57
|
allowed: any;
|
|
58
58
|
}>>;
|
|
59
59
|
export declare const getFlorydayVbnProduct: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
60
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
60
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
61
61
|
userId: string;
|
|
62
62
|
claims: import("@supabase/auth-js").User;
|
|
63
63
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -68,7 +68,7 @@ export declare const getFlorydayVbnProduct: import("@tanstack/start-client-core"
|
|
|
68
68
|
items: any;
|
|
69
69
|
}>>;
|
|
70
70
|
export declare const getFlorydayResourceSchema: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
71
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
71
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
72
72
|
userId: string;
|
|
73
73
|
claims: import("@supabase/auth-js").User;
|
|
74
74
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -76,7 +76,7 @@ export declare const getFlorydayResourceSchema: import("@tanstack/start-client-c
|
|
|
76
76
|
version?: string | undefined;
|
|
77
77
|
}, Promise<any>>;
|
|
78
78
|
export declare const getActiveFloridayEnvironment: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
79
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
79
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
80
80
|
userId: string;
|
|
81
81
|
claims: import("@supabase/auth-js").User;
|
|
82
82
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// Reads gaan via de lokale Supabase-cache; geen directe Floriday API-calls.
|
|
3
3
|
import { createServerFn } from "@tanstack/react-start";
|
|
4
4
|
import { z } from "zod";
|
|
5
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
5
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
6
6
|
const EnvSchema = z.enum(["staging", "live"]);
|
|
7
7
|
// Toegestane cache-entities en hun tabel-mapping.
|
|
8
8
|
const ENTITY_TABLE = {
|
|
@@ -272,7 +272,7 @@ export const getFlorydayResourceSchema = createServerFn({ method: "POST" })
|
|
|
272
272
|
export const getActiveFloridayEnvironment = createServerFn({ method: "GET" })
|
|
273
273
|
.middleware([requireSupabaseAuth])
|
|
274
274
|
.handler(async () => {
|
|
275
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
275
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
276
276
|
const { data } = await supabaseAdmin
|
|
277
277
|
.from("floriday_settings")
|
|
278
278
|
.select("active_environment")
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { OrderStage } from "./order-status";
|
|
1
|
+
import type { OrderStage } from "./order-status.js";
|
|
2
2
|
export type FloridayStage = "open" | "partially_fulfilled" | "fulfilled" | "cancelled" | "expired" | "unknown";
|
|
3
3
|
export interface FloridayStatusEntry {
|
|
4
4
|
salesOrderId: string;
|