@flowselections/floriday-verkoop-module 1.0.49 → 1.0.51

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 (61) hide show
  1. package/dist-lib/integrations/supabase/auth-middleware.d.ts +288 -1
  2. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  3. package/dist-lib/integrations/supabase/client.d.ts +288 -1
  4. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  5. package/dist-lib/integrations/supabase/client.server.d.ts +288 -1
  6. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  7. package/dist-lib/integrations/supabase/types.d.ts +294 -1
  8. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  9. package/dist-lib/lib/cart-lock.functions.d.ts +288 -1
  10. package/dist-lib/lib/cart-lock.functions.d.ts.map +1 -1
  11. package/dist-lib/lib/cart-planner.d.ts +15 -4
  12. package/dist-lib/lib/cart-planner.d.ts.map +1 -1
  13. package/dist-lib/lib/cart-planner.js +44 -12
  14. package/dist-lib/lib/cart-planning-settings.functions.d.ts +3600 -443
  15. package/dist-lib/lib/cart-planning-settings.functions.d.ts.map +1 -1
  16. package/dist-lib/lib/cart-replan.functions.d.ts +876 -3
  17. package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
  18. package/dist-lib/lib/cart-replan.functions.js +49 -3
  19. package/dist-lib/lib/create-order.functions.d.ts +5657 -773
  20. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  21. package/dist-lib/lib/create-order.functions.js +48 -4
  22. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +864 -3
  23. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +1 -1
  24. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +288 -1
  25. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts.map +1 -1
  26. package/dist-lib/lib/floriday-mirror.functions.d.ts +288 -1
  27. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  28. package/dist-lib/lib/floriday-mirror.functions.js +28 -1
  29. package/dist-lib/lib/floriday-public.functions.d.ts +2232 -223
  30. package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
  31. package/dist-lib/lib/floriday-writes.functions.d.ts +1548 -113
  32. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  33. package/dist-lib/lib/invoice-timing.functions.d.ts +1260 -112
  34. package/dist-lib/lib/invoice-timing.functions.d.ts.map +1 -1
  35. package/dist-lib/lib/load-carriers.functions.d.ts +288 -1
  36. package/dist-lib/lib/load-carriers.functions.d.ts.map +1 -1
  37. package/dist-lib/lib/logistics-engine.functions.d.ts +1548 -113
  38. package/dist-lib/lib/logistics-engine.functions.d.ts.map +1 -1
  39. package/dist-lib/lib/logistics-stock.functions.d.ts +576 -2
  40. package/dist-lib/lib/logistics-stock.functions.d.ts.map +1 -1
  41. package/dist-lib/lib/order-addresses.functions.d.ts +288 -1
  42. package/dist-lib/lib/order-addresses.functions.d.ts.map +1 -1
  43. package/dist-lib/lib/order-buffers.functions.d.ts +864 -3
  44. package/dist-lib/lib/order-buffers.functions.d.ts.map +1 -1
  45. package/dist-lib/lib/order-carrier.functions.d.ts +576 -2
  46. package/dist-lib/lib/order-carrier.functions.d.ts.map +1 -1
  47. package/dist-lib/lib/order-pickup.functions.d.ts +576 -2
  48. package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
  49. package/dist-lib/lib/order-shipments.functions.d.ts +1260 -112
  50. package/dist-lib/lib/order-shipments.functions.d.ts.map +1 -1
  51. package/dist-lib/lib/salesorders-list.functions.d.ts +288 -1
  52. package/dist-lib/lib/salesorders-list.functions.d.ts.map +1 -1
  53. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  54. package/dist-lib/lib/salesorders-list.server.js +61 -3
  55. package/dist-lib/lib/salesorders.functions.d.ts +1548 -113
  56. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  57. package/dist-lib/lib/stock-consumption-alerts.functions.d.ts +576 -2
  58. package/dist-lib/lib/stock-consumption-alerts.functions.d.ts.map +1 -1
  59. package/dist-lib/lib/tradeitems.functions.d.ts +288 -1
  60. package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
  61. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"cart-planner.d.ts","sourceRoot":"","sources":["../../src/lib/cart-planner.ts"],"names":[],"mappings":"AAaA,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AAqJD,wBAAgB,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAsH7F"}
1
+ {"version":3,"file":"cart-planner.d.ts","sourceRoot":"","sources":["../../src/lib/cart-planner.ts"],"names":[],"mappings":"AAeA,eAAO,MAAM,oBAAoB,IAAI,CAAC;AAEtC,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,oDAAoD;IACpD,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,gBAAgB,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAC5C,eAAe,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;CAC5C;AAGD,MAAM,WAAW,eAAe;IAC9B,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,uEAAuE;IACvE,cAAc,EAAE,MAAM,CAAC;IACvB,kEAAkE;IAClE,eAAe,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,WAAW;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,eAAe,EAAE,CAAC;CAC1B;AAED,2EAA2E;AAC3E,MAAM,WAAW,kBAAkB;IACjC,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,eAAe,GAAG,sBAAsB,CAAC;IACjD,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,uDAAuD;IACvD,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,cAAc;IAC7B,gFAAgF;IAChF,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,0EAA0E;IAC1E,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,kDAAkD;IAClD,kBAAkB,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;CAClC;AA+JD,wBAAgB,SAAS,CAAC,MAAM,EAAE,gBAAgB,EAAE,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,aAAa,CAqJ7F"}
@@ -10,7 +10,9 @@
10
10
  // * som per laag ≤ 100%,
11
11
  // * laag-hoogte bij combinatie = max(laag-hoogte partijen) (veiligheid),
12
12
  // * totaal-hoogte per kar ≤ 100%.
13
- export const CART_PLANNER_VERSION = 1;
13
+ // Houd deze waarde gelijk aan LOAD_CARRIER_PLANNER_VERSION in de
14
+ // logistiek-engine: beide worden SAMEN opgehoogd bij een algoritmewijziging.
15
+ export const CART_PLANNER_VERSION = 3;
14
16
  const DEFAULT_OPTIONS = {
15
17
  maxPartySharePerLayerPct: 50,
16
18
  maxBeladingenPerLayer: 2,
@@ -129,18 +131,48 @@ export function planCarts(inputs, options) {
129
131
  neverMixProductIds: options?.neverMixProductIds ?? DEFAULT_OPTIONS.neverMixProductIds,
130
132
  };
131
133
  const warnings = [];
134
+ const blocked = [];
132
135
  const carts = [];
133
136
  let cartNumber = 1;
134
- // Normaliseer inputs, filter lege.
135
- const items = inputs
136
- .map((i) => ({
137
- ...i,
138
- plants: Math.max(0, Math.round(i.plants)),
139
- plants_per_crate: Math.max(1, Math.round(i.plants_per_crate || 1)),
140
- crates_per_layer: Math.max(1, Math.round(i.crates_per_layer || 1)),
141
- layers_per_cart: Math.max(1, Math.round(i.layers_per_cart || 1)),
142
- }))
143
- .filter((i) => i.plants > 0);
137
+ const num = (v) => {
138
+ if (v === null || v === undefined)
139
+ return null;
140
+ const n = Math.round(Number(v));
141
+ return Number.isFinite(n) && n > 0 ? n : null;
142
+ };
143
+ // Normaliseer inputs. GEEN terugval op 1: ontbrekende belading blokkeert.
144
+ const items = [];
145
+ for (const i of inputs) {
146
+ const plants = Math.max(0, Math.round(Number(i.plants) || 0));
147
+ if (plants <= 0)
148
+ continue;
149
+ const ppc = num(i.plants_per_crate);
150
+ const cpl = num(i.crates_per_layer);
151
+ const lpc = num(i.layers_per_cart);
152
+ const missing = [
153
+ ppc === null ? "plants_per_crate" : null,
154
+ cpl === null ? "crates_per_layer" : null,
155
+ lpc === null ? "layers_per_cart" : null,
156
+ ].filter((m) => m !== null);
157
+ if (missing.length > 0) {
158
+ blocked.push({
159
+ order_item_id: i.order_item_id,
160
+ product_id: i.product_id,
161
+ product_name: i.product_name,
162
+ reason: missing.length === 3 ? "geen_belading" : "onvolledige_belading",
163
+ missing,
164
+ });
165
+ warnings.push(`Geen karren gepland voor "${i.product_name}": belading onbekend (${missing.join(", ")}).`);
166
+ continue;
167
+ }
168
+ items.push({
169
+ ...i,
170
+ plants,
171
+ plants_per_crate: ppc,
172
+ crates_per_layer: cpl,
173
+ layers_per_cart: lpc,
174
+ });
175
+ }
144
176
  // Stap A: volledige karren per artikel.
145
177
  const rests = [];
146
178
  for (const it of items) {
@@ -230,5 +262,5 @@ export function planCarts(inputs, options) {
230
262
  items,
231
263
  });
232
264
  }
233
- return { carts, warnings };
265
+ return { carts, warnings, blocked };
234
266
  }