@flowselections/floriday-verkoop-module 1.0.87 → 1.0.93
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.d.ts.map +1 -1
- package/dist-lib/components/verkoop/CreateOrderPage.js +2 -2
- 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/OrderPickupMomentPicker.d.ts +2 -2
- package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderPickupMomentPicker.js +10 -23
- 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/integrations/supabase/types.d.ts +162 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +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.check.d.ts +2 -0
- package/dist-lib/lib/invoice-timing.check.d.ts.map +1 -0
- package/dist-lib/lib/invoice-timing.check.js +19 -0
- package/dist-lib/lib/invoice-timing.d.ts +2 -0
- package/dist-lib/lib/invoice-timing.d.ts.map +1 -1
- 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.js +22 -4
- 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-departure.check.d.ts +2 -0
- package/dist-lib/lib/order-departure.check.d.ts.map +1 -0
- package/dist-lib/lib/order-departure.check.js +25 -0
- package/dist-lib/lib/order-departure.d.ts +25 -0
- package/dist-lib/lib/order-departure.d.ts.map +1 -0
- package/dist-lib/lib/order-departure.js +54 -0
- package/dist-lib/lib/order-departure.server.d.ts +4 -0
- package/dist-lib/lib/order-departure.server.d.ts.map +1 -0
- package/dist-lib/lib/order-departure.server.js +62 -0
- 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 +10 -15
- package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-pickup.functions.js +51 -78
- 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.d.ts.map +1 -1
- package/dist-lib/lib/salesorders-list.server.js +39 -53
- 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
|
@@ -5,10 +5,10 @@
|
|
|
5
5
|
// - deleteShipment : annuleert een geplande levering
|
|
6
6
|
// - markShipmentShipped : boekt voorraad af via RPC (fysiek + gereserveerd)
|
|
7
7
|
import { createServerFn } from "@tanstack/react-start";
|
|
8
|
-
import { productNameForStorage } from "./product-name";
|
|
8
|
+
import { productNameForStorage } from "./product-name.js";
|
|
9
9
|
import { z } from "zod";
|
|
10
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
11
|
-
import { resolveOrderRow } from "./order-row.server";
|
|
10
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
11
|
+
import { resolveOrderRow } from "./order-row.server.js";
|
|
12
12
|
const ShipmentItemInput = z.object({
|
|
13
13
|
orderItemId: z.string().uuid(),
|
|
14
14
|
productId: z.string().uuid().nullable().optional(),
|
|
@@ -128,7 +128,7 @@ export const createShipment = createServerFn({ method: "POST" })
|
|
|
128
128
|
.handler(async ({ data, context }) => {
|
|
129
129
|
const orderRow = await resolveOrderRow(context.supabase, data.orderId);
|
|
130
130
|
await assertRemainingCapacity(context.supabase, orderRow.id, data.items.map((i) => ({ orderItemId: i.orderItemId, quantity: i.quantity })));
|
|
131
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
131
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
132
132
|
const { data: shipment, error } = await supabaseAdmin.from("order_shipments")
|
|
133
133
|
.insert({
|
|
134
134
|
order_id: orderRow.id,
|
|
@@ -160,7 +160,7 @@ export const markShipmentShipped = createServerFn({ method: "POST" })
|
|
|
160
160
|
.middleware([requireSupabaseAuth])
|
|
161
161
|
.inputValidator((input) => z.object({ shipmentId: z.string().uuid() }).parse(input))
|
|
162
162
|
.handler(async ({ data }) => {
|
|
163
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
163
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
164
164
|
const { error } = await supabaseAdmin.rpc("mark_shipment_shipped", {
|
|
165
165
|
p_shipment_id: data.shipmentId,
|
|
166
166
|
});
|
|
@@ -183,7 +183,7 @@ export const cancelShipment = createServerFn({ method: "POST" })
|
|
|
183
183
|
if (s.status === "shipped") {
|
|
184
184
|
throw new Error("Reeds verzonden bezorgmomenten kunnen niet worden geannuleerd.");
|
|
185
185
|
}
|
|
186
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
186
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
187
187
|
const { error } = await supabaseAdmin.from("order_shipments").delete().eq("id", data.shipmentId);
|
|
188
188
|
if (error)
|
|
189
189
|
throw new Error(error.message);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Test (draait mee in de typecontrole én als script: `bun src/lib/plan-coverage.check.ts`).
|
|
2
2
|
// Ontbrekende tellingen moeten "onbekend" tonen, nooit "0".
|
|
3
|
-
import { combinedCartCount, coverageDetailText, parsePlanCoverageListRow, summarize } from "./plan-coverage";
|
|
3
|
+
import { combinedCartCount, coverageDetailText, parsePlanCoverageListRow, summarize } from "./plan-coverage.js";
|
|
4
4
|
function eq(actual, expected, name) {
|
|
5
5
|
if (actual !== expected)
|
|
6
6
|
throw new Error(`${name}: verwacht "${expected}", kreeg "${actual}"`);
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type PlanCoverage } from "./plan-coverage";
|
|
1
|
+
import { type PlanCoverage } from "./plan-coverage.js";
|
|
2
2
|
export declare function loadPlanCoverage(supabase: any, orderIds: string[], mode?: "list" | "detail"): Promise<Map<string, PlanCoverage>>;
|
|
3
3
|
//# sourceMappingURL=plan-coverage.server.d.ts.map
|
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
// - Details (mode "detail"): per order, want alleen die geeft karren en pickrijen.
|
|
8
8
|
// - Kort geheugen per order-id zodat opnieuw tekenen geen nieuwe vragen doet.
|
|
9
9
|
// - Fail closed: een fout geeft "Indeling onbekend", nooit "Geen indeling".
|
|
10
|
-
import { parsePlanCoverage, parsePlanCoverageListRow, unknownCoverage } from "./plan-coverage";
|
|
10
|
+
import { parsePlanCoverage, parsePlanCoverageListRow, unknownCoverage } from "./plan-coverage.js";
|
|
11
11
|
const TTL_MS = 30000;
|
|
12
12
|
const CONCURRENCY = 12;
|
|
13
13
|
const cache = new Map(); // sleutel: mode:orderId
|
|
@@ -12,7 +12,7 @@ export interface ProductDimensionRow {
|
|
|
12
12
|
incomplete: boolean;
|
|
13
13
|
}
|
|
14
14
|
export declare const listProductDimensions: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
15
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
15
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
16
16
|
userId: string;
|
|
17
17
|
claims: import("@supabase/auth-js").User;
|
|
18
18
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -24,7 +24,7 @@ export declare const listProductDimensions: import("@tanstack/start-client-core"
|
|
|
24
24
|
incompleteCount: number;
|
|
25
25
|
}>>;
|
|
26
26
|
export declare const saveProductDimensions: 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>], (input: unknown) => {
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
// deze module vult alleen de maten aan en verzint nooit een waarde.
|
|
4
4
|
import { createServerFn } from "@tanstack/react-start";
|
|
5
5
|
import { z } from "zod";
|
|
6
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
6
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
7
7
|
export const listProductDimensions = createServerFn({ method: "GET" })
|
|
8
8
|
.middleware([requireSupabaseAuth])
|
|
9
9
|
.inputValidator((input) => z
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
export declare const listSalesOrders: 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>], (input: unknown) => {
|
|
@@ -12,17 +12,17 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
|
|
|
12
12
|
search?: string | undefined;
|
|
13
13
|
status?: string | undefined;
|
|
14
14
|
all?: boolean | undefined;
|
|
15
|
-
}, Promise<import("./salesorders-list.server").ListResult>>;
|
|
15
|
+
}, Promise<import("./salesorders-list.server.js").ListResult>>;
|
|
16
16
|
export declare const getLocalSalesOrderDetail: 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>], (input: unknown) => {
|
|
21
21
|
id: string;
|
|
22
22
|
}, Promise<{
|
|
23
|
-
order: import("./salesorders-mapping").SalesOrderDTO | null;
|
|
23
|
+
order: import("./salesorders-mapping.js").SalesOrderDTO | null;
|
|
24
24
|
bufferId: string | null;
|
|
25
|
-
bufferSiblings: import("./salesorders-mapping").SalesOrderDTO[];
|
|
25
|
+
bufferSiblings: import("./salesorders-mapping.js").SalesOrderDTO[];
|
|
26
26
|
sellerFallback: string | null;
|
|
27
27
|
environment: "staging" | "live";
|
|
28
28
|
}>>;
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
// Alle logica staat in salesorders-list.server.ts.
|
|
3
3
|
import { createServerFn } from "@tanstack/react-start";
|
|
4
4
|
import { z } from "zod";
|
|
5
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
6
|
-
import { buildSalesOrdersList } from "./salesorders-list.server";
|
|
5
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
6
|
+
import { buildSalesOrdersList } from "./salesorders-list.server.js";
|
|
7
7
|
const listInput = z.object({
|
|
8
8
|
since: z.string().optional(),
|
|
9
9
|
until: z.string().optional(),
|
|
@@ -21,7 +21,7 @@ export const listSalesOrders = createServerFn({ method: "POST" })
|
|
|
21
21
|
.middleware([requireSupabaseAuth])
|
|
22
22
|
.inputValidator((input) => listInput.parse(input ?? {}))
|
|
23
23
|
.handler(async ({ data, context }) => {
|
|
24
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
24
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
25
25
|
return buildSalesOrdersList(context.supabase, data, supabaseAdmin);
|
|
26
26
|
});
|
|
27
27
|
const localDetailInput = z.object({
|
|
@@ -31,7 +31,7 @@ export const getLocalSalesOrderDetail = createServerFn({ method: "POST" })
|
|
|
31
31
|
.middleware([requireSupabaseAuth])
|
|
32
32
|
.inputValidator((input) => localDetailInput.parse(input))
|
|
33
33
|
.handler(async ({ data, context }) => {
|
|
34
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
34
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
35
35
|
const result = await buildSalesOrdersList(context.supabase, {
|
|
36
36
|
dateField: "ordered",
|
|
37
37
|
tab: "all",
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { SupabaseClient } from "@supabase/supabase-js";
|
|
2
|
-
import { type SalesOrderDTO, type SalesOrdersTotals } from "./salesorders-mapping";
|
|
3
|
-
import { type OrderStage } from "./order-status";
|
|
2
|
+
import { type SalesOrderDTO, type SalesOrdersTotals } from "./salesorders-mapping.js";
|
|
3
|
+
import { type OrderStage } from "./order-status.js";
|
|
4
4
|
/** "backlog" is géén status: het is een aparte weergave van "Te picken". */
|
|
5
5
|
export type StatusTab = "all" | OrderStage | "backlog" | "not_reported";
|
|
6
6
|
export interface ListParams {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"salesorders-list.server.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-list.server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"salesorders-list.server.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-list.server.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAML,KAAK,aAAa,EAClB,KAAK,iBAAiB,EAEvB,MAAM,uBAAuB,CAAC;AAQ/B,OAAO,EAAkC,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAIjF,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;AAExE,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;IAClC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,SAAS,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,+DAA+D;IAC/D,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,yEAAyE;IACzE,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,iBAAiB,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;IACxC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,2DAA2D;IAC3D,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AA8ID,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,cAAc,EACxB,MAAM,EAAE,UAAU,EAClB,kBAAkB,GAAE,cAAyB,GAC5C,OAAO,CAAC,UAAU,CAAC,CAimCrB"}
|
|
@@ -1,19 +1,18 @@
|
|
|
1
|
-
import { loadReviewDismissals, isReviewDismissed } from "./review-dismissals.server";
|
|
2
|
-
import { customerDisplayName } from "./customer-name";
|
|
3
|
-
import { isNotReportedLocally } from "./floriday-status";
|
|
4
|
-
import { unlinkedFloridayProducts } from "./floriday-unlinked-products";
|
|
5
|
-
import { resolveProductName } from "./product-name";
|
|
6
|
-
import { centralOrderNumber, computeTotals, mapJsonbToSalesOrderDTO, packingConfigFromFloridayPacking, } from "./salesorders-mapping";
|
|
7
|
-
import { cratePackageName, loadCarrierName, mergeTypeNames } from "./load-carrier-labels";
|
|
8
|
-
import { engineLoadCarrierLabel, normalizeLoadCarrierCode } from "./load-carriers";
|
|
9
|
-
import { normalizeTime, resolveDeliveryTimeForDate } from "./carrier-availability";
|
|
10
|
-
import { loadPlanCoverage } from "./plan-coverage.server";
|
|
11
|
-
import { combineStages } from "./floriday-status";
|
|
12
|
-
import { combinedCartCount, mergeSummaries, summarize } from "./plan-coverage";
|
|
13
|
-
import { resolveOrderNumbers } from "./order-numbers.server";
|
|
14
|
-
import { mergeStages, resolveOrderStage } from "./order-status";
|
|
15
|
-
import {
|
|
16
|
-
import { loadBacklogFlags } from "./order-backlog.server";
|
|
1
|
+
import { loadReviewDismissals, isReviewDismissed } from "./review-dismissals.server.js";
|
|
2
|
+
import { customerDisplayName } from "./customer-name.js";
|
|
3
|
+
import { isNotReportedLocally } from "./floriday-status.js";
|
|
4
|
+
import { unlinkedFloridayProducts } from "./floriday-unlinked-products.js";
|
|
5
|
+
import { resolveProductName } from "./product-name.js";
|
|
6
|
+
import { centralOrderNumber, computeTotals, mapJsonbToSalesOrderDTO, packingConfigFromFloridayPacking, } from "./salesorders-mapping.js";
|
|
7
|
+
import { cratePackageName, loadCarrierName, mergeTypeNames } from "./load-carrier-labels.js";
|
|
8
|
+
import { engineLoadCarrierLabel, normalizeLoadCarrierCode } from "./load-carriers.js";
|
|
9
|
+
import { normalizeTime, resolveDeliveryTimeForDate } from "./carrier-availability.js";
|
|
10
|
+
import { loadPlanCoverage } from "./plan-coverage.server.js";
|
|
11
|
+
import { combineStages } from "./floriday-status.js";
|
|
12
|
+
import { combinedCartCount, mergeSummaries, summarize } from "./plan-coverage.js";
|
|
13
|
+
import { resolveOrderNumbers } from "./order-numbers.server.js";
|
|
14
|
+
import { mergeStages, resolveOrderStage } from "./order-status.js";
|
|
15
|
+
import { loadBacklogFlags } from "./order-backlog.server.js";
|
|
17
16
|
const FO_CAP = 20000;
|
|
18
17
|
const LOCAL_CAP = 5000;
|
|
19
18
|
const PROPOSAL_CAP = 2000;
|
|
@@ -802,42 +801,7 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
802
801
|
}
|
|
803
802
|
// 12a-ter) Ladingdragers en indelingsstatus komen uit de Engine
|
|
804
803
|
// (logistics_order_plan_coverage), alleen voor de zichtbare rijen — zie stap 14.
|
|
805
|
-
// 12a-bis) Ophaalmoment
|
|
806
|
-
{
|
|
807
|
-
const shortPickup = (dateISO, time) => {
|
|
808
|
-
const [y, m, d] = dateISO.split("-").map(Number);
|
|
809
|
-
const dt = new Date(y ?? 0, (m ?? 1) - 1, d ?? 1);
|
|
810
|
-
const date = Number.isNaN(dt.getTime())
|
|
811
|
-
? dateISO
|
|
812
|
-
: dt
|
|
813
|
-
.toLocaleDateString("nl-NL", { weekday: "short", day: "numeric", month: "short" })
|
|
814
|
-
.replace(/\./g, "");
|
|
815
|
-
return time ? `${date} ${time}` : date;
|
|
816
|
-
};
|
|
817
|
-
const localRowForDto = (o) => o.id.startsWith("local:")
|
|
818
|
-
? (localOrderRows.find((r) => String(r.id) === o.id.slice("local:".length)) ?? null)
|
|
819
|
-
: (localRowByFoId.get(o.id) ?? null);
|
|
820
|
-
for (const o of all) {
|
|
821
|
-
const r = localRowForDto(o);
|
|
822
|
-
if (!r)
|
|
823
|
-
continue;
|
|
824
|
-
const cf = r.custom_fields ?? {};
|
|
825
|
-
const carrier = cf.carrier ? (carrierById.get(String(cf.carrier)) ?? null) : null;
|
|
826
|
-
const deliveryISO = r.delivery_date ? String(r.delivery_date).slice(0, 10) : null;
|
|
827
|
-
const options = buildPickupOptions(carrier, deliveryISO);
|
|
828
|
-
if (options.length === 0)
|
|
829
|
-
continue;
|
|
830
|
-
const storedKey = cf.pickup_moment ? String(cf.pickup_moment) : null;
|
|
831
|
-
let selected = (storedKey ? options.find((op) => op.key === storedKey) : undefined) ?? null;
|
|
832
|
-
if (!selected && cf.delivery_time) {
|
|
833
|
-
const t = normalizeTime(cf.delivery_time);
|
|
834
|
-
selected = options.find((op) => op.deliveryTime === t) ?? null;
|
|
835
|
-
}
|
|
836
|
-
if (!selected)
|
|
837
|
-
selected = options[0];
|
|
838
|
-
o.pickupLabel = shortPickup(selected.pickupDate, selected.pickupTime ?? selected.signupTime);
|
|
839
|
-
}
|
|
840
|
-
}
|
|
804
|
+
// 12a-bis) Ophaalmoment komt uit de Engine, alleen voor zichtbare rijen (stap 14).
|
|
841
805
|
// 12a) Weggehaalde beoordelingsmeldingen (vals alarm) — los vastgelegd,
|
|
842
806
|
// zodat de order zelf niet gewijzigd hoeft te worden.
|
|
843
807
|
{
|
|
@@ -1074,6 +1038,28 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
1074
1038
|
: (localRowByFoId.get(o.id)?.id ? String(localRowByFoId.get(o.id).id) : null);
|
|
1075
1039
|
const ids = visible.map(idFor).filter((v) => !!v);
|
|
1076
1040
|
if (ids.length) {
|
|
1041
|
+
// Ophaalmoment uit de Engine (nooit zelf rekenen).
|
|
1042
|
+
try {
|
|
1043
|
+
const { loadOrderDepartures } = await import("./order-departure.server.js");
|
|
1044
|
+
const { departureView } = await import("./order-departure.js");
|
|
1045
|
+
const deps = await loadOrderDepartures(supabase, ids);
|
|
1046
|
+
for (const o of visible) {
|
|
1047
|
+
const oid = idFor(o);
|
|
1048
|
+
if (!oid)
|
|
1049
|
+
continue;
|
|
1050
|
+
const v = departureView(deps.get(oid));
|
|
1051
|
+
o.pickupLabel = v.short
|
|
1052
|
+
? `${v.short}${v.lateSignup ? " · te laat aangemeld" : ""}`
|
|
1053
|
+
: deps.has(oid)
|
|
1054
|
+
? (v.reason ?? "onbekend")
|
|
1055
|
+
: "onbekend";
|
|
1056
|
+
}
|
|
1057
|
+
}
|
|
1058
|
+
catch {
|
|
1059
|
+
for (const o of visible)
|
|
1060
|
+
if (idFor(o))
|
|
1061
|
+
o.pickupLabel = "onbekend";
|
|
1062
|
+
}
|
|
1077
1063
|
const coverage = await loadPlanCoverage(supabase, ids, "list");
|
|
1078
1064
|
let failed = 0;
|
|
1079
1065
|
for (const o of visible) {
|
|
@@ -1132,7 +1118,7 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
|
|
|
1132
1118
|
: [];
|
|
1133
1119
|
const allIds = Array.from(new Set(visible.flatMap(idsOf))).slice(0, 100);
|
|
1134
1120
|
if (allIds.length) {
|
|
1135
|
-
const { loadFloridayStatuses } = await import("./floriday-status.server");
|
|
1121
|
+
const { loadFloridayStatuses } = await import("./floriday-status.server.js");
|
|
1136
1122
|
const res = await loadFloridayStatuses(allIds);
|
|
1137
1123
|
for (const o of visible) {
|
|
1138
1124
|
const ids = idsOf(o);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type OrderStage } from "./order-status";
|
|
1
|
+
import { type OrderStage } from "./order-status.js";
|
|
2
2
|
export interface SalesOrderDTO {
|
|
3
3
|
id: string;
|
|
4
4
|
orderNumber: string;
|
|
@@ -84,7 +84,7 @@ export interface SalesOrderDTO {
|
|
|
84
84
|
* Indelingsstatus uit logistics_order_plan_coverage (alleen voor zichtbare
|
|
85
85
|
* rijen opgehaald). Ontbreekt = niet opgevraagd.
|
|
86
86
|
*/
|
|
87
|
-
planCoverage?: import("./plan-coverage").PlanCoverageSummary | null;
|
|
87
|
+
planCoverage?: import("./plan-coverage.js").PlanCoverageSummary | null;
|
|
88
88
|
/**
|
|
89
89
|
* Achterstand zoals de Logistiek Engine die meldt (logistics_order_backlog_info).
|
|
90
90
|
* Nooit zelf berekend; `backlogUnknown` betekent dat de vraag niet lukte.
|
|
@@ -96,7 +96,7 @@ export interface SalesOrderDTO {
|
|
|
96
96
|
/** Floriday salesOrderId's op deze order (voor het statusoverzicht). */
|
|
97
97
|
floridayIds?: string[];
|
|
98
98
|
/** Floriday-stand uit het statusoverzicht; alleen weergave. */
|
|
99
|
-
floridayStatus?: import("./floriday-status").FloridayStatusSummary | null;
|
|
99
|
+
floridayStatus?: import("./floriday-status.js").FloridayStatusSummary | null;
|
|
100
100
|
/** Actieve orderregels: stuks en prijs per stuk (voor de totaalregel). */
|
|
101
101
|
priceLines?: {
|
|
102
102
|
pieces: number;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
// Client-safe mapping: jsonb cache row -> SalesOrderDTO used by the UI.
|
|
2
|
-
import { cratePackageName, loadCarrierName } from "./load-carrier-labels";
|
|
3
|
-
import { orderStageLabel } from "./order-status";
|
|
2
|
+
import { cratePackageName, loadCarrierName } from "./load-carrier-labels.js";
|
|
3
|
+
import { orderStageLabel } from "./order-status.js";
|
|
4
4
|
function toNum(v, d = 0) {
|
|
5
5
|
if (typeof v === "number")
|
|
6
6
|
return v;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { type SalesOrderDTO } from "./salesorders-mapping";
|
|
1
|
+
import { type SalesOrderDTO } from "./salesorders-mapping.js";
|
|
2
2
|
export declare function runSalesOrdersSyncFromCron(): Promise<any>;
|
|
3
3
|
export declare const runSalesOrdersSync: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
4
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
4
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
5
5
|
userId: string;
|
|
6
6
|
claims: import("@supabase/auth-js").User;
|
|
7
7
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
@@ -10,7 +10,7 @@ export declare const runSalesOrdersSync: import("@tanstack/start-client-core").O
|
|
|
10
10
|
mirrored: number;
|
|
11
11
|
}>>;
|
|
12
12
|
export declare const createSalesOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
13
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
13
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
14
14
|
userId: string;
|
|
15
15
|
claims: import("@supabase/auth-js").User;
|
|
16
16
|
}, undefined, undefined, undefined>], (data: unknown) => {
|
|
@@ -28,7 +28,7 @@ export declare const createSalesOrder: import("@tanstack/start-client-core").Opt
|
|
|
28
28
|
attemptId: string | undefined;
|
|
29
29
|
}>>;
|
|
30
30
|
export declare const diagnoseFloridayConnection: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
31
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
31
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
32
32
|
userId: string;
|
|
33
33
|
claims: import("@supabase/auth-js").User;
|
|
34
34
|
}, undefined, undefined, undefined>], undefined, Promise<{
|
|
@@ -64,14 +64,14 @@ export type SalesOrderDetailResult = {
|
|
|
64
64
|
bufferSiblings: SalesOrderDTO[];
|
|
65
65
|
};
|
|
66
66
|
export declare const getSalesOrderDetail: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
67
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
67
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
68
68
|
userId: string;
|
|
69
69
|
claims: import("@supabase/auth-js").User;
|
|
70
70
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
71
71
|
id: string;
|
|
72
72
|
}, Promise<SalesOrderDetailResult>>;
|
|
73
73
|
export declare const setSalesOrderControlled: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
74
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
74
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
75
75
|
userId: string;
|
|
76
76
|
claims: import("@supabase/auth-js").User;
|
|
77
77
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -93,7 +93,7 @@ export type FloridaySyncHealth = {
|
|
|
93
93
|
failingComponents: string[];
|
|
94
94
|
};
|
|
95
95
|
export declare const getFloridaySyncHealth: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
96
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
96
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
97
97
|
userId: string;
|
|
98
98
|
claims: import("@supabase/auth-js").User;
|
|
99
99
|
}, undefined, undefined, undefined>], undefined, Promise<FloridaySyncHealth>>;
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import { unlinkedFloridayProducts } from "./floriday-unlinked-products";
|
|
1
|
+
import { unlinkedFloridayProducts } from "./floriday-unlinked-products.js";
|
|
2
2
|
// Sales orders sync (Floriday sequence-pattern) + write actions.
|
|
3
3
|
// Alle Floriday HTTP-calls lopen via floriday-gateway.server.
|
|
4
4
|
import { createServerFn } from "@tanstack/react-start";
|
|
5
5
|
import { z } from "zod";
|
|
6
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
7
|
-
import { mapJsonbToSalesOrderDTO, packingConfigFromFloridayPacking, } from "./salesorders-mapping";
|
|
8
|
-
import { resolveOrderStage } from "./order-status";
|
|
9
|
-
import { engineLoadCarrierLabel, normalizeLoadCarrierCode } from "./load-carriers";
|
|
10
|
-
import { resolveOrderNumbers } from "./order-numbers.server";
|
|
6
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
7
|
+
import { mapJsonbToSalesOrderDTO, packingConfigFromFloridayPacking, } from "./salesorders-mapping.js";
|
|
8
|
+
import { resolveOrderStage } from "./order-status.js";
|
|
9
|
+
import { engineLoadCarrierLabel, normalizeLoadCarrierCode } from "./load-carriers.js";
|
|
10
|
+
import { resolveOrderNumbers } from "./order-numbers.server.js";
|
|
11
11
|
const CANONICAL_ENTITY_TYPE = "sales-orders";
|
|
12
12
|
const MAX_ENDPOINT = "/sales-orders/current-max-sequence";
|
|
13
13
|
function pickString(v) {
|
|
@@ -39,7 +39,7 @@ async function runSalesOrdersMirror(mirrorLimit) {
|
|
|
39
39
|
let mirrorOk = true;
|
|
40
40
|
let mirrored = 0;
|
|
41
41
|
try {
|
|
42
|
-
const { mirrorFloridayOrdersFromCron } = await import("./floriday-mirror.functions");
|
|
42
|
+
const { mirrorFloridayOrdersFromCron } = await import("./floriday-mirror.functions.js");
|
|
43
43
|
const m = (await mirrorFloridayOrdersFromCron(mirrorLimit));
|
|
44
44
|
mirrorOk = m?.ok !== false;
|
|
45
45
|
mirrored = Number(m?.created ?? 0) + Number(m?.updated ?? 0) || 0;
|
|
@@ -53,7 +53,7 @@ async function runSalesOrdersMirror(mirrorLimit) {
|
|
|
53
53
|
export async function runSalesOrdersSyncFromCron() {
|
|
54
54
|
const result = await runSalesOrdersMirror(500);
|
|
55
55
|
// Blokkade-alarm alleen op basis van de Engine (koppelprompt 22).
|
|
56
|
-
const { checkDefinitiveBlocks } = await import("./engine-block-alerts.server");
|
|
56
|
+
const { checkDefinitiveBlocks } = await import("./engine-block-alerts.server.js");
|
|
57
57
|
const alerts = await checkDefinitiveBlocks();
|
|
58
58
|
return { ...result, blockAlerts: { mailed: alerts.mailed, closed: alerts.closed } };
|
|
59
59
|
}
|
|
@@ -75,7 +75,7 @@ const CreateOrderSchema = z.object({
|
|
|
75
75
|
reference: z.string().optional(),
|
|
76
76
|
});
|
|
77
77
|
async function readActiveEnvironment() {
|
|
78
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
78
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
79
79
|
const { data } = await supabaseAdmin
|
|
80
80
|
.from("floriday_settings")
|
|
81
81
|
.select("active_environment")
|
|
@@ -89,8 +89,8 @@ export const createSalesOrder = createServerFn({ method: "POST" })
|
|
|
89
89
|
.inputValidator((data) => CreateOrderSchema.parse(data))
|
|
90
90
|
.handler(async ({ data, context }) => {
|
|
91
91
|
const env = await readActiveEnvironment();
|
|
92
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
93
|
-
const { florydayWrite, pickActiveConnection } = await import("./floriday-gateway.server");
|
|
92
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
93
|
+
const { florydayWrite, pickActiveConnection } = await import("./floriday-gateway.server.js");
|
|
94
94
|
const conn = await pickActiveConnection(supabaseAdmin, env);
|
|
95
95
|
const body = {
|
|
96
96
|
orderReference: data.reference ?? `ORD-${Date.now()}`,
|
|
@@ -122,8 +122,8 @@ export const diagnoseFloridayConnection = createServerFn({ method: "POST" })
|
|
|
122
122
|
.middleware([requireSupabaseAuth])
|
|
123
123
|
.handler(async () => {
|
|
124
124
|
const env = await readActiveEnvironment();
|
|
125
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
126
|
-
const { florydayFetch, pickActiveConnection } = await import("./floriday-gateway.server");
|
|
125
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
126
|
+
const { florydayFetch, pickActiveConnection } = await import("./floriday-gateway.server.js");
|
|
127
127
|
const conn = await pickActiveConnection(supabaseAdmin, env);
|
|
128
128
|
const maxRes = await florydayFetch(supabaseAdmin, conn, {
|
|
129
129
|
method: "GET",
|
|
@@ -175,7 +175,7 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
|
|
|
175
175
|
.inputValidator((d) => DetailInputSchema.parse(d))
|
|
176
176
|
.handler(async ({ data, context }) => {
|
|
177
177
|
const supabase = context.supabase;
|
|
178
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
178
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
179
179
|
// 1) Actieve environment + connectie.
|
|
180
180
|
const envRes = await supabase
|
|
181
181
|
.from("floriday_settings")
|
|
@@ -341,7 +341,7 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
|
|
|
341
341
|
}
|
|
342
342
|
: null;
|
|
343
343
|
if (dto.needsManualReview && ownRow?.id) {
|
|
344
|
-
const { loadReviewDismissals, isReviewDismissed } = await import("./review-dismissals.server");
|
|
344
|
+
const { loadReviewDismissals, isReviewDismissed } = await import("./review-dismissals.server.js");
|
|
345
345
|
const dismissed = await loadReviewDismissals(supabase, [String(ownRow.id)]);
|
|
346
346
|
if (isReviewDismissed(dismissed, String(ownRow.id), dto.needsManualReview.reason))
|
|
347
347
|
dto.needsManualReview = null;
|
|
@@ -349,8 +349,8 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
|
|
|
349
349
|
// Karren en indelingsstatus uit de Engine (logistics_order_plan_coverage).
|
|
350
350
|
// Fail closed: bij een fout "Indeling onbekend" en geen aantal.
|
|
351
351
|
if (ownRow?.id) {
|
|
352
|
-
const { loadPlanCoverage } = await import("./plan-coverage.server");
|
|
353
|
-
const { summarize } = await import("./plan-coverage");
|
|
352
|
+
const { loadPlanCoverage } = await import("./plan-coverage.server.js");
|
|
353
|
+
const { summarize } = await import("./plan-coverage.js");
|
|
354
354
|
const oid = String(ownRow.id);
|
|
355
355
|
const cov = (await loadPlanCoverage(supabase, [oid])).get(oid);
|
|
356
356
|
if (cov) {
|
|
@@ -382,8 +382,8 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
|
|
|
382
382
|
// Floriday-stand (alleen weergave), voor alle bestellingen op deze order.
|
|
383
383
|
{
|
|
384
384
|
const foIds = Array.from(new Set([String(data.id), ...activeItems.map((it) => String(it?.source_line_key ?? ""))].filter((v) => /^[0-9a-f-]{36}$/i.test(v)))).slice(0, 100);
|
|
385
|
-
const { loadFloridayStatuses } = await import("./floriday-status.server");
|
|
386
|
-
const { combineStages } = await import("./floriday-status");
|
|
385
|
+
const { loadFloridayStatuses } = await import("./floriday-status.server.js");
|
|
386
|
+
const { combineStages } = await import("./floriday-status.js");
|
|
387
387
|
const res = await loadFloridayStatuses(foIds);
|
|
388
388
|
const found = foIds.map((id) => res.entries.get(id)).filter((e) => !!e);
|
|
389
389
|
dto.floridayStatus =
|
|
@@ -541,7 +541,7 @@ const STALE_MINUTES = 30;
|
|
|
541
541
|
export const getFloridaySyncHealth = createServerFn({ method: "POST" })
|
|
542
542
|
.middleware([requireSupabaseAuth])
|
|
543
543
|
.handler(async () => {
|
|
544
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
544
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
545
545
|
const { data: conn } = await supabaseAdmin
|
|
546
546
|
.from("floriday_connections")
|
|
547
547
|
.select("id, environment, is_active")
|
|
@@ -14,12 +14,12 @@ export type StockConsumptionAlert = {
|
|
|
14
14
|
* partij stil in een logtabel verdwijnen.
|
|
15
15
|
*/
|
|
16
16
|
export declare const listOpenStockConsumptionAlerts: 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>], undefined, Promise<StockConsumptionAlert[]>>;
|
|
21
21
|
export declare const resolveStockConsumptionAlert: import("@tanstack/start-client-core").RequiredFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
22
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
22
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
23
23
|
userId: string;
|
|
24
24
|
claims: import("@supabase/auth-js").User;
|
|
25
25
|
}, undefined, undefined, undefined>], (input: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createServerFn } from "@tanstack/react-start";
|
|
2
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
2
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
3
3
|
/**
|
|
4
4
|
* Signalering (punt 4): rijen met mutation_type 'consumption_skipped' of
|
|
5
5
|
* 'consumption_blocked' worden door een databasetrigger doorgezet naar
|