@flowselections/floriday-verkoop-module 1.0.98 → 1.0.100

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 (41) hide show
  1. package/dist-lib/components/verkoop/ConfirmDialog.d.ts +11 -0
  2. package/dist-lib/components/verkoop/ConfirmDialog.d.ts.map +1 -0
  3. package/dist-lib/components/verkoop/ConfirmDialog.js +10 -0
  4. package/dist-lib/components/verkoop/CreateOrderPage.d.ts.map +1 -1
  5. package/dist-lib/components/verkoop/CreateOrderPage.js +36 -12
  6. package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts.map +1 -1
  7. package/dist-lib/components/verkoop/OrderKarindelingCard.js +28 -2
  8. package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts.map +1 -1
  9. package/dist-lib/components/verkoop/OrderShipmentsCard.js +16 -13
  10. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
  11. package/dist-lib/components/verkoop/SalesOrderDetailView.js +1 -1
  12. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
  13. package/dist-lib/components/verkoop/SalesOrdersTable.js +1 -1
  14. package/dist-lib/integrations/supabase/types.d.ts +99 -0
  15. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  16. package/dist-lib/lib/create-order.functions.d.ts +3 -0
  17. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  18. package/dist-lib/lib/create-order.functions.js +34 -5
  19. package/dist-lib/lib/departure-preview.check.js +24 -1
  20. package/dist-lib/lib/departure-preview.d.ts +25 -1
  21. package/dist-lib/lib/departure-preview.d.ts.map +1 -1
  22. package/dist-lib/lib/departure-preview.functions.d.ts +1 -0
  23. package/dist-lib/lib/departure-preview.functions.d.ts.map +1 -1
  24. package/dist-lib/lib/departure-preview.functions.js +1 -0
  25. package/dist-lib/lib/departure-preview.js +65 -2
  26. package/dist-lib/lib/departure-preview.server.d.ts +1 -0
  27. package/dist-lib/lib/departure-preview.server.d.ts.map +1 -1
  28. package/dist-lib/lib/departure-preview.server.js +3 -0
  29. package/dist-lib/lib/invoice-timing.server.d.ts +3 -1
  30. package/dist-lib/lib/invoice-timing.server.d.ts.map +1 -1
  31. package/dist-lib/lib/invoice-timing.server.js +3 -2
  32. package/dist-lib/lib/module-version.d.ts +2 -0
  33. package/dist-lib/lib/module-version.d.ts.map +1 -0
  34. package/dist-lib/lib/module-version.js +3 -0
  35. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  36. package/dist-lib/lib/salesorders-list.server.js +2 -1
  37. package/dist-lib/lib/salesorders-mapping.d.ts +2 -0
  38. package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
  39. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  40. package/dist-lib/lib/salesorders.functions.js +4 -0
  41. package/package.json +1 -1
@@ -150,6 +150,9 @@ export declare const createManualOrder: import("@tanstack/start-client-core").Op
150
150
  acceptLateSignup?: boolean | undefined;
151
151
  acceptedByName?: string | null | undefined;
152
152
  source?: "manual" | "mailbox" | undefined;
153
+ customerReference?: string | null | undefined;
154
+ ownTransport?: boolean | undefined;
155
+ ownTransportPickupAt?: string | null | undefined;
153
156
  }, Promise<{
154
157
  ok: true;
155
158
  orderId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"create-order.functions.d.ts","sourceRoot":"","sources":["../../src/lib/create-order.functions.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,2BAA2B;;;;;;GA+CpC,CAAC;AAIL,eAAO,MAAM,2BAA2B;;;;0CAElB,OAAO;;;;GAoDzB,CAAC;AAWL,eAAO,MAAM,0BAA0B;;;;;;YA+D7B,MAAM;iBACD,MAAM;sBACD,MAAM,GAAG,IAAI;cACrB,MAAM;oBACA,MAAM,GAAG,IAAI;0BACP,MAAM;0BACN,MAAM;yBACP,MAAM;wBACP,MAAM;wBACN,MAAM;yBACL,MAAM;kBACb,OAAO;gBACT,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS;;GA6RpD,CAAC;AAGL,eAAO,MAAM,kCAAkC;;;;0CAEzB,OAAO;;;;;;;;;;;;;;;;;;;;;;GAkDzB,CAAC;AAKL,eAAO,MAAM,qBAAqB;;;;;;YAoBI,MAAM;;;GAIxC,CAAC;AAGL,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;GAWnC,CAAC;AASL,eAAO,MAAM,8BAA8B;;;;8CAEjB,OAAO;;;;GAU7B,CAAC;AASL,eAAO,MAAM,mBAAmB;;;;;;;;0BAgBuB,MAAM;0BAAoB,MAAM;yBAAmB,MAAM;;;GA8C5G,CAAC;AAGL,eAAO,MAAM,kBAAkB;;;;;;GAU3B,CAAC;AA0CL,eAAO,MAAM,iBAAiB;;;;8CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;aA0OY,MAAM;GAE/C,CAAC;AAKL,eAAO,MAAM,gBAAgB;;;;8CAEH,OAAO;;;;;;;GAY7B,CAAC;AAQL,eAAO,MAAM,gBAAgB;;;;8CAEH,OAAO;;;;;;GAoG7B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;8CAER,OAAO;;;;GAyB7B,CAAC;AA0CL,eAAO,MAAM,oBAAoB;;;;8CAEP,OAAO;;;aA0JG,MAAM;iBACQ,MAAM,GAAG,IAAI;kBACX,MAAM;;YAEnB,MAAM,GAAG,IAAI;;;;YAkB7B,MAAM;mBACS,MAAM,GAAG,IAAI;qBACT,MAAM;;cAErB,MAAM,GAAG,IAAI;;;;;;GAQpC,CAAC;AAIL,eAAO,MAAM,gBAAgB;;;;8CAEH,OAAO;;;;;;;;;;;;;;;;;;;;;GAmO7B,CAAC;AAKL,eAAO,MAAM,kBAAkB;;;;8CAEL,OAAO;;;;;;;;WAUM,MAAM;YAAU,MAAM,GAAG,IAAI;WAahE,CAAC"}
1
+ {"version":3,"file":"create-order.functions.d.ts","sourceRoot":"","sources":["../../src/lib/create-order.functions.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,2BAA2B;;;;;;GA+CpC,CAAC;AAIL,eAAO,MAAM,2BAA2B;;;;0CAElB,OAAO;;;;GAoDzB,CAAC;AAWL,eAAO,MAAM,0BAA0B;;;;;;YA+D7B,MAAM;iBACD,MAAM;sBACD,MAAM,GAAG,IAAI;cACrB,MAAM;oBACA,MAAM,GAAG,IAAI;0BACP,MAAM;0BACN,MAAM;yBACP,MAAM;wBACP,MAAM;wBACN,MAAM;yBACL,MAAM;kBACb,OAAO;gBACT,UAAU,GAAG,OAAO,GAAG,OAAO,GAAG,SAAS;;GA6RpD,CAAC;AAGL,eAAO,MAAM,kCAAkC;;;;0CAEzB,OAAO;;;;;;;;;;;;;;;;;;;;;;GAkDzB,CAAC;AAKL,eAAO,MAAM,qBAAqB;;;;;;YAoBI,MAAM;;;GAIxC,CAAC;AAGL,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;GAWnC,CAAC;AASL,eAAO,MAAM,8BAA8B;;;;8CAEjB,OAAO;;;;GAU7B,CAAC;AASL,eAAO,MAAM,mBAAmB;;;;;;;;0BAgBuB,MAAM;0BAAoB,MAAM;yBAAmB,MAAM;;;GA8C5G,CAAC;AAGL,eAAO,MAAM,kBAAkB;;;;;;GAU3B,CAAC;AA+CL,eAAO,MAAM,iBAAiB;;;;8CAEJ,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aA4PY,MAAM;GAE/C,CAAC;AAKL,eAAO,MAAM,gBAAgB;;;;8CAEH,OAAO;;;;;;;GAY7B,CAAC;AAQL,eAAO,MAAM,gBAAgB;;;;8CAEH,OAAO;;;;;;GAoG7B,CAAC;AAEL;;;GAGG;AACH,eAAO,MAAM,qBAAqB;;;;8CAER,OAAO;;;;GAyB7B,CAAC;AA0CL,eAAO,MAAM,oBAAoB;;;;8CAEP,OAAO;;;aA0JG,MAAM;iBACQ,MAAM,GAAG,IAAI;kBACX,MAAM;;YAEnB,MAAM,GAAG,IAAI;;;;YAkB7B,MAAM;mBACS,MAAM,GAAG,IAAI;qBACT,MAAM;;cAErB,MAAM,GAAG,IAAI;;;;;;GAQpC,CAAC;AAIL,eAAO,MAAM,gBAAgB;;;;8CAEH,OAAO;;;;;;;;;;;;;;;;;;;;;GAuO7B,CAAC;AAKL,eAAO,MAAM,kBAAkB;;;;8CAEL,OAAO;;;;;;;;WAUM,MAAM;YAAU,MAAM,GAAG,IAAI;WAahE,CAAC"}
@@ -665,6 +665,11 @@ const CreateManualOrderInput = z.object({
665
665
  acceptLateSignup: z.boolean().optional(),
666
666
  acceptedByName: z.string().max(255).nullable().optional(),
667
667
  source: z.enum(["manual", "mailbox"]).optional(),
668
+ // Referentie van de klant (custom_fields.customer_reference).
669
+ customerReference: z.string().trim().max(100).nullable().optional(),
670
+ // Eigen vervoer / zelf afleveren: geen vervoerder, bewuste keuze.
671
+ ownTransport: z.boolean().optional(),
672
+ ownTransportPickupAt: z.string().regex(/(Z|[+-]\d{2}:\d{2})$/, "Tijd zonder tijdzone").nullable().optional(),
668
673
  });
669
674
  export const createManualOrder = createServerFn({ method: "POST" })
670
675
  .middleware([requireSupabaseAuth])
@@ -681,7 +686,9 @@ export const createManualOrder = createServerFn({ method: "POST" })
681
686
  const loadCarrierType = await resolveLoadCarrierType(context.supabase, data.loadCarrierType);
682
687
  // Ophaalmoment en haalbaarheid komen alleen van de Logistiek Engine
683
688
  // (logistics_departure_preview). Geen eigen berekening of terugval.
684
- let carrierId = data.isReservation ? null : (data.carrierId ?? null);
689
+ const ownTransport = !data.isReservation && data.ownTransport === true;
690
+ let carrierId = data.isReservation || ownTransport ? null : (data.carrierId ?? null);
691
+ let ownTransportInfo = null;
685
692
  let momentKey = null;
686
693
  let deliveryTime = null;
687
694
  let lateSignup = null;
@@ -694,11 +701,25 @@ export const createManualOrder = createServerFn({ method: "POST" })
694
701
  carrierId,
695
702
  deliveryLocation: data.deliveryLocationId,
696
703
  deliveryDate: data.deliveryDate.slice(0, 10),
697
- momentKey: data.momentKey ?? null,
704
+ momentKey: ownTransport ? null : (data.momentKey ?? null),
705
+ ownTransport,
698
706
  });
699
707
  const d = decidePreview(preview);
700
708
  if (d.kind === "blocked")
701
709
  throw new Error(d.reason);
710
+ // Vervoerder al vertrokken: nooit aanmaken, ook niet met "toch aanmaken".
711
+ if (d.kind === "departed") {
712
+ throw new Error(d.firstDate ? `${d.reason} De eerstvolgende leverdatum is ${d.firstDate}.` : d.reason);
713
+ }
714
+ if (ownTransport) {
715
+ const by = context.claims?.email ?? null;
716
+ ownTransportInfo = {
717
+ by: data.acceptedByName ?? by ?? context.userId ?? null,
718
+ by_user_id: context.userId ?? null,
719
+ at: new Date().toISOString(),
720
+ ...(data.ownTransportPickupAt ? { pickup_at: data.ownTransportPickupAt } : {}),
721
+ };
722
+ }
702
723
  if (d.kind === "late") {
703
724
  if (!data.acceptLateSignup) {
704
725
  throw new Error(d.firstDate
@@ -717,11 +738,13 @@ export const createManualOrder = createServerFn({ method: "POST" })
717
738
  source: data.source ?? "manual",
718
739
  };
719
740
  }
720
- carrierId = preview?.carrierId ?? carrierId;
721
- if (!carrierId)
741
+ if (!ownTransport)
742
+ carrierId = preview?.carrierId ?? carrierId;
743
+ if (!ownTransport && !carrierId)
722
744
  throw new Error("Er is geen vervoerder bekend voor deze afleverlocatie. Kies een vervoerder.");
723
745
  momentKey = d.momentKey;
724
- deliveryTime = await deliveryTimeForMoment(context.supabase, carrierId, momentKey);
746
+ if (!ownTransport)
747
+ deliveryTime = await deliveryTimeForMoment(context.supabase, carrierId, momentKey);
725
748
  }
726
749
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
727
750
  // Zorg dat elk product_id (= identiteit uit de voorraadmodule) een rij
@@ -839,6 +862,8 @@ export const createManualOrder = createServerFn({ method: "POST" })
839
862
  delivery_time: deliveryTime,
840
863
  pickup_moment: momentKey,
841
864
  ...(lateSignup ? { late_signup_override: lateSignup } : {}),
865
+ ...(ownTransportInfo ? { own_transport: ownTransportInfo } : {}),
866
+ ...(data.customerReference ? { customer_reference: data.customerReference } : {}),
842
867
  is_reservation: !!data.isReservation,
843
868
  load_carrier_type: loadCarrierType,
844
869
  },
@@ -1404,6 +1429,10 @@ export const updateLocalOrder = createServerFn({ method: "POST" })
1404
1429
  const d = decidePreview(preview);
1405
1430
  if (d.kind === "blocked")
1406
1431
  throw new Error(d.reason);
1432
+ // Vervoerder al vertrokken: ook bij wijzigen nooit doorlaten.
1433
+ if (d.kind === "departed") {
1434
+ throw new Error(d.firstDate ? `${d.reason} De eerstvolgende leverdatum is ${d.firstDate}.` : d.reason);
1435
+ }
1407
1436
  if (d.kind === "late") {
1408
1437
  if (!data.acceptLateSignup) {
1409
1438
  throw new Error(d.firstDate ? `${d.reason} De eerste haalbare leverdatum is ${d.firstDate}.` : d.reason);
@@ -1,5 +1,7 @@
1
1
  // Controle voorbeeld-ophaalmoment. Draai: bun src/lib/departure-preview.check.ts
2
- import { decidePreview, normalizePreview } from "./departure-preview.js";
2
+ import { decidePreview, normalizePreview, firstDateText } from "./departure-preview.js";
3
+ // Vaste "nu" zodat de controles niet verouderen.
4
+ Date.now = () => Date.parse("2026-10-19T12:00:00Z");
3
5
  import { LIST_CHUNK } from "./order-departure.server.js";
4
6
  let failed = 0;
5
7
  function check(name, got, want) {
@@ -30,6 +32,27 @@ check("ok=false: geblokkeerd", bad.kind, "blocked");
30
32
  check("ok=false: alleen reden", bad.kind === "blocked" ? bad.reason : null, "Geen vervoerder bekend");
31
33
  check("geen antwoord: geblokkeerd", decidePreview(null).kind, "blocked");
32
34
  check("lijst in delen van 1000", LIST_CHUNK, 1000);
35
+ // Vervoerder al vertrokken (HO-2601443): aanmeldtijd én ophaalmoment voorbij → niet "toch aanmaken".
36
+ const gone = decidePreview(normalizePreview({
37
+ ok: true, deliveryDateFeasible: false, reason: "Aanmelden kon tot ma 19-10 13:00",
38
+ chosen: { momentKey: "k", departureAt: "2026-10-19T13:00:00Z" },
39
+ firstFeasibleDeliveryDate: "2026-10-21",
40
+ }), Date.parse("2026-10-19T20:58:00Z"));
41
+ check("vertrokken (afgeleid uit vertrekmoment)", gone.kind, "departed");
42
+ check("vertrokken: eerste datum", gone.kind === "departed" ? gone.firstDate : null, "2026-10-21");
43
+ const lateNotGone = decidePreview(normalizePreview({
44
+ ok: true, deliveryDateFeasible: false, chosen: { momentKey: "k", departureAt: "2026-10-19T13:00:00Z" },
45
+ }), Date.parse("2026-10-19T11:30:00Z"));
46
+ check("aanmeldtijd voorbij, ophalen nog niet: te laat", lateNotGone.kind, "late");
47
+ const engineSays = decidePreview(normalizePreview({
48
+ ok: true, deliveryDateFeasible: true,
49
+ chosen: { momentKey: "k", departureAt: "2026-10-30T13:00:00Z", departed: true },
50
+ nextFeasibleMoment: { momentKey: "n", departureAt: "x", signupDeadline: null, deliveryDate: "2026-10-31" },
51
+ }));
52
+ check("Engine-veld departed gaat voor", engineSays.kind, "departed");
53
+ check("volgende moment uit Engine", engineSays.kind === "departed" ? engineSays.firstDate : null, "2026-10-31");
54
+ check("eigen vervoer: nooit vertrokken", decidePreview(normalizePreview({ ok: true, ownTransport: true, deliveryDateFeasible: true, chosen: { departureAt: "2026-10-01T10:00:00Z" } })).kind, "ok");
55
+ check("tekst eerste leverdatum", firstDateText("2026-10-21", "2026-10-20T11:00:00Z"), "Eerst mogelijke leverdatum: woensdag 21 oktober (aanmelden vóór dinsdag 13:00).");
33
56
  if (failed) {
34
57
  console.error(`${failed} controle(s) mislukt`);
35
58
  process.exit(1);
@@ -3,6 +3,14 @@ export interface PreviewMoment {
3
3
  departureAt: string | null;
4
4
  signupDeadline: string | null;
5
5
  feasible: boolean;
6
+ /** Ophaalmoment al voorbij (Engine 1.0.168; anders afgeleid uit departureAt). */
7
+ departed: boolean;
8
+ }
9
+ export interface NextFeasibleMoment {
10
+ momentKey: string | null;
11
+ departureAt: string | null;
12
+ signupDeadline: string | null;
13
+ deliveryDate: string | null;
6
14
  }
7
15
  export interface DeparturePreview {
8
16
  ok: boolean;
@@ -13,7 +21,10 @@ export interface DeparturePreview {
13
21
  momentKey: string | null;
14
22
  departureAt: string | null;
15
23
  signupDeadline: string | null;
24
+ departed: boolean | null;
16
25
  } | null;
26
+ nextFeasibleMoment: NextFeasibleMoment | null;
27
+ ownTransport: boolean;
17
28
  deliveryDateFeasible: boolean;
18
29
  deliveryDateReason: string | null;
19
30
  firstFeasibleDeliveryDate: string | null;
@@ -32,16 +43,29 @@ export type PreviewDecision = {
32
43
  firstReason: string | null;
33
44
  momentKey: string | null;
34
45
  text: string | null;
46
+ } | {
47
+ kind: "departed";
48
+ reason: string;
49
+ firstDate: string | null;
50
+ next: NextFeasibleMoment | null;
35
51
  } | {
36
52
  kind: "blocked";
37
53
  reason: string;
38
54
  };
55
+ /**
56
+ * Is het gekozen ophaalmoment al voorbij? Eerst het veld van de Engine
57
+ * (chosen.departed); ontbreekt dat, dan alleen het door de Engine gegeven
58
+ * vertrekmoment met nu vergelijken — geen eigen rekenwerk.
59
+ */
60
+ export declare function chosenDeparted(p: DeparturePreview, now?: number): boolean;
39
61
  /**
40
62
  * Wat je ziet / of je mag aanmaken.
41
63
  * - ok = false of geen antwoord: geblokkeerd, alleen de reden.
42
64
  * - leverdatum niet haalbaar: "te laat" — alleen aanmaken na bewuste keuze.
43
65
  */
44
- export declare function decidePreview(p: DeparturePreview | null): PreviewDecision;
66
+ export declare function decidePreview(p: DeparturePreview | null, now?: number): PreviewDecision;
45
67
  export declare function momentLabel(m: PreviewMoment): string;
68
+ /** "Eerst mogelijke leverdatum: woensdag 21 oktober (aanmelden vóór dinsdag 13:00)." */
69
+ export declare function firstDateText(date: string | null, signupDeadline: string | null): string | null;
46
70
  export declare const LATE_CONFIRM = "Deze order komt na de aanmeldtijd. De vervoerder krijgt hem als te laat aangemeld. Doorgaan?";
47
71
  //# sourceMappingURL=departure-preview.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"departure-preview.d.ts","sourceRoot":"","sources":["../../src/lib/departure-preview.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACvG,oBAAoB,EAAE,OAAO,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CA2BtE;AAED,eAAO,MAAM,eAAe,6EAA6E,CAAC;AAE1G,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrI;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AASxC;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,eAAe,CAgBzE;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAEpD;AAED,eAAO,MAAM,YAAY,iGACuE,CAAC"}
1
+ {"version":3,"file":"departure-preview.d.ts","sourceRoot":"","sources":["../../src/lib/departure-preview.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,QAAQ,EAAE,OAAO,CAAC;IAClB,iFAAiF;IACjF,QAAQ,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IACjC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAgB;IAC/B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,EAAE,aAAa,EAAE,CAAC;IACzB,MAAM,EAAE;QAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,QAAQ,EAAE,OAAO,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjI,kBAAkB,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAC9C,YAAY,EAAE,OAAO,CAAC;IACtB,oBAAoB,EAAE,OAAO,CAAC;IAC9B,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,yBAAyB,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;CACpC;AAID,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,GAAG,gBAAgB,GAAG,IAAI,CA2CtE;AAED,eAAO,MAAM,eAAe,6EAA6E,CAAC;AAE1G,MAAM,MAAM,eAAe,GACvB;IAAE,IAAI,EAAE,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7D;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GACrI;IAAE,IAAI,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,kBAAkB,GAAG,IAAI,CAAA;CAAE,GAC/F;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAExC;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,CAAC,EAAE,gBAAgB,EAAE,GAAG,GAAE,MAAmB,GAAG,OAAO,CAKrF;AASD;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,gBAAgB,GAAG,IAAI,EAAE,GAAG,GAAE,MAAmB,GAAG,eAAe,CAyBnG;AAED,wBAAgB,WAAW,CAAC,CAAC,EAAE,aAAa,GAAG,MAAM,CAEpD;AAgBD,wFAAwF;AACxF,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE,cAAc,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAM/F;AAED,eAAO,MAAM,YAAY,iGACuE,CAAC"}
@@ -7,6 +7,7 @@ export declare const getDeparturePreview: import("@tanstack/start-client-core").
7
7
  deliveryLocation: string;
8
8
  deliveryDate: string;
9
9
  momentKey?: string | null | undefined;
10
+ ownTransport?: boolean | undefined;
10
11
  }, Promise<{
11
12
  preview: import("./departure-preview.js").DeparturePreview | null;
12
13
  }>>;
@@ -1 +1 @@
1
- {"version":3,"file":"departure-preview.functions.d.ts","sourceRoot":"","sources":["../../src/lib/departure-preview.functions.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB;;;;8CAEN,OAAO;;;;;;;GAa7B,CAAC"}
1
+ {"version":3,"file":"departure-preview.functions.d.ts","sourceRoot":"","sources":["../../src/lib/departure-preview.functions.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,mBAAmB;;;;8CAEN,OAAO;;;;;;;;GAc7B,CAAC"}
@@ -9,6 +9,7 @@ export const getDeparturePreview = createServerFn({ method: "GET" })
9
9
  deliveryLocation: z.string().min(1).max(100),
10
10
  deliveryDate: z.string().regex(/^\d{4}-\d{2}-\d{2}$/),
11
11
  momentKey: z.string().max(64).nullable().optional(),
12
+ ownTransport: z.boolean().optional(),
12
13
  })
13
14
  .parse(input))
14
15
  .handler(async ({ data, context }) => {
@@ -15,6 +15,7 @@ export function normalizePreview(raw) {
15
15
  departureAt: s(m.departureAt),
16
16
  signupDeadline: s(m.signupDeadline),
17
17
  feasible: m.feasible === true,
18
+ departed: m.departed === true,
18
19
  }))
19
20
  : [];
20
21
  const c = r.chosen && typeof r.chosen === "object" ? r.chosen : null;
@@ -24,8 +25,22 @@ export function normalizePreview(raw) {
24
25
  carrierId: s(r.carrierId),
25
26
  moments,
26
27
  chosen: c
27
- ? { momentKey: s(c.momentKey), departureAt: s(c.departureAt), signupDeadline: s(c.signupDeadline) }
28
+ ? {
29
+ momentKey: s(c.momentKey),
30
+ departureAt: s(c.departureAt),
31
+ signupDeadline: s(c.signupDeadline),
32
+ departed: typeof c.departed === "boolean" ? c.departed : null,
33
+ }
28
34
  : null,
35
+ nextFeasibleMoment: r.nextFeasibleMoment && typeof r.nextFeasibleMoment === "object"
36
+ ? {
37
+ momentKey: s(r.nextFeasibleMoment.momentKey),
38
+ departureAt: s(r.nextFeasibleMoment.departureAt),
39
+ signupDeadline: s(r.nextFeasibleMoment.signupDeadline),
40
+ deliveryDate: s(r.nextFeasibleMoment.deliveryDate),
41
+ }
42
+ : null,
43
+ ownTransport: r.ownTransport === true,
29
44
  deliveryDateFeasible: r.deliveryDateFeasible === true,
30
45
  deliveryDateReason: s(r.deliveryDateReason) ?? s(r.reason),
31
46
  firstFeasibleDeliveryDate: s(r.firstFeasibleDeliveryDate),
@@ -33,6 +48,19 @@ export function normalizePreview(raw) {
33
48
  };
34
49
  }
35
50
  export const PREVIEW_UNKNOWN = "Het ophaalmoment is nu niet bekend. Probeer het over een minuut opnieuw.";
51
+ /**
52
+ * Is het gekozen ophaalmoment al voorbij? Eerst het veld van de Engine
53
+ * (chosen.departed); ontbreekt dat, dan alleen het door de Engine gegeven
54
+ * vertrekmoment met nu vergelijken — geen eigen rekenwerk.
55
+ */
56
+ export function chosenDeparted(p, now = Date.now()) {
57
+ if (p.ownTransport)
58
+ return false;
59
+ if (typeof p.chosen?.departed === "boolean")
60
+ return p.chosen.departed;
61
+ const at = p.chosen?.departureAt ? new Date(p.chosen.departureAt).getTime() : NaN;
62
+ return Number.isFinite(at) && at <= now;
63
+ }
36
64
  function momentText(departureAt, signup) {
37
65
  const p = formatMoment(departureAt);
38
66
  if (!p)
@@ -45,13 +73,23 @@ function momentText(departureAt, signup) {
45
73
  * - ok = false of geen antwoord: geblokkeerd, alleen de reden.
46
74
  * - leverdatum niet haalbaar: "te laat" — alleen aanmaken na bewuste keuze.
47
75
  */
48
- export function decidePreview(p) {
76
+ export function decidePreview(p, now = Date.now()) {
49
77
  if (!p)
50
78
  return { kind: "blocked", reason: PREVIEW_UNKNOWN };
51
79
  if (!p.ok)
52
80
  return { kind: "blocked", reason: p.reason ?? "Voor deze leverdatum is geen ophaalmoment mogelijk." };
53
81
  const momentKey = p.chosen?.momentKey ?? null;
54
82
  const text = momentText(p.chosen?.departureAt ?? null, p.chosen?.signupDeadline ?? null);
83
+ if (chosenDeparted(p, now)) {
84
+ return {
85
+ kind: "departed",
86
+ reason: "De vervoerder is voor deze leverdatum al vertrokken. Kies een latere leverdatum of eigen vervoer.",
87
+ firstDate: p.nextFeasibleMoment?.deliveryDate ?? p.firstFeasibleDeliveryDate,
88
+ next: p.nextFeasibleMoment,
89
+ };
90
+ }
91
+ if (p.ownTransport)
92
+ return { kind: "ok", momentKey: null, text: "Eigen vervoer / zelf afleveren" };
55
93
  if (!p.deliveryDateFeasible) {
56
94
  return {
57
95
  kind: "late",
@@ -67,4 +105,29 @@ export function decidePreview(p) {
67
105
  export function momentLabel(m) {
68
106
  return momentText(m.departureAt, m.signupDeadline) ?? m.momentKey;
69
107
  }
108
+ const NL = "Europe/Amsterdam";
109
+ function nlDateLong(d) {
110
+ const t = new Date(`${d.slice(0, 10)}T12:00:00Z`);
111
+ if (Number.isNaN(t.getTime()))
112
+ return null;
113
+ return new Intl.DateTimeFormat("nl-NL", { timeZone: NL, weekday: "long", day: "numeric", month: "long" }).format(t);
114
+ }
115
+ function nlDayTime(iso) {
116
+ const t = new Date(iso);
117
+ if (Number.isNaN(t.getTime()))
118
+ return null;
119
+ const day = new Intl.DateTimeFormat("nl-NL", { timeZone: NL, weekday: "long" }).format(t);
120
+ const time = new Intl.DateTimeFormat("nl-NL", { timeZone: NL, hour: "2-digit", minute: "2-digit", hour12: false }).format(t);
121
+ return `${day} ${time}`;
122
+ }
123
+ /** "Eerst mogelijke leverdatum: woensdag 21 oktober (aanmelden vóór dinsdag 13:00)." */
124
+ export function firstDateText(date, signupDeadline) {
125
+ if (!date)
126
+ return null;
127
+ const d = nlDateLong(date);
128
+ if (!d)
129
+ return null;
130
+ const a = signupDeadline ? nlDayTime(signupDeadline) : null;
131
+ return a ? `Eerst mogelijke leverdatum: ${d} (aanmelden vóór ${a}).` : `Eerst mogelijke leverdatum: ${d}.`;
132
+ }
70
133
  export const LATE_CONFIRM = "Deze order komt na de aanmeldtijd. De vervoerder krijgt hem als te laat aangemeld. Doorgaan?";
@@ -4,6 +4,7 @@ export declare function loadDeparturePreview(supabase: any, input: {
4
4
  deliveryLocation: string;
5
5
  deliveryDate: string;
6
6
  momentKey?: string | null;
7
+ ownTransport?: boolean;
7
8
  }): Promise<DeparturePreview | null>;
8
9
  /** Aanlevertijd opzoeken bij het door de Engine gekozen moment (geen berekening). */
9
10
  export declare function deliveryTimeForMoment(supabase: any, carrierId: string | null, momentKey: string | null): Promise<string | null>;
@@ -1 +1 @@
1
- {"version":3,"file":"departure-preview.server.d.ts","sourceRoot":"","sources":["../../src/lib/departure-preview.server.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,GAC7G,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAiBlC;AAED,qFAAqF;AACrF,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxB"}
1
+ {"version":3,"file":"departure-preview.server.d.ts","sourceRoot":"","sources":["../../src/lib/departure-preview.server.ts"],"names":[],"mappings":"AACA,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AAE9E,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,GAAG,EACb,KAAK,EAAE;IAAE,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,gBAAgB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GACrI,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC,CAoBlC;AAED,qFAAqF;AACrF,wBAAsB,qBAAqB,CACzC,QAAQ,EAAE,GAAG,EACb,SAAS,EAAE,MAAM,GAAG,IAAI,EACxB,SAAS,EAAE,MAAM,GAAG,IAAI,GACvB,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,CAKxB"}
@@ -7,6 +7,9 @@ export async function loadDeparturePreview(supabase, input) {
7
7
  p_delivery_location: input.deliveryLocation,
8
8
  p_delivery_date: input.deliveryDate,
9
9
  p_moment_key: input.momentKey ?? null,
10
+ // Alleen meesturen bij eigen vervoer (Engine 1.0.168+); oudere Engine
11
+ // kent de parameter niet en geeft dan een fout → fail closed.
12
+ ...(input.ownTransport ? { p_own_transport: true } : {}),
10
13
  });
11
14
  if (error) {
12
15
  console.warn("[departure-preview]", error.message);
@@ -21,7 +21,9 @@ export declare function releaseDueInvoices(supabase: any, limit?: number): Promi
21
21
  }>;
22
22
  /** Volledige cyclus: eerst herberekenen, daarna vrijgeven. */
23
23
  export declare function runInvoiceTimingCycle(): Promise<{
24
- recomputed: number;
24
+ version: string;
25
+ checked: number;
26
+ changed: number;
25
27
  released: number;
26
28
  }>;
27
29
  //# sourceMappingURL=invoice-timing.server.d.ts.map
@@ -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;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"}
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,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC,CAMD"}
@@ -185,7 +185,8 @@ export async function releaseDueInvoices(supabase, limit = 200) {
185
185
  /** Volledige cyclus: eerst herberekenen, daarna vrijgeven. */
186
186
  export async function runInvoiceTimingCycle() {
187
187
  const { supabaseAdmin } = await import("../integrations/supabase/client.server.js");
188
- const recomputed = (await recomputeInvoiceDueDates(supabaseAdmin)).updated;
188
+ const { MODULE_VERSION } = await import("./module-version.js");
189
+ const r = await recomputeInvoiceDueDates(supabaseAdmin);
189
190
  const released = (await releaseDueInvoices(supabaseAdmin, 200)).released;
190
- return { recomputed, released };
191
+ return { version: MODULE_VERSION, checked: r.checked, changed: r.updated, released };
191
192
  }
@@ -0,0 +1,2 @@
1
+ export declare const MODULE_VERSION = "1.0.99";
2
+ //# sourceMappingURL=module-version.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"module-version.d.ts","sourceRoot":"","sources":["../../src/lib/module-version.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,cAAc,WAAW,CAAC"}
@@ -0,0 +1,3 @@
1
+ // Versie van deze module, meegestuurd in antwoorden van geplande taken zodat
2
+ // je ziet welke code echt draait. Bijwerken samen met package.json.
3
+ export const MODULE_VERSION = "1.0.99";
@@ -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;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,CA6lCrB"}
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,CA8lCrB"}
@@ -724,6 +724,7 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
724
724
  floridayFulfilled: Boolean(cf.floriday_fulfilled),
725
725
  floridayExternalFulfilledAt: cf.floriday_external_fulfilled_at ?? null,
726
726
  floridayMissingLineKeyNotice: typeof cf.floriday_missing_line_key_notice === "string" ? cf.floriday_missing_line_key_notice : null,
727
+ customerReference: typeof cf.customer_reference === "string" && cf.customer_reference.trim() ? cf.customer_reference.trim() : null,
727
728
  floridayExternalFulfilledIds: Array.isArray(cf.floriday_external_fulfilled_sales_order_ids) ? cf.floriday_external_fulfilled_sales_order_ids : [],
728
729
  notReportedToFloriday: (sourceRaw === "floriday" || !!r.floriday_sales_order_id) &&
729
730
  isNotReportedLocally(resolveOrderStage({
@@ -969,7 +970,7 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
969
970
  // 13) Filteren (zoek + status), tellen, pagineren — op samengevouwen rijen.
970
971
  const search = (params.search ?? "").trim().toLowerCase();
971
972
  const matchesSearch = (members) => !search ||
972
- members.some((o) => `${o.productName} ${o.sku} ${o.orderNumber} ${o.customer.name}`.toLowerCase().includes(search));
973
+ members.some((o) => `${o.productName} ${o.sku} ${o.orderNumber} ${o.customer.name} ${o.customerReference ?? ""}`.toLowerCase().includes(search));
973
974
  const stageOf = (members) => mergeStages(members.map((m) => m.stage ?? "incoming"));
974
975
  const matchesStatusFilter = (members) => {
975
976
  const stage = stageOf(members);
@@ -53,6 +53,8 @@ export interface SalesOrderDTO {
53
53
  /** Tijdstip waarop de order in Floriday zelf (buiten het ERP om) is afgehandeld. */
54
54
  floridayExternalFulfilledAt?: string | null;
55
55
  floridayMissingLineKeyNotice?: string | null;
56
+ /** Referentie van de klant (custom_fields.customer_reference), alleen lezen. */
57
+ customerReference?: string | null;
56
58
  /** Floriday-bestellingen op deze order die in Floriday zijn afgehandeld. */
57
59
  floridayExternalFulfilledIds?: string[];
58
60
  /** Verzonden in het ERP, nog niet afgemeld bij Floriday (alleen weergave). */
@@ -1 +1 @@
1
- {"version":3,"file":"salesorders-mapping.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-mapping.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"salesorders-mapping.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-mapping.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"salesorders.functions.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders.functions.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAqD/B,wBAAsB,0BAA0B,iBAM/C;AAGD,eAAO,MAAM,kBAAkB;;;;;QA3BzB,OAAO;cACD,OAAO;cACP,MAAM;GA2B+B,CAAC;AA6BlD,eAAO,MAAM,gBAAgB;;;;6CAEJ,OAAO;;;;;;;;;;;;;GAmC5B,CAAC;AAGL,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDnC,CAAC;AASL,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;0CAEV,OAAO;;mCA8ZzB,CAAC;AAQL,eAAO,MAAM,uBAAuB;;;;0CAEd,OAAO;;;;;GAQzB,CAAC;AAOL,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,qBAAqB;;;;6EA4E9B,CAAC"}
1
+ {"version":3,"file":"salesorders.functions.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders.functions.ts"],"names":[],"mappings":"AAMA,OAAO,EAIL,KAAK,aAAa,EAEnB,MAAM,uBAAuB,CAAC;AAqD/B,wBAAsB,0BAA0B,iBAM/C;AAGD,eAAO,MAAM,kBAAkB;;;;;QA3BzB,OAAO;cACD,OAAO;cACP,MAAM;GA2B+B,CAAC;AA6BlD,eAAO,MAAM,gBAAgB;;;;6CAEJ,OAAO;;;;;;;;;;;;;GAmC5B,CAAC;AAGL,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAqDnC,CAAC;AASL,MAAM,MAAM,sBAAsB,GAAG;IACnC,KAAK,EAAE,aAAa,GAAG,IAAI,CAAC;IAC5B,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,WAAW,EAAE,SAAS,GAAG,MAAM,CAAC;IAChC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,cAAc,EAAE,aAAa,EAAE,CAAC;CACjC,CAAC;AAEF,eAAO,MAAM,mBAAmB;;;;0CAEV,OAAO;;mCA+ZzB,CAAC;AAQL,eAAO,MAAM,uBAAuB;;;;0CAEd,OAAO;;;;;GAQzB,CAAC;AAOL,MAAM,MAAM,kBAAkB,GAAG;IAC/B,SAAS,EAAE,OAAO,CAAC;IACnB,WAAW,EAAE,SAAS,GAAG,MAAM,GAAG,IAAI,CAAC;IACvC,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,iBAAiB,EAAE,OAAO,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,qEAAqE;IACrE,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B,CAAC;AAIF,eAAO,MAAM,qBAAqB;;;;6EA4E9B,CAAC"}
@@ -331,6 +331,10 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
331
331
  });
332
332
  dto.floridayFulfilled = Boolean((ownRow?.custom_fields ?? {})?.floriday_fulfilled);
333
333
  dto.floridayExternalFulfilledAt = (ownRow?.custom_fields ?? {})?.floriday_external_fulfilled_at ?? null;
334
+ {
335
+ const r = (ownRow?.custom_fields ?? {})?.customer_reference;
336
+ dto.customerReference = typeof r === "string" && r.trim() ? r.trim() : null;
337
+ }
334
338
  {
335
339
  const n = (ownRow?.custom_fields ?? {})?.floriday_missing_line_key_notice;
336
340
  dto.floridayMissingLineKeyNotice = typeof n === "string" ? n : null;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-verkoop-module",
3
- "version": "1.0.98",
3
+ "version": "1.0.100",
4
4
  "private": false,
5
5
  "sideEffects": false,
6
6
  "type": "module",