@flowselections/floriday-verkoop-module 1.0.86 → 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/integrations/supabase/types.d.ts +346 -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.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
|
@@ -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;
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
// precies `${timestamp}.${body}`, header `x-floriday-signature: sha256=<hex>`.
|
|
6
6
|
// - Max 100 id's per verzoek, kort geheugen (30 s) per id.
|
|
7
7
|
// - Fail closed: bij een fout geen stand, wel de foutcode (bv. invalid_signature).
|
|
8
|
-
import { parseFloridayStatusEntry } from "./floriday-status";
|
|
8
|
+
import { parseFloridayStatusEntry } from "./floriday-status.js";
|
|
9
9
|
const TTL_MS = 30000;
|
|
10
10
|
const MAX_IDS = 100;
|
|
11
11
|
const cache = new Map();
|
|
@@ -31,7 +31,7 @@ export async function loadFloridayStatuses(salesOrderIds) {
|
|
|
31
31
|
return { entries, error: null };
|
|
32
32
|
let error = null;
|
|
33
33
|
try {
|
|
34
|
-
const { getFloridayGatewaySecret, getGatewayBaseUrl } = await import("./central-secrets.server");
|
|
34
|
+
const { getFloridayGatewaySecret, getGatewayBaseUrl } = await import("./central-secrets.server.js");
|
|
35
35
|
const secret = await getFloridayGatewaySecret();
|
|
36
36
|
const base = await getGatewayBaseUrl();
|
|
37
37
|
for (let i = 0; i < wanted.length; i += MAX_IDS) {
|
|
@@ -36,7 +36,7 @@ async function markSyncSuccess(supabase, connectionId, entityType) {
|
|
|
36
36
|
}
|
|
37
37
|
export async function syncBySequence(supabase, opts) {
|
|
38
38
|
// Lazy import vermijdt circular dependency tussen sync en gateway.
|
|
39
|
-
const { florydayFetch } = await import("./floriday-gateway.server");
|
|
39
|
+
const { florydayFetch } = await import("./floriday-gateway.server.js");
|
|
40
40
|
const { connection, entityType, maxEndpoint, syncEndpointBase, cacheTable, conflictTarget, mapRow } = opts;
|
|
41
41
|
let active = connection;
|
|
42
42
|
const maxCall = await florydayFetch(supabase, active, {
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
// De synchronisatie koppelt uitsluitend op trade-item-id; lukt dat niet, dan
|
|
3
3
|
// blijft product_id leeg. Deze helper maakt dat zichtbaar — er wordt niets
|
|
4
4
|
// geschreven en de regel wordt niet apart gezet.
|
|
5
|
-
import { resolveProductName } from "./product-name";
|
|
5
|
+
import { resolveProductName } from "./product-name.js";
|
|
6
6
|
export function unlinkedFloridayProducts(row) {
|
|
7
7
|
const cf = (row?.custom_fields ?? {});
|
|
8
8
|
if (cf.source !== "floriday")
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type { FlorydayWriteResult } from "./floriday-gateway.server";
|
|
1
|
+
import type { FlorydayWriteResult } from "./floriday-gateway.server.js";
|
|
2
2
|
export declare const publishTradeItem: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
3
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
3
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
4
4
|
userId: string;
|
|
5
5
|
claims: import("@supabase/auth-js").User;
|
|
6
6
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -9,7 +9,7 @@ export declare const publishTradeItem: import("@tanstack/start-client-core").Opt
|
|
|
9
9
|
payload: Record<string, any>;
|
|
10
10
|
}, Promise<FlorydayWriteResult>>;
|
|
11
11
|
export declare const upsertSupplyLine: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
12
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
12
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
13
13
|
userId: string;
|
|
14
14
|
claims: import("@supabase/auth-js").User;
|
|
15
15
|
}, undefined, undefined, undefined>], (d: unknown) => {
|
|
@@ -2,11 +2,11 @@
|
|
|
2
2
|
// Niemand mag fetch met Authorization-header zelf bouwen.
|
|
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
|
async function callGateway(env, args, userId) {
|
|
8
|
-
const { supabaseAdmin } = await import("../integrations/supabase/client.server");
|
|
9
|
-
const { florydayWrite } = await import("./floriday-gateway.server");
|
|
8
|
+
const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
|
|
9
|
+
const { florydayWrite } = await import("./floriday-gateway.server.js");
|
|
10
10
|
return florydayWrite(supabaseAdmin, env, args, userId);
|
|
11
11
|
}
|
|
12
12
|
// ─── Orderstatussen ───────────────────────────────────────────────────────
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { type InvoiceTimingSettings } from "./invoice-timing";
|
|
1
|
+
import { type InvoiceTimingSettings } from "./invoice-timing.js";
|
|
2
2
|
export declare const getInvoiceTimingSettings: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
3
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
3
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
4
4
|
userId: string;
|
|
5
5
|
claims: import("@supabase/auth-js").User;
|
|
6
6
|
}, undefined, undefined, undefined>], undefined, Promise<InvoiceTimingSettings>>;
|
|
7
7
|
export declare const saveInvoiceTimingSettings: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
8
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
8
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
9
9
|
userId: string;
|
|
10
10
|
claims: import("@supabase/auth-js").User;
|
|
11
11
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -23,7 +23,7 @@ export declare const saveInvoiceTimingSettings: import("@tanstack/start-client-c
|
|
|
23
23
|
recomputed: number;
|
|
24
24
|
}>>;
|
|
25
25
|
export declare const recomputeInvoiceDueForOrder: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
26
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
26
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
27
27
|
userId: string;
|
|
28
28
|
claims: import("@supabase/auth-js").User;
|
|
29
29
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -32,7 +32,7 @@ export declare const recomputeInvoiceDueForOrder: import("@tanstack/start-client
|
|
|
32
32
|
invoiceDueAt: any;
|
|
33
33
|
}>>;
|
|
34
34
|
export declare const getOrderInvoiceMoment: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
|
|
35
|
-
supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
|
|
35
|
+
supabase: import("../integrations/supabase/auth-middleware.js").AuthedSupabaseClient;
|
|
36
36
|
userId: string;
|
|
37
37
|
claims: import("@supabase/auth-js").User;
|
|
38
38
|
}, undefined, undefined, undefined>], (input: unknown) => {
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// Server functions voor het instelbare factuurmoment.
|
|
2
2
|
import { createServerFn } from "@tanstack/react-start";
|
|
3
3
|
import { z } from "zod";
|
|
4
|
-
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware";
|
|
5
|
-
import { resolveOrderRow, assertRowsAffected } from "./order-row.server";
|
|
6
|
-
import { DEFAULT_INVOICE_TIMING, normalizeTimeOfDay, } from "./invoice-timing";
|
|
4
|
+
import { requireSupabaseAuth } from "../integrations/supabase/auth-middleware.js";
|
|
5
|
+
import { resolveOrderRow, assertRowsAffected } from "./order-row.server.js";
|
|
6
|
+
import { DEFAULT_INVOICE_TIMING, normalizeTimeOfDay, } from "./invoice-timing.js";
|
|
7
7
|
const ANCHORS = [
|
|
8
8
|
"order_created",
|
|
9
9
|
"confirmed",
|
|
@@ -27,7 +27,7 @@ const settingsSchema = z.object({
|
|
|
27
27
|
export const getInvoiceTimingSettings = createServerFn({ method: "GET" })
|
|
28
28
|
.middleware([requireSupabaseAuth])
|
|
29
29
|
.handler(async ({ context }) => {
|
|
30
|
-
const { loadInvoiceTimingSettings } = await import("./invoice-timing.server");
|
|
30
|
+
const { loadInvoiceTimingSettings } = await import("./invoice-timing.server.js");
|
|
31
31
|
return loadInvoiceTimingSettings(context.supabase);
|
|
32
32
|
});
|
|
33
33
|
export const saveInvoiceTimingSettings = createServerFn({ method: "POST" })
|
|
@@ -53,8 +53,8 @@ export const saveInvoiceTimingSettings = createServerFn({ method: "POST" })
|
|
|
53
53
|
if (error)
|
|
54
54
|
throw new Error(error.message);
|
|
55
55
|
// Direct doorrekenen zodat de orders het nieuwe moment tonen.
|
|
56
|
-
const { recomputeInvoiceDueDates } = await import("./invoice-timing.server");
|
|
57
|
-
const { updated } = await recomputeInvoiceDueDates(supabase
|
|
56
|
+
const { recomputeInvoiceDueDates } = await import("./invoice-timing.server.js");
|
|
57
|
+
const { updated } = await recomputeInvoiceDueDates(supabase);
|
|
58
58
|
return { ok: true, recomputed: updated };
|
|
59
59
|
});
|
|
60
60
|
export const recomputeInvoiceDueForOrder = createServerFn({ method: "POST" })
|
|
@@ -63,7 +63,7 @@ export const recomputeInvoiceDueForOrder = createServerFn({ method: "POST" })
|
|
|
63
63
|
.handler(async ({ data, context }) => {
|
|
64
64
|
// DTO-id kan een Floriday salesOrderId zijn.
|
|
65
65
|
const order = await resolveOrderRow(context.supabase, data.orderId);
|
|
66
|
-
const { recomputeInvoiceDueDates } = await import("./invoice-timing.server");
|
|
66
|
+
const { recomputeInvoiceDueDates } = await import("./invoice-timing.server.js");
|
|
67
67
|
await recomputeInvoiceDueDates(context.supabase, { orderIds: [order.id] });
|
|
68
68
|
const { data: row } = await context.supabase
|
|
69
69
|
.from("orders")
|
|
@@ -79,7 +79,7 @@ export const getOrderInvoiceMoment = createServerFn({ method: "GET" })
|
|
|
79
79
|
.handler(async ({ data, context }) => {
|
|
80
80
|
// DTO-id kan een Floriday salesOrderId zijn.
|
|
81
81
|
const order = await resolveOrderRow(context.supabase, data.orderId);
|
|
82
|
-
const { loadInvoiceTimingSettings } = await import("./invoice-timing.server");
|
|
82
|
+
const { loadInvoiceTimingSettings } = await import("./invoice-timing.server.js");
|
|
83
83
|
const settings = await loadInvoiceTimingSettings(context.supabase).catch(() => DEFAULT_INVOICE_TIMING);
|
|
84
84
|
const { data: row } = await context.supabase
|
|
85
85
|
.from("orders")
|
|
@@ -1,13 +1,18 @@
|
|
|
1
|
-
import { type InvoiceTimingSettings } from "./invoice-timing";
|
|
1
|
+
import { type InvoiceTimingSettings } from "./invoice-timing.js";
|
|
2
2
|
/** Status die de facturatiemodule oppakt zodra het factuurmoment is bereikt. */
|
|
3
3
|
export declare const INVOICE_READY_STATUS = "Gereed voor facturatie";
|
|
4
4
|
export declare function loadInvoiceTimingSettings(supabase: any): Promise<InvoiceTimingSettings>;
|
|
5
|
-
/**
|
|
5
|
+
/**
|
|
6
|
+
* Herberekent `invoice_due_at` voor de meegegeven orders, of voor álle orders
|
|
7
|
+
* die nog niet gefactureerd, niet geannuleerd en niet verwijderd zijn (in delen
|
|
8
|
+
* van 200). Slaat alleen op als het moment echt verandert, met dezelfde
|
|
9
|
+
* voorwaarde ook in de database.
|
|
10
|
+
*/
|
|
6
11
|
export declare function recomputeInvoiceDueDates(supabase: any, options?: {
|
|
7
12
|
orderIds?: string[];
|
|
8
|
-
limit?: number;
|
|
9
13
|
}): Promise<{
|
|
10
14
|
updated: number;
|
|
15
|
+
checked: number;
|
|
11
16
|
}>;
|
|
12
17
|
/** Zet orders waarvan het factuurmoment is bereikt op de facturatiestatus. */
|
|
13
18
|
export declare function releaseDueInvoices(supabase: any, limit?: number): Promise<{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"invoice-timing.server.d.ts","sourceRoot":"","sources":["../../src/lib/invoice-timing.server.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAE7D,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAkB7F;
|
|
1
|
+
{"version":3,"file":"invoice-timing.server.d.ts","sourceRoot":"","sources":["../../src/lib/invoice-timing.server.ts"],"names":[],"mappings":"AACA,OAAO,EAML,KAAK,qBAAqB,EAC3B,MAAM,kBAAkB,CAAC;AAE1B,gFAAgF;AAChF,eAAO,MAAM,oBAAoB,2BAA2B,CAAC;AAE7D,wBAAsB,yBAAyB,CAAC,QAAQ,EAAE,GAAG,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAkB7F;AA6ED;;;;;GAKG;AACH,wBAAsB,wBAAwB,CAC5C,QAAQ,EAAE,GAAG,EACb,OAAO,GAAE;IAAE,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAA;CAAO,GACpC,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAmD/C;AAED,8EAA8E;AAC9E,wBAAsB,kBAAkB,CACtC,QAAQ,EAAE,GAAG,EACb,KAAK,SAAM,GACV,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC,CAgCnD;AAED,8DAA8D;AAC9D,wBAAsB,qBAAqB,IAAI,OAAO,CAAC;IACrD,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAKD"}
|