@flowselections/floriday-voorraad 1.0.33 → 1.0.35

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 (62) hide show
  1. package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
  2. package/dist-lib/components/voorraad/ArtikelWizard.js +11 -5
  3. package/dist-lib/components/voorraad/ModuleHealthCard.d.ts +2 -0
  4. package/dist-lib/components/voorraad/ModuleHealthCard.d.ts.map +1 -0
  5. package/dist-lib/components/voorraad/ModuleHealthCard.js +40 -0
  6. package/dist-lib/components/voorraad/StockBulkButtons.d.ts.map +1 -1
  7. package/dist-lib/components/voorraad/StockBulkButtons.js +5 -2
  8. package/dist-lib/components/voorraad/StockPushMonitor.d.ts +4 -0
  9. package/dist-lib/components/voorraad/StockPushMonitor.d.ts.map +1 -0
  10. package/dist-lib/components/voorraad/StockPushMonitor.js +110 -0
  11. package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
  12. package/dist-lib/components/voorraad/VoorraadPage.js +2 -1
  13. package/dist-lib/components/voorraad/VoorraadStockCard.d.ts.map +1 -1
  14. package/dist-lib/components/voorraad/VoorraadStockCard.js +114 -10
  15. package/dist-lib/hooks/useStockPushJobs.d.ts +23 -0
  16. package/dist-lib/hooks/useStockPushJobs.d.ts.map +1 -0
  17. package/dist-lib/hooks/useStockPushJobs.js +86 -0
  18. package/dist-lib/hooks/useTradeItemStock.d.ts +19 -5
  19. package/dist-lib/hooks/useTradeItemStock.d.ts.map +1 -1
  20. package/dist-lib/hooks/useTradeItemStock.js +36 -18
  21. package/dist-lib/hooks/useVoorraadData.d.ts.map +1 -1
  22. package/dist-lib/hooks/useVoorraadData.js +11 -3
  23. package/dist-lib/index.d.ts +1 -0
  24. package/dist-lib/index.d.ts.map +1 -1
  25. package/dist-lib/index.js +6 -1
  26. package/dist-lib/integrations/supabase/auth-middleware.d.ts +410 -4
  27. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  28. package/dist-lib/integrations/supabase/client.d.ts +410 -4
  29. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  30. package/dist-lib/integrations/supabase/client.server.d.ts +410 -4
  31. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  32. package/dist-lib/integrations/supabase/types.d.ts +411 -5
  33. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  34. package/dist-lib/integrations/supabase/types.js +12 -1
  35. package/dist-lib/lib/centralSecrets.server.js +1 -1
  36. package/dist-lib/lib/floricode-required-features.functions.d.ts +410 -4
  37. package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
  38. package/dist-lib/lib/floriday-customer-offer.functions.d.ts +410 -4
  39. package/dist-lib/lib/floriday-customer-offer.functions.d.ts.map +1 -1
  40. package/dist-lib/lib/floriday-env.functions.d.ts +820 -8
  41. package/dist-lib/lib/floriday-env.functions.d.ts.map +1 -1
  42. package/dist-lib/lib/floriday-gateway.functions.d.ts +2460 -24
  43. package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
  44. package/dist-lib/lib/floriday-gateway.server.d.ts +14 -0
  45. package/dist-lib/lib/floriday-gateway.server.d.ts.map +1 -1
  46. package/dist-lib/lib/floriday-gateway.server.js +62 -10
  47. package/dist-lib/lib/floriday-vbn-required.functions.d.ts +820 -8
  48. package/dist-lib/lib/floriday-vbn-required.functions.d.ts.map +1 -1
  49. package/dist-lib/lib/floriday-warehouse.functions.d.ts +1230 -12
  50. package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
  51. package/dist-lib/lib/floriday-writes.functions.d.ts +820 -8
  52. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  53. package/dist-lib/lib/module-health.functions.d.ts +41725 -0
  54. package/dist-lib/lib/module-health.functions.d.ts.map +1 -0
  55. package/dist-lib/lib/module-health.functions.js +261 -0
  56. package/dist-lib/lib/module-runtime.server.d.ts +8 -1
  57. package/dist-lib/lib/module-runtime.server.d.ts.map +1 -1
  58. package/dist-lib/lib/module-runtime.server.js +103 -12
  59. package/dist-lib/lib/stock-sync.functions.d.ts +21302 -31
  60. package/dist-lib/lib/stock-sync.functions.d.ts.map +1 -1
  61. package/dist-lib/lib/stock-sync.functions.js +46 -3
  62. package/package.json +2 -2
@@ -8,31 +8,49 @@ const EMPTY = {
8
8
  notes: null,
9
9
  };
10
10
  export function stockKeyFor(params) {
11
- if (params.tradeItemId)
12
- return params.tradeItemId;
13
- if (params.draftId)
14
- return `draft:${params.draftId}`;
15
- if (params.productId)
16
- return `product:${params.productId}`;
17
- return null;
11
+ return stockKeysFor(params)[0] ?? null;
18
12
  }
19
13
  /**
20
- * Build the ordered list of candidate keys for one artikel. Wij zoeken op
21
- * ALLE bekende varianten (tradeItemId, product:{id}, draft:{id}) omdat de
22
- * voorraadrij historisch onder één van die keys kan zijn aangemaakt (bv.
23
- * concept → gepubliceerd, of gelinkt aan een ERP-product). Bij opslaan
24
- * gebruiken wij altijd de eerste (meest specifieke) key.
14
+ * Eén gedeelde sleutelvolgorde voor de hele module: Floriday-UUID →
15
+ * `products.trade_item_key` → `product:<id>` → `draft:<id>`. Alle schermen
16
+ * (kaart, overzicht, import, wizard) gebruiken deze volgorde, zodat ze nooit
17
+ * een andere voorraadrij kunnen kiezen. De eerste sleutel is tevens de
18
+ * canonieke sleutel waarop wordt opgeslagen.
25
19
  */
26
20
  export function stockKeysFor(params) {
27
21
  const keys = [];
28
- if (params.tradeItemId)
29
- keys.push(params.tradeItemId);
30
- if (params.productId)
31
- keys.push(`product:${params.productId}`);
32
- if (params.draftId)
33
- keys.push(`draft:${params.draftId}`);
22
+ const push = (k) => {
23
+ if (k && !keys.includes(k))
24
+ keys.push(k);
25
+ };
26
+ push(params.tradeItemId);
27
+ push(params.tradeItemKey);
28
+ push(params.productId ? `product:${params.productId}` : null);
29
+ push(params.draftId ? `draft:${params.draftId}` : null);
34
30
  return keys;
35
31
  }
32
+ /**
33
+ * Zoekt de voorraadrij van één artikel op in een reeds geladen map. Sinds de
34
+ * canonicalisatie is er nog maar één rij per artikel (de Floriday-UUID wanneer
35
+ * het artikel gekoppeld is, anders `product:<uuid>`), maar we kijken bewust
36
+ * naar alle bekende varianten zodat oude data nooit als "0" wordt getoond.
37
+ */
38
+ export function lookupStock(map, params) {
39
+ const candidates = [
40
+ params.floridayId ?? null,
41
+ params.tradeItemKey ?? null,
42
+ params.productId ? `product:${params.productId}` : null,
43
+ params.draftId ? `draft:${params.draftId}` : null,
44
+ ];
45
+ for (const key of candidates) {
46
+ if (!key)
47
+ continue;
48
+ const hit = map.get(key);
49
+ if (hit)
50
+ return hit;
51
+ }
52
+ return undefined;
53
+ }
36
54
  export function useTradeItemStock(connectionId, keyOrKeys) {
37
55
  const keysKey = Array.isArray(keyOrKeys)
38
56
  ? keyOrKeys.filter(Boolean).join("|")
@@ -1 +1 @@
1
- {"version":3,"file":"useVoorraadData.d.ts","sourceRoot":"","sources":["../../src/hooks/useVoorraadData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAsB5E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;;;;;EA+T1D"}
1
+ {"version":3,"file":"useVoorraadData.d.ts","sourceRoot":"","sources":["../../src/hooks/useVoorraadData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAsB5E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;;;;;EAsV1D"}
@@ -3,7 +3,7 @@ import { supabase } from "../integrations/supabase/client";
3
3
  import { normaliseTradeItem } from "../lib/floriday-client";
4
4
  import { floridayInfoFromCache } from "../lib/floriday-info";
5
5
  import { useLocalTradeItems } from "./useLocalTradeItems";
6
- import { fetchStockMap } from "./useTradeItemStock";
6
+ import { fetchStockMap, lookupStock } from "./useTradeItemStock";
7
7
  import { useFloridayContinuousStockMap } from "./useFloridayContinuousStock";
8
8
  function applyStock(item, s) {
9
9
  if (!s)
@@ -283,10 +283,18 @@ export function useVoorraadData(connectionId) {
283
283
  return { ...i, floriday: info };
284
284
  };
285
285
  const merged = [
286
- ...localItems.map((i) => applyProductGroupReservation(classify(attachFloriday(applyStock(i, stockMap.get(i.tradeItemKey ?? "")))))),
286
+ ...localItems.map((i) => applyProductGroupReservation(classify(attachFloriday(applyStock(i, lookupStock(stockMap, {
287
+ tradeItemKey: i.tradeItemKey ?? null,
288
+ floridayId: i.floridayId ?? null,
289
+ productId: i.productId ?? null,
290
+ })))))),
287
291
  ...publishedItems
288
292
  .filter((i) => !i.id || !localFloridayIds.has(i.id))
289
- .map((i) => applyProductGroupReservation(classify(applyFloridayOverride(applyStock(i, stockMap.get(i.id)))))),
293
+ .map((i) => applyProductGroupReservation(classify(applyFloridayOverride(applyStock(i, lookupStock(stockMap, {
294
+ floridayId: i.id,
295
+ tradeItemKey: i.tradeItemKey ?? null,
296
+ productId: i.productId ?? null,
297
+ })))))),
290
298
  ];
291
299
  return {
292
300
  items: merged,
@@ -8,5 +8,6 @@ export { ArtikelWizard } from './components/voorraad/ArtikelWizard';
8
8
  export { ProductLinkCard } from './components/voorraad/ProductLinkCard';
9
9
  export { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard';
10
10
  export { ProductCustomFieldsCard } from './components/voorraad/ProductCustomFieldsCard';
11
+ export { ModuleHealthCard } from './components/voorraad/ModuleHealthCard';
11
12
  export declare const floridayVoorraadModule: FlowModule;
12
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAIxF,eAAO,MAAM,sBAAsB,EAAE,UAcpC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAEvD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,YAAY,EAAE,MAAM,oCAAoC,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAC1E,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,sCAAsC,CAAC;AACtE,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EAAE,eAAe,EAAE,MAAM,uCAAuC,CAAC;AACxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0CAA0C,CAAC;AAC9E,OAAO,EAAE,uBAAuB,EAAE,MAAM,+CAA+C,CAAC;AAKxF,OAAO,EAAE,gBAAgB,EAAE,MAAM,wCAAwC,CAAC;AAE1E,eAAO,MAAM,sBAAsB,EAAE,UAiBpC,CAAC"}
package/dist-lib/index.js CHANGED
@@ -12,6 +12,8 @@ export { ProductLinkCard } from './components/voorraad/ProductLinkCard';
12
12
  export { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard';
13
13
  export { ProductCustomFieldsCard } from './components/voorraad/ProductCustomFieldsCard';
14
14
  import { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard';
15
+ import { ModuleHealthCard } from './components/voorraad/ModuleHealthCard';
16
+ export { ModuleHealthCard } from './components/voorraad/ModuleHealthCard';
15
17
  export const floridayVoorraadModule = {
16
18
  id: "voorraad",
17
19
  name: "Voorraad",
@@ -25,5 +27,8 @@ export const floridayVoorraadModule = {
25
27
  { label: "Fusten", href: "/voorraad/fusten", icon: Boxes },
26
28
  ],
27
29
  },
28
- settingsCards: [{ component: VoorraadVeldenCard, order: 50 }],
30
+ settingsCards: [
31
+ { component: VoorraadVeldenCard, order: 50 },
32
+ { component: ModuleHealthCard, order: 60 },
33
+ ],
29
34
  };