@flowselections/floriday-verkoop-module 1.0.39 → 1.0.41

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 (93) hide show
  1. package/dist-lib/components/verkoop/EngineBufferCard.d.ts.map +1 -1
  2. package/dist-lib/components/verkoop/EngineBufferCard.js +2 -2
  3. package/dist-lib/components/verkoop/InvoiceTimingSettings.d.ts +3 -0
  4. package/dist-lib/components/verkoop/InvoiceTimingSettings.d.ts.map +1 -0
  5. package/dist-lib/components/verkoop/InvoiceTimingSettings.js +54 -0
  6. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
  7. package/dist-lib/components/verkoop/SalesOrdersTable.js +44 -91
  8. package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts.map +1 -1
  9. package/dist-lib/components/verkoop/VerkoopOrdersPage.js +9 -8
  10. package/dist-lib/index.d.ts +1 -0
  11. package/dist-lib/index.d.ts.map +1 -1
  12. package/dist-lib/index.js +3 -1
  13. package/dist-lib/integrations/supabase/auth-middleware.d.ts +577 -4
  14. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  15. package/dist-lib/integrations/supabase/client.d.ts +577 -4
  16. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  17. package/dist-lib/integrations/supabase/client.server.d.ts +577 -4
  18. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  19. package/dist-lib/integrations/supabase/types.d.ts +578 -5
  20. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  21. package/dist-lib/integrations/supabase/types.js +12 -1
  22. package/dist-lib/lib/cart-lock.functions.d.ts +577 -4
  23. package/dist-lib/lib/cart-lock.functions.d.ts.map +1 -1
  24. package/dist-lib/lib/cart-planning-settings.functions.d.ts +6347 -44
  25. package/dist-lib/lib/cart-planning-settings.functions.d.ts.map +1 -1
  26. package/dist-lib/lib/cart-replan.functions.d.ts +1731 -12
  27. package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
  28. package/dist-lib/lib/create-order.functions.d.ts +8655 -60
  29. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  30. package/dist-lib/lib/cron/index.d.ts +1 -0
  31. package/dist-lib/lib/cron/index.d.ts.map +1 -1
  32. package/dist-lib/lib/cron/index.js +1 -0
  33. package/dist-lib/lib/cron/invoice-due.d.ts +4 -0
  34. package/dist-lib/lib/cron/invoice-due.d.ts.map +1 -0
  35. package/dist-lib/lib/cron/invoice-due.js +21 -0
  36. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +1731 -12
  37. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +1 -1
  38. package/dist-lib/lib/floriday-fulfillment-status.server.d.ts +28 -0
  39. package/dist-lib/lib/floriday-fulfillment-status.server.d.ts.map +1 -0
  40. package/dist-lib/lib/floriday-fulfillment-status.server.js +91 -0
  41. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +577 -4
  42. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts.map +1 -1
  43. package/dist-lib/lib/floriday-mirror.functions.d.ts +577 -4
  44. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  45. package/dist-lib/lib/floriday-mirror.functions.js +27 -4
  46. package/dist-lib/lib/floriday-public.functions.d.ts +4039 -28
  47. package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
  48. package/dist-lib/lib/floriday-writes.functions.d.ts +2885 -20
  49. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  50. package/dist-lib/lib/invoice-timing.d.ts +38 -0
  51. package/dist-lib/lib/invoice-timing.d.ts.map +1 -0
  52. package/dist-lib/lib/invoice-timing.functions.d.ts +83845 -0
  53. package/dist-lib/lib/invoice-timing.functions.d.ts.map +1 -0
  54. package/dist-lib/lib/invoice-timing.functions.js +88 -0
  55. package/dist-lib/lib/invoice-timing.js +139 -0
  56. package/dist-lib/lib/invoice-timing.server.d.ts +22 -0
  57. package/dist-lib/lib/invoice-timing.server.d.ts.map +1 -0
  58. package/dist-lib/lib/invoice-timing.server.js +154 -0
  59. package/dist-lib/lib/load-carriers.functions.d.ts +577 -4
  60. package/dist-lib/lib/load-carriers.functions.d.ts.map +1 -1
  61. package/dist-lib/lib/logistics-engine.functions.d.ts +2887 -22
  62. package/dist-lib/lib/logistics-engine.functions.d.ts.map +1 -1
  63. package/dist-lib/lib/logistics-stock.functions.d.ts +1154 -8
  64. package/dist-lib/lib/logistics-stock.functions.d.ts.map +1 -1
  65. package/dist-lib/lib/order-addresses.functions.d.ts +577 -4
  66. package/dist-lib/lib/order-addresses.functions.d.ts.map +1 -1
  67. package/dist-lib/lib/order-buffers.functions.d.ts +1731 -12
  68. package/dist-lib/lib/order-buffers.functions.d.ts.map +1 -1
  69. package/dist-lib/lib/order-carrier.functions.d.ts +1154 -8
  70. package/dist-lib/lib/order-carrier.functions.d.ts.map +1 -1
  71. package/dist-lib/lib/order-pickup.functions.d.ts +1154 -8
  72. package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
  73. package/dist-lib/lib/order-shipments.functions.d.ts +2308 -16
  74. package/dist-lib/lib/order-shipments.functions.d.ts.map +1 -1
  75. package/dist-lib/lib/order-status.d.ts +33 -0
  76. package/dist-lib/lib/order-status.d.ts.map +1 -0
  77. package/dist-lib/lib/order-status.js +77 -0
  78. package/dist-lib/lib/salesorders-list.functions.d.ts +578 -5
  79. package/dist-lib/lib/salesorders-list.functions.d.ts.map +1 -1
  80. package/dist-lib/lib/salesorders-list.functions.js +1 -1
  81. package/dist-lib/lib/salesorders-list.server.d.ts +2 -1
  82. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  83. package/dist-lib/lib/salesorders-list.server.js +145 -58
  84. package/dist-lib/lib/salesorders-mapping.d.ts +13 -0
  85. package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
  86. package/dist-lib/lib/salesorders-mapping.js +2 -7
  87. package/dist-lib/lib/salesorders.functions.d.ts +2885 -20
  88. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  89. package/dist-lib/lib/tradeitems.functions.d.ts +577 -4
  90. package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
  91. package/dist-lib/lib/useSalesOrdersQuery.d.ts +2 -1
  92. package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
  93. package/package.json +10 -2
@@ -0,0 +1,28 @@
1
+ import type { SupabaseClient } from "@supabase/supabase-js";
2
+ export interface FloridayFulfillmentState {
3
+ /** Er ligt minstens één geaccepteerde afleverbrief voor deze verkooporder. */
4
+ fulfilled: boolean;
5
+ /** Aantal fust (packages) dat op afleverbrieven staat. */
6
+ packages: number;
7
+ /** Ontvangen bij klant/hub. */
8
+ received: boolean;
9
+ receivedAt: string | null;
10
+ /** Afleverbriefcodes, handig voor logging/debug. */
11
+ deliveryNoteCodes: string[];
12
+ /** Aangemaakt door ons ERP (auto-fulfillment) i.p.v. rechtstreeks in Floriday. */
13
+ createdByErp: boolean;
14
+ }
15
+ /**
16
+ * Bouwt een map salesOrderId -> afhandelstatus. Eén query over de
17
+ * fulfillment-cache; die tabel is klein t.o.v. de orderaantallen.
18
+ */
19
+ export declare function loadFloridayFulfillmentStates(supabase: SupabaseClient, salesOrderIds?: string[]): Promise<Map<string, FloridayFulfillmentState>>;
20
+ /** Aantal fust dat een Floriday-verkooporder in totaal zou moeten bevatten. */
21
+ export declare function expectedPackagesFromSalesOrder(data: any): number;
22
+ /**
23
+ * Volledig afgehandeld = alle verwachte fust staat op afleverbrieven.
24
+ * Zonder betrouwbaar verwacht aantal geldt "er ligt een afleverbrief" al als
25
+ * volledig; Floriday maakt per verkooporder normaal één afhandeling.
26
+ */
27
+ export declare function isFullyFulfilled(state: FloridayFulfillmentState | undefined, expectedPackages: number): boolean;
28
+ //# sourceMappingURL=floriday-fulfillment-status.server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"floriday-fulfillment-status.server.d.ts","sourceRoot":"","sources":["../../src/lib/floriday-fulfillment-status.server.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAE5D,MAAM,WAAW,wBAAwB;IACvC,8EAA8E;IAC9E,SAAS,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,QAAQ,EAAE,MAAM,CAAC;IACjB,+BAA+B;IAC/B,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,oDAAoD;IACpD,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,kFAAkF;IAClF,YAAY,EAAE,OAAO,CAAC;CACvB;AAID;;;GAGG;AACH,wBAAsB,6BAA6B,CACjD,QAAQ,EAAE,cAAc,EACxB,aAAa,CAAC,EAAE,MAAM,EAAE,GACvB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAC,CA+DhD;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,CAAC,IAAI,EAAE,GAAG,GAAG,MAAM,CAIhE;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,wBAAwB,GAAG,SAAS,EAC3C,gBAAgB,EAAE,MAAM,GACvB,OAAO,CAKT"}
@@ -0,0 +1,91 @@
1
+ const ACCEPTED_STATUSES = new Set(["ACCEPTED", "RECEIVED", "COMPLETED", "DELIVERED"]);
2
+ /**
3
+ * Bouwt een map salesOrderId -> afhandelstatus. Eén query over de
4
+ * fulfillment-cache; die tabel is klein t.o.v. de orderaantallen.
5
+ */
6
+ export async function loadFloridayFulfillmentStates(supabase, salesOrderIds) {
7
+ const wanted = salesOrderIds && salesOrderIds.length > 0 ? new Set(salesOrderIds) : null;
8
+ const result = new Map();
9
+ const { data, error } = await supabase
10
+ .from("floriday_fulfillment_orders_cache")
11
+ .select("floriday_id, status, data")
12
+ .eq("is_deleted", false)
13
+ .limit(5000);
14
+ if (error)
15
+ throw new Error(`Floriday-afhandelingen lezen faalde: ${error.message}`);
16
+ const erpFulfillmentIds = new Set();
17
+ try {
18
+ const { data: logRows } = await supabase
19
+ .from("floriday_auto_fulfillment_log")
20
+ .select("fulfillment_order_id")
21
+ .not("fulfillment_order_id", "is", null)
22
+ .limit(5000);
23
+ for (const r of (logRows ?? [])) {
24
+ if (r.fulfillment_order_id)
25
+ erpFulfillmentIds.add(String(r.fulfillment_order_id));
26
+ }
27
+ }
28
+ catch {
29
+ /* herkomst is optioneel */
30
+ }
31
+ for (const row of (data ?? [])) {
32
+ const status = String(row.status ?? row.data?.status ?? "").toUpperCase();
33
+ if (!ACCEPTED_STATUSES.has(status))
34
+ continue;
35
+ const byErp = erpFulfillmentIds.has(String(row.floriday_id));
36
+ const carriers = Array.isArray(row.data?.loadCarriers) ? row.data.loadCarriers : [];
37
+ for (const carrier of carriers) {
38
+ const items = Array.isArray(carrier?.loadCarrierItems) ? carrier.loadCarrierItems : [];
39
+ for (const item of items) {
40
+ const soId = String(item?.salesOrderId ?? "");
41
+ if (!soId)
42
+ continue;
43
+ if (wanted && !wanted.has(soId))
44
+ continue;
45
+ const prev = result.get(soId) ??
46
+ {
47
+ fulfilled: false,
48
+ packages: 0,
49
+ received: false,
50
+ receivedAt: null,
51
+ deliveryNoteCodes: [],
52
+ createdByErp: false,
53
+ };
54
+ prev.fulfilled = true;
55
+ prev.packages += Number(item?.numberOfPackages ?? 0) || 0;
56
+ if (carrier?.isReceived === true || carrier?.receiptDateTime) {
57
+ prev.received = true;
58
+ prev.receivedAt = prev.receivedAt ?? (carrier?.receiptDateTime ?? null);
59
+ }
60
+ const code = item?.deliveryNoteCode ?? carrier?.documentReference ?? null;
61
+ if (code && !prev.deliveryNoteCodes.includes(String(code))) {
62
+ prev.deliveryNoteCodes.push(String(code));
63
+ }
64
+ if (byErp)
65
+ prev.createdByErp = true;
66
+ result.set(soId, prev);
67
+ }
68
+ }
69
+ }
70
+ return result;
71
+ }
72
+ /** Aantal fust dat een Floriday-verkooporder in totaal zou moeten bevatten. */
73
+ export function expectedPackagesFromSalesOrder(data) {
74
+ const pieces = Number(data?.numberOfPieces ?? 0) || 0;
75
+ const perPackage = Math.max(1, Number(data?.packingConfiguration?.piecesPerPackage ?? 1) || 1);
76
+ return pieces > 0 ? Math.ceil(pieces / perPackage) : 0;
77
+ }
78
+ /**
79
+ * Volledig afgehandeld = alle verwachte fust staat op afleverbrieven.
80
+ * Zonder betrouwbaar verwacht aantal geldt "er ligt een afleverbrief" al als
81
+ * volledig; Floriday maakt per verkooporder normaal één afhandeling.
82
+ */
83
+ export function isFullyFulfilled(state, expectedPackages) {
84
+ if (!state?.fulfilled)
85
+ return false;
86
+ if (expectedPackages <= 0)
87
+ return true;
88
+ if (state.packages <= 0)
89
+ return true;
90
+ return state.packages >= expectedPackages;
91
+ }