@flowselections/floriday-verkoop-module 1.0.40 → 1.0.42

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 (94) 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 +59 -23
  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 +1429 -159
  14. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  15. package/dist-lib/integrations/supabase/client.d.ts +1429 -159
  16. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  17. package/dist-lib/integrations/supabase/client.server.d.ts +1429 -159
  18. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  19. package/dist-lib/integrations/supabase/types.d.ts +1436 -161
  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 +1429 -159
  23. package/dist-lib/lib/cart-lock.functions.d.ts.map +1 -1
  24. package/dist-lib/lib/cart-planning-settings.functions.d.ts +15410 -1440
  25. package/dist-lib/lib/cart-planning-settings.functions.d.ts.map +1 -1
  26. package/dist-lib/lib/cart-replan.functions.d.ts +4290 -480
  27. package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
  28. package/dist-lib/lib/create-order.functions.d.ts +42631 -1921
  29. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  30. package/dist-lib/lib/create-order.functions.js +30 -0
  31. package/dist-lib/lib/cron/index.d.ts +1 -0
  32. package/dist-lib/lib/cron/index.d.ts.map +1 -1
  33. package/dist-lib/lib/cron/index.js +1 -0
  34. package/dist-lib/lib/cron/invoice-due.d.ts +4 -0
  35. package/dist-lib/lib/cron/invoice-due.d.ts.map +1 -0
  36. package/dist-lib/lib/cron/invoice-due.js +21 -0
  37. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +4290 -480
  38. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +1 -1
  39. package/dist-lib/lib/floriday-fulfillment-status.server.d.ts +28 -0
  40. package/dist-lib/lib/floriday-fulfillment-status.server.d.ts.map +1 -0
  41. package/dist-lib/lib/floriday-fulfillment-status.server.js +91 -0
  42. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +1429 -159
  43. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts.map +1 -1
  44. package/dist-lib/lib/floriday-mirror.functions.d.ts +1429 -159
  45. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  46. package/dist-lib/lib/floriday-mirror.functions.js +27 -4
  47. package/dist-lib/lib/floriday-public.functions.d.ts +9850 -960
  48. package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
  49. package/dist-lib/lib/floriday-writes.functions.d.ts +7070 -720
  50. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  51. package/dist-lib/lib/invoice-timing.d.ts +38 -0
  52. package/dist-lib/lib/invoice-timing.d.ts.map +1 -0
  53. package/dist-lib/lib/invoice-timing.functions.d.ts +86633 -0
  54. package/dist-lib/lib/invoice-timing.functions.d.ts.map +1 -0
  55. package/dist-lib/lib/invoice-timing.functions.js +88 -0
  56. package/dist-lib/lib/invoice-timing.js +139 -0
  57. package/dist-lib/lib/invoice-timing.server.d.ts +22 -0
  58. package/dist-lib/lib/invoice-timing.server.d.ts.map +1 -0
  59. package/dist-lib/lib/invoice-timing.server.js +154 -0
  60. package/dist-lib/lib/load-carriers.functions.d.ts +1429 -159
  61. package/dist-lib/lib/load-carriers.functions.d.ts.map +1 -1
  62. package/dist-lib/lib/logistics-engine.functions.d.ts +7072 -722
  63. package/dist-lib/lib/logistics-engine.functions.d.ts.map +1 -1
  64. package/dist-lib/lib/logistics-stock.functions.d.ts +2900 -360
  65. package/dist-lib/lib/logistics-stock.functions.d.ts.map +1 -1
  66. package/dist-lib/lib/order-addresses.functions.d.ts +1429 -159
  67. package/dist-lib/lib/order-addresses.functions.d.ts.map +1 -1
  68. package/dist-lib/lib/order-buffers.functions.d.ts +4290 -480
  69. package/dist-lib/lib/order-buffers.functions.d.ts.map +1 -1
  70. package/dist-lib/lib/order-carrier.functions.d.ts +2900 -360
  71. package/dist-lib/lib/order-carrier.functions.d.ts.map +1 -1
  72. package/dist-lib/lib/order-pickup.functions.d.ts +2900 -360
  73. package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
  74. package/dist-lib/lib/order-shipments.functions.d.ts +5680 -600
  75. package/dist-lib/lib/order-shipments.functions.d.ts.map +1 -1
  76. package/dist-lib/lib/order-status.d.ts +33 -0
  77. package/dist-lib/lib/order-status.d.ts.map +1 -0
  78. package/dist-lib/lib/order-status.js +77 -0
  79. package/dist-lib/lib/salesorders-list.functions.d.ts +1430 -160
  80. package/dist-lib/lib/salesorders-list.functions.d.ts.map +1 -1
  81. package/dist-lib/lib/salesorders-list.functions.js +1 -1
  82. package/dist-lib/lib/salesorders-list.server.d.ts +2 -1
  83. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  84. package/dist-lib/lib/salesorders-list.server.js +145 -58
  85. package/dist-lib/lib/salesorders-mapping.d.ts +19 -0
  86. package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
  87. package/dist-lib/lib/salesorders-mapping.js +19 -7
  88. package/dist-lib/lib/salesorders.functions.d.ts +7070 -720
  89. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  90. package/dist-lib/lib/tradeitems.functions.d.ts +1429 -159
  91. package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
  92. package/dist-lib/lib/useSalesOrdersQuery.d.ts +2 -1
  93. package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
  94. 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
+ }