@flowselections/floriday-verkoop-module 1.0.48 → 1.0.49

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 (67) hide show
  1. package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts.map +1 -1
  2. package/dist-lib/components/verkoop/OrderKarindelingCard.js +5 -1
  3. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
  4. package/dist-lib/components/verkoop/SalesOrderDetailView.js +6 -4
  5. package/dist-lib/integrations/supabase/auth-middleware.d.ts +8 -0
  6. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  7. package/dist-lib/integrations/supabase/client.d.ts +8 -0
  8. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  9. package/dist-lib/integrations/supabase/client.server.d.ts +8 -0
  10. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  11. package/dist-lib/integrations/supabase/types.d.ts +8 -0
  12. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  13. package/dist-lib/lib/cart-lock.functions.d.ts +8 -0
  14. package/dist-lib/lib/cart-lock.functions.d.ts.map +1 -1
  15. package/dist-lib/lib/cart-planning-settings.functions.d.ts +88 -0
  16. package/dist-lib/lib/cart-planning-settings.functions.d.ts.map +1 -1
  17. package/dist-lib/lib/cart-replan.functions.d.ts +24 -0
  18. package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
  19. package/dist-lib/lib/create-order.functions.d.ts +136 -0
  20. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  21. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +24 -0
  22. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +1 -1
  23. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +8 -0
  24. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts.map +1 -1
  25. package/dist-lib/lib/floriday-mirror.functions.d.ts +8 -0
  26. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  27. package/dist-lib/lib/floriday-mirror.functions.js +11 -0
  28. package/dist-lib/lib/floriday-public.functions.d.ts +56 -0
  29. package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
  30. package/dist-lib/lib/floriday-writes.functions.d.ts +40 -0
  31. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  32. package/dist-lib/lib/invoice-timing.functions.d.ts +32 -0
  33. package/dist-lib/lib/invoice-timing.functions.d.ts.map +1 -1
  34. package/dist-lib/lib/load-carrier-labels.d.ts +13 -0
  35. package/dist-lib/lib/load-carrier-labels.d.ts.map +1 -1
  36. package/dist-lib/lib/load-carrier-labels.js +20 -0
  37. package/dist-lib/lib/load-carriers.functions.d.ts +8 -0
  38. package/dist-lib/lib/load-carriers.functions.d.ts.map +1 -1
  39. package/dist-lib/lib/logistics-engine.functions.d.ts +40 -0
  40. package/dist-lib/lib/logistics-engine.functions.d.ts.map +1 -1
  41. package/dist-lib/lib/logistics-stock.functions.d.ts +16 -0
  42. package/dist-lib/lib/logistics-stock.functions.d.ts.map +1 -1
  43. package/dist-lib/lib/order-addresses.functions.d.ts +8 -0
  44. package/dist-lib/lib/order-addresses.functions.d.ts.map +1 -1
  45. package/dist-lib/lib/order-buffers.functions.d.ts +24 -0
  46. package/dist-lib/lib/order-buffers.functions.d.ts.map +1 -1
  47. package/dist-lib/lib/order-carrier.functions.d.ts +16 -0
  48. package/dist-lib/lib/order-carrier.functions.d.ts.map +1 -1
  49. package/dist-lib/lib/order-pickup.functions.d.ts +16 -0
  50. package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
  51. package/dist-lib/lib/order-shipments.functions.d.ts +32 -0
  52. package/dist-lib/lib/order-shipments.functions.d.ts.map +1 -1
  53. package/dist-lib/lib/salesorders-list.functions.d.ts +8 -0
  54. package/dist-lib/lib/salesorders-list.functions.d.ts.map +1 -1
  55. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  56. package/dist-lib/lib/salesorders-list.server.js +9 -1
  57. package/dist-lib/lib/salesorders-mapping.d.ts +17 -0
  58. package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
  59. package/dist-lib/lib/salesorders-mapping.js +64 -13
  60. package/dist-lib/lib/salesorders.functions.d.ts +40 -0
  61. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  62. package/dist-lib/lib/salesorders.functions.js +19 -3
  63. package/dist-lib/lib/stock-consumption-alerts.functions.d.ts +16 -0
  64. package/dist-lib/lib/stock-consumption-alerts.functions.d.ts.map +1 -1
  65. package/dist-lib/lib/tradeitems.functions.d.ts +8 -0
  66. package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
  67. package/package.json +1 -1
@@ -1,4 +1,4 @@
1
- import { centralOrderNumber, computeTotals, mapJsonbToSalesOrderDTO, } from "./salesorders-mapping";
1
+ import { centralOrderNumber, computeTotals, mapJsonbToSalesOrderDTO, packingConfigFromFloridayPacking, } from "./salesorders-mapping";
2
2
  import { cratePackageName, loadCarrierName, mergeTypeNames } from "./load-carrier-labels";
3
3
  import { normalizeLoadCarrierCode } from "./load-carriers";
4
4
  import { normalizeTime, resolveDeliveryTimeForDate } from "./carrier-availability";
@@ -397,8 +397,16 @@ export async function buildSalesOrdersList(supabase, params) {
397
397
  }
398
398
  // 9) Floriday-orders → DTO (zonder zware raw-payload richting browser).
399
399
  const floridayOrders = foRows.map((r) => {
400
+ const localRowForPacking = localRowByFoId.get(String(r.floriday_id)) ?? null;
401
+ // De order is leidend voor de belading. Heeft de cache-payload geen
402
+ // packingConfiguration, dan geldt de gespiegelde orderbelading uit
403
+ // custom_fields.floriday_packing; pas daarna het trade item (mapping).
404
+ const mirroredPacking = r.data?.packingConfiguration
405
+ ? null
406
+ : packingConfigFromFloridayPacking((localRowForPacking?.custom_fields ?? {})?.floriday_packing);
400
407
  const enriched = {
401
408
  ...r.data,
409
+ ...(mirroredPacking ? { packingConfiguration: mirroredPacking } : {}),
402
410
  ...(orderNumberByFoId.get(String(r.floriday_id))
403
411
  ? { orderNumber: orderNumberByFoId.get(String(r.floriday_id)) }
404
412
  : {}),
@@ -21,6 +21,8 @@ export interface SalesOrderDTO {
21
21
  cartTypeName?: string | null;
22
22
  /** Canonieke Engine-code van de ladingdrager (bijv. "trolley"). */
23
23
  loadCarrierType?: string | null;
24
+ /** Waar de getoonde belading vandaan komt (order | orderregel | product | trade-item). */
25
+ packingSource?: PackingSource;
24
26
  totalPieces: number;
25
27
  isLocal?: boolean;
26
28
  isReservation?: boolean;
@@ -81,6 +83,21 @@ export interface TradeItemLookupEntry {
81
83
  raw?: any;
82
84
  }
83
85
  export type TradeItemLookup = Map<string, TradeItemLookupEntry>;
86
+ /**
87
+ * Waar de belading van een rij vandaan komt. Expliciet, zodat in de code en
88
+ * in de DTO altijd zichtbaar is welke bron een getal heeft geleverd.
89
+ * - "order" : packingConfiguration van de sales order zelf (leidend)
90
+ * - "orderregel" : belading vastgelegd op de orderregel (lokale orders)
91
+ * - "product" : belading van het gekoppelde product (lokale orders)
92
+ * - "trade-item" : terugval op de standaardbelading van het artikel
93
+ */
94
+ export type PackingSource = "order" | "orderregel" | "product" | "trade-item";
95
+ /**
96
+ * Zet `orders.custom_fields.floriday_packing` (de gespiegelde belading van de
97
+ * ORDER) om naar een Floriday-vormige packingConfiguration. Alleen gebruiken
98
+ * als terugval wanneer de cache-payload er zelf geen heeft.
99
+ */
100
+ export declare function packingConfigFromFloridayPacking(fp: any): any | null;
84
101
  export declare function isCentralOrderNumber(value: unknown): value is string;
85
102
  export declare function centralOrderNumber(value: unknown): string;
86
103
  /** Rijtype + kale UUID uit een lijst-ID (`local:…`, `mailbox-proposal:…`, Floriday). */
@@ -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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"}
@@ -16,19 +16,69 @@ function pickPrimaryPacking(raw) {
16
16
  return null;
17
17
  return configs.find((c) => c?.primary === true || String(c?.primary).toLowerCase() === "true") ?? configs[0] ?? null;
18
18
  }
19
- function withLivePacking(order, packing) {
20
- if (!packing)
21
- return order;
19
+ /** Heeft de order zelf een bruikbare beladingconfiguratie? */
20
+ function hasOrderPacking(pc) {
21
+ if (!pc || typeof pc !== "object")
22
+ return false;
23
+ return (toNum(pc.piecesPerPackage, 0) > 0 ||
24
+ toNum(pc.packagesPerLayer, 0) > 0 ||
25
+ toNum(pc.layersPerLoadCarrier, 0) > 0 ||
26
+ pc.package != null ||
27
+ pc.loadCarrier != null);
28
+ }
29
+ /**
30
+ * Bepaalt de leidende beladingbron: de ORDER wint altijd. Het trade item is
31
+ * uitsluitend terugval wanneer de order geen packingConfiguration heeft.
32
+ * Het trade item blijft wél de bron voor naam/foto/sku (zie mapping onder).
33
+ */
34
+ function resolvePacking(order, tradeItemRaw) {
35
+ const orderPacking = order?.packingConfiguration;
36
+ if (hasOrderPacking(orderPacking)) {
37
+ return { order, source: "order" };
38
+ }
39
+ const fallback = pickPrimaryPacking(tradeItemRaw);
40
+ if (!fallback)
41
+ return { order, source: "trade-item" };
22
42
  return {
23
- ...order,
24
- packingConfiguration: {
25
- ...(order?.packingConfiguration ?? {}),
26
- piecesPerPackage: toNum(packing?.piecesPerPackage, toNum(order?.packingConfiguration?.piecesPerPackage, 1)),
27
- packagesPerLayer: toNum(packing?.packagesPerLayer, toNum(order?.packingConfiguration?.packagesPerLayer, 0)),
28
- layersPerLoadCarrier: toNum(packing?.layersPerLoadCarrier, toNum(order?.packingConfiguration?.layersPerLoadCarrier, 0)),
29
- package: packing?.package ?? order?.packingConfiguration?.package,
30
- loadCarrier: packing?.loadCarrier ?? order?.packingConfiguration?.loadCarrier,
43
+ order: {
44
+ ...order,
45
+ packingConfiguration: {
46
+ ...(orderPacking ?? {}),
47
+ piecesPerPackage: toNum(fallback?.piecesPerPackage, 1),
48
+ packagesPerLayer: toNum(fallback?.packagesPerLayer, 0),
49
+ layersPerLoadCarrier: toNum(fallback?.layersPerLoadCarrier, 0),
50
+ package: fallback?.package ?? orderPacking?.package ?? null,
51
+ loadCarrier: fallback?.loadCarrier ?? orderPacking?.loadCarrier ?? null,
52
+ },
31
53
  },
54
+ source: "trade-item",
55
+ };
56
+ }
57
+ /**
58
+ * Zet `orders.custom_fields.floriday_packing` (de gespiegelde belading van de
59
+ * ORDER) om naar een Floriday-vormige packingConfiguration. Alleen gebruiken
60
+ * als terugval wanneer de cache-payload er zelf geen heeft.
61
+ */
62
+ export function packingConfigFromFloridayPacking(fp) {
63
+ if (!fp || typeof fp !== "object")
64
+ return null;
65
+ if (String(fp.source ?? "order") !== "order")
66
+ return null;
67
+ const pieces = toNum(fp.pieces_per_package, 0);
68
+ const perLayer = toNum(fp.packages_per_layer, 0);
69
+ const layers = toNum(fp.layers_per_load_carrier, 0);
70
+ const vbn = fp.vbn_package_code ?? null;
71
+ const custom = fp.custom_package_id ?? null;
72
+ const carrier = fp.load_carrier ?? null;
73
+ if (pieces <= 0 && perLayer <= 0 && layers <= 0 && vbn == null && custom == null && carrier == null) {
74
+ return null;
75
+ }
76
+ return {
77
+ piecesPerPackage: pieces || 1,
78
+ packagesPerLayer: perLayer,
79
+ layersPerLoadCarrier: layers,
80
+ package: vbn != null || custom != null ? { vbnPackageCode: vbn, customPackageId: custom } : null,
81
+ loadCarrier: carrier,
32
82
  };
33
83
  }
34
84
  const CENTRAL_ORDER_NUMBER_RE = /^(FO|MO|AO|HO)-\d{7}$/;
@@ -60,8 +110,8 @@ export function mapJsonbToSalesOrderDTO(o, customerLookup, tradeItemLookup, crat
60
110
  // (geen salesOrderLines-array). Velden staan direct op het object.
61
111
  const tradeItemId = String(o?.tradeItemId ?? "");
62
112
  const tradeItem = tradeItemId ? tradeItemLookup?.get(tradeItemId) : undefined;
63
- const livePacking = pickPrimaryPacking(tradeItem?.raw);
64
- const orderWithLivePacking = withLivePacking(o, livePacking);
113
+ // De ORDER is leidend voor de belading; het trade item is enkel terugval.
114
+ const { order: orderWithLivePacking, source: packingSource } = resolvePacking(o, tradeItem?.raw);
65
115
  const numberOfPieces = toNum(orderWithLivePacking?.numberOfPieces, 0);
66
116
  const piecesPerPackage = Math.max(1, toNum(orderWithLivePacking?.packingConfiguration?.piecesPerPackage, 1));
67
117
  const numberOfPackages = piecesPerPackage > 0 ? Math.ceil(numberOfPieces / piecesPerPackage) : 0;
@@ -101,6 +151,7 @@ export function mapJsonbToSalesOrderDTO(o, customerLookup, tradeItemLookup, crat
101
151
  karCount,
102
152
  crateTypeName,
103
153
  cartTypeName,
154
+ packingSource,
104
155
  totalPieces: numberOfPieces,
105
156
  customer: {
106
157
  name: found?.name ?? "Onbekende klant",
@@ -21444,6 +21444,14 @@ export declare const runSalesOrdersSync: import("@tanstack/start-client-core").O
21444
21444
  };
21445
21445
  Returns: import("../integrations/supabase/types").Json;
21446
21446
  };
21447
+ logistics_plan_block: {
21448
+ Args: {
21449
+ p_details?: import("../integrations/supabase/types").Json;
21450
+ p_order_ids: string[];
21451
+ p_reason: string;
21452
+ };
21453
+ Returns: number;
21454
+ };
21447
21455
  logistics_plan_buffer_sql: {
21448
21456
  Args: {
21449
21457
  p_buffer_id: string;
@@ -44361,6 +44369,14 @@ export declare const createSalesOrder: import("@tanstack/start-client-core").Opt
44361
44369
  };
44362
44370
  Returns: import("../integrations/supabase/types").Json;
44363
44371
  };
44372
+ logistics_plan_block: {
44373
+ Args: {
44374
+ p_details?: import("../integrations/supabase/types").Json;
44375
+ p_order_ids: string[];
44376
+ p_reason: string;
44377
+ };
44378
+ Returns: number;
44379
+ };
44364
44380
  logistics_plan_buffer_sql: {
44365
44381
  Args: {
44366
44382
  p_buffer_id: string;
@@ -67288,6 +67304,14 @@ export declare const diagnoseFloridayConnection: import("@tanstack/start-client-
67288
67304
  };
67289
67305
  Returns: import("../integrations/supabase/types").Json;
67290
67306
  };
67307
+ logistics_plan_block: {
67308
+ Args: {
67309
+ p_details?: import("../integrations/supabase/types").Json;
67310
+ p_order_ids: string[];
67311
+ p_reason: string;
67312
+ };
67313
+ Returns: number;
67314
+ };
67291
67315
  logistics_plan_buffer_sql: {
67292
67316
  Args: {
67293
67317
  p_buffer_id: string;
@@ -90233,6 +90257,14 @@ export declare const getSalesOrderDetail: import("@tanstack/start-client-core").
90233
90257
  };
90234
90258
  Returns: import("../integrations/supabase/types").Json;
90235
90259
  };
90260
+ logistics_plan_block: {
90261
+ Args: {
90262
+ p_details?: import("../integrations/supabase/types").Json;
90263
+ p_order_ids: string[];
90264
+ p_reason: string;
90265
+ };
90266
+ Returns: number;
90267
+ };
90236
90268
  logistics_plan_buffer_sql: {
90237
90269
  Args: {
90238
90270
  p_buffer_id: string;
@@ -113149,6 +113181,14 @@ export declare const setSalesOrderControlled: import("@tanstack/start-client-cor
113149
113181
  };
113150
113182
  Returns: import("../integrations/supabase/types").Json;
113151
113183
  };
113184
+ logistics_plan_block: {
113185
+ Args: {
113186
+ p_details?: import("../integrations/supabase/types").Json;
113187
+ p_order_ids: string[];
113188
+ p_reason: string;
113189
+ };
113190
+ Returns: number;
113191
+ };
113152
113192
  logistics_plan_buffer_sql: {
113153
113193
  Args: {
113154
113194
  p_buffer_id: string;