@flowselections/floriday-verkoop-module 1.0.79 → 1.0.82

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 (44) hide show
  1. package/dist-lib/components/verkoop/FloridayStageLine.d.ts +5 -1
  2. package/dist-lib/components/verkoop/FloridayStageLine.d.ts.map +1 -1
  3. package/dist-lib/components/verkoop/FloridayStageLine.js +14 -6
  4. package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts.map +1 -1
  5. package/dist-lib/components/verkoop/SalesOrderDetailPage.js +1 -1
  6. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
  7. package/dist-lib/components/verkoop/SalesOrderDetailView.js +7 -3
  8. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
  9. package/dist-lib/components/verkoop/SalesOrdersTable.js +2 -2
  10. package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts.map +1 -1
  11. package/dist-lib/components/verkoop/VerkoopOrdersPage.js +6 -0
  12. package/dist-lib/integrations/supabase/types.d.ts +328 -2
  13. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  14. package/dist-lib/integrations/supabase/types.js +1 -0
  15. package/dist-lib/lib/customer-name.d.ts +8 -0
  16. package/dist-lib/lib/customer-name.d.ts.map +1 -0
  17. package/dist-lib/lib/customer-name.js +9 -0
  18. package/dist-lib/lib/floriday-change-diff.check.d.ts +2 -0
  19. package/dist-lib/lib/floriday-change-diff.check.d.ts.map +1 -0
  20. package/dist-lib/lib/floriday-change-diff.check.js +27 -0
  21. package/dist-lib/lib/floriday-change-diff.d.ts +7 -0
  22. package/dist-lib/lib/floriday-change-diff.d.ts.map +1 -0
  23. package/dist-lib/lib/floriday-change-diff.js +51 -0
  24. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  25. package/dist-lib/lib/floriday-mirror.functions.js +17 -3
  26. package/dist-lib/lib/floriday-status.d.ts +8 -0
  27. package/dist-lib/lib/floriday-status.d.ts.map +1 -1
  28. package/dist-lib/lib/floriday-status.js +20 -1
  29. package/dist-lib/lib/review-dismissals.server.d.ts +3 -0
  30. package/dist-lib/lib/review-dismissals.server.d.ts.map +1 -0
  31. package/dist-lib/lib/review-dismissals.server.js +26 -0
  32. package/dist-lib/lib/salesorders-list.functions.d.ts +1 -1
  33. package/dist-lib/lib/salesorders-list.functions.js +1 -1
  34. package/dist-lib/lib/salesorders-list.server.d.ts +1 -1
  35. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  36. package/dist-lib/lib/salesorders-list.server.js +50 -3
  37. package/dist-lib/lib/salesorders-mapping.d.ts +6 -0
  38. package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
  39. package/dist-lib/lib/salesorders-mapping.js +1 -0
  40. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  41. package/dist-lib/lib/salesorders.functions.js +6 -0
  42. package/dist-lib/lib/useSalesOrdersQuery.d.ts +1 -1
  43. package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
  44. package/package.json +4 -4
@@ -39,6 +39,7 @@ export const Constants = {
39
39
  "veilingbon",
40
40
  "afleverbrief",
41
41
  "veilingbrief",
42
+ "traysticker",
42
43
  ],
43
44
  doc_orientation: ["portrait", "landscape"],
44
45
  exact_env: ["staging", "live"],
@@ -0,0 +1,8 @@
1
+ export declare function customerDisplayName(c: {
2
+ commercial_name?: unknown;
3
+ company_name?: unknown;
4
+ } | null | undefined): {
5
+ name: string;
6
+ legalName: string | null;
7
+ };
8
+ //# sourceMappingURL=customer-name.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"customer-name.d.ts","sourceRoot":"","sources":["../../src/lib/customer-name.ts"],"names":[],"mappings":"AAIA,wBAAgB,mBAAmB,CAAC,CAAC,EAAE;IAAE,eAAe,CAAC,EAAE,OAAO,CAAC;IAAC,YAAY,CAAC,EAAE,OAAO,CAAA;CAAE,GAAG,IAAI,GAAG,SAAS,GAAG;IAChH,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B,CAKA"}
@@ -0,0 +1,9 @@
1
+ // Klantnaam voor weergave: handelsnaam (commercial_name) als die gevuld is,
2
+ // anders bedrijfsnaam (company_name). Koppelen gebeurt nooit op naam.
3
+ const s = (v) => (typeof v === "string" && v.trim() ? v.trim() : null);
4
+ export function customerDisplayName(c) {
5
+ const commercial = s(c?.commercial_name);
6
+ const company = s(c?.company_name);
7
+ const name = commercial ?? company ?? "Onbekende klant";
8
+ return { name, legalName: commercial && company && company !== commercial ? company : null };
9
+ }
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=floriday-change-diff.check.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floriday-change-diff.check.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-change-diff.check.ts"],"names":[],"mappings":""}
@@ -0,0 +1,27 @@
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";
4
+ let failed = 0;
5
+ const eq = (name, got, want) => {
6
+ const ok = JSON.stringify(got) === JSON.stringify(want);
7
+ if (!ok)
8
+ failed++;
9
+ console.log(`${ok ? "OK " : "FOUT"} ${name}${ok ? "" : ` — kreeg ${JSON.stringify(got)}`}`);
10
+ };
11
+ const id = "231ec1d1-46cd-4d63-8785-90a9b0891be5";
12
+ const stored = [{ sales_order_id: id, trade_item_id: "t1", pieces: 8, packing: { load_carrier: "A" } }];
13
+ eq("geen verschil (eerste ronde na scan)", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t1", pieces: 8 }], "2026-10-15", "2026-10-15"), []);
14
+ eq("alleen belading anders", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t1", pieces: 8, packing: { load_carrier: "B" } }], null, null), []);
15
+ eq("aantal gewijzigd", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t1", pieces: 10 }], null, null).length, 1);
16
+ eq("artikel gewijzigd", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t2", pieces: 8 }], null, null).length, 1);
17
+ eq("leverdatum gewijzigd", diffBuyerChanges(stored, [{ sales_order_id: id, trade_item_id: "t1", pieces: 8 }], "2026-10-15", "2026-10-16T00:00:00Z").length, 1);
18
+ eq("geen opgeslagen regels → geen alarm", diffBuyerChanges([], [{ sales_order_id: id, pieces: 1 }], null, null), []);
19
+ eq("verzonden + open → waarschuwing", notReportedState("shipped", "open", false), "waarschuwing");
20
+ eq("verzonden + fulfilled → niets", notReportedState("shipped", "fulfilled", true), null);
21
+ eq("verzonden + onbekend + niet afgemeld → terugval", notReportedState("shipped", "onbekend", false), "waarschuwing_onbekend");
22
+ eq("te picken + open → niets", notReportedState("topick", "open", false), null);
23
+ if (failed) {
24
+ console.log(`${failed} controle(s) mislukt`);
25
+ process.exit(1);
26
+ }
27
+ console.log("Alle controles geslaagd");
@@ -0,0 +1,7 @@
1
+ export interface ChangeLine {
2
+ sales_order_id: string;
3
+ trade_item_id?: string | null;
4
+ pieces?: number | null;
5
+ }
6
+ export declare function diffBuyerChanges(storedLines: unknown, incomingLines: ChangeLine[], storedDate: unknown, incomingDate: unknown): string[];
7
+ //# sourceMappingURL=floriday-change-diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floriday-change-diff.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-change-diff.ts"],"names":[],"mappings":"AAMA,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AAOD,wBAAgB,gBAAgB,CAC9B,WAAW,EAAE,OAAO,EACpB,aAAa,EAAE,UAAU,EAAE,EAC3B,UAAU,EAAE,OAAO,EACnB,YAAY,EAAE,OAAO,GACpB,MAAM,EAAE,CAoCV"}
@@ -0,0 +1,51 @@
1
+ // Pure vergelijking: heeft de koper na afronding echt iets gewijzigd?
2
+ // Alleen artikel (trade-item-id), aantal stuks, leverdatum en bestellingen
3
+ // die erbij komen of verdwijnen tellen. ERP-status (scan), belading/verpakking
4
+ // en de Floriday-status (echo van onze eigen afmelding) tellen nooit mee.
5
+ // Match altijd op Floriday-bestel-id, nooit op naam.
6
+ const day = (v) => {
7
+ if (typeof v !== "string" || !v.trim())
8
+ return null;
9
+ return v.trim().slice(0, 10);
10
+ };
11
+ export function diffBuyerChanges(storedLines, incomingLines, storedDate, incomingDate) {
12
+ const changes = [];
13
+ const stored = new Map();
14
+ for (const l of Array.isArray(storedLines) ? storedLines : []) {
15
+ const id = l && typeof l === "object" ? String(l.sales_order_id ?? "") : "";
16
+ if (id)
17
+ stored.set(id, l);
18
+ }
19
+ // Zonder opgeslagen regels kunnen we niet vergelijken: niet alarmeren.
20
+ if (stored.size === 0)
21
+ return changes;
22
+ const incoming = new Map();
23
+ for (const l of incomingLines)
24
+ if (l?.sales_order_id)
25
+ incoming.set(String(l.sales_order_id), l);
26
+ for (const [id, inc] of incoming) {
27
+ const old = stored.get(id);
28
+ const short = id.slice(0, 8);
29
+ if (!old) {
30
+ changes.push(`bestelling ${short} toegevoegd`);
31
+ continue;
32
+ }
33
+ if ((old.trade_item_id ?? null) !== (inc.trade_item_id ?? null)) {
34
+ changes.push(`artikel gewijzigd (bestelling ${short})`);
35
+ }
36
+ const op = Number(old.pieces ?? NaN);
37
+ const np = Number(inc.pieces ?? NaN);
38
+ if (Number.isFinite(op) && Number.isFinite(np) && op !== np) {
39
+ changes.push(`aantal ${op} → ${np} (bestelling ${short})`);
40
+ }
41
+ }
42
+ for (const id of stored.keys()) {
43
+ if (!incoming.has(id))
44
+ changes.push(`bestelling ${id.slice(0, 8)} verdwenen`);
45
+ }
46
+ const od = day(storedDate);
47
+ const nd = day(incomingDate);
48
+ if (od && nd && od !== nd)
49
+ changes.push(`leverdatum ${od} → ${nd}`);
50
+ return changes;
51
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"floriday-mirror.functions.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-mirror.functions.ts"],"names":[],"mappings":"AA8IA,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;AA41CD,wBAAsB,4BAA4B,CAAC,KAAK,SAAgB,yBAEvE;AAED,eAAO,MAAM,oBAAoB;;;;8CAEP,OAAO;;yBAG0C,CAAC"}
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;AAg3CD,wBAAsB,4BAA4B,CAAC,KAAK,SAAgB,yBAEvE;AAED,eAAO,MAAM,oBAAoB;;;;8CAEP,OAAO;;yBAG0C,CAAC"}
@@ -1,3 +1,4 @@
1
+ import { diffBuyerChanges } from "./floriday-change-diff";
1
2
  // Spiegelt Floriday-verkooporders (FO's) uit `floriday_salesorders_cache`
2
3
  // naar de lokale `orders`-tabel, zodat ze via `resolveBufferForOrderInternal`
3
4
  // in dezelfde buffer terechtkomen als lokale orders en gedeelde karren
@@ -830,12 +831,21 @@ async function mirrorUnlocked(limit) {
830
831
  frozenCandidates.set(String(c.id), c);
831
832
  }
832
833
  if (frozenCandidates.size > 0) {
834
+ // Alleen echte koperwijzigingen (artikel, aantal, leverdatum,
835
+ // bestelling erbij/weg). Status, belading en Floriday-echo niet.
833
836
  const signature = JSON.stringify({
834
- status: primary.d?.status ?? null,
835
- lines: floridayLines,
837
+ lines: floridayLines.map((l) => ({
838
+ id: l.sales_order_id,
839
+ t: l.trade_item_id,
840
+ p: l.pieces,
841
+ })),
842
+ d: groupLvl.deliveryDate ?? null,
836
843
  });
837
844
  for (const fo of frozenCandidates.values()) {
838
845
  const cf = (fo.custom_fields ?? {});
846
+ const changes = diffBuyerChanges(cf.floriday_lines, floridayLines, fo.delivery_date, groupLvl.deliveryDate);
847
+ if (changes.length === 0)
848
+ continue; // niets door de koper gewijzigd
839
849
  if (cf.floriday_change_signature === signature)
840
850
  continue; // al gemeld
841
851
  const { error: revErr } = await supabaseAdmin.from("orders")
@@ -846,7 +856,8 @@ async function mirrorUnlocked(limit) {
846
856
  floriday_change_detected_at: new Date().toISOString(),
847
857
  floriday_change_signature: signature,
848
858
  needs_manual_review: true,
849
- manual_review_reason: "Wijziging binnengekomen na afronding — handmatige beoordeling nodig",
859
+ floriday_change_summary: changes,
860
+ manual_review_reason: `Wijziging door de koper na afronding: ${changes.join("; ")} — handmatige beoordeling nodig`,
850
861
  },
851
862
  updated_at: new Date().toISOString(),
852
863
  })
@@ -856,6 +867,9 @@ async function mirrorUnlocked(limit) {
856
867
  }
857
868
  }
858
869
  skipped += group.length;
870
+ // Afgeronde order: deze ronde overslaan; alleen melden bij echte wijziging.
871
+ if (![...frozenCandidates.values()].some((fo) => diffBuyerChanges((fo.custom_fields ?? {}).floriday_lines, floridayLines, fo.delivery_date, groupLvl.deliveryDate).length > 0))
872
+ continue;
859
873
  errors.push(`${primary.foId}: wijziging na afronding — order gemarkeerd voor handmatige beoordeling`);
860
874
  continue;
861
875
  }
@@ -37,4 +37,12 @@ export declare function combineStages(stages: FloridayStage[]): FloridayStage;
37
37
  export declare function floridayStageLabel(stage: FloridayStatusSummary["stage"]): string;
38
38
  /** Wijkt de Floriday-stand af van de ERP-stand? Alleen voor weergave. */
39
39
  export declare function deviatesFromFloriday(stage: FloridayStatusSummary["stage"], erp: OrderStage | undefined): boolean;
40
+ /** Eigen kenmerk: verzonden in het ERP en nog niet afgemeld bij Floriday. */
41
+ export declare function isNotReportedLocally(erp: OrderStage | undefined, floridayFulfilled: boolean): boolean;
42
+ export type NotReportedState = "waarschuwing" | "waarschuwing_onbekend" | "al_afgehandeld" | null;
43
+ /**
44
+ * Welke melding hoort bij een verzonden order? Floriday-stand gaat voor;
45
+ * bij onbekende stand valt het terug op ons eigen kenmerk. Alleen weergave.
46
+ */
47
+ export declare function notReportedState(erp: OrderStage | undefined, floriday: FloridayStatusSummary["stage"] | null | undefined, floridayFulfilled: boolean): NotReportedState;
40
48
  //# sourceMappingURL=floriday-status.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"floriday-status.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,qBAAqB,GACrB,WAAW,GACX,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE;QAAE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,mBAAmB,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC9H,iBAAiB,EAAE;QAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAClF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IAClC,iEAAiE;IACjE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAMD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB,GAAG,IAAI,CA6B7E;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,CAWpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,MAAM,CAUhF;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAQhH"}
1
+ {"version":3,"file":"floriday-status.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-status.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,aAAa,GACrB,MAAM,GACN,qBAAqB,GACrB,WAAW,GACX,WAAW,GACX,SAAS,GACT,SAAS,CAAC;AAEd,MAAM,WAAW,mBAAmB;IAClC,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,OAAO,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,aAAa,EAAE,aAAa,CAAC;IAC7B,mBAAmB,EAAE;QAAE,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,mBAAmB,EAAE,MAAM,EAAE,CAAA;KAAE,EAAE,CAAC;IAC9H,iBAAiB,EAAE;QAAE,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAClF,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,sBAAsB,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,gFAAgF;AAChF,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,aAAa,GAAG,UAAU,CAAC;IAClC,iEAAiE;IACjE,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,mBAAmB,EAAE,CAAC;CAChC;AAMD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,GAAG,GAAG,mBAAmB,GAAG,IAAI,CA6B7E;AAED,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,aAAa,CAWpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,MAAM,CAUhF;AAED,yEAAyE;AACzE,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,qBAAqB,CAAC,OAAO,CAAC,EAAE,GAAG,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAQhH;AAED,6EAA6E;AAC7E,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,UAAU,GAAG,SAAS,EAAE,iBAAiB,EAAE,OAAO,GAAG,OAAO,CAErG;AAED,MAAM,MAAM,gBAAgB,GAAG,cAAc,GAAG,uBAAuB,GAAG,gBAAgB,GAAG,IAAI,CAAC;AAElG;;;GAGG;AACH,wBAAgB,gBAAgB,CAC9B,GAAG,EAAE,UAAU,GAAG,SAAS,EAC3B,QAAQ,EAAE,qBAAqB,CAAC,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,EAC3D,iBAAiB,EAAE,OAAO,GACzB,gBAAgB,CAMlB"}
@@ -75,6 +75,25 @@ export function deviatesFromFloriday(stage, erp) {
75
75
  if (stage === "fulfilled")
76
76
  return !erpShipped && !erpCancelled;
77
77
  if (stage === "open")
78
- return erpCancelled;
78
+ return erpCancelled; // verzonden+open: aparte melding
79
79
  return false;
80
80
  }
81
+ /** Eigen kenmerk: verzonden in het ERP en nog niet afgemeld bij Floriday. */
82
+ export function isNotReportedLocally(erp, floridayFulfilled) {
83
+ return erp === "shipped" && !floridayFulfilled;
84
+ }
85
+ /**
86
+ * Welke melding hoort bij een verzonden order? Floriday-stand gaat voor;
87
+ * bij onbekende stand valt het terug op ons eigen kenmerk. Alleen weergave.
88
+ */
89
+ export function notReportedState(erp, floriday, floridayFulfilled) {
90
+ if (erp !== "shipped")
91
+ return null;
92
+ if (floriday === "open" || floriday === "partially_fulfilled")
93
+ return "waarschuwing";
94
+ if (floriday === "fulfilled")
95
+ return floridayFulfilled ? null : "al_afgehandeld";
96
+ if (floriday === "cancelled" || floriday === "expired")
97
+ return null;
98
+ return floridayFulfilled ? null : "waarschuwing_onbekend";
99
+ }
@@ -0,0 +1,3 @@
1
+ export declare function loadReviewDismissals(supabase: any, orderIds: string[]): Promise<Map<string, Set<string>>>;
2
+ export declare function isReviewDismissed(map: Map<string, Set<string>>, orderId: string, reason: string): boolean;
3
+ //# sourceMappingURL=review-dismissals.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-dismissals.server.d.ts","sourceRoot":"","sources":["../../src/lib/review-dismissals.server.ts"],"names":[],"mappings":"AAKA,wBAAsB,oBAAoB,CACxC,QAAQ,EAAE,GAAG,EACb,QAAQ,EAAE,MAAM,EAAE,GACjB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,CAgBnC;AAED,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAEzG"}
@@ -0,0 +1,26 @@
1
+ // Weggehaalde beoordelingsmeldingen (order_review_dismissals). Alleen lezen.
2
+ // Een melding is alleen weg als de reden exact overeenkomt; een nieuwe, echte
3
+ // wijziging met een andere reden verschijnt dus gewoon weer.
4
+ // Fout bij lezen: melding blijft zichtbaar (fail closed).
5
+ export async function loadReviewDismissals(supabase, orderIds) {
6
+ const out = new Map();
7
+ const ids = Array.from(new Set(orderIds.filter(Boolean)));
8
+ for (let i = 0; i < ids.length; i += 300) {
9
+ const { data, error } = await supabase
10
+ .from("order_review_dismissals")
11
+ .select("order_id, review_reason")
12
+ .in("order_id", ids.slice(i, i + 300));
13
+ if (error || !Array.isArray(data))
14
+ continue;
15
+ for (const r of data) {
16
+ const k = String(r.order_id);
17
+ if (!out.has(k))
18
+ out.set(k, new Set());
19
+ out.get(k).add(String(r.review_reason ?? ""));
20
+ }
21
+ }
22
+ return out;
23
+ }
24
+ export function isReviewDismissed(map, orderId, reason) {
25
+ return map.get(orderId)?.has(reason) ?? false;
26
+ }
@@ -4,7 +4,7 @@ export declare const listSalesOrders: import("@tanstack/start-client-core").Opti
4
4
  claims: import("@supabase/auth-js").User;
5
5
  }, undefined, undefined, undefined>], (input: unknown) => {
6
6
  dateField: "ordered" | "delivery";
7
- tab: "incoming" | "topick" | "picked" | "shipped" | "cancelled" | "backlog" | "all";
7
+ tab: "incoming" | "topick" | "picked" | "shipped" | "cancelled" | "backlog" | "all" | "not_reported";
8
8
  page: number;
9
9
  pageSize: number;
10
10
  since?: string | undefined;
@@ -11,7 +11,7 @@ const listInput = z.object({
11
11
  search: z.string().optional(),
12
12
  status: z.string().optional(),
13
13
  tab: z
14
- .enum(["all", "incoming", "topick", "backlog", "picked", "shipped", "cancelled"])
14
+ .enum(["all", "incoming", "topick", "backlog", "picked", "shipped", "cancelled", "not_reported"])
15
15
  .default("all"),
16
16
  page: z.number().int().min(1).default(1),
17
17
  pageSize: z.number().int().min(1).max(200).default(20),
@@ -2,7 +2,7 @@ import type { SupabaseClient } from "@supabase/supabase-js";
2
2
  import { type SalesOrderDTO, type SalesOrdersTotals } from "./salesorders-mapping";
3
3
  import { type OrderStage } from "./order-status";
4
4
  /** "backlog" is géén status: het is een aparte weergave van "Te picken". */
5
- export type StatusTab = "all" | OrderStage | "backlog";
5
+ export type StatusTab = "all" | OrderStage | "backlog" | "not_reported";
6
6
  export interface ListParams {
7
7
  since?: string;
8
8
  until?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"salesorders-list.server.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-list.server.ts"],"names":[],"mappings":"AAWA,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;AAKjF,4EAA4E;AAC5E,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD,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,CA4iCrB"}
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;AAKjF,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,CA0lCrB"}
@@ -1,3 +1,6 @@
1
+ import { loadReviewDismissals, isReviewDismissed } from "./review-dismissals.server";
2
+ import { customerDisplayName } from "./customer-name";
3
+ import { isNotReportedLocally } from "./floriday-status";
1
4
  import { unlinkedFloridayProducts } from "./floriday-unlinked-products";
2
5
  import { resolveProductName } from "./product-name";
3
6
  import { centralOrderNumber, computeTotals, mapJsonbToSalesOrderDTO, packingConfigFromFloridayPacking, } from "./salesorders-mapping";
@@ -358,15 +361,18 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
358
361
  const lookup = new Map();
359
362
  const localCustomerLookup = new Map();
360
363
  for (const c of customerRows) {
364
+ const disp = customerDisplayName(c);
361
365
  localCustomerLookup.set(String(c.id), {
362
- name: c.company_name ?? "Onbekende klant",
366
+ name: disp.name,
367
+ legalName: disp.legalName,
363
368
  city: c.city ?? "",
364
369
  });
365
370
  const orgId = c.floriday_organization_id;
366
371
  if (!orgId)
367
372
  continue;
368
373
  lookup.set(String(orgId), {
369
- name: c.commercial_name ?? c.company_name ?? "Onbekende klant",
374
+ name: disp.name,
375
+ legalName: disp.legalName,
370
376
  postalCode: c.postal_code ?? "",
371
377
  city: c.city ?? "",
372
378
  logoUrl: c.logo_url ?? null,
@@ -513,6 +519,7 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
513
519
  isReservation: localRow ? !!localRow.is_reservation : false,
514
520
  });
515
521
  dto.floridayFulfilled = Boolean((localRow?.custom_fields ?? {})?.floriday_fulfilled);
522
+ dto.notReportedToFloriday = isNotReportedLocally(dto.stage, dto.floridayFulfilled);
516
523
  const reviewCf = (localRow?.custom_fields ?? {});
517
524
  dto.needsManualReview = reviewCf?.needs_manual_review
518
525
  ? {
@@ -696,7 +703,9 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
696
703
  isLocal: true,
697
704
  isReservation: !!r.is_reservation,
698
705
  customer: {
699
- name: r.customer_name ?? localCustomer?.name ?? "Onbekende klant",
706
+ // Gekoppelde klant (op id) gaat vóór de opgeslagen naam op de order.
707
+ name: localCustomer?.name ?? r.customer_name ?? "Onbekende klant",
708
+ legalName: localCustomer?.legalName ?? null,
700
709
  postalCode: "",
701
710
  city: localCustomer?.city ?? "",
702
711
  logoUrl: null,
@@ -716,6 +725,14 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
716
725
  ...(r.delivery_date ? [] : ["geen leverdatum"]),
717
726
  ],
718
727
  packingSource: localPackingSource,
728
+ floridayFulfilled: Boolean(cf.floriday_fulfilled),
729
+ notReportedToFloriday: (sourceRaw === "floriday" || !!r.floriday_sales_order_id) &&
730
+ isNotReportedLocally(resolveOrderStage({
731
+ status: r.status,
732
+ shipped: shipmentStateByOrder.get(String(r.id))?.shipped,
733
+ controlledAt: shipmentStateByOrder.get(String(r.id))?.picked ? "picked" : null,
734
+ isReservation: !!r.is_reservation,
735
+ }), Boolean(cf.floriday_fulfilled)),
719
736
  priceLines: lineItems.map((it) => ({
720
737
  pieces: toNumber(it?.quantity) || 0,
721
738
  unitPrice: toNumber(it?.unit_price) || 0,
@@ -821,6 +838,27 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
821
838
  o.pickupLabel = shortPickup(selected.pickupDate, selected.pickupTime ?? selected.signupTime);
822
839
  }
823
840
  }
841
+ // 12a) Weggehaalde beoordelingsmeldingen (vals alarm) — los vastgelegd,
842
+ // zodat de order zelf niet gewijzigd hoeft te worden.
843
+ {
844
+ const reviewPairs = [];
845
+ for (const o of all) {
846
+ if (!o.needsManualReview)
847
+ continue;
848
+ const oid = o.id.startsWith("local:")
849
+ ? o.id.slice("local:".length)
850
+ : (() => { const row = localRowByFoId.get(o.id); return row ? String(row.id) : null; })();
851
+ if (oid)
852
+ reviewPairs.push({ oid, o });
853
+ }
854
+ if (reviewPairs.length > 0) {
855
+ const dismissed = await loadReviewDismissals(supabase, reviewPairs.map((p) => p.oid));
856
+ for (const p of reviewPairs) {
857
+ if (isReviewDismissed(dismissed, p.oid, p.o.needsManualReview.reason))
858
+ p.o.needsManualReview = null;
859
+ }
860
+ }
861
+ }
824
862
  const sizeByBuffer = new Map();
825
863
  for (const o of all) {
826
864
  if (o.bufferId)
@@ -868,6 +906,8 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
868
906
  reservationCount: members.filter((m) => m.isReservation).length,
869
907
  floridayFulfilled: members.some((m) => m.floridayFulfilled),
870
908
  floridayFulfilledCount: members.filter((m) => m.floridayFulfilled).length,
909
+ notReportedToFloriday: members.some((m) => m.notReportedToFloriday),
910
+ notReportedCount: members.filter((m) => m.notReportedToFloriday).length,
871
911
  stage: mergeStages(members.map((m) => m.stage ?? "incoming")),
872
912
  ...(() => {
873
913
  // De herkomst van de laatste statuswijziging binnen de buffer.
@@ -978,11 +1018,15 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
978
1018
  };
979
1019
  // Achterstand is een weergave-categorie binnen "Te picken", geen eigen status.
980
1020
  const isBacklogGroup = (members) => stageOf(members) === "topick" && members.some((m) => m.backlog);
1021
+ // Verzonden in het ERP, nog niet afgemeld bij Floriday (eigen kenmerk).
1022
+ const isNotReportedGroup = (members) => members.some((m) => m.notReportedToFloriday);
981
1023
  const matchesTab = (members) => {
982
1024
  if (params.tab === "all")
983
1025
  return true;
984
1026
  if (params.tab === "backlog")
985
1027
  return isBacklogGroup(members);
1028
+ if (params.tab === "not_reported")
1029
+ return isNotReportedGroup(members);
986
1030
  if (stageOf(members) !== params.tab)
987
1031
  return false;
988
1032
  // Achterstandorders horen onder hun eigen tab, niet bij het gewone "Te picken".
@@ -1000,8 +1044,11 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
1000
1044
  picked: 0,
1001
1045
  shipped: 0,
1002
1046
  cancelled: 0,
1047
+ not_reported: 0,
1003
1048
  };
1004
1049
  for (const g of withoutTab) {
1050
+ if (isNotReportedGroup(g))
1051
+ statusCounts.not_reported++;
1005
1052
  if (isBacklogGroup(g)) {
1006
1053
  statusCounts.backlog++;
1007
1054
  continue; // telt niet mee bij het gewone "Te picken"
@@ -48,6 +48,9 @@ export interface SalesOrderDTO {
48
48
  * Nooit sturend voor status, tabs, filters, facturatie of voorraadverbruik.
49
49
  */
50
50
  floridayFulfilled?: boolean;
51
+ /** Verzonden in het ERP, nog niet afgemeld bij Floriday (alleen weergave). */
52
+ notReportedToFloriday?: boolean;
53
+ notReportedCount?: number;
51
54
  /** Aantal orders binnen een buffer dat is doorgegeven aan Floriday. */
52
55
  floridayFulfilledCount?: number;
53
56
  /**
@@ -105,6 +108,8 @@ export interface SalesOrderDTO {
105
108
  incomplete?: string[];
106
109
  customer: {
107
110
  name: string;
111
+ /** Bedrijfsnaam (company_name) als die afwijkt van de getoonde handelsnaam. */
112
+ legalName?: string | null;
108
113
  postalCode: string;
109
114
  city: string;
110
115
  logoUrl: string | null;
@@ -125,6 +130,7 @@ export interface SalesOrderDTO {
125
130
  }
126
131
  export interface CustomerLookupEntry {
127
132
  name: string;
133
+ legalName?: string | null;
128
134
  postalCode: string;
129
135
  city: string;
130
136
  logoUrl: string | null;
@@ -1 +1 @@
1
- {"version":3,"file":"salesorders-mapping.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-mapping.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,kEAAkE;IAClE,YAAY,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAClC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAElE,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,iBAAiB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEpE;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,mBAAmB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC1E,0EAA0E;IAC1E,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAGtB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,CAAC;IAEF,GAAG,EAAE;QACH,KAAK,EAAE,GAAG,CAAC;QACX,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAWhE;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;AAmD9E;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAmBpE;AAKD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED,wFAAwF;AACxF,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAK7D,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa7C;AAED,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,GAAG,EACN,cAAc,CAAC,EAAE,cAAc,EAC/B,eAAe,CAAC,EAAE,eAAe,EACjC,wBAAwB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7C,aAAa,CAiGf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAUxE;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACnE;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAWnF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAIlF;AAYD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EAAE,EACvB,CAAC,EAAE,iBAAiB,GACnB,aAAa,EAAE,CAuDjB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAyCtF"}
1
+ {"version":3,"file":"salesorders-mapping.d.ts","sourceRoot":"","sources":["../../src/lib/salesorders-mapping.ts"],"names":[],"mappings":"AAEA,OAAO,EAAmB,KAAK,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAElE,MAAM,WAAW,aAAa;IAC5B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;IACnE,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,0DAA0D;IAC1D,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,wEAAwE;IACxE,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,0FAA0F;IAC1F,aAAa,CAAC,EAAE,aAAa,CAAC;IAE9B,WAAW,EAAE,MAAM,CAAC;IAEpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,kBAAkB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC9B,sDAAsD;IACtD,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,6CAA6C;IAC7C,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,sDAAsD;IACtD,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,kEAAkE;IAClE,YAAY,CAAC,EAAE,KAAK,GAAG,UAAU,CAAC;IAClC,8CAA8C;IAC9C,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,8EAA8E;IAC9E,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,uEAAuE;IACvE,sBAAsB,CAAC,EAAE,MAAM,CAAC;IAChC;;;OAGG;IACH,iBAAiB,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,GAAG,IAAI,CAAC;IACjE,+EAA+E;IAC/E,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B,uEAAuE;IACvE,gBAAgB,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,EAAE,CAAC;IAElE,mFAAmF;IACnF,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,+EAA+E;IAC/E,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,oDAAoD;IACpD,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,2EAA2E;IAC3E,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB;;;OAGG;IACH,YAAY,CAAC,EAAE,OAAO,iBAAiB,EAAE,mBAAmB,GAAG,IAAI,CAAC;IAEpE;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,wEAAwE;IACxE,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,mBAAmB,EAAE,qBAAqB,GAAG,IAAI,CAAC;IAC1E,0EAA0E;IAC1E,UAAU,CAAC,EAAE;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IACrD,oEAAoE;IACpE,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,+CAA+C;IAC/C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,iEAAiE;IACjE,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IAGtB,QAAQ,EAAE;QACR,IAAI,EAAE,MAAM,CAAC;QACb,+EAA+E;QAC/E,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC1B,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;KACxB,CAAC;IACF,MAAM,EAAE;QACN,WAAW,EAAE,OAAO,CAAC;QACrB,SAAS,EAAE,OAAO,CAAC;QACnB,UAAU,EAAE,OAAO,CAAC;QACpB,WAAW,EAAE,OAAO,CAAC;QACrB,YAAY,EAAE,OAAO,CAAC;QACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;KAC7B,CAAC;IAEF,GAAG,EAAE;QACH,KAAK,EAAE,GAAG,CAAC;QACX,QAAQ,EAAE,GAAG,GAAG,IAAI,CAAC;QACrB,SAAS,EAAE,GAAG,GAAG,IAAI,CAAC;KACvB,CAAC;CACH;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD,MAAM,MAAM,cAAc,GAAG,GAAG,CAAC,MAAM,EAAE,mBAAmB,CAAC,CAAC;AAE9D,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,GAAG,EAAE,MAAM,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,GAAG,CAAC;CACX;AACD,MAAM,MAAM,eAAe,GAAG,GAAG,CAAC,MAAM,EAAE,oBAAoB,CAAC,CAAC;AAWhE;;;;;;;GAOG;AACH,MAAM,MAAM,aAAa,GAAG,OAAO,GAAG,YAAY,GAAG,SAAS,GAAG,YAAY,CAAC;AAmD9E;;;;GAIG;AACH,wBAAgB,gCAAgC,CAAC,EAAE,EAAE,GAAG,GAAG,GAAG,GAAG,IAAI,CAmBpE;AAKD,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,MAAM,CAEpE;AAED,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAEzD;AAED,wFAAwF;AACxF,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,GAAG,UAAU,CAAC;AAK7D,wBAAgB,eAAe,CAC7B,EAAE,EAAE,MAAM,GACT;IAAE,IAAI,EAAE,YAAY,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,CAa7C;AAED,wBAAgB,uBAAuB,CACrC,CAAC,EAAE,GAAG,EACN,cAAc,CAAC,EAAE,cAAc,EAC/B,eAAe,CAAC,EAAE,eAAe,EACjC,wBAAwB,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7C,aAAa,CAkGf;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,aAAa,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG,iBAAiB,CAUxE;AAED,MAAM,WAAW,iBAAiB;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACnE;AAGD,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAWnF;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG;IAAE,KAAK,EAAE,IAAI,CAAC;IAAC,GAAG,EAAE,IAAI,CAAA;CAAE,CAIlF;AAYD,wBAAgB,YAAY,CAC1B,MAAM,EAAE,aAAa,EAAE,EACvB,CAAC,EAAE,iBAAiB,GACnB,aAAa,EAAE,CAuDjB;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,aAAa,EAAE,GAAG;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAyCtF"}
@@ -155,6 +155,7 @@ export function mapJsonbToSalesOrderDTO(o, customerLookup, tradeItemLookup, crat
155
155
  totalPieces: numberOfPieces,
156
156
  customer: {
157
157
  name: found?.name ?? "Onbekende klant",
158
+ legalName: found?.legalName ?? null,
158
159
  postalCode: found?.postalCode ?? "",
159
160
  city: found?.city ?? "",
160
161
  logoUrl: found?.logoUrl ?? null,
@@ -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;;mCAsZzB,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;;mCA2ZzB,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"}
@@ -340,6 +340,12 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
340
340
  at: reviewCf.floriday_change_detected_at ?? null,
341
341
  }
342
342
  : null;
343
+ if (dto.needsManualReview && ownRow?.id) {
344
+ const { loadReviewDismissals, isReviewDismissed } = await import("./review-dismissals.server");
345
+ const dismissed = await loadReviewDismissals(supabase, [String(ownRow.id)]);
346
+ if (isReviewDismissed(dismissed, String(ownRow.id), dto.needsManualReview.reason))
347
+ dto.needsManualReview = null;
348
+ }
343
349
  // Karren en indelingsstatus uit de Engine (logistics_order_plan_coverage).
344
350
  // Fail closed: bij een fout "Indeling onbekend" en geen aantal.
345
351
  if (ownRow?.id) {
@@ -1,6 +1,6 @@
1
1
  import { type SalesOrderDTO, type SalesOrderFilters, type SalesOrdersTotals } from "./salesorders-mapping";
2
2
  import type { OrderStage } from "./order-status";
3
- export type StatusTab = "all" | OrderStage | "backlog";
3
+ export type StatusTab = "all" | OrderStage | "backlog" | "not_reported";
4
4
  export interface SalesOrdersPage {
5
5
  orders: SalesOrderDTO[];
6
6
  totalCount: number;
@@ -1 +1 @@
1
- {"version":3,"file":"useSalesOrdersQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useSalesOrdersQuery.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,CAAC;AAEvD,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,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,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC,CAwCA;AAED,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,0EAgElC"}
1
+ {"version":3,"file":"useSalesOrdersQuery.d.ts","sourceRoot":"","sources":["../../src/lib/useSalesOrdersQuery.ts"],"names":[],"mappings":"AASA,OAAO,EAGL,KAAK,aAAa,EAClB,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACvB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAEjD,MAAM,MAAM,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,SAAS,GAAG,cAAc,CAAC;AAExE,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,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,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,uBAAuB;IACtC,GAAG,CAAC,EAAE,SAAS,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,CAAC,EAAE,iBAAiB,GAAG;IAC/D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,SAAS,GAAG,UAAU,CAAC;CACnC,CAwCA;AAED,wBAAgB,mBAAmB,CACjC,OAAO,CAAC,EAAE,iBAAiB,EAC3B,OAAO,CAAC,EAAE,uBAAuB,0EAgElC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-verkoop-module",
3
- "version": "1.0.79",
3
+ "version": "1.0.82",
4
4
  "private": false,
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -56,9 +56,9 @@
56
56
  "@rsbuild/core": "^1.0.0",
57
57
  "@tailwindcss/vite": "^4.2.1",
58
58
  "@tanstack/react-query": "^5.83.0",
59
- "@tanstack/react-router": "^1.168.0",
60
- "@tanstack/react-start": "^1.167.14",
61
- "@tanstack/router-plugin": "^1.167.10",
59
+ "@tanstack/react-router": "1.169.1",
60
+ "@tanstack/react-start": "1.167.63",
61
+ "@tanstack/router-plugin": "1.167.33",
62
62
  "@types/node": "^22.16.5",
63
63
  "@types/react": "^19.2.0",
64
64
  "@types/react-dom": "^19.2.0",