@flowselections/floriday-verkoop-module 1.0.12 → 1.0.14

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 (65) hide show
  1. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.d.ts +4 -0
  2. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.d.ts.map +1 -0
  3. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.js +95 -0
  4. package/dist-lib/components/verkoop/CartAssignmentWizard.d.ts +6 -0
  5. package/dist-lib/components/verkoop/CartAssignmentWizard.d.ts.map +1 -0
  6. package/dist-lib/components/verkoop/CartAssignmentWizard.js +194 -0
  7. package/dist-lib/components/verkoop/CreateOrderPage.d.ts.map +1 -1
  8. package/dist-lib/components/verkoop/CreateOrderPage.js +14 -4
  9. package/dist-lib/components/verkoop/OrderAfleverbrievenCard.d.ts +4 -0
  10. package/dist-lib/components/verkoop/OrderAfleverbrievenCard.d.ts.map +1 -0
  11. package/dist-lib/components/verkoop/OrderAfleverbrievenCard.js +44 -0
  12. package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts +5 -0
  13. package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts.map +1 -0
  14. package/dist-lib/components/verkoop/OrderKarindelingCard.js +160 -0
  15. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
  16. package/dist-lib/components/verkoop/SalesOrderDetailView.js +6 -3
  17. package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts.map +1 -1
  18. package/dist-lib/components/verkoop/VerkoopOrdersPage.js +39 -3
  19. package/dist-lib/integrations/supabase/auth-middleware.d.ts +605 -4
  20. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  21. package/dist-lib/integrations/supabase/client.d.ts +605 -4
  22. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  23. package/dist-lib/integrations/supabase/client.server.d.ts +605 -4
  24. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  25. package/dist-lib/integrations/supabase/client.server.js +4 -4
  26. package/dist-lib/integrations/supabase/types.d.ts +613 -4
  27. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  28. package/dist-lib/lib/cart-lock.functions.d.ts +11356 -0
  29. package/dist-lib/lib/cart-lock.functions.d.ts.map +1 -0
  30. package/dist-lib/lib/cart-lock.functions.js +47 -0
  31. package/dist-lib/lib/cart-planner.d.ts +38 -0
  32. package/dist-lib/lib/cart-planner.d.ts.map +1 -0
  33. package/dist-lib/lib/cart-planner.js +217 -0
  34. package/dist-lib/lib/cart-replan.functions.d.ts +22729 -0
  35. package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -0
  36. package/dist-lib/lib/cart-replan.functions.js +203 -0
  37. package/dist-lib/lib/create-order.functions.d.ts +26999 -76
  38. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  39. package/dist-lib/lib/create-order.functions.js +158 -3
  40. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +34033 -0
  41. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +1 -0
  42. package/dist-lib/lib/floriday-auto-fulfillment.functions.js +65 -0
  43. package/dist-lib/lib/floriday-auto-fulfillment.server.d.ts +21 -0
  44. package/dist-lib/lib/floriday-auto-fulfillment.server.d.ts.map +1 -0
  45. package/dist-lib/lib/floriday-auto-fulfillment.server.js +352 -0
  46. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +11351 -0
  47. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts.map +1 -0
  48. package/dist-lib/lib/floriday-logistic-labels.functions.js +171 -0
  49. package/dist-lib/lib/floriday-public.functions.d.ts +4237 -44
  50. package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
  51. package/dist-lib/lib/floriday-public.functions.js +45 -47
  52. package/dist-lib/lib/floriday-writes.functions.d.ts +3025 -20
  53. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  54. package/dist-lib/lib/salesorders-mapping.d.ts +2 -0
  55. package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
  56. package/dist-lib/lib/salesorders-mapping.js +46 -20
  57. package/dist-lib/lib/salesorders.functions.d.ts +1831 -28
  58. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  59. package/dist-lib/lib/salesorders.functions.js +8 -0
  60. package/dist-lib/lib/tradeitems.functions.d.ts +605 -4
  61. package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
  62. package/dist-lib/lib/useSalesOrdersQuery.d.ts +1 -0
  63. package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
  64. package/dist-lib/lib/useSalesOrdersQuery.js +121 -39
  65. package/package.json +1 -1
@@ -55,6 +55,38 @@ export const getFlorydayCachedList = createServerFn({ method: "POST" })
55
55
  const { data: rows, error } = await q;
56
56
  if (error)
57
57
  throw new Error(`${table} lezen faalde: ${error.message}`);
58
+ if (table === "floriday_salesorders_cache") {
59
+ const ids = (rows ?? [])
60
+ .map((r) => String(r?.floriday_id ?? r?.data?.salesOrderId ?? ""))
61
+ .filter((id) => id.length > 0);
62
+ if (ids.length > 0) {
63
+ const mapped = [];
64
+ const idSet = new Set(ids);
65
+ for (let from = 0; from < 10000; from += 1000) {
66
+ const { data: chunkRows, error: mapError } = await context.supabase
67
+ .from("floriday_order_number_map")
68
+ .select("floriday_id, order_number")
69
+ .range(from, from + 999);
70
+ if (mapError)
71
+ throw new Error(`floriday_order_number_map lezen faalde: ${mapError.message}`);
72
+ const batch = chunkRows ?? [];
73
+ mapped.push(...batch.filter((m) => idSet.has(String(m.floriday_id))));
74
+ if (batch.length < 1000)
75
+ break;
76
+ }
77
+ const orderNumbers = new Map((mapped ?? []).map((m) => [String(m.floriday_id), String(m.order_number ?? "")]));
78
+ return {
79
+ entity: data.entity,
80
+ rows: (rows ?? []).map((r) => {
81
+ const floridayId = String(r?.floriday_id ?? r?.data?.salesOrderId ?? "");
82
+ const orderNumber = orderNumbers.get(floridayId) ?? null;
83
+ return orderNumber
84
+ ? { ...r, order_number: orderNumber, data: { ...(r.data ?? {}), orderNumber } }
85
+ : r;
86
+ }),
87
+ };
88
+ }
89
+ }
58
90
  return { entity: data.entity, rows: rows ?? [] };
59
91
  });
60
92
  const CodeListSchema = z.object({
@@ -159,52 +191,18 @@ export const getFlorydayResourceSchema = createServerFn({ method: "POST" })
159
191
  throw new Error(`resource-schema lezen faalde: ${error.message}`);
160
192
  return rows?.[0] ?? null;
161
193
  });
162
- const SyncHealthSchema = z.object({
163
- environment: EnvSchema,
164
- resources: z.array(z.string()).min(1),
165
- });
166
- // Voor de FlorydaySyncHealthBanner — leest sync-state voor de actieve connectie
167
- // van de gevraagde environment en geeft per resource laatste sync-info terug.
168
- export const getFlorydaySyncHealth = createServerFn({ method: "POST" })
194
+ // Actieve Floriday-omgeving zoals ingesteld in de Authenticatie-module
195
+ // (`floriday_settings.active_environment`). Fallback → "staging".
196
+ export const getActiveFloridayEnvironment = createServerFn({ method: "GET" })
169
197
  .middleware([requireSupabaseAuth])
170
- .inputValidator((d) => SyncHealthSchema.parse(d))
171
- .handler(async ({ data, context }) => {
172
- const dbEnv = data.environment === "live" ? "production" : "staging";
173
- const { data: conns } = await context.supabase
174
- .from("floriday_connections")
175
- .select("id")
176
- .eq("environment", dbEnv)
177
- .eq("is_active", true)
178
- .limit(1);
179
- const connectionId = (conns ?? [])[0]?.id ?? null;
180
- if (!connectionId) {
181
- return { connectionId: null, resources: [] };
182
- }
183
- // Map resource → entity_type used in floriday_sync_state.
184
- const RES_TO_ENTITY = {
185
- "sales-orders": "salesorders",
186
- "trade-items": "tradeitems",
187
- "customer-organizations": "customers",
188
- "fulfillment-orders": "fulfillment-orders",
189
- };
190
- const { data: rows } = await context.supabase
191
- .from("floriday_sync_state")
192
- .select("entity_type, last_sequence_number, last_synced_at, last_success_at, last_error")
193
- .eq("connection_id", connectionId);
194
- const stateByEntity = new Map((rows ?? []).map((r) => [String(r.entity_type), r]));
195
- return {
196
- connectionId,
197
- resources: data.resources.map((res) => {
198
- const entity = RES_TO_ENTITY[res] ?? res;
199
- const s = stateByEntity.get(entity) ?? null;
200
- return {
201
- resource: res,
202
- entityType: entity,
203
- lastSyncedAt: s?.last_synced_at ?? null,
204
- lastSuccessAt: s?.last_success_at ?? null,
205
- lastSequenceNumber: s?.last_sequence_number ?? null,
206
- lastError: s?.last_error ?? null,
207
- };
208
- }),
209
- };
198
+ .handler(async () => {
199
+ const { supabaseAdmin } = await import("../integrations/supabase/client.server");
200
+ const { data } = await supabaseAdmin
201
+ .from("floriday_settings")
202
+ .select("active_environment")
203
+ .eq("id", 1)
204
+ .maybeSingle();
205
+ const raw = String(data?.active_environment ?? "staging");
206
+ const env = raw === "production" || raw === "prod" || raw === "live" ? "live" : "staging";
207
+ return { environment: env };
210
208
  });