@flowselections/floriday-voorraad 1.0.16 → 1.0.18
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.
- package/dist-lib/components/voorraad/AdditionalPackagingDialog.d.ts +9 -0
- package/dist-lib/components/voorraad/AdditionalPackagingDialog.d.ts.map +1 -0
- package/dist-lib/components/voorraad/AdditionalPackagingDialog.js +51 -0
- package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ArtikelWizard.js +372 -30
- package/dist-lib/components/voorraad/EditArtikelPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/EditArtikelPage.js +78 -4
- package/dist-lib/components/voorraad/OrderHistoryCard.d.ts +8 -0
- package/dist-lib/components/voorraad/OrderHistoryCard.d.ts.map +1 -0
- package/dist-lib/components/voorraad/OrderHistoryCard.js +133 -0
- package/dist-lib/components/voorraad/PriceStatusBadge.d.ts +7 -0
- package/dist-lib/components/voorraad/PriceStatusBadge.d.ts.map +1 -0
- package/dist-lib/components/voorraad/PriceStatusBadge.js +67 -0
- package/dist-lib/components/voorraad/VoorraadStockCard.d.ts +2 -1
- package/dist-lib/components/voorraad/VoorraadStockCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadStockCard.js +5 -4
- package/dist-lib/components/voorraad/VoorraadTable.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadTable.js +6 -1
- package/dist-lib/hooks/useLocalTradeItems.d.ts.map +1 -1
- package/dist-lib/hooks/useLocalTradeItems.js +4 -0
- package/dist-lib/hooks/useTradeItemStock.d.ts +14 -1
- package/dist-lib/hooks/useTradeItemStock.d.ts.map +1 -1
- package/dist-lib/hooks/useTradeItemStock.js +76 -17
- package/dist-lib/hooks/useTradeItemSupplyLine.d.ts +21 -0
- package/dist-lib/hooks/useTradeItemSupplyLine.d.ts.map +1 -0
- package/dist-lib/hooks/useTradeItemSupplyLine.js +49 -0
- package/dist-lib/hooks/useVoorraadData.d.ts.map +1 -1
- package/dist-lib/hooks/useVoorraadData.js +35 -3
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +490 -3
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +490 -3
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +490 -3
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +498 -3
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/floricode-required-features.functions.d.ts +497 -4
- package/dist-lib/lib/floricode-required-features.functions.d.ts.map +1 -1
- package/dist-lib/lib/floricode-required-features.functions.js +20 -2
- package/dist-lib/lib/floriday-customer-offer.functions.d.ts +11281 -0
- package/dist-lib/lib/floriday-customer-offer.functions.d.ts.map +1 -0
- package/dist-lib/lib/floriday-customer-offer.functions.js +175 -0
- package/dist-lib/lib/floriday-gateway.functions.d.ts +13240 -15
- package/dist-lib/lib/floriday-gateway.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-gateway.functions.js +150 -0
- package/dist-lib/lib/floriday-gateway.server.d.ts +22 -0
- package/dist-lib/lib/floriday-gateway.server.d.ts.map +1 -1
- package/dist-lib/lib/floriday-gateway.server.js +3 -0
- package/dist-lib/lib/floriday-payload.d.ts +60 -6
- package/dist-lib/lib/floriday-payload.d.ts.map +1 -1
- package/dist-lib/lib/floriday-payload.js +104 -7
- package/dist-lib/lib/floriday-supply-line.d.ts +53 -0
- package/dist-lib/lib/floriday-supply-line.d.ts.map +1 -0
- package/dist-lib/lib/floriday-supply-line.js +109 -0
- package/dist-lib/lib/floriday-warehouse.functions.d.ts +1509 -48
- package/dist-lib/lib/floriday-warehouse.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-writes.functions.d.ts +983 -9
- package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-writes.functions.js +6 -1
- package/dist-lib/lib/vrs-catalog.d.ts +27 -0
- package/dist-lib/lib/vrs-catalog.d.ts.map +1 -0
- package/dist-lib/lib/vrs-catalog.js +98 -0
- package/package.json +3 -2
- package/public/flowselections-assets/Voorraad/floriday-logo.png +0 -0
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
import { useEffect } from "react";
|
|
2
|
+
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
3
|
+
import { supabase } from "../integrations/supabase/client";
|
|
4
|
+
/**
|
|
5
|
+
* Leest de meest recente supply-line voor een trade item en luistert realtime
|
|
6
|
+
* op wijzigingen zodat de UI direct meebeweegt na een push naar Floriday.
|
|
7
|
+
*/
|
|
8
|
+
export function useTradeItemSupplyLine(tradeItemId) {
|
|
9
|
+
const queryClient = useQueryClient();
|
|
10
|
+
const key = ["trade-item-supply-line", tradeItemId];
|
|
11
|
+
const query = useQuery({
|
|
12
|
+
queryKey: key,
|
|
13
|
+
enabled: Boolean(tradeItemId),
|
|
14
|
+
queryFn: async () => {
|
|
15
|
+
if (!tradeItemId)
|
|
16
|
+
return null;
|
|
17
|
+
const { data, error } = await supabase
|
|
18
|
+
.from("trade_item_supply_lines")
|
|
19
|
+
.select("id,supply_line_id,trade_item_id,price_per_piece,currency,available_quantity,period_start,period_end,packing_configuration_id,endpoint_family,year,week,updated_at")
|
|
20
|
+
.eq("trade_item_id", tradeItemId)
|
|
21
|
+
.order("updated_at", { ascending: false })
|
|
22
|
+
.limit(1)
|
|
23
|
+
.maybeSingle();
|
|
24
|
+
if (error)
|
|
25
|
+
throw error;
|
|
26
|
+
return data ?? null;
|
|
27
|
+
},
|
|
28
|
+
});
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
if (!tradeItemId)
|
|
31
|
+
return;
|
|
32
|
+
const channel = supabase
|
|
33
|
+
.channel(`supply-line:${tradeItemId}`)
|
|
34
|
+
.on("postgres_changes", {
|
|
35
|
+
event: "*",
|
|
36
|
+
schema: "public",
|
|
37
|
+
table: "trade_item_supply_lines",
|
|
38
|
+
filter: `trade_item_id=eq.${tradeItemId}`,
|
|
39
|
+
}, () => {
|
|
40
|
+
queryClient.invalidateQueries({ queryKey: key });
|
|
41
|
+
})
|
|
42
|
+
.subscribe();
|
|
43
|
+
return () => {
|
|
44
|
+
supabase.removeChannel(channel);
|
|
45
|
+
};
|
|
46
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
47
|
+
}, [tradeItemId]);
|
|
48
|
+
return query;
|
|
49
|
+
}
|
|
@@ -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;AAkD5E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;;;;;
|
|
1
|
+
{"version":3,"file":"useVoorraadData.d.ts","sourceRoot":"","sources":["../../src/hooks/useVoorraadData.ts"],"names":[],"mappings":"AAEA,OAAO,EAAsB,KAAK,SAAS,EAAE,MAAM,wBAAwB,CAAC;AAkD5E;;;;;;GAMG;AACH,wBAAgB,eAAe,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;;;;;EA4H1D"}
|
|
@@ -74,7 +74,7 @@ export function useVoorraadData(connectionId) {
|
|
|
74
74
|
supabase
|
|
75
75
|
.from("products")
|
|
76
76
|
.select("id,product,barcode,image_url,trade_item_key")
|
|
77
|
-
.
|
|
77
|
+
.or("trade_item_key.is.null,trade_item_key.like.product:%")
|
|
78
78
|
.limit(1000),
|
|
79
79
|
fetchStockMap(connectionId),
|
|
80
80
|
]);
|
|
@@ -102,12 +102,44 @@ export function useVoorraadData(connectionId) {
|
|
|
102
102
|
useEffect(() => {
|
|
103
103
|
loadPublished();
|
|
104
104
|
}, [loadPublished]);
|
|
105
|
+
// Realtime: refresh stock map whenever any trade_item_stock row for this
|
|
106
|
+
// connection changes (insert/update/delete). Keeps Voorraad in sync with
|
|
107
|
+
// reservations, order completions, wizard saves, imports, etc.
|
|
108
|
+
useEffect(() => {
|
|
109
|
+
if (!connectionId)
|
|
110
|
+
return;
|
|
111
|
+
const channel = supabase
|
|
112
|
+
.channel(`voorraad-stock-${connectionId}`)
|
|
113
|
+
.on("postgres_changes", {
|
|
114
|
+
event: "*",
|
|
115
|
+
schema: "public",
|
|
116
|
+
table: "trade_item_stock",
|
|
117
|
+
filter: `connection_id=eq.${connectionId}`,
|
|
118
|
+
}, () => {
|
|
119
|
+
fetchStockMap(connectionId).then(setStockMap).catch(() => { });
|
|
120
|
+
})
|
|
121
|
+
.on("postgres_changes", { event: "*", schema: "public", table: "products" }, () => {
|
|
122
|
+
loadPublished();
|
|
123
|
+
})
|
|
124
|
+
.on("postgres_changes", { event: "*", schema: "public", table: "floriday_trade_items_cache", filter: `connection_id=eq.${connectionId}` }, () => {
|
|
125
|
+
loadPublished();
|
|
126
|
+
})
|
|
127
|
+
.subscribe();
|
|
128
|
+
return () => {
|
|
129
|
+
supabase.removeChannel(channel);
|
|
130
|
+
};
|
|
131
|
+
}, [connectionId, loadPublished]);
|
|
105
132
|
const reload = useCallback(async () => {
|
|
106
133
|
await Promise.all([loadPublished(), reloadLocal()]);
|
|
107
134
|
}, [loadPublished, reloadLocal]);
|
|
135
|
+
const linkedProductIds = new Set(localItems
|
|
136
|
+
.map((i) => i.productId)
|
|
137
|
+
.filter((id) => Boolean(id)));
|
|
108
138
|
const merged = [
|
|
109
|
-
...erpItems
|
|
110
|
-
|
|
139
|
+
...erpItems
|
|
140
|
+
.filter((i) => !i.productId || !linkedProductIds.has(i.productId))
|
|
141
|
+
.map((i) => applyStock(i, stockMap.get(i.tradeItemKey ?? ""))),
|
|
142
|
+
...localItems.map((i) => applyStock(i, stockMap.get(i.tradeItemKey ?? (i.localId ? `draft:${i.localId}` : "")))),
|
|
111
143
|
...publishedItems.map((i) => applyStock(i, stockMap.get(i.id))),
|
|
112
144
|
];
|
|
113
145
|
return {
|