@flowselections/floriday-verkoop-module 1.0.28 → 1.0.30

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 (39) hide show
  1. package/dist-lib/components/verkoop/CreateOrderPage.d.ts.map +1 -1
  2. package/dist-lib/components/verkoop/CreateOrderPage.js +64 -20
  3. package/dist-lib/integrations/supabase/auth-middleware.d.ts +9 -0
  4. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  5. package/dist-lib/integrations/supabase/client.d.ts +9 -0
  6. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  7. package/dist-lib/integrations/supabase/client.server.d.ts +9 -0
  8. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  9. package/dist-lib/integrations/supabase/types.d.ts +9 -0
  10. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  11. package/dist-lib/lib/cart-lock.functions.d.ts +9 -0
  12. package/dist-lib/lib/cart-lock.functions.d.ts.map +1 -1
  13. package/dist-lib/lib/cart-planning-settings.functions.d.ts +99 -0
  14. package/dist-lib/lib/cart-planning-settings.functions.d.ts.map +1 -1
  15. package/dist-lib/lib/cart-replan.functions.d.ts +27 -0
  16. package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
  17. package/dist-lib/lib/cart-replan.functions.js +4 -4
  18. package/dist-lib/lib/create-order.functions.d.ts +13977 -42
  19. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  20. package/dist-lib/lib/create-order.functions.js +63 -0
  21. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +27 -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 +9 -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 +9 -0
  26. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  27. package/dist-lib/lib/floriday-public.functions.d.ts +63 -0
  28. package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
  29. package/dist-lib/lib/floriday-writes.functions.d.ts +45 -0
  30. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  31. package/dist-lib/lib/order-buffers.functions.d.ts +27 -0
  32. package/dist-lib/lib/order-buffers.functions.d.ts.map +1 -1
  33. package/dist-lib/lib/order-shipments.functions.d.ts +36 -0
  34. package/dist-lib/lib/order-shipments.functions.d.ts.map +1 -1
  35. package/dist-lib/lib/salesorders.functions.d.ts +45 -0
  36. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  37. package/dist-lib/lib/tradeitems.functions.d.ts +9 -0
  38. package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
  39. package/package.json +1 -1
@@ -426,6 +426,64 @@ export const listCarriersForCreateOrder = createServerFn({ method: "GET" })
426
426
  .order("name");
427
427
  return { items: data ?? [] };
428
428
  });
429
+ // ─── Beladingen (packing-configuraties) ────────────────────────────────────
430
+ // Alle in het systeem voorkomende beladingen: planten per fust ×
431
+ // fusten per laag × lagen per kar. Bron: Floriday trade items, interne
432
+ // concept-artikelen en de products-tabel. De handmatige bestel-flow gebruikt
433
+ // deze lijst om de standaardbelading van een product te kunnen wijzigen.
434
+ export const listBeladingOptions = createServerFn({ method: "GET" })
435
+ .middleware([requireSupabaseAuth])
436
+ .handler(async ({ context }) => {
437
+ const [tradeItemsRes, draftsRes, productsRes] = await Promise.all([
438
+ context.supabase
439
+ .from("floriday_trade_items_cache")
440
+ .select("data")
441
+ .eq("is_deleted", false)
442
+ .range(0, 4999),
443
+ context.supabase.from("trade_item_drafts").select("data").range(0, 4999),
444
+ context.supabase
445
+ .from("products")
446
+ .select("plants_per_crate, crates_per_layer, layers_per_cart")
447
+ .range(0, 4999),
448
+ ]);
449
+ const combos = new Map();
450
+ const add = (ppc, cpl, lpc) => {
451
+ const a = Math.max(1, Math.round(Number(ppc ?? 0)) || 0);
452
+ const b = Math.max(1, Math.round(Number(cpl ?? 0)) || 0);
453
+ const c = Math.max(1, Math.round(Number(lpc ?? 0)) || 0);
454
+ if (!Number.isFinite(a) || !Number.isFinite(b) || !Number.isFinite(c))
455
+ return;
456
+ if (a === 1 && b === 1 && c === 1)
457
+ return;
458
+ combos.set(`${a}x${b}x${c}`, { plants_per_crate: a, crates_per_layer: b, layers_per_cart: c });
459
+ };
460
+ const addFromPackings = (d) => {
461
+ const packs = Array.isArray(d?.packingConfigurations) ? d.packingConfigurations : [];
462
+ for (const p of packs) {
463
+ add(p?.piecesPerPackage ?? p?.unitsPerPackage, p?.packagesPerLayer, p?.layersPerLoadCarrier);
464
+ }
465
+ };
466
+ for (const r of Array.isArray(tradeItemsRes.data) ? tradeItemsRes.data : []) {
467
+ addFromPackings(r?.data);
468
+ }
469
+ for (const r of Array.isArray(draftsRes.data) ? draftsRes.data : []) {
470
+ addFromPackings(r?.data);
471
+ }
472
+ for (const p of Array.isArray(productsRes.data) ? productsRes.data : []) {
473
+ add(p.plants_per_crate, p.crates_per_layer, p.layers_per_cart);
474
+ }
475
+ const items = Array.from(combos.entries())
476
+ .map(([key, v]) => ({
477
+ key,
478
+ ...v,
479
+ crates_per_cart: v.crates_per_layer * v.layers_per_cart,
480
+ plants_per_cart: v.plants_per_crate * v.crates_per_layer * v.layers_per_cart,
481
+ }))
482
+ .sort((a, b) => a.plants_per_crate - b.plants_per_crate ||
483
+ a.crates_per_layer - b.crates_per_layer ||
484
+ a.layers_per_cart - b.layers_per_cart);
485
+ return { items };
486
+ });
429
487
  // ─── Orderpicktijd (dagen) ──────────────────────────────────────────────────
430
488
  export const getOrderPickDaysCO = createServerFn({ method: "GET" })
431
489
  .middleware([requireSupabaseAuth])
@@ -624,6 +682,11 @@ export const createManualOrder = createServerFn({ method: "POST" })
624
682
  product_name: displayName,
625
683
  quantity: Math.max(1, Math.round(l.quantity)),
626
684
  unit: l.unit ?? "stuks",
685
+ // Gekozen belading vastleggen op de regel zelf, zodat de karindeling
686
+ // de handmatige keuze gebruikt i.p.v. de standaard van het product.
687
+ plants_per_crate: l.plants_per_crate ?? null,
688
+ crates_per_layer: l.crates_per_layer ?? null,
689
+ layers_per_cart: l.layers_per_cart ?? null,
627
690
  unit_price: l.unit_price ?? undefined,
628
691
  };
629
692
  });
@@ -8310,9 +8310,12 @@ export declare const getPreferredWarehouseStatus: import("@tanstack/start-client
8310
8310
  };
8311
8311
  order_items: {
8312
8312
  Row: {
8313
+ crates_per_layer: number | null;
8313
8314
  created_at: string;
8314
8315
  id: string;
8316
+ layers_per_cart: number | null;
8315
8317
  order_id: string;
8318
+ plants_per_crate: number | null;
8316
8319
  product_id: string | null;
8317
8320
  product_name: string;
8318
8321
  quantity: number;
@@ -8320,9 +8323,12 @@ export declare const getPreferredWarehouseStatus: import("@tanstack/start-client
8320
8323
  unit_price: number | null;
8321
8324
  };
8322
8325
  Insert: {
8326
+ crates_per_layer?: number | null;
8323
8327
  created_at?: string;
8324
8328
  id?: string;
8329
+ layers_per_cart?: number | null;
8325
8330
  order_id: string;
8331
+ plants_per_crate?: number | null;
8326
8332
  product_id?: string | null;
8327
8333
  product_name: string;
8328
8334
  quantity?: number;
@@ -8330,9 +8336,12 @@ export declare const getPreferredWarehouseStatus: import("@tanstack/start-client
8330
8336
  unit_price?: number | null;
8331
8337
  };
8332
8338
  Update: {
8339
+ crates_per_layer?: number | null;
8333
8340
  created_at?: string;
8334
8341
  id?: string;
8342
+ layers_per_cart?: number | null;
8335
8343
  order_id?: string;
8344
+ plants_per_crate?: number | null;
8336
8345
  product_id?: string | null;
8337
8346
  product_name?: string;
8338
8347
  quantity?: number;
@@ -22122,9 +22131,12 @@ export declare const getAutoFulfillmentStatus: import("@tanstack/start-client-co
22122
22131
  };
22123
22132
  order_items: {
22124
22133
  Row: {
22134
+ crates_per_layer: number | null;
22125
22135
  created_at: string;
22126
22136
  id: string;
22137
+ layers_per_cart: number | null;
22127
22138
  order_id: string;
22139
+ plants_per_crate: number | null;
22128
22140
  product_id: string | null;
22129
22141
  product_name: string;
22130
22142
  quantity: number;
@@ -22132,9 +22144,12 @@ export declare const getAutoFulfillmentStatus: import("@tanstack/start-client-co
22132
22144
  unit_price: number | null;
22133
22145
  };
22134
22146
  Insert: {
22147
+ crates_per_layer?: number | null;
22135
22148
  created_at?: string;
22136
22149
  id?: string;
22150
+ layers_per_cart?: number | null;
22137
22151
  order_id: string;
22152
+ plants_per_crate?: number | null;
22138
22153
  product_id?: string | null;
22139
22154
  product_name: string;
22140
22155
  quantity?: number;
@@ -22142,9 +22157,12 @@ export declare const getAutoFulfillmentStatus: import("@tanstack/start-client-co
22142
22157
  unit_price?: number | null;
22143
22158
  };
22144
22159
  Update: {
22160
+ crates_per_layer?: number | null;
22145
22161
  created_at?: string;
22146
22162
  id?: string;
22163
+ layers_per_cart?: number | null;
22147
22164
  order_id?: string;
22165
+ plants_per_crate?: number | null;
22148
22166
  product_id?: string | null;
22149
22167
  product_name?: string;
22150
22168
  quantity?: number;
@@ -35943,9 +35961,12 @@ export declare const retryAutoFulfillment: import("@tanstack/start-client-core")
35943
35961
  };
35944
35962
  order_items: {
35945
35963
  Row: {
35964
+ crates_per_layer: number | null;
35946
35965
  created_at: string;
35947
35966
  id: string;
35967
+ layers_per_cart: number | null;
35948
35968
  order_id: string;
35969
+ plants_per_crate: number | null;
35949
35970
  product_id: string | null;
35950
35971
  product_name: string;
35951
35972
  quantity: number;
@@ -35953,9 +35974,12 @@ export declare const retryAutoFulfillment: import("@tanstack/start-client-core")
35953
35974
  unit_price: number | null;
35954
35975
  };
35955
35976
  Insert: {
35977
+ crates_per_layer?: number | null;
35956
35978
  created_at?: string;
35957
35979
  id?: string;
35980
+ layers_per_cart?: number | null;
35958
35981
  order_id: string;
35982
+ plants_per_crate?: number | null;
35959
35983
  product_id?: string | null;
35960
35984
  product_name: string;
35961
35985
  quantity?: number;
@@ -35963,9 +35987,12 @@ export declare const retryAutoFulfillment: import("@tanstack/start-client-core")
35963
35987
  unit_price?: number | null;
35964
35988
  };
35965
35989
  Update: {
35990
+ crates_per_layer?: number | null;
35966
35991
  created_at?: string;
35967
35992
  id?: string;
35993
+ layers_per_cart?: number | null;
35968
35994
  order_id?: string;
35995
+ plants_per_crate?: number | null;
35969
35996
  product_id?: string | null;
35970
35997
  product_name?: string;
35971
35998
  quantity?: number;