@flowselections/floriday-voorraad 1.0.14 → 1.0.16

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 (45) hide show
  1. package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
  2. package/dist-lib/components/voorraad/ArtikelWizard.js +48 -7
  3. package/dist-lib/components/voorraad/ExcelExportButton.d.ts +2 -1
  4. package/dist-lib/components/voorraad/ExcelExportButton.d.ts.map +1 -1
  5. package/dist-lib/components/voorraad/ExcelExportButton.js +24 -5
  6. package/dist-lib/components/voorraad/ProductLinkCard.d.ts +13 -0
  7. package/dist-lib/components/voorraad/ProductLinkCard.d.ts.map +1 -0
  8. package/dist-lib/components/voorraad/ProductLinkCard.js +159 -0
  9. package/dist-lib/components/voorraad/StockBulkButtons.d.ts.map +1 -1
  10. package/dist-lib/components/voorraad/StockBulkButtons.js +88 -7
  11. package/dist-lib/hooks/useTradeItemSpec.d.ts.map +1 -1
  12. package/dist-lib/hooks/useTradeItemSpec.js +4 -1
  13. package/dist-lib/hooks/useVoorraadData.d.ts +5 -4
  14. package/dist-lib/hooks/useVoorraadData.d.ts.map +1 -1
  15. package/dist-lib/hooks/useVoorraadData.js +40 -6
  16. package/dist-lib/index.d.ts +1 -0
  17. package/dist-lib/index.d.ts.map +1 -1
  18. package/dist-lib/index.js +1 -0
  19. package/dist-lib/integrations/supabase/auth-middleware.d.ts +743 -0
  20. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  21. package/dist-lib/integrations/supabase/client.d.ts +743 -0
  22. package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
  23. package/dist-lib/integrations/supabase/client.server.d.ts +743 -0
  24. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  25. package/dist-lib/integrations/supabase/types.d.ts +763 -0
  26. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  27. package/dist-lib/lib/ensure-article-codes.d.ts +8 -0
  28. package/dist-lib/lib/ensure-article-codes.d.ts.map +1 -0
  29. package/dist-lib/lib/ensure-article-codes.js +78 -0
  30. package/dist-lib/lib/floricode-required-features.functions.d.ts +743 -0
  31. package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
  32. package/dist-lib/lib/floriday-client.d.ts +6 -0
  33. package/dist-lib/lib/floriday-client.d.ts.map +1 -1
  34. package/dist-lib/lib/floriday-gateway.functions.d.ts +2972 -0
  35. package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
  36. package/dist-lib/lib/floriday-payload.d.ts +19 -5
  37. package/dist-lib/lib/floriday-payload.d.ts.map +1 -1
  38. package/dist-lib/lib/floriday-payload.js +106 -33
  39. package/dist-lib/lib/floriday-warehouse.functions.d.ts +32228 -0
  40. package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -0
  41. package/dist-lib/lib/floriday-warehouse.functions.js +98 -0
  42. package/dist-lib/lib/floriday-writes.functions.d.ts +1616 -130
  43. package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
  44. package/dist-lib/lib/floriday-writes.functions.js +34 -6
  45. package/package.json +7 -1
@@ -19,14 +19,37 @@ function applyStock(item, s) {
19
19
  economicQuantity: available + s.incoming_stock,
20
20
  };
21
21
  }
22
+ function erpToTradeItem(row) {
23
+ const key = row.trade_item_key ?? `product:${row.id}`;
24
+ return {
25
+ id: `erp:${row.id}`,
26
+ productId: row.id,
27
+ tradeItemKey: key,
28
+ source: "erp",
29
+ name: row.product || "(naamloos product)",
30
+ articleNumber: row.barcode || "",
31
+ imageUrl: row.image_url,
32
+ quantity: 0,
33
+ minQuantity: 0,
34
+ reservedQuantity: 0,
35
+ availableQuantity: 0,
36
+ incomingQuantity: 0,
37
+ economicQuantity: 0,
38
+ raw: row,
39
+ published: false,
40
+ linkStatus: "unlinked",
41
+ };
42
+ }
22
43
  /**
23
- * Reads trade items from the shared `floriday_trade_items_cache` (gepubliceerd,
24
- * gevuld door de Auth-module elke 5 min) en merget lokale, niet-gepubliceerde
25
- * producten uit `trade_item_drafts`. Voorraadwaarden uit `trade_item_stock`
26
- * overschrijven de cache-waarden (lokale bron van waarheid voor stock).
44
+ * Reads trade items from three sources and merges them into one voorraad list:
45
+ * 1. `products` rows tied to a `product:<id>` key (pure ERP items).
46
+ * 2. `trade_item_drafts` (lokaal concept, mogelijk in publiceerflow).
47
+ * 3. `floriday_trade_items_cache` (gepubliceerd artikel).
48
+ * Voorraadwaarden komen uit `trade_item_stock` en overschrijven cache-defaults.
27
49
  */
28
50
  export function useVoorraadData(connectionId) {
29
51
  const [publishedItems, setPublishedItems] = useState([]);
52
+ const [erpItems, setErpItems] = useState([]);
30
53
  const [stockMap, setStockMap] = useState(new Map());
31
54
  const [loading, setLoading] = useState(false);
32
55
  const [error, setError] = useState(null);
@@ -34,33 +57,43 @@ export function useVoorraadData(connectionId) {
34
57
  const loadPublished = useCallback(async () => {
35
58
  if (!connectionId) {
36
59
  setPublishedItems([]);
60
+ setErpItems([]);
37
61
  setStockMap(new Map());
38
62
  return;
39
63
  }
40
64
  setLoading(true);
41
65
  setError(null);
42
66
  try {
43
- const [pubRes, stock] = await Promise.all([
67
+ const [pubRes, erpRes, stock] = await Promise.all([
44
68
  supabase
45
69
  .from("floriday_trade_items_cache")
46
70
  .select("data,floriday_id,is_deleted")
47
71
  .eq("connection_id", connectionId)
48
72
  .eq("is_deleted", false)
49
73
  .limit(1000),
74
+ supabase
75
+ .from("products")
76
+ .select("id,product,barcode,image_url,trade_item_key")
77
+ .like("trade_item_key", "product:%")
78
+ .limit(1000),
50
79
  fetchStockMap(connectionId),
51
80
  ]);
52
81
  if (pubRes.error)
53
82
  throw pubRes.error;
83
+ if (erpRes.error)
84
+ throw erpRes.error;
54
85
  const normalised = (pubRes.data ?? [])
55
86
  .map((row) => normaliseTradeItem({ ...row.data, id: row.floriday_id }))
56
87
  .filter((i) => i.id)
57
- .map((i) => ({ ...i, published: true }));
88
+ .map((i) => ({ ...i, published: true, source: "published", tradeItemKey: i.id }));
58
89
  setPublishedItems(normalised);
90
+ setErpItems((erpRes.data ?? []).map((r) => erpToTradeItem(r)));
59
91
  setStockMap(stock);
60
92
  }
61
93
  catch (e) {
62
94
  setError(e.message);
63
95
  setPublishedItems([]);
96
+ setErpItems([]);
64
97
  }
65
98
  finally {
66
99
  setLoading(false);
@@ -73,6 +106,7 @@ export function useVoorraadData(connectionId) {
73
106
  await Promise.all([loadPublished(), reloadLocal()]);
74
107
  }, [loadPublished, reloadLocal]);
75
108
  const merged = [
109
+ ...erpItems.map((i) => applyStock(i, stockMap.get(i.tradeItemKey ?? ""))),
76
110
  ...localItems.map((i) => applyStock(i, stockMap.get(i.localId ? `draft:${i.localId}` : ""))),
77
111
  ...publishedItems.map((i) => applyStock(i, stockMap.get(i.id))),
78
112
  ];
@@ -5,5 +5,6 @@ export { NieuwArtikelPage } from './components/voorraad/NieuwArtikelPage';
5
5
  export { EditArtikelPage } from './components/voorraad/EditArtikelPage';
6
6
  export { ValidationPage } from './components/voorraad/ValidationPage';
7
7
  export { ArtikelWizard } from './components/voorraad/ArtikelWizard';
8
+ export { ProductLinkCard } from './components/voorraad/ProductLinkCard';
8
9
  export declare const floridayVoorraadModule: FlowModule;
9
10
  //# 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;AAEpE,eAAO,MAAM,sBAAsB,EAAE,UAUpC,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;AAExE,eAAO,MAAM,sBAAsB,EAAE,UAUpC,CAAC"}
package/dist-lib/index.js CHANGED
@@ -8,6 +8,7 @@ export { NieuwArtikelPage } from './components/voorraad/NieuwArtikelPage';
8
8
  export { EditArtikelPage } from './components/voorraad/EditArtikelPage';
9
9
  export { ValidationPage } from './components/voorraad/ValidationPage';
10
10
  export { ArtikelWizard } from './components/voorraad/ArtikelWizard';
11
+ export { ProductLinkCard } from './components/voorraad/ProductLinkCard';
11
12
  export const floridayVoorraadModule = {
12
13
  id: "voorraad",
13
14
  name: "Voorraad",