@flowselections/logistiek-engine 1.0.90 → 1.0.94

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.
Files changed (31) hide show
  1. package/dist-lib/components/FlowOrders.js +1 -1
  2. package/dist-lib/hooks/useShippingNoteStatus.d.ts +2 -0
  3. package/dist-lib/hooks/useShippingNoteStatus.d.ts.map +1 -1
  4. package/dist-lib/hooks/useShippingNoteStatus.js +13 -1
  5. package/dist-lib/hooks/useShippingNoteStatus.test.d.ts +2 -0
  6. package/dist-lib/hooks/useShippingNoteStatus.test.d.ts.map +1 -0
  7. package/dist-lib/hooks/useShippingNoteStatus.test.js +20 -0
  8. package/dist-lib/integrations/supabase/auth-middleware.d.ts +356 -0
  9. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  10. package/dist-lib/integrations/supabase/client.server.d.ts +356 -0
  11. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  12. package/dist-lib/integrations/supabase/moduleClient.d.ts +356 -0
  13. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  14. package/dist-lib/integrations/supabase/types.d.ts +364 -0
  15. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  16. package/dist-lib/lib/cartCoverage.functions.d.ts +356 -0
  17. package/dist-lib/lib/cartCoverage.functions.d.ts.map +1 -1
  18. package/dist-lib/lib/floridayDocuments.functions.d.ts +1068 -0
  19. package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
  20. package/dist-lib/lib/floridayPush.functions.d.ts +356 -0
  21. package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
  22. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +1780 -0
  23. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
  24. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +712 -0
  25. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
  26. package/dist-lib/lib/logisticsRecalculate.functions.d.ts +356 -0
  27. package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
  28. package/dist-lib/lib/plannerDiff.functions.d.ts +356 -0
  29. package/dist-lib/lib/plannerDiff.functions.d.ts.map +1 -1
  30. package/dist-lib/lib/ruleEngineSchema.js +2 -2
  31. package/package.json +1 -1
@@ -149,7 +149,7 @@ export function FlowOrders({ onRoute }) {
149
149
  ["fout", "Vastgelopen"],
150
150
  ["bezig", "Bezig / wachtend"],
151
151
  ["klaar", "Overig"],
152
- ].map(([w, l]) => (_jsx(Button, { size: "sm", variant: filter === w ? "default" : "outline", onClick: () => setFilter(w), children: l }, w))), _jsx(Button, { size: "sm", variant: "outline", onClick: () => setSortering((s) => (s === "nieuw" ? "oud" : "nieuw")), children: sortering === "nieuw" ? "Nieuwste eerst" : "Oudste eerst" }), _jsxs("span", { className: "ml-auto text-xs text-muted-foreground", children: [gefilterd.length, " orders"] })] })] }), _jsxs(CardContent, { className: "space-y-3", children: [error && (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2", children: [_jsx("p", { className: "text-sm text-destructive", children: error }), _jsxs(Button, { size: "sm", variant: "outline", onClick: () => void refresh(), disabled: loading, children: [_jsx(RefreshCw, { className: `mr-1 h-3.5 w-3.5 ${loading ? "animate-spin" : ""}` }), "Opnieuw proberen"] })] })), loading && veiligeRows.length === 0 ? (_jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton, { className: "h-10 w-full" }), _jsx(Skeleton, { className: "h-10 w-full" }), _jsx(Skeleton, { className: "h-10 w-full" })] })) : gefilterd.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Geen orders gevonden." })) : (_jsx("div", { className: "max-h-[420px] overflow-y-auto rounded-md border border-border", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { className: "sticky top-0 bg-muted/60 text-xs text-muted-foreground", children: _jsxs("tr", { children: [_jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Order" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Klant" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Bron" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Levering" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Stand" }), _jsx("th", { className: "px-2 py-1.5 text-right font-medium", children: "Versies" }), _jsx("th", { className: "px-2 py-1.5 text-right font-medium", children: "Fouten" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Laatste activiteit" })] }) }), _jsx("tbody", { children: gefilterd.map((r) => {
152
+ ].map(([w, l]) => (_jsx(Button, { size: "sm", variant: filter === w ? "default" : "outline", onClick: () => setFilter(w), children: l }, w))), _jsx(Button, { size: "sm", variant: "outline", onClick: () => setSortering((s) => (s === "nieuw" ? "oud" : "nieuw")), children: sortering === "nieuw" ? "Nieuwste eerst" : "Oudste eerst" }), _jsxs("span", { className: "ml-auto text-xs text-muted-foreground", children: [gefilterd.length, " orders"] })] })] }), _jsxs(CardContent, { className: "space-y-3", children: [error && (_jsxs("div", { className: "flex flex-wrap items-center justify-between gap-2 rounded-md border border-destructive/30 bg-destructive/5 px-3 py-2", children: [_jsx("p", { className: "text-sm text-destructive", children: error }), _jsxs(Button, { size: "sm", variant: "outline", onClick: () => void refresh(), disabled: loading, children: [_jsx(RefreshCw, { className: `mr-1 h-3.5 w-3.5 ${loading ? "animate-spin" : ""}` }), "Opnieuw proberen"] })] })), loading && veiligeRows.length === 0 ? (_jsxs("div", { className: "space-y-2", children: [_jsx(Skeleton, { className: "h-10 w-full" }), _jsx(Skeleton, { className: "h-10 w-full" }), _jsx(Skeleton, { className: "h-10 w-full" })] })) : gefilterd.length === 0 ? (error ? null : _jsx("p", { className: "text-sm text-muted-foreground", children: "Geen orders gevonden." })) : (_jsx("div", { className: "max-h-[420px] overflow-y-auto rounded-md border border-border", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { className: "sticky top-0 bg-muted/60 text-xs text-muted-foreground", children: _jsxs("tr", { children: [_jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Order" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Klant" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Bron" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Levering" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Stand" }), _jsx("th", { className: "px-2 py-1.5 text-right font-medium", children: "Versies" }), _jsx("th", { className: "px-2 py-1.5 text-right font-medium", children: "Fouten" }), _jsx("th", { className: "px-2 py-1.5 text-left font-medium", children: "Laatste activiteit" })] }) }), _jsx("tbody", { children: gefilterd.map((r) => {
153
153
  const st = orderStand(r);
154
154
  const actief = r.orderNumber === orderRef;
155
155
  return (_jsxs("tr", { className: `cursor-pointer border-t border-border hover:bg-muted/40 ${actief ? "bg-primary/10" : ""}`, onClick: () => kies(r.orderNumber), children: [_jsx("td", { className: "px-2 py-1.5 font-medium", children: _jsxs("span", { className: "inline-flex items-center gap-1", children: [actief ? _jsx(ChevronDown, { className: "h-3.5 w-3.5" }) : _jsx(ChevronRight, { className: "h-3.5 w-3.5" }), r.orderNumber] }) }), _jsx("td", { className: "max-w-[180px] truncate px-2 py-1.5", children: r.customerName ?? "—" }), _jsx("td", { className: "px-2 py-1.5", children: r.orderSource === "floriday" ? "Floriday" : r.orderSource ? "Eigen verkoop" : "—" }), _jsx("td", { className: "px-2 py-1.5", children: r.deliveryDate ?? "—" }), _jsxs("td", { className: "px-2 py-1.5", children: [_jsx(Badge, { variant: st.kleur, children: st.label }), r.reasonCode && st.kleur === "destructive" && (_jsx("span", { className: "ml-1 text-xs text-muted-foreground", children: redenTekst(r.reasonCode) }))] }), _jsx("td", { className: "px-2 py-1.5 text-right tabular-nums", children: r.versions }), _jsx("td", { className: `px-2 py-1.5 text-right tabular-nums ${r.errors > 0 ? "text-destructive" : ""}`, children: r.errors }), _jsx("td", { className: "px-2 py-1.5 text-xs text-muted-foreground", children: tijd(r.lastAt ?? r.createdAt) })] }, r.orderNumber));
@@ -9,6 +9,8 @@ export interface ShippingNoteStatus {
9
9
  cartId: string | null;
10
10
  orderNumber: string | null;
11
11
  }
12
+ /** Zet een nog wachtende status om naar een expliciete fout na de pollimiet. */
13
+ export declare function timedOutStatus(current: ShippingNoteStatus, maxPollMs: number): ShippingNoteStatus;
12
14
  /**
13
15
  * Zet de verzendbriefverwerking direct aan het werk zodra de pakbon naar het
14
16
  * pickstation is gestuurd, zodat niet op de volgende ronde hoeft te worden
@@ -1 +1 @@
1
- {"version":3,"file":"useShippingNoteStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useShippingNoteStatus.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AA+BD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAe3D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO;;;;EAqD1E"}
1
+ {"version":3,"file":"useShippingNoteStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useShippingNoteStatus.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,sBAAsB,GAC9B,kBAAkB,GAClB,mBAAmB,GACnB,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,kBAAkB;IACjC,MAAM,EAAE,sBAAsB,CAAC;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B;AAID,gFAAgF;AAChF,wBAAgB,cAAc,CAC5B,OAAO,EAAE,kBAAkB,EAC3B,SAAS,EAAE,MAAM,GAChB,kBAAkB,CAOpB;AA6BD;;;;;;GAMG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,IAAI,CAAC,CAe3D;AAED,wBAAgB,qBAAqB,CACnC,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,MAAM,EAAE,MAAM,GAAG,IAAI,EACrB,OAAO,GAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,OAAO,CAAA;CAAO;;;;EAyD1E"}
@@ -5,6 +5,15 @@
5
5
  import { useCallback, useEffect, useState } from "react";
6
6
  import { supabase } from "@flowselections/core";
7
7
  const WAITING = new Set(["klaar_voor_print", "wacht_op_floriday"]);
8
+ /** Zet een nog wachtende status om naar een expliciete fout na de pollimiet. */
9
+ export function timedOutStatus(current, maxPollMs) {
10
+ const minuten = Math.round(maxPollMs / 60000);
11
+ return {
12
+ ...current,
13
+ status: "mislukt",
14
+ message: `Verzendbriefstatus kon niet worden bepaald na ${minuten} minuten. Controleer de printwachtrij.`,
15
+ };
16
+ }
8
17
  function safeStatus(value) {
9
18
  if (!value || typeof value !== "object")
10
19
  return null;
@@ -98,8 +107,11 @@ export function useShippingNoteStatus(slipJobId, cartId, options = {}) {
98
107
  useEffect(() => {
99
108
  if (!data || !WAITING.has(data.status) || startedAt === null)
100
109
  return;
101
- if (Date.now() - startedAt >= maxPollMs)
110
+ if (Date.now() - startedAt >= maxPollMs) {
111
+ // Nooit stil stoppen: zonder eindstatus na de limiet expliciet een fout tonen.
112
+ setData(timedOutStatus(data, maxPollMs));
102
113
  return;
114
+ }
103
115
  const timer = window.setTimeout(() => void reload(), pollMs);
104
116
  return () => window.clearTimeout(timer);
105
117
  }, [data, maxPollMs, pollMs, reload, startedAt]);
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=useShippingNoteStatus.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useShippingNoteStatus.test.d.ts","sourceRoot":"","sources":["../../src/hooks/useShippingNoteStatus.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,20 @@
1
+ import { describe, expect, it } from "vitest";
2
+ import { timedOutStatus } from "./useShippingNoteStatus";
3
+ describe("timedOutStatus", () => {
4
+ it("maakt van een wachtende status na de limiet een expliciete fout", () => {
5
+ const wachtend = {
6
+ status: "klaar_voor_print",
7
+ message: "Verzendbrief wordt klaargezet.",
8
+ attempts: 0,
9
+ nextAttemptAt: null,
10
+ slipJobId: "s",
11
+ shippingNoteJobId: null,
12
+ cartId: "c",
13
+ orderNumber: "HO-1",
14
+ };
15
+ const uit = timedOutStatus(wachtend, 15 * 60000);
16
+ expect(uit.status).toBe("mislukt");
17
+ expect(uit.message).toContain("15 minuten");
18
+ expect(uit.slipJobId).toBe("s");
19
+ });
20
+ });
@@ -734,6 +734,27 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
734
734
  };
735
735
  Relationships: [];
736
736
  };
737
+ artikelen_instellingen: {
738
+ Row: {
739
+ created_at: string;
740
+ id: number;
741
+ marge_procent: number;
742
+ updated_at: string;
743
+ };
744
+ Insert: {
745
+ created_at?: string;
746
+ id?: number;
747
+ marge_procent?: number;
748
+ updated_at?: string;
749
+ };
750
+ Update: {
751
+ created_at?: string;
752
+ id?: number;
753
+ marge_procent?: number;
754
+ updated_at?: string;
755
+ };
756
+ Relationships: [];
757
+ };
737
758
  artikelen_veldconfig: {
738
759
  Row: {
739
760
  bron_pad: string;
@@ -10409,6 +10430,30 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
10409
10430
  };
10410
10431
  Relationships: [];
10411
10432
  };
10433
+ logistics_cart_barcode_archief: {
10434
+ Row: {
10435
+ barcode: string;
10436
+ cart_id: string;
10437
+ created_at: string | null;
10438
+ gearchiveerd_op: string;
10439
+ order_id: string | null;
10440
+ };
10441
+ Insert: {
10442
+ barcode: string;
10443
+ cart_id: string;
10444
+ created_at?: string | null;
10445
+ gearchiveerd_op?: string;
10446
+ order_id?: string | null;
10447
+ };
10448
+ Update: {
10449
+ barcode?: string;
10450
+ cart_id?: string;
10451
+ created_at?: string | null;
10452
+ gearchiveerd_op?: string;
10453
+ order_id?: string | null;
10454
+ };
10455
+ Relationships: [];
10456
+ };
10412
10457
  logistics_control_scan: {
10413
10458
  Row: {
10414
10459
  approved_at: string | null;
@@ -14695,6 +14740,7 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
14695
14740
  next_attempt_at: string;
14696
14741
  order_id: string;
14697
14742
  processed_at: string | null;
14743
+ send_error: string | null;
14698
14744
  status: string;
14699
14745
  updated_at: string;
14700
14746
  };
@@ -14708,6 +14754,7 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
14708
14754
  next_attempt_at?: string;
14709
14755
  order_id: string;
14710
14756
  processed_at?: string | null;
14757
+ send_error?: string | null;
14711
14758
  status?: string;
14712
14759
  updated_at?: string;
14713
14760
  };
@@ -14721,6 +14768,7 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
14721
14768
  next_attempt_at?: string;
14722
14769
  order_id?: string;
14723
14770
  processed_at?: string | null;
14771
+ send_error?: string | null;
14724
14772
  status?: string;
14725
14773
  updated_at?: string;
14726
14774
  };
@@ -17758,6 +17806,9 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
17758
17806
  lead_time_days: number | null;
17759
17807
  min_order_quantity: number | null;
17760
17808
  notes: string | null;
17809
+ previous_price_cents: number | null;
17810
+ price_source: string;
17811
+ price_updated_at: string | null;
17761
17812
  product_id: string;
17762
17813
  purchase_price_cents: number | null;
17763
17814
  supplier_article_number: string | null;
@@ -17771,6 +17822,9 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
17771
17822
  lead_time_days?: number | null;
17772
17823
  min_order_quantity?: number | null;
17773
17824
  notes?: string | null;
17825
+ previous_price_cents?: number | null;
17826
+ price_source?: string;
17827
+ price_updated_at?: string | null;
17774
17828
  product_id: string;
17775
17829
  purchase_price_cents?: number | null;
17776
17830
  supplier_article_number?: string | null;
@@ -17784,6 +17838,9 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
17784
17838
  lead_time_days?: number | null;
17785
17839
  min_order_quantity?: number | null;
17786
17840
  notes?: string | null;
17841
+ previous_price_cents?: number | null;
17842
+ price_source?: string;
17843
+ price_updated_at?: string | null;
17787
17844
  product_id?: string;
17788
17845
  purchase_price_cents?: number | null;
17789
17846
  supplier_article_number?: string | null;
@@ -18314,9 +18371,13 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
18314
18371
  purchase_order_items: {
18315
18372
  Row: {
18316
18373
  article_number: string | null;
18374
+ cancel_reason: string | null;
18375
+ cancelled_at: string | null;
18317
18376
  created_at: string;
18318
18377
  delivery_date: string | null;
18319
18378
  id: string;
18379
+ incoming_booked: number;
18380
+ line_status: string;
18320
18381
  name: string;
18321
18382
  note: string | null;
18322
18383
  pot_size: string | null;
@@ -18324,6 +18385,8 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
18324
18385
  product_type: string;
18325
18386
  purchase_order_id: string;
18326
18387
  quantity: number;
18388
+ received_at: string | null;
18389
+ received_booked: number;
18327
18390
  supplier_id: string | null;
18328
18391
  supplier_product_id: string | null;
18329
18392
  unit_price_cents: number;
@@ -18331,9 +18394,13 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
18331
18394
  };
18332
18395
  Insert: {
18333
18396
  article_number?: string | null;
18397
+ cancel_reason?: string | null;
18398
+ cancelled_at?: string | null;
18334
18399
  created_at?: string;
18335
18400
  delivery_date?: string | null;
18336
18401
  id?: string;
18402
+ incoming_booked?: number;
18403
+ line_status?: string;
18337
18404
  name?: string;
18338
18405
  note?: string | null;
18339
18406
  pot_size?: string | null;
@@ -18341,6 +18408,8 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
18341
18408
  product_type?: string;
18342
18409
  purchase_order_id: string;
18343
18410
  quantity?: number;
18411
+ received_at?: string | null;
18412
+ received_booked?: number;
18344
18413
  supplier_id?: string | null;
18345
18414
  supplier_product_id?: string | null;
18346
18415
  unit_price_cents?: number;
@@ -18348,9 +18417,13 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
18348
18417
  };
18349
18418
  Update: {
18350
18419
  article_number?: string | null;
18420
+ cancel_reason?: string | null;
18421
+ cancelled_at?: string | null;
18351
18422
  created_at?: string;
18352
18423
  delivery_date?: string | null;
18353
18424
  id?: string;
18425
+ incoming_booked?: number;
18426
+ line_status?: string;
18354
18427
  name?: string;
18355
18428
  note?: string | null;
18356
18429
  pot_size?: string | null;
@@ -18358,6 +18431,8 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
18358
18431
  product_type?: string;
18359
18432
  purchase_order_id?: string;
18360
18433
  quantity?: number;
18434
+ received_at?: string | null;
18435
+ received_booked?: number;
18361
18436
  supplier_id?: string | null;
18362
18437
  supplier_product_id?: string | null;
18363
18438
  unit_price_cents?: number;
@@ -18461,6 +18536,153 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
18461
18536
  referencedColumns: ["id"];
18462
18537
  }];
18463
18538
  };
18539
+ purchase_request_events: {
18540
+ Row: {
18541
+ created_at: string;
18542
+ details: import("./types").Json | null;
18543
+ event_type: string;
18544
+ id: string;
18545
+ request_id: string;
18546
+ };
18547
+ Insert: {
18548
+ created_at?: string;
18549
+ details?: import("./types").Json | null;
18550
+ event_type: string;
18551
+ id?: string;
18552
+ request_id: string;
18553
+ };
18554
+ Update: {
18555
+ created_at?: string;
18556
+ details?: import("./types").Json | null;
18557
+ event_type?: string;
18558
+ id?: string;
18559
+ request_id?: string;
18560
+ };
18561
+ Relationships: [{
18562
+ foreignKeyName: "purchase_request_events_request_id_fkey";
18563
+ columns: ["request_id"];
18564
+ isOneToOne: false;
18565
+ referencedRelation: "purchase_requests";
18566
+ referencedColumns: ["id"];
18567
+ }];
18568
+ };
18569
+ purchase_request_responses: {
18570
+ Row: {
18571
+ confirmed_date: string | null;
18572
+ confirmed_price_cents: number | null;
18573
+ confirmed_quantity: number;
18574
+ created_at: string;
18575
+ id: string;
18576
+ not_available: boolean;
18577
+ note: string | null;
18578
+ purchase_order_item_id: string;
18579
+ request_id: string;
18580
+ updated_at: string;
18581
+ };
18582
+ Insert: {
18583
+ confirmed_date?: string | null;
18584
+ confirmed_price_cents?: number | null;
18585
+ confirmed_quantity?: number;
18586
+ created_at?: string;
18587
+ id?: string;
18588
+ not_available?: boolean;
18589
+ note?: string | null;
18590
+ purchase_order_item_id: string;
18591
+ request_id: string;
18592
+ updated_at?: string;
18593
+ };
18594
+ Update: {
18595
+ confirmed_date?: string | null;
18596
+ confirmed_price_cents?: number | null;
18597
+ confirmed_quantity?: number;
18598
+ created_at?: string;
18599
+ id?: string;
18600
+ not_available?: boolean;
18601
+ note?: string | null;
18602
+ purchase_order_item_id?: string;
18603
+ request_id?: string;
18604
+ updated_at?: string;
18605
+ };
18606
+ Relationships: [{
18607
+ foreignKeyName: "purchase_request_responses_purchase_order_item_id_fkey";
18608
+ columns: ["purchase_order_item_id"];
18609
+ isOneToOne: false;
18610
+ referencedRelation: "purchase_order_items";
18611
+ referencedColumns: ["id"];
18612
+ }, {
18613
+ foreignKeyName: "purchase_request_responses_request_id_fkey";
18614
+ columns: ["request_id"];
18615
+ isOneToOne: false;
18616
+ referencedRelation: "purchase_requests";
18617
+ referencedColumns: ["id"];
18618
+ }];
18619
+ };
18620
+ purchase_requests: {
18621
+ Row: {
18622
+ created_at: string;
18623
+ expires_at: string;
18624
+ first_viewed_at: string | null;
18625
+ id: string;
18626
+ processed_at: string | null;
18627
+ purchase_order_id: string;
18628
+ responded_at: string | null;
18629
+ sent_at: string;
18630
+ status: string;
18631
+ supplier_id: string | null;
18632
+ supplier_name: string;
18633
+ supplier_note: string | null;
18634
+ to_address: string | null;
18635
+ token_hash: string;
18636
+ updated_at: string;
18637
+ };
18638
+ Insert: {
18639
+ created_at?: string;
18640
+ expires_at?: string;
18641
+ first_viewed_at?: string | null;
18642
+ id?: string;
18643
+ processed_at?: string | null;
18644
+ purchase_order_id: string;
18645
+ responded_at?: string | null;
18646
+ sent_at?: string;
18647
+ status?: string;
18648
+ supplier_id?: string | null;
18649
+ supplier_name?: string;
18650
+ supplier_note?: string | null;
18651
+ to_address?: string | null;
18652
+ token_hash: string;
18653
+ updated_at?: string;
18654
+ };
18655
+ Update: {
18656
+ created_at?: string;
18657
+ expires_at?: string;
18658
+ first_viewed_at?: string | null;
18659
+ id?: string;
18660
+ processed_at?: string | null;
18661
+ purchase_order_id?: string;
18662
+ responded_at?: string | null;
18663
+ sent_at?: string;
18664
+ status?: string;
18665
+ supplier_id?: string | null;
18666
+ supplier_name?: string;
18667
+ supplier_note?: string | null;
18668
+ to_address?: string | null;
18669
+ token_hash?: string;
18670
+ updated_at?: string;
18671
+ };
18672
+ Relationships: [{
18673
+ foreignKeyName: "purchase_requests_purchase_order_id_fkey";
18674
+ columns: ["purchase_order_id"];
18675
+ isOneToOne: false;
18676
+ referencedRelation: "purchase_orders";
18677
+ referencedColumns: ["id"];
18678
+ }, {
18679
+ foreignKeyName: "purchase_requests_supplier_id_fkey";
18680
+ columns: ["supplier_id"];
18681
+ isOneToOne: false;
18682
+ referencedRelation: "suppliers";
18683
+ referencedColumns: ["id"];
18684
+ }];
18685
+ };
18464
18686
  reception_notifications: {
18465
18687
  Row: {
18466
18688
  booking_id: string | null;
@@ -20624,6 +20846,7 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
20624
20846
  auto_invoice_enabled: boolean;
20625
20847
  auto_invoice_start_date: string | null;
20626
20848
  auto_invoice_trigger_statuses: string[];
20849
+ auto_send_mode: string | null;
20627
20850
  created_at: string;
20628
20851
  debtor_gl_account: string;
20629
20852
  default_article_code: string | null;
@@ -20652,6 +20875,7 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
20652
20875
  auto_invoice_enabled?: boolean;
20653
20876
  auto_invoice_start_date?: string | null;
20654
20877
  auto_invoice_trigger_statuses?: string[];
20878
+ auto_send_mode?: string | null;
20655
20879
  created_at?: string;
20656
20880
  debtor_gl_account?: string;
20657
20881
  default_article_code?: string | null;
@@ -20680,6 +20904,7 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
20680
20904
  auto_invoice_enabled?: boolean;
20681
20905
  auto_invoice_start_date?: string | null;
20682
20906
  auto_invoice_trigger_statuses?: string[];
20907
+ auto_send_mode?: string | null;
20683
20908
  created_at?: string;
20684
20909
  debtor_gl_account?: string;
20685
20910
  default_article_code?: string | null;
@@ -25913,13 +26138,66 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
25913
26138
  };
25914
26139
  Returns: import("./types").Json;
25915
26140
  };
26141
+ inkoop_cancel_line: {
26142
+ Args: {
26143
+ _item_id: string;
26144
+ _reason: string;
26145
+ };
26146
+ Returns: string;
26147
+ };
26148
+ inkoop_get_supplier_request: {
26149
+ Args: {
26150
+ _token: string;
26151
+ };
26152
+ Returns: import("./types").Json;
26153
+ };
26154
+ inkoop_hash_token: {
26155
+ Args: {
26156
+ _token: string;
26157
+ };
26158
+ Returns: string;
26159
+ };
26160
+ inkoop_html_escape: {
26161
+ Args: {
26162
+ _t: string;
26163
+ };
26164
+ Returns: string;
26165
+ };
26166
+ inkoop_list_artikelen: {
26167
+ Args: never;
26168
+ Returns: {
26169
+ article_number: string;
26170
+ barcode: string;
26171
+ id: string;
26172
+ incoming_quantity: number;
26173
+ is_layer: boolean;
26174
+ location: string;
26175
+ min_quantity: number;
26176
+ preferred_supplier_name: string;
26177
+ product: string;
26178
+ product_type: string;
26179
+ purchase_price: number;
26180
+ quantity: number;
26181
+ sale_price: number;
26182
+ supplier_count: number;
26183
+ unit: string;
26184
+ }[];
26185
+ };
25916
26186
  inkoop_next_order_number: {
25917
26187
  Args: never;
25918
26188
  Returns: string;
25919
26189
  };
26190
+ inkoop_process_request: {
26191
+ Args: {
26192
+ _request_id: string;
26193
+ };
26194
+ Returns: undefined;
26195
+ };
25920
26196
  inkoop_send_order: {
25921
26197
  Args: {
26198
+ _base_url?: string;
25922
26199
  _order_id: string;
26200
+ _resend?: boolean;
25923
26201
  };
25924
26202
  Returns: {
25925
26203
  outbox_id: string;
@@ -25934,6 +26212,26 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
25934
26212
  };
25935
26213
  Returns: undefined;
25936
26214
  };
26215
+ inkoop_stock_key: {
26216
+ Args: {
26217
+ p_product_id: string;
26218
+ };
26219
+ Returns: string;
26220
+ };
26221
+ inkoop_submit_supplier_response: {
26222
+ Args: {
26223
+ _lines: import("./types").Json;
26224
+ _note?: string;
26225
+ _token: string;
26226
+ };
26227
+ Returns: import("./types").Json;
26228
+ };
26229
+ inkoop_sync_item_stock: {
26230
+ Args: {
26231
+ p_item_id: string;
26232
+ };
26233
+ Returns: undefined;
26234
+ };
25937
26235
  instructie_get: {
25938
26236
  Args: {
25939
26237
  _sleutel: string;
@@ -26371,6 +26669,12 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
26371
26669
  };
26372
26670
  Returns: number;
26373
26671
  };
26672
+ logistics_cart_barcode_opschonen: {
26673
+ Args: {
26674
+ p_portie?: number;
26675
+ };
26676
+ Returns: import("./types").Json;
26677
+ };
26374
26678
  logistics_cart_barcode_value: {
26375
26679
  Args: {
26376
26680
  _cart_id: string;
@@ -27980,6 +28284,13 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
27980
28284
  };
27981
28285
  Returns: string;
27982
28286
  };
28287
+ logistics_shipping_note_status: {
28288
+ Args: {
28289
+ p_cart_id?: string;
28290
+ p_slip_job_id?: string;
28291
+ };
28292
+ Returns: import("./types").Json;
28293
+ };
27983
28294
  logistics_shipping_notes_wake_all: {
27984
28295
  Args: never;
27985
28296
  Returns: import("./types").Json;
@@ -29659,6 +29970,13 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
29659
29970
  };
29660
29971
  Returns: import("./types").Json;
29661
29972
  };
29973
+ scan_controleer_pincode: {
29974
+ Args: {
29975
+ p_pin: string;
29976
+ p_scanner_id: string;
29977
+ };
29978
+ Returns: boolean;
29979
+ };
29662
29980
  scan_dashboard_stats: {
29663
29981
  Args: {
29664
29982
  p_dagen?: number;
@@ -29678,6 +29996,12 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
29678
29996
  };
29679
29997
  Returns: import("./types").Json;
29680
29998
  };
29999
+ scan_heeft_pincode: {
30000
+ Args: {
30001
+ p_scanner_id: string;
30002
+ };
30003
+ Returns: boolean;
30004
+ };
29681
30005
  scan_kar_compleet: {
29682
30006
  Args: {
29683
30007
  p_allow_reprint?: boolean;
@@ -29695,6 +30019,7 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
29695
30019
  Args: {
29696
30020
  p_code: string;
29697
30021
  p_latency_ms?: number;
30022
+ p_medewerker?: string;
29698
30023
  p_message?: string;
29699
30024
  p_result: string;
29700
30025
  p_scanner_key?: string;
@@ -29767,6 +30092,22 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
29767
30092
  };
29768
30093
  Returns: undefined;
29769
30094
  };
30095
+ scan_scanner_info: {
30096
+ Args: {
30097
+ p_slug: string;
30098
+ };
30099
+ Returns: {
30100
+ actief: boolean;
30101
+ heeft_pincode: boolean;
30102
+ id: string;
30103
+ naam: string;
30104
+ omschrijving: string;
30105
+ printer_id: string;
30106
+ type: string;
30107
+ vereist_medewerker: boolean;
30108
+ werkplek: string;
30109
+ }[];
30110
+ };
29770
30111
  scan_sessie_annuleren: {
29771
30112
  Args: {
29772
30113
  p_sessie_id: string;
@@ -30729,6 +31070,21 @@ export declare const requireSupabaseAuth: import("@tanstack/start-client-core").
30729
31070
  };
30730
31071
  Returns: import("./types").Json;
30731
31072
  };
31073
+ wo_list_colleague_planning: {
31074
+ Args: {
31075
+ _from: string;
31076
+ _monteur_id: string;
31077
+ _to: string;
31078
+ };
31079
+ Returns: {
31080
+ end_at: string;
31081
+ id: string;
31082
+ role: string;
31083
+ start_at: string;
31084
+ status: string;
31085
+ werkbon_id: string;
31086
+ }[];
31087
+ };
30732
31088
  wo_list_offerte_requests: {
30733
31089
  Args: {
30734
31090
  _status?: string;