@flowselections/floriday-voorraad 1.0.150 → 1.0.154

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 (141) hide show
  1. package/dist-lib/components/fs-ui/DataTable.d.ts +42 -0
  2. package/dist-lib/components/fs-ui/DataTable.d.ts.map +1 -0
  3. package/dist-lib/components/fs-ui/DataTable.js +68 -0
  4. package/dist-lib/components/fs-ui/EmptyState.d.ts +9 -0
  5. package/dist-lib/components/fs-ui/EmptyState.d.ts.map +1 -0
  6. package/dist-lib/components/fs-ui/EmptyState.js +5 -0
  7. package/dist-lib/components/fs-ui/FilterChips.d.ts +13 -0
  8. package/dist-lib/components/fs-ui/FilterChips.d.ts.map +1 -0
  9. package/dist-lib/components/fs-ui/FilterChips.js +8 -0
  10. package/dist-lib/components/fs-ui/FilterPanel.d.ts +19 -0
  11. package/dist-lib/components/fs-ui/FilterPanel.d.ts.map +1 -0
  12. package/dist-lib/components/fs-ui/FilterPanel.js +10 -0
  13. package/dist-lib/components/fs-ui/FiltersButton.d.ts +6 -0
  14. package/dist-lib/components/fs-ui/FiltersButton.d.ts.map +1 -0
  15. package/dist-lib/components/fs-ui/FiltersButton.js +7 -0
  16. package/dist-lib/components/fs-ui/HeaderButton.d.ts +16 -0
  17. package/dist-lib/components/fs-ui/HeaderButton.d.ts.map +1 -0
  18. package/dist-lib/components/fs-ui/HeaderButton.js +10 -0
  19. package/dist-lib/components/fs-ui/HoverTip.d.ts +15 -0
  20. package/dist-lib/components/fs-ui/HoverTip.d.ts.map +1 -0
  21. package/dist-lib/components/fs-ui/HoverTip.js +24 -0
  22. package/dist-lib/components/fs-ui/InlineAlert.d.ts +12 -0
  23. package/dist-lib/components/fs-ui/InlineAlert.d.ts.map +1 -0
  24. package/dist-lib/components/fs-ui/InlineAlert.js +15 -0
  25. package/dist-lib/components/fs-ui/KpiRow.d.ts +10 -0
  26. package/dist-lib/components/fs-ui/KpiRow.d.ts.map +1 -0
  27. package/dist-lib/components/fs-ui/KpiRow.js +8 -0
  28. package/dist-lib/components/fs-ui/KpiTile.d.ts +21 -0
  29. package/dist-lib/components/fs-ui/KpiTile.d.ts.map +1 -0
  30. package/dist-lib/components/fs-ui/KpiTile.js +40 -0
  31. package/dist-lib/components/fs-ui/MobilePrimaryAction.d.ts +13 -0
  32. package/dist-lib/components/fs-ui/MobilePrimaryAction.d.ts.map +1 -0
  33. package/dist-lib/components/fs-ui/MobilePrimaryAction.js +10 -0
  34. package/dist-lib/components/fs-ui/NoticeBar.d.ts +10 -0
  35. package/dist-lib/components/fs-ui/NoticeBar.d.ts.map +1 -0
  36. package/dist-lib/components/fs-ui/NoticeBar.js +16 -0
  37. package/dist-lib/components/fs-ui/PageHeader.d.ts +19 -0
  38. package/dist-lib/components/fs-ui/PageHeader.d.ts.map +1 -0
  39. package/dist-lib/components/fs-ui/PageHeader.js +9 -0
  40. package/dist-lib/components/fs-ui/Pagination.d.ts +10 -0
  41. package/dist-lib/components/fs-ui/Pagination.d.ts.map +1 -0
  42. package/dist-lib/components/fs-ui/Pagination.js +10 -0
  43. package/dist-lib/components/fs-ui/PillTabs.d.ts +17 -0
  44. package/dist-lib/components/fs-ui/PillTabs.d.ts.map +1 -0
  45. package/dist-lib/components/fs-ui/PillTabs.js +28 -0
  46. package/dist-lib/components/fs-ui/RowMenu.d.ts +13 -0
  47. package/dist-lib/components/fs-ui/RowMenu.d.ts.map +1 -0
  48. package/dist-lib/components/fs-ui/RowMenu.js +7 -0
  49. package/dist-lib/components/fs-ui/SearchInput.d.ts +11 -0
  50. package/dist-lib/components/fs-ui/SearchInput.d.ts.map +1 -0
  51. package/dist-lib/components/fs-ui/SearchInput.js +55 -0
  52. package/dist-lib/components/fs-ui/ShortcutHelp.d.ts +8 -0
  53. package/dist-lib/components/fs-ui/ShortcutHelp.d.ts.map +1 -0
  54. package/dist-lib/components/fs-ui/ShortcutHelp.js +6 -0
  55. package/dist-lib/components/fs-ui/StatusIcon.d.ts +13 -0
  56. package/dist-lib/components/fs-ui/StatusIcon.d.ts.map +1 -0
  57. package/dist-lib/components/fs-ui/StatusIcon.js +15 -0
  58. package/dist-lib/components/fs-ui/TableSkeleton.d.ts +7 -0
  59. package/dist-lib/components/fs-ui/TableSkeleton.d.ts.map +1 -0
  60. package/dist-lib/components/fs-ui/TableSkeleton.js +6 -0
  61. package/dist-lib/components/fs-ui/Toolbar.d.ts +12 -0
  62. package/dist-lib/components/fs-ui/Toolbar.d.ts.map +1 -0
  63. package/dist-lib/components/fs-ui/Toolbar.js +8 -0
  64. package/dist-lib/components/fs-ui/UpdatedAt.d.ts +10 -0
  65. package/dist-lib/components/fs-ui/UpdatedAt.d.ts.map +1 -0
  66. package/dist-lib/components/fs-ui/UpdatedAt.js +18 -0
  67. package/dist-lib/components/voorraad/ArtikelCompositionCard.d.ts.map +1 -1
  68. package/dist-lib/components/voorraad/ArtikelCompositionCard.js +46 -15
  69. package/dist-lib/components/voorraad/ArtikelWizard.js +4 -4
  70. package/dist-lib/components/voorraad/FloridayConnectionNotice.d.ts +7 -6
  71. package/dist-lib/components/voorraad/FloridayConnectionNotice.d.ts.map +1 -1
  72. package/dist-lib/components/voorraad/FloridayConnectionNotice.js +15 -12
  73. package/dist-lib/components/voorraad/FustenPage.d.ts.map +1 -1
  74. package/dist-lib/components/voorraad/FustenPage.js +92 -26
  75. package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts.map +1 -1
  76. package/dist-lib/components/voorraad/NieuwArtikelPage.js +2 -1
  77. package/dist-lib/components/voorraad/OrderHistoryCard.d.ts +3 -1
  78. package/dist-lib/components/voorraad/OrderHistoryCard.d.ts.map +1 -1
  79. package/dist-lib/components/voorraad/OrderHistoryCard.js +26 -50
  80. package/dist-lib/components/voorraad/PublicatiesPage.d.ts.map +1 -1
  81. package/dist-lib/components/voorraad/PublicatiesPage.js +42 -36
  82. package/dist-lib/components/voorraad/Sneltoetsen.d.ts +14 -0
  83. package/dist-lib/components/voorraad/Sneltoetsen.d.ts.map +1 -0
  84. package/dist-lib/components/voorraad/Sneltoetsen.js +44 -0
  85. package/dist-lib/components/voorraad/StockIntegrityAlert.d.ts +42 -1
  86. package/dist-lib/components/voorraad/StockIntegrityAlert.d.ts.map +1 -1
  87. package/dist-lib/components/voorraad/StockIntegrityAlert.js +38 -7
  88. package/dist-lib/components/voorraad/StockMutationHistoryCard.d.ts.map +1 -1
  89. package/dist-lib/components/voorraad/StockMutationHistoryCard.js +10 -46
  90. package/dist-lib/components/voorraad/StockPushMonitor.js +2 -2
  91. package/dist-lib/components/voorraad/TelmomentButton.d.ts +5 -1
  92. package/dist-lib/components/voorraad/TelmomentButton.d.ts.map +1 -1
  93. package/dist-lib/components/voorraad/TelmomentButton.js +13 -6
  94. package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts.map +1 -1
  95. package/dist-lib/components/voorraad/ValidationOverviewTable.js +11 -40
  96. package/dist-lib/components/voorraad/ValidationPage.d.ts +1 -0
  97. package/dist-lib/components/voorraad/ValidationPage.d.ts.map +1 -1
  98. package/dist-lib/components/voorraad/ValidationPage.js +33 -5
  99. package/dist-lib/components/voorraad/VoorraadBeheerCard.d.ts +4 -1
  100. package/dist-lib/components/voorraad/VoorraadBeheerCard.d.ts.map +1 -1
  101. package/dist-lib/components/voorraad/VoorraadBeheerCard.js +26 -5
  102. package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
  103. package/dist-lib/components/voorraad/VoorraadPage.js +67 -38
  104. package/dist-lib/components/voorraad/VoorraadSturingCard.js +1 -1
  105. package/dist-lib/components/voorraad/artikel/ArtikelPagina.d.ts.map +1 -1
  106. package/dist-lib/components/voorraad/artikel/ArtikelPagina.js +42 -19
  107. package/dist-lib/components/voorraad/lijst/ImporteerKnop.d.ts.map +1 -1
  108. package/dist-lib/components/voorraad/lijst/ImporteerKnop.js +1 -1
  109. package/dist-lib/components/voorraad/lijst/LijstExportKnop.d.ts.map +1 -1
  110. package/dist-lib/components/voorraad/lijst/LijstExportKnop.js +1 -1
  111. package/dist-lib/components/voorraad/lijst/VoorraadLijstTabel.d.ts +8 -2
  112. package/dist-lib/components/voorraad/lijst/VoorraadLijstTabel.d.ts.map +1 -1
  113. package/dist-lib/components/voorraad/lijst/VoorraadLijstTabel.js +62 -27
  114. package/dist-lib/hooks/useLocalTradeItems.d.ts +14 -0
  115. package/dist-lib/hooks/useLocalTradeItems.d.ts.map +1 -1
  116. package/dist-lib/hooks/useLocalTradeItems.js +5 -3
  117. package/dist-lib/hooks/useTradeItemStock.d.ts.map +1 -1
  118. package/dist-lib/hooks/useTradeItemStock.js +6 -3
  119. package/dist-lib/hooks/useVoorraadData.d.ts.map +1 -1
  120. package/dist-lib/hooks/useVoorraadData.js +16 -8
  121. package/dist-lib/hooks/useVoorraadLijst.d.ts +10 -0
  122. package/dist-lib/hooks/useVoorraadLijst.d.ts.map +1 -1
  123. package/dist-lib/hooks/useVoorraadLijst.js +22 -4
  124. package/dist-lib/integrations/supabase/types.d.ts +85 -0
  125. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  126. package/dist-lib/lib/alle-rijen.d.ts +15 -0
  127. package/dist-lib/lib/alle-rijen.d.ts.map +1 -0
  128. package/dist-lib/lib/alle-rijen.js +17 -0
  129. package/dist-lib/lib/db-error-message.d.ts.map +1 -1
  130. package/dist-lib/lib/db-error-message.js +3 -1
  131. package/dist-lib/lib/labels.d.ts +42 -0
  132. package/dist-lib/lib/labels.d.ts.map +1 -0
  133. package/dist-lib/lib/labels.js +152 -0
  134. package/dist-lib/lib/notatie.d.ts +4 -0
  135. package/dist-lib/lib/notatie.d.ts.map +1 -0
  136. package/dist-lib/lib/notatie.js +18 -0
  137. package/dist-lib/lib/voorraad-lijst.d.ts +2 -0
  138. package/dist-lib/lib/voorraad-lijst.d.ts.map +1 -1
  139. package/dist-lib/lib/voorraad-lijst.js +14 -3
  140. package/package.json +2 -1
  141. package/sql/floriday-voorraad-schema.sql +315 -39
@@ -19,6 +19,19 @@ export interface LocalTradeItemRow {
19
19
  last_floriday_sync_at?: string | null;
20
20
  source?: string | null;
21
21
  }
22
+ type ProductRow = {
23
+ id: string;
24
+ product: string | null;
25
+ article_number: string | null;
26
+ barcode: string | null;
27
+ image_url: string | null;
28
+ floriday_trade_item_id: string | null;
29
+ trade_item_key: string | null;
30
+ custom_fields: any;
31
+ updated_at: string;
32
+ created_at: string;
33
+ };
34
+ export declare function productToTradeItem(row: ProductRow): TradeItem;
22
35
  /**
23
36
  * `connectionId` wordt vandaag genegeerd: producten zijn niet meer per Floriday-connectie gescoped.
24
37
  * De parameter blijft in de signatuur zodat bestaande callers zonder wijziging werken.
@@ -69,4 +82,5 @@ export declare function updateDraftMeta(id: string, meta: DraftMeta): Promise<vo
69
82
  * De UI-flow moet dit alleen aanroepen bij een expliciete verwijderactie.
70
83
  */
71
84
  export declare function deleteLocalTradeItem(id: string): Promise<void>;
85
+ export {};
72
86
  //# sourceMappingURL=useLocalTradeItems.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"useLocalTradeItems.d.ts","sourceRoot":"","sources":["../../src/hooks/useLocalTradeItems.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAC1D,OAAO,EAAwB,KAAK,kBAAkB,EAAE,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAIvG;;;;;GAKG;AAEH,MAAM,WAAW,iBAAiB;IAChC,EAAE,EAAE,MAAM,CAAC;IACX,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,IAAI,EAAE,UAAU,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,oBAAoB,CAAC,EAAE,kBAAkB,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,uBAAuB,CAAC,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC;IAC1C,qBAAqB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtC,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB;AA0ED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,GAAG,IAAI;;;;EA0B9D;AAED,wBAAsB,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,iBAAiB,GAAG,IAAI,CAAC,CA4BrF;AAED,MAAM,WAAW,SAAS;IACxB,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IACxC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,qBAAqB,CAAC,EAAE,MAAM,EAAE,CAAC;IACjC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,MAAM,CAAC,EAAE,QAAQ,GAAG,cAAc,CAAC;CACpC;AAED,0FAA0F;AAC1F,MAAM,WAAW,eAAe;IAC9B,wEAAwE;IACxE,KAAK,EAAE,OAAO,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAChC;AAED,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,OAAO,GAAG,eAAe,GAAG,IAAI,CAWjF;AAqBD,wBAAsB,oBAAoB,CAAC,MAAM,EAAE;IACjD,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,iFAAiF;IACjF,mBAAmB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,IAAI,CAAC,EAAE,eAAe,CAAC;CACxB,GAAG,OAAO,CAAC,MAAM,CAAC,CA0GlB;AAED,wEAAwE;AACxE,wBAAsB,mBAAmB,CACvC,YAAY,EAAE,MAAM,EACpB,MAAM,EAAE,eAAe,GACtB,OAAO,CAAC,IAAI,CAAC,CAqBf;AAGD;;;;GAIG;AACH,wBAAsB,eAAe,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAiBhF;AAED;;;;GAIG;AACH,wBAAsB,oBAAoB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAGpE"}
1
+ {"version":3,"file":"useLocalTradeItems.d.ts","sourceRoot":"","sources":["../../src/hooks/useLocalTradeItems.ts"],"names":[],"mappings":"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"}
@@ -1,3 +1,4 @@
1
+ import { alleRijen } from "../lib/alle-rijen.js";
1
2
  import { useCallback, useEffect, useState } from "react";
2
3
  import { supabase } from "../integrations/supabase/client.js";
3
4
  import { derivePrimaryPacking } from "../lib/floriday-client.js";
@@ -7,7 +8,7 @@ function asRecord(value) {
7
8
  ? value
8
9
  : {};
9
10
  }
10
- function productToTradeItem(row) {
11
+ export function productToTradeItem(row) {
11
12
  const cf = asRecord(row.custom_fields);
12
13
  const payload = asRecord(cf.floriday_payload);
13
14
  const floridayId = row.floriday_trade_item_id ||
@@ -62,11 +63,12 @@ export function useLocalTradeItems(_connectionId) {
62
63
  const load = useCallback(async () => {
63
64
  setLoading(true);
64
65
  try {
65
- const { data, error } = await supabase
66
+ const { data, error } = await alleRijen((van, tot) => supabase
66
67
  .from("products")
67
68
  .select(SELECT_COLS)
68
69
  .order("updated_at", { ascending: false })
69
- .limit(1000);
70
+ .order("id", { ascending: true })
71
+ .range(van, tot));
70
72
  if (error)
71
73
  throw error;
72
74
  setItems((data ?? []).map(productToTradeItem));
@@ -1 +1 @@
1
- {"version":3,"file":"useTradeItemStock.d.ts","sourceRoot":"","sources":["../../src/hooks/useTradeItemStock.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAUD,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,MAAM,GAAG,IAAI,CAEhB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,MAAM,EAAE,CAUX;AAGD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACnC,MAAM,EAAE;IACN,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,GACA,iBAAiB,GAAG,SAAS,CAa/B;AAGD,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EACnC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;;;mBA2Gb,iBAAiB,SACnB;QAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,KAC3E,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;EA+EtC;AAED,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CAuBzC"}
1
+ {"version":3,"file":"useTradeItemStock.d.ts","sourceRoot":"","sources":["../../src/hooks/useTradeItemStock.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,MAAM,CAAC;IACvB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAUD,wBAAgB,WAAW,CAAC,MAAM,EAAE;IAClC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,MAAM,GAAG,IAAI,CAEhB;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,MAAM,EAAE;IACnC,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B,GAAG,MAAM,EAAE,CAUX;AAGD;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,GAAG,EAAE,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,EACnC,MAAM,EAAE;IACN,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB,GACA,iBAAiB,GAAG,SAAS,CAa/B;AAGD,wBAAgB,iBAAiB,CAC/B,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,SAAS,EAAE,MAAM,GAAG,MAAM,EAAE,GAAG,IAAI,EACnC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI;;;mBA2Gb,iBAAiB,SACnB;QAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,sBAAsB,CAAC,EAAE,OAAO,CAAA;KAAE,KAC3E,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;EA+EtC;AAED,wBAAsB,aAAa,CACjC,YAAY,EAAE,MAAM,GAAG,IAAI,GAC1B,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,iBAAiB,CAAC,CAAC,CA2BzC"}
@@ -1,3 +1,4 @@
1
+ import { alleRijen } from "../lib/alle-rijen.js";
1
2
  import { buildScopedStockMap } from "../lib/stock-scope.js";
2
3
  import { useCallback, useEffect, useMemo, useState } from "react";
3
4
  import { supabase } from "../integrations/supabase/client.js";
@@ -240,12 +241,14 @@ export async function fetchStockMap(connectionId) {
240
241
  if (!scopeId)
241
242
  return new Map(); // nog nooit eigen voorraad opgeslagen
242
243
  }
243
- const { data, error } = await supabase
244
+ const { data, error } = await alleRijen((van, tot) => supabase
244
245
  .from("trade_item_stock")
245
246
  .select("connection_id,trade_item_key,physical_stock,minimum_stock,reserved_stock,incoming_stock,notes,updated_at")
246
- .eq("connection_id", scopeId);
247
+ .eq("connection_id", scopeId)
248
+ .order("trade_item_key", { ascending: true })
249
+ .range(van, tot));
247
250
  if (error)
248
- throw new Error(error.message);
251
+ throw new Error(String(error.message ?? error));
249
252
  const scoped = buildScopedStockMap((data ?? []), scopeId);
250
253
  const map = new Map();
251
254
  for (const [k, r] of scoped)
@@ -1 +1 @@
1
- {"version":3,"file":"useVoorraadData.d.ts","sourceRoot":"","sources":["../../src/hooks/useVoorraadData.ts"],"names":[],"mappings":"AAIA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAsB5E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;;;;;EA2U1D"}
1
+ {"version":3,"file":"useVoorraadData.d.ts","sourceRoot":"","sources":["../../src/hooks/useVoorraadData.ts"],"names":[],"mappings":"AAKA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAsB5E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;;;;;EA0V1D"}
@@ -1,3 +1,4 @@
1
+ import { alleRijen } from "../lib/alle-rijen.js";
1
2
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
2
3
  import { hideMirrorItems } from "../lib/mirror-products.js";
3
4
  import { createBundler, pageRequestGuard } from "../lib/request-guard.js";
@@ -55,25 +56,32 @@ export function useVoorraadData(connectionId) {
55
56
  const [pubRes, stock, groupsRes, bomRes, groupItemsRes] = await Promise.all([
56
57
  // Zonder koppeling geen Floriday-kopie; eigen artikelen blijven zichtbaar.
57
58
  connectionId
58
- ? supabase
59
+ ? alleRijen((van, tot) => supabase
59
60
  .from("floriday_trade_items_cache")
60
61
  .select("data,floriday_id,is_deleted")
61
62
  .eq("connection_id", connectionId)
62
63
  .eq("is_deleted", false)
63
- .limit(1000)
64
+ .order("floriday_id", { ascending: true })
65
+ .range(van, tot))
64
66
  : Promise.resolve({ data: [], error: null }),
65
67
  fetchStockMap(connectionId),
66
- supabase
68
+ alleRijen((van, tot) => supabase
67
69
  .from("product_groups")
68
70
  .select("id,head_product_id,head_trade_item_floriday_id,updated_at")
69
71
  .eq("is_active", true)
70
- .order("updated_at", { ascending: true }),
71
- supabase
72
+ .order("updated_at", { ascending: true })
73
+ .order("id", { ascending: true })
74
+ .range(van, tot)),
75
+ alleRijen((van, tot) => supabase
72
76
  .from("product_bom_items")
73
- .select("parent_product_id,parent_trade_item_floriday_id"),
74
- supabase
77
+ .select("parent_product_id,parent_trade_item_floriday_id")
78
+ .order("id", { ascending: true })
79
+ .range(van, tot)),
80
+ alleRijen((van, tot) => supabase
75
81
  .from("product_group_items")
76
- .select("product_group_id,trade_item_id,quantity"),
82
+ .select("product_group_id,trade_item_id,quantity")
83
+ .order("id", { ascending: true })
84
+ .range(van, tot)),
77
85
  ]);
78
86
  if (pubRes.error)
79
87
  throw pubRes.error;
@@ -7,6 +7,15 @@ export interface LijstVraag {
7
7
  pagina: number;
8
8
  grootte: number;
9
9
  }
10
+ /** Kerncijfers van het eigen bedrijf; veranderen niet tijdens zoeken of filteren. */
11
+ export interface VoorraadKpi {
12
+ artikelen: number;
13
+ onder_minimum: number;
14
+ vrij: number;
15
+ inkomend: number;
16
+ bijgewerkt: string;
17
+ }
18
+ export declare function haalVoorraadKpi(): Promise<VoorraadKpi>;
10
19
  export declare function haalVoorraadLijst(v: LijstVraag): Promise<LijstAntwoord>;
11
20
  /**
12
21
  * Eén aanvraag per wijziging van zoeken/filter/sortering/pagina. Live-updates
@@ -14,6 +23,7 @@ export declare function haalVoorraadLijst(v: LijstVraag): Promise<LijstAntwoord>
14
23
  */
15
24
  export declare function useVoorraadLijst(vraag: LijstVraag): {
16
25
  data: LijstAntwoord | null;
26
+ kpi: VoorraadKpi | null;
17
27
  loading: boolean;
18
28
  error: string | null;
19
29
  reload: () => Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"useVoorraadLijst.d.ts","sourceRoot":"","sources":["../../src/hooks/useVoorraadLijst.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEnF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAW7E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU;;;;;EAgDjD"}
1
+ {"version":3,"file":"useVoorraadLijst.d.ts","sourceRoot":"","sources":["../../src/hooks/useVoorraadLijst.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAEnF,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,WAAW,CAAC;IACpB,IAAI,EAAE,SAAS,CAAC;IAChB,QAAQ,EAAE,OAAO,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,qFAAqF;AACrF,MAAM,WAAW,WAAW;IAAG,SAAS,EAAE,MAAM,CAAC;IAAC,aAAa,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE;AAC7H,wBAAsB,eAAe,IAAI,OAAO,CAAC,WAAW,CAAC,CAI5D;AAGD,wBAAsB,iBAAiB,CAAC,CAAC,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAW7E;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,UAAU;;;;;;EAuDjD"}
@@ -1,8 +1,15 @@
1
1
  import { useCallback, useEffect, useRef, useState } from "react";
2
2
  import { supabase } from "../integrations/supabase/client.js";
3
3
  import { createBundler, pageRequestGuard } from "../lib/request-guard.js";
4
+ export async function haalVoorraadKpi() {
5
+ const { data, error } = await supabase.rpc("voorraad_kpi");
6
+ if (error)
7
+ throw new Error(error.message);
8
+ return data;
9
+ }
10
+ // De lijst leest voorraad_lijst_v2 (1.0.151): zelfde uitkomst als voorraad_lijst, en "Onder minimum" ook voor samenstellingen.
4
11
  export async function haalVoorraadLijst(v) {
5
- const { data, error } = await supabase.rpc("voorraad_lijst", {
12
+ const { data, error } = await supabase.rpc("voorraad_lijst_v2", {
6
13
  p_zoek: v.zoek.trim() || null,
7
14
  p_filter: v.filter,
8
15
  p_sort: v.sort,
@@ -20,11 +27,21 @@ export async function haalVoorraadLijst(v) {
20
27
  */
21
28
  export function useVoorraadLijst(vraag) {
22
29
  const [data, setData] = useState(null);
30
+ const [kpi, setKpi] = useState(null);
23
31
  const [loading, setLoading] = useState(true);
24
32
  const [error, setError] = useState(null);
25
33
  const vraagRef = useRef(vraag);
26
34
  vraagRef.current = vraag;
27
35
  const seq = useRef(0);
36
+ const laadKpi = useCallback(async () => {
37
+ try {
38
+ setKpi(await haalVoorraadKpi());
39
+ }
40
+ catch (e) {
41
+ console.warn("Kerncijfers voorraad niet geladen", e);
42
+ }
43
+ }, []);
44
+ useEffect(() => { void laadKpi(); }, [laadKpi]);
28
45
  const laad = useCallback(async () => {
29
46
  if (!pageRequestGuard.allow("voorraad_lijst"))
30
47
  return;
@@ -52,7 +69,7 @@ export function useVoorraadLijst(vraag) {
52
69
  void laad();
53
70
  }, [key, laad]);
54
71
  useEffect(() => {
55
- const bundler = createBundler(() => void laad(), 3000);
72
+ const bundler = createBundler(() => { void laad(); void laadKpi(); }, 3000);
56
73
  const trigger = () => bundler.trigger();
57
74
  const channel = supabase
58
75
  .channel(`voorraad-lijst-${Math.random().toString(36).slice(2)}`)
@@ -66,6 +83,7 @@ export function useVoorraadLijst(vraag) {
66
83
  document.removeEventListener("visibilitychange", onVis);
67
84
  supabase.removeChannel(channel);
68
85
  };
69
- }, [laad]);
70
- return { data, loading, error, reload: laad };
86
+ }, [laad, laadKpi]);
87
+ const reload = useCallback(async () => { await Promise.all([laad(), laadKpi()]); }, [laad, laadKpi]);
88
+ return { data, kpi, loading, error, reload };
71
89
  }
@@ -33034,6 +33034,12 @@ export type Database = {
33034
33034
  };
33035
33035
  Returns: Json;
33036
33036
  };
33037
+ _mailbox_norm: {
33038
+ Args: {
33039
+ p: string;
33040
+ };
33041
+ Returns: string;
33042
+ };
33037
33043
  _migrate_rewrite_stock_key: {
33038
33044
  Args: {
33039
33045
  _from_key: string;
@@ -41370,6 +41376,26 @@ export type Database = {
41370
41376
  Args: never;
41371
41377
  Returns: undefined;
41372
41378
  };
41379
+ mailbox_kpis: {
41380
+ Args: {
41381
+ p_tz?: string;
41382
+ };
41383
+ Returns: Json;
41384
+ };
41385
+ mailbox_proposals_page: {
41386
+ Args: {
41387
+ p_date_field?: string;
41388
+ p_filter?: string;
41389
+ p_limit?: number;
41390
+ p_offset?: number;
41391
+ p_period?: string;
41392
+ p_search?: string;
41393
+ p_sort?: string;
41394
+ p_statuses: string[];
41395
+ p_tz?: string;
41396
+ };
41397
+ Returns: Json;
41398
+ };
41373
41399
  mailbox_prune_ingest_runs: {
41374
41400
  Args: {
41375
41401
  p_limit?: number;
@@ -47019,6 +47045,14 @@ export type Database = {
47019
47045
  Args: never;
47020
47046
  Returns: Json;
47021
47047
  };
47048
+ voorraad_groep_volgorde_opslaan: {
47049
+ Args: {
47050
+ p_group_id: string;
47051
+ p_nieuw: Json;
47052
+ p_oud: Json;
47053
+ };
47054
+ Returns: Json;
47055
+ };
47022
47056
  voorraad_hook_base_url: {
47023
47057
  Args: never;
47024
47058
  Returns: string;
@@ -47062,6 +47096,10 @@ export type Database = {
47062
47096
  Args: never;
47063
47097
  Returns: Json;
47064
47098
  };
47099
+ voorraad_kpi: {
47100
+ Args: never;
47101
+ Returns: Json;
47102
+ };
47065
47103
  voorraad_lever_datum: {
47066
47104
  Args: {
47067
47105
  p: string;
@@ -47079,6 +47117,46 @@ export type Database = {
47079
47117
  };
47080
47118
  Returns: Json;
47081
47119
  };
47120
+ voorraad_lijst_v2: {
47121
+ Args: {
47122
+ p_filter?: string;
47123
+ p_grootte?: number;
47124
+ p_oplopend?: boolean;
47125
+ p_pagina?: number;
47126
+ p_sort?: string;
47127
+ p_zoek?: string;
47128
+ };
47129
+ Returns: Json;
47130
+ };
47131
+ voorraad_lijst_v2_rijen: {
47132
+ Args: {
47133
+ p_zoek?: string;
47134
+ };
47135
+ Returns: {
47136
+ artikelnummer: string;
47137
+ barcode: string;
47138
+ eenheid: string;
47139
+ f_niet_gekoppeld: boolean;
47140
+ f_onder_minimum: boolean;
47141
+ f_prijs: boolean;
47142
+ f_verpakking: boolean;
47143
+ f_verwijderd_floriday: boolean;
47144
+ floriday_id: string;
47145
+ floriday_verwijderd_at: string;
47146
+ gearchiveerd_at: string;
47147
+ gereserveerd: number;
47148
+ id: string;
47149
+ inkomend: number;
47150
+ is_onderdeel: boolean;
47151
+ liggend: number;
47152
+ minimum: number;
47153
+ naam: string;
47154
+ prijs: number;
47155
+ soort: string;
47156
+ voorraad_sleutel: string;
47157
+ vrij: number;
47158
+ }[];
47159
+ };
47082
47160
  voorraad_load_carriers: {
47083
47161
  Args: never;
47084
47162
  Returns: {
@@ -47225,6 +47303,13 @@ export type Database = {
47225
47303
  };
47226
47304
  Returns: Json;
47227
47305
  };
47306
+ voorraad_validatie_pagina: {
47307
+ Args: {
47308
+ p_grootte?: number;
47309
+ p_pagina?: number;
47310
+ };
47311
+ Returns: Json;
47312
+ };
47228
47313
  voorraad_vereis: {
47229
47314
  Args: {
47230
47315
  p_functie: string;