@flowselections/floriday-verkoop-module 1.0.76 → 1.0.79

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 (68) hide show
  1. package/dist-lib/components/verkoop/CreateOrderPage.d.ts.map +1 -1
  2. package/dist-lib/components/verkoop/CreateOrderPage.js +33 -8
  3. package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts.map +1 -1
  4. package/dist-lib/components/verkoop/EditLocalOrderDialog.js +1 -1
  5. package/dist-lib/components/verkoop/FloridayStageLine.d.ts +11 -0
  6. package/dist-lib/components/verkoop/FloridayStageLine.d.ts.map +1 -0
  7. package/dist-lib/components/verkoop/FloridayStageLine.js +17 -0
  8. package/dist-lib/components/verkoop/PlanCoverageBadge.d.ts +1 -1
  9. package/dist-lib/components/verkoop/PlanCoverageBadge.d.ts.map +1 -1
  10. package/dist-lib/components/verkoop/PlanCoverageBadge.js +5 -2
  11. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
  12. package/dist-lib/components/verkoop/SalesOrderDetailView.js +33 -5
  13. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
  14. package/dist-lib/components/verkoop/SalesOrdersTable.js +4 -8
  15. package/dist-lib/components/verkoop/VerkoopOrdersPage.js +1 -1
  16. package/dist-lib/integrations/supabase/types.d.ts +1158 -0
  17. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  18. package/dist-lib/lib/belading.server.d.ts +0 -11
  19. package/dist-lib/lib/belading.server.d.ts.map +1 -1
  20. package/dist-lib/lib/belading.server.js +4 -41
  21. package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
  22. package/dist-lib/lib/cart-replan.functions.js +3 -22
  23. package/dist-lib/lib/central-secrets.server.d.ts +5 -0
  24. package/dist-lib/lib/central-secrets.server.d.ts.map +1 -0
  25. package/dist-lib/lib/central-secrets.server.js +65 -0
  26. package/dist-lib/lib/create-order.functions.d.ts +15 -0
  27. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  28. package/dist-lib/lib/create-order.functions.js +28 -13
  29. package/dist-lib/lib/engine-block-alerts.d.ts +22 -0
  30. package/dist-lib/lib/engine-block-alerts.d.ts.map +1 -0
  31. package/dist-lib/lib/engine-block-alerts.js +43 -0
  32. package/dist-lib/lib/engine-block-alerts.server.d.ts +7 -0
  33. package/dist-lib/lib/engine-block-alerts.server.d.ts.map +1 -0
  34. package/dist-lib/lib/engine-block-alerts.server.js +75 -0
  35. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  36. package/dist-lib/lib/floriday-mirror.functions.js +21 -36
  37. package/dist-lib/lib/floriday-status.d.ts +40 -0
  38. package/dist-lib/lib/floriday-status.d.ts.map +1 -0
  39. package/dist-lib/lib/floriday-status.js +80 -0
  40. package/dist-lib/lib/floriday-status.server.d.ts +7 -0
  41. package/dist-lib/lib/floriday-status.server.d.ts.map +1 -0
  42. package/dist-lib/lib/floriday-status.server.js +74 -0
  43. package/dist-lib/lib/load-carriers.server.d.ts +1 -1
  44. package/dist-lib/lib/load-carriers.server.d.ts.map +1 -1
  45. package/dist-lib/lib/load-carriers.server.js +3 -6
  46. package/dist-lib/lib/logistics-engine.server.d.ts.map +1 -1
  47. package/dist-lib/lib/logistics-engine.server.js +2 -22
  48. package/dist-lib/lib/order-block-mail.server.d.ts.map +1 -1
  49. package/dist-lib/lib/order-block-mail.server.js +31 -15
  50. package/dist-lib/lib/order-cancel.server.d.ts +9 -0
  51. package/dist-lib/lib/order-cancel.server.d.ts.map +1 -1
  52. package/dist-lib/lib/order-cancel.server.js +90 -0
  53. package/dist-lib/lib/plan-coverage.check.d.ts +2 -0
  54. package/dist-lib/lib/plan-coverage.check.d.ts.map +1 -0
  55. package/dist-lib/lib/plan-coverage.check.js +17 -0
  56. package/dist-lib/lib/plan-coverage.d.ts +12 -0
  57. package/dist-lib/lib/plan-coverage.d.ts.map +1 -1
  58. package/dist-lib/lib/plan-coverage.js +27 -1
  59. package/dist-lib/lib/plan-coverage.server.d.ts.map +1 -1
  60. package/dist-lib/lib/plan-coverage.server.js +20 -13
  61. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  62. package/dist-lib/lib/salesorders-list.server.js +54 -0
  63. package/dist-lib/lib/salesorders-mapping.d.ts +11 -0
  64. package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
  65. package/dist-lib/lib/salesorders.functions.d.ts +1 -5
  66. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  67. package/dist-lib/lib/salesorders.functions.js +26 -2
  68. package/package.json +2 -2
@@ -5,6 +5,7 @@ import { cratePackageName, loadCarrierName, mergeTypeNames } from "./load-carrie
5
5
  import { engineLoadCarrierLabel, normalizeLoadCarrierCode } from "./load-carriers";
6
6
  import { normalizeTime, resolveDeliveryTimeForDate } from "./carrier-availability";
7
7
  import { loadPlanCoverage } from "./plan-coverage.server";
8
+ import { combineStages } from "./floriday-status";
8
9
  import { mergeSummaries, summarize } from "./plan-coverage";
9
10
  import { resolveOrderNumbers } from "./order-numbers.server";
10
11
  import { mergeStages, resolveOrderStage } from "./order-status";
@@ -715,6 +716,19 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
715
716
  ...(r.delivery_date ? [] : ["geen leverdatum"]),
716
717
  ],
717
718
  packingSource: localPackingSource,
719
+ priceLines: lineItems.map((it) => ({
720
+ pieces: toNumber(it?.quantity) || 0,
721
+ unitPrice: toNumber(it?.unit_price) || 0,
722
+ })),
723
+ missingPrice: sourceRaw !== "floriday" &&
724
+ !r.floriday_sales_order_id &&
725
+ lineItems.some((it) => !(toNumber(it?.unit_price) > 0)),
726
+ floridayIds: sourceRaw === "floriday" || r.floriday_sales_order_id
727
+ ? Array.from(new Set([
728
+ r.floriday_sales_order_id ? String(r.floriday_sales_order_id) : null,
729
+ ...lineItems.map((it) => (it?.source_line_key ? String(it.source_line_key) : null)),
730
+ ].filter((v) => !!v && /^[0-9a-f-]{36}$/i.test(v))))
731
+ : [],
718
732
  raw: {
719
733
  order: {
720
734
  status: r.status ?? null,
@@ -870,6 +884,8 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
870
884
  incomplete,
871
885
  engineCounts: members.some((m) => m.engineCounts),
872
886
  planCoverage: mergeSummaries(members.map((m) => m.planCoverage)),
887
+ missingPrice: members.some((m) => m.missingPrice),
888
+ floridayStatus: mergeFloridayStatus(members.map((m) => m.floridayStatus)),
873
889
  shifted: members.some((m) => m.shifted),
874
890
  printedAt: members.map((m) => m.printedAt).find((v) => !!v) ?? null,
875
891
  pickDate: members
@@ -1035,6 +1051,29 @@ export async function buildSalesOrdersList(supabase, params, connectionSupabase
1035
1051
  }
1036
1052
  }
1037
1053
  }
1054
+ // 15) Floriday-stand uit het statusoverzicht (alleen weergave), alleen voor de
1055
+ // zichtbare rijen, in één verzoek (max 100). Fail closed: "stand onbekend".
1056
+ if (!params.all) {
1057
+ const visible = pageGroups.flat();
1058
+ const idsOf = (o) => o.floridayIds && o.floridayIds.length
1059
+ ? o.floridayIds
1060
+ : !o.id.startsWith("local:") && !o.id.startsWith("mailbox-proposal:") && /^[0-9a-f-]{36}$/i.test(o.id) && !o.isLocal
1061
+ ? [o.id]
1062
+ : [];
1063
+ const allIds = Array.from(new Set(visible.flatMap(idsOf))).slice(0, 100);
1064
+ if (allIds.length) {
1065
+ const { loadFloridayStatuses } = await import("./floriday-status.server");
1066
+ const res = await loadFloridayStatuses(allIds);
1067
+ for (const o of visible) {
1068
+ const ids = idsOf(o);
1069
+ if (!ids.length)
1070
+ continue;
1071
+ o.floridayStatus = summarizeFloridayStatus(ids, res.entries, res.error);
1072
+ }
1073
+ if (res.error)
1074
+ warnings.push(`Floriday-stand niet beschikbaar (${res.error}).`);
1075
+ }
1076
+ }
1038
1077
  const rows = pageGroups.map(mergeGroup);
1039
1078
  // Totalen over de volledige gefilterde set (alle orders in elke buffer).
1040
1079
  const totals = computeTotals(filteredGroups.map(mergeGroup));
@@ -1094,3 +1133,18 @@ async function loadGroupPacking(supabase) {
1094
1133
  }
1095
1134
  return byName;
1096
1135
  }
1136
+ function summarizeFloridayStatus(ids, entries, error) {
1137
+ const found = ids.map((id) => entries.get(id)).filter((e) => !!e);
1138
+ if (found.length === 0)
1139
+ return { stage: "onbekend", error: error ?? "geen antwoord", entries: [] };
1140
+ return { stage: combineStages(found.map((e) => e.floridayStage)), error: null, entries: found };
1141
+ }
1142
+ function mergeFloridayStatus(list) {
1143
+ const present = list.filter((x) => !!x);
1144
+ if (present.length === 0)
1145
+ return null;
1146
+ const entries = present.flatMap((p) => p.entries);
1147
+ if (entries.length === 0)
1148
+ return present[0];
1149
+ return { stage: combineStages(entries.map((e) => e.floridayStage)), error: null, entries };
1150
+ }
@@ -88,6 +88,17 @@ export interface SalesOrderDTO {
88
88
  backlogDays?: number | null;
89
89
  backlogLeverdatum?: string | null;
90
90
  backlogUnknown?: boolean;
91
+ /** Floriday salesOrderId's op deze order (voor het statusoverzicht). */
92
+ floridayIds?: string[];
93
+ /** Floriday-stand uit het statusoverzicht; alleen weergave. */
94
+ floridayStatus?: import("./floriday-status").FloridayStatusSummary | null;
95
+ /** Actieve orderregels: stuks en prijs per stuk (voor de totaalregel). */
96
+ priceLines?: {
97
+ pieces: number;
98
+ unitPrice: number;
99
+ }[];
100
+ /** Handmatige/Mailbox-order met minstens één regel zonder prijs. */
101
+ missingPrice?: boolean;
91
102
  /** Vervoerder van de order (indien bekend). */
92
103
  carrierName?: string | null;
93
104
  /** Concrete ontbrekende gegevens, bv. "geen klant gekoppeld". */
@@ -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,9 +1,5 @@
1
1
  import { type SalesOrderDTO } from "./salesorders-mapping";
2
- export declare function runSalesOrdersSyncFromCron(): Promise<{
3
- ok: boolean;
4
- mirrorOk: boolean;
5
- mirrored: number;
6
- }>;
2
+ export declare function runSalesOrdersSyncFromCron(): Promise<any>;
7
3
  export declare const runSalesOrdersSync: import("@tanstack/start-client-core").OptionalFetcher<readonly [import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
8
4
  supabase: import("../integrations/supabase/auth-middleware").AuthedSupabaseClient;
9
5
  userId: string;
@@ -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;QAlB1C,OAAO;cACD,OAAO;cACP,MAAM;GAkBjB;AAGD,eAAO,MAAM,kBAAkB;;;;;QAvBzB,OAAO;cACD,OAAO;cACP,MAAM;GAuB+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;;mCA2XzB,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;;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"}
@@ -51,7 +51,11 @@ async function runSalesOrdersMirror(mirrorLimit) {
51
51
  return { ok: mirrorOk, mirrorOk, mirrored };
52
52
  }
53
53
  export async function runSalesOrdersSyncFromCron() {
54
- return runSalesOrdersMirror(500);
54
+ const result = await runSalesOrdersMirror(500);
55
+ // Blokkade-alarm alleen op basis van de Engine (koppelprompt 22).
56
+ const { checkDefinitiveBlocks } = await import("./engine-block-alerts.server");
57
+ const alerts = await checkDefinitiveBlocks();
58
+ return { ...result, blockAlerts: { mailed: alerts.mailed, closed: alerts.closed } };
55
59
  }
56
60
  // Knop "Verversen": direct spiegelen uit de gedeelde cache, kleine limiet.
57
61
  export const runSalesOrdersSync = createServerFn({ method: "POST" })
@@ -308,7 +312,7 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
308
312
  try {
309
313
  const ownRes = await supabase
310
314
  .from("orders")
311
- .select("id, buffer_id, status, is_reservation, custom_fields, order_items(product_id, product_name, source_line_key, quarantined_at)")
315
+ .select("id, buffer_id, status, is_reservation, custom_fields, order_items(product_id, product_name, source_line_key, quarantined_at, quantity, unit_price)")
312
316
  .eq("floriday_sales_order_id", data.id)
313
317
  .maybeSingle();
314
318
  const ownRow = ownRes.data ?? null;
@@ -361,6 +365,26 @@ export const getSalesOrderDetail = createServerFn({ method: "POST" })
361
365
  }
362
366
  }
363
367
  bufferId = ownRow?.buffer_id ?? null;
368
+ // Totaalregel: actieve orderregels (stuks × prijs per stuk).
369
+ const activeItems = (ownRow?.order_items ?? []).filter((it) => !it?.quarantined_at);
370
+ if (activeItems.length) {
371
+ dto.priceLines = activeItems.map((it) => ({
372
+ pieces: Number(it?.quantity) || 0,
373
+ unitPrice: Number(it?.unit_price) || 0,
374
+ }));
375
+ }
376
+ // Floriday-stand (alleen weergave), voor alle bestellingen op deze order.
377
+ {
378
+ const foIds = Array.from(new Set([String(data.id), ...activeItems.map((it) => String(it?.source_line_key ?? ""))].filter((v) => /^[0-9a-f-]{36}$/i.test(v)))).slice(0, 100);
379
+ const { loadFloridayStatuses } = await import("./floriday-status.server");
380
+ const { combineStages } = await import("./floriday-status");
381
+ const res = await loadFloridayStatuses(foIds);
382
+ const found = foIds.map((id) => res.entries.get(id)).filter((e) => !!e);
383
+ dto.floridayStatus =
384
+ found.length > 0
385
+ ? { stage: combineStages(found.map((e) => e.floridayStage)), error: null, entries: found }
386
+ : { stage: "onbekend", error: res.error ?? "geen antwoord", entries: [] };
387
+ }
364
388
  if (bufferId) {
365
389
  dto.bufferId = bufferId;
366
390
  const sibRes = await supabase
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@flowselections/floriday-verkoop-module",
3
- "version": "1.0.76",
3
+ "version": "1.0.79",
4
4
  "private": false,
5
5
  "sideEffects": false,
6
6
  "type": "module",
@@ -52,7 +52,7 @@
52
52
  "@cloudflare/vite-plugin": "^1.25.5",
53
53
  "@eslint/js": "^9.32.0",
54
54
  "@flowselections/core": "1.0.29",
55
- "@lovable.dev/vite-tanstack-config": "2.25.3",
55
+ "@lovable.dev/vite-tanstack-config": "2.26.5",
56
56
  "@rsbuild/core": "^1.0.0",
57
57
  "@tailwindcss/vite": "^4.2.1",
58
58
  "@tanstack/react-query": "^5.83.0",