@flowselections/floriday-voorraad 1.0.76 → 1.0.78
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/TemplatePage.d.ts +2 -0
- package/dist-lib/components/TemplatePage.d.ts.map +1 -0
- package/dist-lib/components/TemplatePage.js +4 -0
- package/dist-lib/components/settings/VoorraadSettingsCard.d.ts +2 -0
- package/dist-lib/components/settings/VoorraadSettingsCard.d.ts.map +1 -0
- package/dist-lib/components/settings/VoorraadSettingsCard.js +39 -0
- package/dist-lib/components/voorraad/AdditionalPackagingDialog.d.ts +2 -2
- package/dist-lib/components/voorraad/AdditionalPackagingDialog.d.ts.map +1 -1
- package/dist-lib/components/voorraad/AdditionalPackagingDialog.js +2 -2
- package/dist-lib/components/voorraad/ArtikelCompositionCard.d.ts +1 -1
- package/dist-lib/components/voorraad/ArtikelCompositionCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ArtikelCompositionCard.js +1 -1
- package/dist-lib/components/voorraad/ArtikelWizard.d.ts +1 -1
- package/dist-lib/components/voorraad/ArtikelWizard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ArtikelWizard.js +49 -49
- package/dist-lib/components/voorraad/CollapsibleText.d.ts +1 -1
- package/dist-lib/components/voorraad/CollapsibleText.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ConnectionBadge.d.ts +6 -0
- package/dist-lib/components/voorraad/ConnectionBadge.d.ts.map +1 -0
- package/dist-lib/components/voorraad/ConnectionBadge.js +12 -0
- package/dist-lib/components/voorraad/ConnectionPicker.d.ts +8 -0
- package/dist-lib/components/voorraad/ConnectionPicker.d.ts.map +1 -0
- package/dist-lib/components/voorraad/ConnectionPicker.js +8 -0
- package/dist-lib/components/voorraad/EditArtikelPage.d.ts +1 -1
- package/dist-lib/components/voorraad/EditArtikelPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/EditArtikelPage.js +4 -4
- package/dist-lib/components/voorraad/ExcelExportButton.d.ts +2 -2
- package/dist-lib/components/voorraad/ExcelExportButton.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ExcelExportButton.js +1 -1
- package/dist-lib/components/voorraad/FloridayInfoCard.d.ts +1 -1
- package/dist-lib/components/voorraad/FloridayInfoCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/FloridayInfoCard.js +3 -3
- package/dist-lib/components/voorraad/FloridaySentCard.d.ts +1 -1
- package/dist-lib/components/voorraad/FloridaySentCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/FloridaySentCard.js +4 -4
- package/dist-lib/components/voorraad/FloridayStatusBadge.d.ts +4 -0
- package/dist-lib/components/voorraad/FloridayStatusBadge.d.ts.map +1 -0
- package/dist-lib/components/voorraad/FloridayStatusBadge.js +8 -0
- package/dist-lib/components/voorraad/FustenPage.d.ts +1 -1
- package/dist-lib/components/voorraad/FustenPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/FustenPage.js +4 -4
- package/dist-lib/components/voorraad/InventorySettingsDrawer.d.ts +2 -2
- package/dist-lib/components/voorraad/InventorySettingsDrawer.d.ts.map +1 -1
- package/dist-lib/components/voorraad/InventorySettingsDrawer.js +3 -3
- package/dist-lib/components/voorraad/InventoryStatusBadge.d.ts +3 -3
- package/dist-lib/components/voorraad/InventoryStatusBadge.d.ts.map +1 -1
- package/dist-lib/components/voorraad/InventoryStatusBadge.js +2 -2
- package/dist-lib/components/voorraad/ModuleHealthCard.d.ts +2 -0
- package/dist-lib/components/voorraad/ModuleHealthCard.d.ts.map +1 -0
- package/dist-lib/components/voorraad/ModuleHealthCard.js +40 -0
- package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts +1 -1
- package/dist-lib/components/voorraad/NieuwArtikelPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/NieuwArtikelPage.js +3 -3
- package/dist-lib/components/voorraad/OrderHistoryCard.d.ts +1 -1
- package/dist-lib/components/voorraad/OrderHistoryCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/OrderHistoryCard.js +1 -1
- package/dist-lib/components/voorraad/PriceStatusBadge.d.ts +1 -1
- package/dist-lib/components/voorraad/PriceStatusBadge.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ProductCustomFieldsCard.d.ts +1 -1
- package/dist-lib/components/voorraad/ProductCustomFieldsCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ProductCustomFieldsCard.js +2 -2
- package/dist-lib/components/voorraad/ProductLinkCard.d.ts +1 -1
- package/dist-lib/components/voorraad/ProductLinkCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ProductLinkCard.js +6 -6
- package/dist-lib/components/voorraad/ProductSalePriceField.d.ts +2 -2
- package/dist-lib/components/voorraad/ProductSalePriceField.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ProductSalePriceField.js +2 -2
- package/dist-lib/components/voorraad/ProductStructureCard.d.ts +2 -2
- package/dist-lib/components/voorraad/ProductStructureCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ProductStructureCard.js +3 -3
- package/dist-lib/components/voorraad/PublicatiesPage.d.ts +1 -1
- package/dist-lib/components/voorraad/PublicatiesPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/PublicatiesPage.js +2 -2
- package/dist-lib/components/voorraad/PublishProgressCard.d.ts +2 -2
- package/dist-lib/components/voorraad/PublishProgressCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/PublishReadinessCard.d.ts +2 -2
- package/dist-lib/components/voorraad/PublishReadinessCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StepSamenstelling.d.ts +2 -2
- package/dist-lib/components/voorraad/StepSamenstelling.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StepSamenstelling.js +98 -1
- package/dist-lib/components/voorraad/StockBulkButtons.d.ts +2 -2
- package/dist-lib/components/voorraad/StockBulkButtons.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StockBulkButtons.js +6 -6
- package/dist-lib/components/voorraad/StockHistoryChart.d.ts +1 -1
- package/dist-lib/components/voorraad/StockHistoryChart.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StockHistoryChart.js +1 -1
- package/dist-lib/components/voorraad/StockIntegrityAlert.d.ts +1 -1
- package/dist-lib/components/voorraad/StockIntegrityAlert.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StockIntegrityAlert.js +1 -1
- package/dist-lib/components/voorraad/StockMutationHistoryCard.d.ts +1 -1
- package/dist-lib/components/voorraad/StockMutationHistoryCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StockMutationHistoryCard.js +2 -2
- package/dist-lib/components/voorraad/StockPushMonitor.d.ts +1 -1
- package/dist-lib/components/voorraad/StockPushMonitor.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StockPushMonitor.js +8 -8
- package/dist-lib/components/voorraad/StockSyncStatus.d.ts +1 -1
- package/dist-lib/components/voorraad/StockSyncStatus.d.ts.map +1 -1
- package/dist-lib/components/voorraad/StockSyncStatus.js +2 -2
- package/dist-lib/components/voorraad/SupplyReadScopeAlert.d.ts +1 -1
- package/dist-lib/components/voorraad/SupplyReadScopeAlert.d.ts.map +1 -1
- package/dist-lib/components/voorraad/SupplyReadScopeAlert.js +1 -1
- package/dist-lib/components/voorraad/TrayStickerCard.d.ts +1 -1
- package/dist-lib/components/voorraad/TrayStickerCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts +2 -2
- package/dist-lib/components/voorraad/ValidationOverviewTable.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ValidationOverviewTable.js +5 -5
- package/dist-lib/components/voorraad/ValidationPage.d.ts +1 -1
- package/dist-lib/components/voorraad/ValidationPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/ValidationPage.js +3 -3
- package/dist-lib/components/voorraad/VoorraadDashboard.d.ts +10 -0
- package/dist-lib/components/voorraad/VoorraadDashboard.d.ts.map +1 -0
- package/dist-lib/components/voorraad/VoorraadDashboard.js +53 -0
- package/dist-lib/components/voorraad/VoorraadPage.d.ts +1 -1
- package/dist-lib/components/voorraad/VoorraadPage.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadPage.js +35 -16
- package/dist-lib/components/voorraad/VoorraadPagination.d.ts +1 -1
- package/dist-lib/components/voorraad/VoorraadPagination.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadStockCard.d.ts +1 -1
- package/dist-lib/components/voorraad/VoorraadStockCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadStockCard.js +3 -3
- package/dist-lib/components/voorraad/VoorraadTable.d.ts +3 -3
- package/dist-lib/components/voorraad/VoorraadTable.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadTable.js +122 -39
- package/dist-lib/components/voorraad/VoorraadVeldenCard.d.ts +1 -1
- package/dist-lib/components/voorraad/VoorraadVeldenCard.d.ts.map +1 -1
- package/dist-lib/components/voorraad/VoorraadVeldenCard.js +2 -2
- package/dist-lib/hooks/useFloriday.d.ts +1 -1
- package/dist-lib/hooks/useFloriday.js +4 -4
- package/dist-lib/hooks/useFloridayConnection.d.ts +1 -1
- package/dist-lib/hooks/useFloridayConnection.js +1 -1
- package/dist-lib/hooks/useFloridayContinuousStock.js +1 -1
- package/dist-lib/hooks/useFloridayPriceGroups.js +1 -1
- package/dist-lib/hooks/useFloridayVbnRequired.js +1 -1
- package/dist-lib/hooks/useFlorydayCustomers.js +1 -1
- package/dist-lib/hooks/useFusten.d.ts +1 -1
- package/dist-lib/hooks/useFusten.js +2 -2
- package/dist-lib/hooks/useInventorySettings.d.ts +1 -1
- package/dist-lib/hooks/useInventorySettings.js +1 -1
- package/dist-lib/hooks/useLocalTradeItems.d.ts +2 -2
- package/dist-lib/hooks/useLocalTradeItems.js +3 -3
- package/dist-lib/hooks/usePublishJob.d.ts +1 -1
- package/dist-lib/hooks/usePublishJob.js +2 -2
- package/dist-lib/hooks/useStockPushJobs.js +1 -1
- package/dist-lib/hooks/useStockSyncHealth.js +1 -1
- package/dist-lib/hooks/useTradeItemSpec.d.ts +2 -2
- package/dist-lib/hooks/useTradeItemStock.js +3 -3
- package/dist-lib/hooks/useVbnRegulatoryFeatures.d.ts +1 -1
- package/dist-lib/hooks/useVbnRegulatoryFeatures.js +1 -1
- package/dist-lib/hooks/useVoorraadCustomFields.d.ts +1 -1
- package/dist-lib/hooks/useVoorraadCustomFields.js +1 -1
- package/dist-lib/hooks/useVoorraadData.d.ts +1 -1
- package/dist-lib/hooks/useVoorraadData.js +6 -6
- package/dist-lib/hooks-entry.d.ts +5 -5
- package/dist-lib/hooks-entry.js +5 -5
- package/dist-lib/index.d.ts +11 -11
- package/dist-lib/index.js +12 -12
- package/dist-lib/integrations/supabase/auth-attacher.js +1 -1
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +1 -1
- package/dist-lib/integrations/supabase/client.js +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +1 -1
- package/dist-lib/integrations/supabase/client.server.js +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +450 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/__tests__/floricode-required-features.test.js +1 -1
- package/dist-lib/lib/__tests__/floriday-base-supply.test.js +1 -1
- package/dist-lib/lib/base-supply-reader.server.js +2 -2
- package/dist-lib/lib/ensure-article-codes.d.ts +1 -1
- package/dist-lib/lib/ensure-article-codes.js +1 -1
- package/dist-lib/lib/floricode-client.js +1 -1
- package/dist-lib/lib/floriday-2026v1.server.js +2 -2
- package/dist-lib/lib/floriday-client.d.ts +2 -2
- package/dist-lib/lib/floriday-client.js +2 -2
- package/dist-lib/lib/floriday-customer-offer.functions.d.ts +1 -1
- package/dist-lib/lib/floriday-customer-offer.functions.js +4 -4
- package/dist-lib/lib/floriday-env.functions.d.ts +4 -4
- package/dist-lib/lib/floriday-env.functions.js +4 -4
- package/dist-lib/lib/floriday-env.server.d.ts +2 -2
- package/dist-lib/lib/floriday-env.server.js +2 -2
- package/dist-lib/lib/floriday-field-sources.d.ts +18 -0
- package/dist-lib/lib/floriday-field-sources.d.ts.map +1 -0
- package/dist-lib/lib/floriday-field-sources.js +45 -0
- package/dist-lib/lib/floriday-gateway.functions.d.ts +10 -10
- package/dist-lib/lib/floriday-gateway.functions.js +14 -14
- package/dist-lib/lib/floriday-gateway.server.d.ts +1 -1
- package/dist-lib/lib/floriday-gateway.server.js +9 -9
- package/dist-lib/lib/floriday-import-validator.d.ts +1 -1
- package/dist-lib/lib/floriday-readiness.server.d.ts +1 -1
- package/dist-lib/lib/floriday-readiness.server.js +2 -2
- package/dist-lib/lib/floriday-relink.js +1 -1
- package/dist-lib/lib/floriday-schema-to-zod.d.ts +9 -0
- package/dist-lib/lib/floriday-schema-to-zod.d.ts.map +1 -0
- package/dist-lib/lib/floriday-schema-to-zod.js +53 -0
- package/dist-lib/lib/floriday-stock-supply.server.d.ts +1 -1
- package/dist-lib/lib/floriday-stock-supply.server.js +2 -2
- package/dist-lib/lib/floriday-supply-line.js +2 -2
- package/dist-lib/lib/floriday-vbn-required.functions.d.ts +2 -2
- package/dist-lib/lib/floriday-vbn-required.functions.js +2 -2
- package/dist-lib/lib/floriday-warehouse.functions.d.ts +6 -6
- package/dist-lib/lib/floriday-warehouse.functions.js +7 -7
- package/dist-lib/lib/floriday-write-gate.server.js +1 -1
- package/dist-lib/lib/floriday-writes.functions.d.ts +2 -2
- package/dist-lib/lib/floriday-writes.functions.js +6 -6
- package/dist-lib/lib/fusten.d.ts +1 -1
- package/dist-lib/lib/fusten.js +2 -2
- package/dist-lib/lib/inventory-settings.functions.js +1 -1
- package/dist-lib/lib/logistics-buffer-events.server.js +2 -2
- package/dist-lib/lib/logistics-events.js +2 -2
- package/dist-lib/lib/logistics-tasks.server.js +5 -5
- package/dist-lib/lib/merge-products.d.ts +8 -0
- package/dist-lib/lib/merge-products.d.ts.map +1 -0
- package/dist-lib/lib/merge-products.js +17 -0
- package/dist-lib/lib/module-health.functions.d.ts +53497 -0
- package/dist-lib/lib/module-health.functions.d.ts.map +1 -0
- package/dist-lib/lib/module-health.functions.js +261 -0
- package/dist-lib/lib/module-runtime-config.functions.d.ts +1 -1
- package/dist-lib/lib/module-runtime-config.functions.js +2 -2
- package/dist-lib/lib/module-runtime.server.js +1 -1
- package/dist-lib/lib/product-packing.js +1 -1
- package/dist-lib/lib/product-types.js +1 -1
- package/dist-lib/lib/publish-pipeline.d.ts +1 -1
- package/dist-lib/lib/publish-pipeline.js +2 -2
- package/dist-lib/lib/publish-readiness.d.ts +2 -2
- package/dist-lib/lib/trade-item-prices.d.ts +1 -1
- package/dist-lib/lib/trade-item-prices.js +2 -2
- package/dist-lib/lib/validationSchemas.d.ts +15 -0
- package/dist-lib/lib/validationSchemas.d.ts.map +1 -0
- package/dist-lib/lib/validationSchemas.js +25 -0
- package/dist-lib/lib/voorraad-custom-fields.js +1 -1
- package/dist-lib/server-hooks/floriday-base-supply.js +1 -1
- package/dist-lib/server-hooks/floriday-continuous-stock-pull.js +1 -1
- package/dist-lib/server-hooks/floriday-continuous-stock.js +1 -1
- package/dist-lib/server-hooks/floriday-stock-reconcile.js +1 -1
- package/dist-lib/server-hooks/logistics-tasks-run.js +1 -1
- package/package.json +2 -2
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
2
3
|
import { useNavigate } from "@tanstack/react-router";
|
|
3
|
-
import { Package, Settings2 } from "lucide-react";
|
|
4
|
-
import { Badge, Button, Checkbox } from "@flowselections/core";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
4
|
+
import { Columns3, Package, Settings2 } from "lucide-react";
|
|
5
|
+
import { Badge, Button, Checkbox, DropdownMenu, DropdownMenuCheckboxItem, DropdownMenuContent, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, } from "@flowselections/core";
|
|
6
|
+
import { supabase } from "../../integrations/supabase/client.js";
|
|
7
|
+
import { useVoorraadCustomFields } from "../../hooks/useVoorraadCustomFields.js";
|
|
8
|
+
import { formatCustomValue } from "../../lib/voorraad-custom-fields.js";
|
|
9
|
+
import { InventoryStatusBadge } from "./InventoryStatusBadge.js";
|
|
10
|
+
import { PRODUCT_TYPE_CLASSES, PRODUCT_TYPE_HELP, PRODUCT_TYPE_LABELS, toStructureType } from "../../lib/product-types.js";
|
|
9
11
|
const columns = [
|
|
10
12
|
{ key: "quantity", label: "Liggend" },
|
|
11
13
|
{ key: "minQuantity", label: "Minimum" },
|
|
@@ -14,6 +16,69 @@ const columns = [
|
|
|
14
16
|
{ key: "incomingQuantity", label: "Inkomend" },
|
|
15
17
|
{ key: "economicQuantity", label: "Economisch" },
|
|
16
18
|
];
|
|
19
|
+
/** Standaard zichtbare kolommen; de rest via "Kolommen kiezen" (per browser onthouden). */
|
|
20
|
+
const DEFAULT_VISIBLE = ["quantity", "availableQuantity", "price"];
|
|
21
|
+
const COLS_STORAGE_KEY = "voorraad.visibleColumns.v1";
|
|
22
|
+
const OPTIONAL_LABELS = {
|
|
23
|
+
type: "Type",
|
|
24
|
+
articleNumber: "Artikelnummer",
|
|
25
|
+
price: "Prijs",
|
|
26
|
+
};
|
|
27
|
+
function useVisibleColumns() {
|
|
28
|
+
const [visible, setVisible] = useState(new Set(DEFAULT_VISIBLE));
|
|
29
|
+
useEffect(() => {
|
|
30
|
+
try {
|
|
31
|
+
const raw = window.localStorage.getItem(COLS_STORAGE_KEY);
|
|
32
|
+
if (raw)
|
|
33
|
+
setVisible(new Set(JSON.parse(raw)));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
/* standaard houden */
|
|
37
|
+
}
|
|
38
|
+
}, []);
|
|
39
|
+
const toggle = (key) => setVisible((cur) => {
|
|
40
|
+
const next = new Set(cur);
|
|
41
|
+
if (next.has(key))
|
|
42
|
+
next.delete(key);
|
|
43
|
+
else
|
|
44
|
+
next.add(key);
|
|
45
|
+
try {
|
|
46
|
+
window.localStorage.setItem(COLS_STORAGE_KEY, JSON.stringify([...next]));
|
|
47
|
+
}
|
|
48
|
+
catch {
|
|
49
|
+
/* niet opslaan is geen probleem */
|
|
50
|
+
}
|
|
51
|
+
return next;
|
|
52
|
+
});
|
|
53
|
+
return { visible, toggle };
|
|
54
|
+
}
|
|
55
|
+
/** Verkoopprijs per artikel (op id), alleen geladen als de kolom zichtbaar is. */
|
|
56
|
+
function useSalePrices(productIds, enabled) {
|
|
57
|
+
const [prices, setPrices] = useState(new Map());
|
|
58
|
+
const key = productIds.join(",");
|
|
59
|
+
useEffect(() => {
|
|
60
|
+
if (!enabled || productIds.length === 0)
|
|
61
|
+
return;
|
|
62
|
+
let cancelled = false;
|
|
63
|
+
void supabase
|
|
64
|
+
.from("products")
|
|
65
|
+
.select("id,sale_price")
|
|
66
|
+
.in("id", productIds)
|
|
67
|
+
.then(({ data }) => {
|
|
68
|
+
if (cancelled)
|
|
69
|
+
return;
|
|
70
|
+
const m = new Map();
|
|
71
|
+
for (const p of data ?? [])
|
|
72
|
+
m.set(p.id, p.sale_price == null ? null : Number(p.sale_price));
|
|
73
|
+
setPrices(m);
|
|
74
|
+
});
|
|
75
|
+
return () => {
|
|
76
|
+
cancelled = true;
|
|
77
|
+
};
|
|
78
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
79
|
+
}, [key, enabled]);
|
|
80
|
+
return prices;
|
|
81
|
+
}
|
|
17
82
|
function customValue(item, key) {
|
|
18
83
|
const cf = item.raw?.custom_fields;
|
|
19
84
|
return cf && typeof cf === "object" ? cf[key] : undefined;
|
|
@@ -25,7 +90,14 @@ export function settingKeyOf(item) {
|
|
|
25
90
|
export function VoorraadTable({ items, loading, settingsByKey, selected, onToggleSelect, onToggleAll, onOpenSettings, }) {
|
|
26
91
|
const navigate = useNavigate();
|
|
27
92
|
const { fields } = useVoorraadCustomFields();
|
|
28
|
-
const
|
|
93
|
+
const { visible, toggle } = useVisibleColumns();
|
|
94
|
+
const allExtraColumns = fields.filter((f) => f.show_in_columns);
|
|
95
|
+
const extraColumns = allExtraColumns.filter((f) => visible.has(`cf:${f.id}`));
|
|
96
|
+
const shownColumns = columns.filter((c) => visible.has(c.key));
|
|
97
|
+
const showType = visible.has("type");
|
|
98
|
+
const showArticle = visible.has("articleNumber");
|
|
99
|
+
const showPrice = visible.has("price");
|
|
100
|
+
const prices = useSalePrices(items.map((i) => i.productId).filter((v) => Boolean(v)), showPrice);
|
|
29
101
|
const selectableIds = items
|
|
30
102
|
.map((i) => settingsByKey?.get(settingKeyOf(i) ?? "")?.product_id ?? null)
|
|
31
103
|
.filter((v) => Boolean(v));
|
|
@@ -34,37 +106,48 @@ export function VoorraadTable({ items, loading, settingsByKey, selected, onToggl
|
|
|
34
106
|
return _jsx("p", { className: "text-sm text-muted-foreground p-6", children: "Voorraad laden..." });
|
|
35
107
|
}
|
|
36
108
|
if (items.length === 0) {
|
|
37
|
-
return (_jsx("p", { className: "text-sm text-muted-foreground p-6", children: "Geen producten gevonden voor deze
|
|
109
|
+
return (_jsx("p", { className: "text-sm text-muted-foreground p-6", children: "Geen producten gevonden voor deze Floriday-koppeling." }));
|
|
38
110
|
}
|
|
39
|
-
return (
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
}
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
111
|
+
return (_jsxs("div", { children: [_jsx("div", { className: "flex justify-end px-3 pt-2", children: _jsxs(DropdownMenu, { children: [_jsx(DropdownMenuTrigger, { asChild: true, children: _jsxs(Button, { variant: "outline", size: "sm", children: [_jsx(Columns3, { className: "h-4 w-4 mr-1" }), " Kolommen kiezen"] }) }), _jsxs(DropdownMenuContent, { align: "end", children: [_jsx(DropdownMenuLabel, { children: "Kolommen" }), _jsx(DropdownMenuSeparator, {}), [
|
|
112
|
+
{ key: "type", label: OPTIONAL_LABELS.type },
|
|
113
|
+
{ key: "articleNumber", label: OPTIONAL_LABELS.articleNumber },
|
|
114
|
+
...columns.map((c) => ({ key: c.key, label: c.label })),
|
|
115
|
+
{ key: "price", label: OPTIONAL_LABELS.price },
|
|
116
|
+
...allExtraColumns.map((f) => ({ key: `cf:${f.id}`, label: f.field_label })),
|
|
117
|
+
].map((c) => (_jsx(DropdownMenuCheckboxItem, { checked: visible.has(c.key), onCheckedChange: () => toggle(c.key), onSelect: (e) => e.preventDefault(), children: c.label }, c.key)))] })] }) }), _jsx("div", { className: "overflow-x-auto", children: _jsxs("table", { className: "w-full text-sm", children: [_jsx("thead", { className: "bg-muted/50 text-left", children: _jsxs("tr", { children: [onToggleSelect && (_jsx("th", { className: "p-3 w-10", children: _jsx(Checkbox, { checked: allSelected, onCheckedChange: () => onToggleAll?.(selectableIds), "aria-label": "Alles selecteren" }) })), _jsx("th", { className: "p-3 w-14" }), _jsx("th", { className: "p-3", children: "Product" }), _jsx("th", { className: "p-3", children: "Floriday-sturing" }), showType && _jsx("th", { className: "p-3", children: "Type" }), showArticle && _jsx("th", { className: "p-3", children: "Artikelnummer" }), shownColumns.map((c) => (_jsx("th", { className: "p-3 text-right whitespace-nowrap", children: c.label }, c.key))), showPrice && _jsx("th", { className: "p-3 text-right whitespace-nowrap", children: "Prijs" }), extraColumns.map((f) => (_jsx("th", { className: "p-3 whitespace-nowrap", children: f.field_label }, f.id)))] }) }), _jsx("tbody", { children: items.map((item) => {
|
|
118
|
+
const low = item.minQuantity > 0 &&
|
|
119
|
+
item.availableQuantity < item.minQuantity;
|
|
120
|
+
const overReserved = Number(item.reservedQuantity ?? 0) > Number(item.quantity ?? 0);
|
|
121
|
+
const linkId = item.productId ?? item.localId ?? item.id;
|
|
122
|
+
const clickable = Boolean(linkId);
|
|
123
|
+
const open = () => {
|
|
124
|
+
if (linkId)
|
|
125
|
+
navigate({ to: "/voorraad/$id", params: { id: linkId } });
|
|
126
|
+
};
|
|
127
|
+
const floriday = item.floriday ?? null;
|
|
128
|
+
const thumbUrl = floriday?.photoUrl || item.imageUrl;
|
|
129
|
+
const setting = settingsByKey?.get(settingKeyOf(item) ?? "");
|
|
130
|
+
const settingProductId = setting?.product_id ?? null;
|
|
131
|
+
return (_jsxs("tr", { className: `border-t hover:bg-muted/30 ${clickable ? "cursor-pointer" : ""}`, onClick: clickable ? open : undefined, role: clickable ? "button" : undefined, tabIndex: clickable ? 0 : undefined, onKeyDown: clickable
|
|
132
|
+
? (e) => {
|
|
133
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
134
|
+
e.preventDefault();
|
|
135
|
+
open();
|
|
136
|
+
}
|
|
137
|
+
}
|
|
138
|
+
: undefined, "aria-label": clickable ? `Bewerk ${item.name}` : undefined, children: [onToggleSelect && (_jsx("td", { className: "p-3", onClick: (e) => e.stopPropagation(), children: _jsx(Checkbox, { checked: settingProductId ? selected?.has(settingProductId) : false, disabled: !settingProductId, onCheckedChange: () => settingProductId && onToggleSelect(settingProductId), "aria-label": `Selecteer ${item.name}` }) })), _jsx("td", { className: "p-2", children: thumbUrl ? (_jsx("img", { src: thumbUrl, alt: item.name, className: "h-10 w-10 rounded object-cover", loading: "lazy" })) : (_jsx("div", { className: "h-10 w-10 rounded bg-muted flex items-center justify-center", children: _jsx(Package, { className: "h-4 w-4 text-muted-foreground" }) })) }), _jsxs("td", { className: "p-3", children: [_jsxs("div", { className: "flex flex-col items-start gap-1", children: [_jsx("span", { className: "font-medium text-foreground", children: item.name }), _jsxs("div", { role: "status", "aria-label": floriday
|
|
139
|
+
? "Online in Floriday"
|
|
140
|
+
: "Niet online in Floriday", title: floriday
|
|
141
|
+
? "Online in Floriday"
|
|
142
|
+
: "Niet online in Floriday", className: "inline-flex items-center gap-1.5 rounded-full border border-border bg-background px-2 py-0.5 text-[11px] font-medium leading-none text-muted-foreground", children: [_jsx("span", { className: "h-1.5 w-1.5 rounded-full " +
|
|
143
|
+
(floriday ? "bg-emerald-500" : "bg-red-500"), "aria-hidden": true }), _jsx("span", { children: "Floriday" })] })] }), Boolean(customValue(item, "floriday_sync")?.dirty) && (_jsx("div", { className: "mt-1 inline-flex items-center rounded-full bg-amber-100 px-2 py-0.5 text-[11px] font-medium leading-none text-amber-800", title: "Opgeslagen in dit systeem, wacht nog op doorgifte naar Floriday", children: "Wacht op Floriday" })), low && (_jsx("div", { className: "text-xs text-destructive", children: "onder minimumvoorraad" })), overReserved && (_jsx("div", { className: "text-xs text-amber-700", title: "Er is meer gereserveerd voor orders dan er ligt. Controleer open orders.", children: "gereserveerd groter dan liggend" }))] }), _jsx("td", { className: "p-3", onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(InventoryStatusBadge, { setting: setting }), settingProductId && onOpenSettings && (_jsx(Button, { variant: "ghost", size: "sm", className: "h-7 w-7 p-0", onClick: () => onOpenSettings(settingProductId), "aria-label": `Voorraadsturing van ${item.name}`, children: _jsx(Settings2, { className: "h-4 w-4" }) }))] }) }), showType && _jsx("td", { className: "p-3", children: (() => {
|
|
144
|
+
const t = toStructureType(setting?.product_type, item.itemType);
|
|
145
|
+
return (_jsxs("div", { className: "flex flex-col items-start gap-1", children: [_jsx(Badge, { variant: t === "NORMAL" ? "secondary" : undefined, className: PRODUCT_TYPE_CLASSES[t], title: PRODUCT_TYPE_HELP[t], children: PRODUCT_TYPE_LABELS[t] }), setting?.action_reason === "GROUP_MEMBER_OFF" && (_jsx("span", { className: "text-[11px] text-muted-foreground", title: "Dit artikel is lid van een actieve productgroep; alleen de groep staat in Floriday.", children: "Lid van groep \u00B7 niet los in Floriday" })), setting?.action_reason === "SET_AWAITS_LOGISTICS" && (item.floridayId ? (_jsx("span", { className: "text-[11px] text-amber-700", title: "Set: dit artikel staat in Floriday. De voorraad (berekend uit de onderdelen) gaat pas naar Floriday na akkoord, als de Logistieke engine onderdelen reserveert.", children: "In Floriday \u00B7 voorraad van de samenstelling volgt" })) : (_jsx("span", { className: "text-[11px] text-amber-700", title: "Berekend uit de onderdelen; nog niet gekoppeld aan een Floriday-artikel.", children: "Berekend \u00B7 nog niet gekoppeld aan Floriday" })))] }));
|
|
146
|
+
})() }), showArticle && _jsx("td", { className: "p-3 font-mono text-xs", children: item.articleNumber || "—" }), shownColumns.map((c) => (_jsx("td", { className: "p-3 text-right tabular-nums text-muted-foreground", children: Number(item[c.key] ?? 0) }, c.key))), showPrice && (_jsx("td", { className: "p-3 text-right tabular-nums text-muted-foreground whitespace-nowrap", children: (() => {
|
|
147
|
+
const p = item.productId ? prices.get(item.productId) : undefined;
|
|
148
|
+
if (p == null)
|
|
149
|
+
return "—";
|
|
150
|
+
return `€ ${p.toLocaleString("nl-NL", { minimumFractionDigits: 2, maximumFractionDigits: 2 })}`;
|
|
151
|
+
})() })), extraColumns.map((f) => (_jsx("td", { className: "p-3 text-muted-foreground whitespace-nowrap", children: formatCustomValue(customValue(item, f.field_key)) }, f.id)))] }, item.id));
|
|
152
|
+
}) })] }) })] }));
|
|
70
153
|
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function VoorraadVeldenCard(): import("react").JSX.Element;
|
|
1
|
+
export declare function VoorraadVeldenCard(): import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=VoorraadVeldenCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VoorraadVeldenCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/VoorraadVeldenCard.tsx"],"names":[],"mappings":"AAoCA,wBAAgB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"VoorraadVeldenCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/VoorraadVeldenCard.tsx"],"names":[],"mappings":"AAoCA,wBAAgB,kBAAkB,4CAqOjC"}
|
|
@@ -2,8 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { useState } from "react";
|
|
3
3
|
import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Checkbox, Input, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, toast, } from "@flowselections/core";
|
|
4
4
|
import { Loader2, Plus, Trash2 } from "lucide-react";
|
|
5
|
-
import { useVoorraadCustomFields } from "../../hooks/useVoorraadCustomFields";
|
|
6
|
-
import { createVoorraadCustomField, deleteVoorraadCustomField, slugifyFieldKey, updateVoorraadCustomField, } from "../../lib/voorraad-custom-fields";
|
|
5
|
+
import { useVoorraadCustomFields } from "../../hooks/useVoorraadCustomFields.js";
|
|
6
|
+
import { createVoorraadCustomField, deleteVoorraadCustomField, slugifyFieldKey, updateVoorraadCustomField, } from "../../lib/voorraad-custom-fields.js";
|
|
7
7
|
const TYPE_LABELS = {
|
|
8
8
|
text: "Tekst",
|
|
9
9
|
number: "Getal",
|
|
@@ -37,7 +37,7 @@ export declare function useCodeList(listName: string | null | undefined): import
|
|
|
37
37
|
description?: string;
|
|
38
38
|
}[];
|
|
39
39
|
}, Error>;
|
|
40
|
-
import type { GatewayEntity } from "../lib/floriday-gateway-entities";
|
|
40
|
+
import type { GatewayEntity } from "../lib/floriday-gateway-entities.js";
|
|
41
41
|
export declare function useCachedList(entity: GatewayEntity | null | undefined, limit?: number): import("@tanstack/react-query").UseQueryResult<{
|
|
42
42
|
ok: boolean;
|
|
43
43
|
entity: string;
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
2
2
|
import { useEffect } from "react";
|
|
3
|
-
import { gatewaySchemaFn, gatewayCodeListFn, gatewayCachedListFn, } from "../lib/floriday-gateway.functions";
|
|
4
|
-
import { unmappedRequiredFields } from "../lib/wizard-step-fields";
|
|
5
|
-
import { useFloridayConnection } from "./useFloridayConnection";
|
|
6
|
-
import { normalizeFloridayEnvironment } from "../lib/floriday-env";
|
|
3
|
+
import { gatewaySchemaFn, gatewayCodeListFn, gatewayCachedListFn, } from "../lib/floriday-gateway.functions.js";
|
|
4
|
+
import { unmappedRequiredFields } from "../lib/wizard-step-fields.js";
|
|
5
|
+
import { useFloridayConnection } from "./useFloridayConnection.js";
|
|
6
|
+
import { normalizeFloridayEnvironment } from "../lib/floriday-env.js";
|
|
7
7
|
function isRecord(value) {
|
|
8
8
|
return Boolean(value) && typeof value === "object" && !Array.isArray(value);
|
|
9
9
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FloridayActiveConnection } from "../lib/floriday-client";
|
|
1
|
+
import type { FloridayActiveConnection } from "../lib/floriday-client.js";
|
|
2
2
|
/**
|
|
3
3
|
* Reads the single active Floriday connection for the currently selected
|
|
4
4
|
* environment (staging/live) via the Auth-module's
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
import { supabase } from "../integrations/supabase/client";
|
|
2
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
3
3
|
/**
|
|
4
4
|
* Reads the single active Floriday connection for the currently selected
|
|
5
5
|
* environment (staging/live) via the Auth-module's
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
import { supabase } from "../integrations/supabase/client";
|
|
2
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
3
3
|
/**
|
|
4
4
|
* Silent live-cache van Floriday `continuous-stock.numberOfPieces` per
|
|
5
5
|
* trade_item_id, geïndexeerd binnen één connectie. Vult zichzelf via
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useEffect, useState } from "react";
|
|
2
|
-
import { supabase } from "../integrations/supabase/client";
|
|
2
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
3
3
|
/**
|
|
4
4
|
* Leest alle actieve (niet verwijderde) Floriday-prijsgroepen voor de opgegeven
|
|
5
5
|
* connectie uit `floriday_price_groups_cache`. De sync wordt door de
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* characteristic-codes per VBN-productcode.
|
|
4
4
|
*/
|
|
5
5
|
import { useQuery } from "@tanstack/react-query";
|
|
6
|
-
import { getFloridayVbnRequired } from "../lib/floriday-vbn-required.functions";
|
|
6
|
+
import { getFloridayVbnRequired } from "../lib/floriday-vbn-required.functions.js";
|
|
7
7
|
export function useFloridayVbnRequired(vbnCode) {
|
|
8
8
|
const code = String(vbnCode ?? "").trim();
|
|
9
9
|
const enabled = /^\d{5,6}$/.test(code);
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCallback, useEffect, useRef, useState } from "react";
|
|
2
|
-
import { supabase } from "../integrations/supabase/client";
|
|
3
|
-
import { adjustFustStock, fetchFustTypes, syncFustTypes, updateFustType, } from "../lib/fusten";
|
|
2
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
3
|
+
import { adjustFustStock, fetchFustTypes, syncFustTypes, updateFustType, } from "../lib/fusten.js";
|
|
4
4
|
/**
|
|
5
5
|
* Fustenvoorraad, altijd afgeleid van de beladingen van de producten.
|
|
6
6
|
* Bij het openen én bij elke wijziging aan producten/beladingen wordt
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* de UI leest ze alleen en schrijft via server-functies.
|
|
5
5
|
*/
|
|
6
6
|
import { useCallback, useEffect, useState } from "react";
|
|
7
|
-
import { supabase } from "../integrations/supabase/client";
|
|
7
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
8
8
|
const SELECT = "id, connection_id, product_id, floriday_trade_item_id, stock_mode, buffer_quantity, maximum_quantity, fixed_quantity, manual_quantity, desired_quantity, desired_availability, remote_quantity, remote_available, remote_checked_at, sync_status, last_sync_error, last_published_at, last_confirmed_at, action_reason, packing_size, product_type";
|
|
9
9
|
export function useInventorySettings(connectionId) {
|
|
10
10
|
const [rows, setRows] = useState([]);
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { WizardData } from "../lib/floriday-payload";
|
|
2
|
-
import { type FloridayLinkStatus, type TradeItem } from "../lib/floriday-client";
|
|
1
|
+
import type { WizardData } from "../lib/floriday-payload.js";
|
|
2
|
+
import { type FloridayLinkStatus, type TradeItem } from "../lib/floriday-client.js";
|
|
3
3
|
/**
|
|
4
4
|
* Concept/Draft is verwijderd. Alle "lokale trade items" leven nu als volwaardige rijen in
|
|
5
5
|
* `public.products` met de Floriday-velden in `custom_fields.floriday_payload`. Dit bestand behoudt de
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from "react";
|
|
2
|
-
import { supabase } from "../integrations/supabase/client";
|
|
3
|
-
import { derivePrimaryPacking } from "../lib/floriday-client";
|
|
2
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
3
|
+
import { derivePrimaryPacking } from "../lib/floriday-client.js";
|
|
4
4
|
function asRecord(value) {
|
|
5
5
|
return value && typeof value === "object" && !Array.isArray(value)
|
|
6
6
|
? value
|
|
@@ -134,7 +134,7 @@ export function readLocalSyncStatus(customFields) {
|
|
|
134
134
|
function scheduleFustSync(connectionId) {
|
|
135
135
|
void (async () => {
|
|
136
136
|
try {
|
|
137
|
-
const { syncFustTypes } = await import("../lib/fusten");
|
|
137
|
+
const { syncFustTypes } = await import("../lib/fusten.js");
|
|
138
138
|
await syncFustTypes(connectionId);
|
|
139
139
|
}
|
|
140
140
|
catch {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type PublishJobRow, type PublishStepRow } from "../lib/publish-pipeline";
|
|
1
|
+
import { type PublishJobRow, type PublishStepRow } from "../lib/publish-pipeline.js";
|
|
2
2
|
export declare function usePublishJob(jobId: string | null): {
|
|
3
3
|
job: PublishJobRow | null;
|
|
4
4
|
steps: PublishStepRow[];
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
* Volgt een lopende publicatie live: opdracht + deelstappen.
|
|
3
3
|
*/
|
|
4
4
|
import { useEffect, useState, useCallback } from "react";
|
|
5
|
-
import { supabase } from "../integrations/supabase/client";
|
|
6
|
-
import { loadPublishJob, } from "../lib/publish-pipeline";
|
|
5
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
6
|
+
import { loadPublishJob, } from "../lib/publish-pipeline.js";
|
|
7
7
|
export function usePublishJob(jobId) {
|
|
8
8
|
const [job, setJob] = useState(null);
|
|
9
9
|
const [steps, setSteps] = useState([]);
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* kunnen volgen zonder databasekennis.
|
|
5
5
|
*/
|
|
6
6
|
import { useQuery } from "@tanstack/react-query";
|
|
7
|
-
import { supabase } from "../integrations/supabase/client";
|
|
7
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
8
8
|
/** Floriday levert namen soms als taalobject ({ nl: "…", en: "…" }). */
|
|
9
9
|
function plainName(value) {
|
|
10
10
|
if (typeof value === "string")
|
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* daarvan geen prijs in het weekaanbod hebben.
|
|
9
9
|
*/
|
|
10
10
|
import { useQuery } from "@tanstack/react-query";
|
|
11
|
-
import { supabase } from "../integrations/supabase/client";
|
|
11
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
12
12
|
const STALE_MINUTES = 10;
|
|
13
13
|
const WINDOW_HOURS = 24;
|
|
14
14
|
export function reasonLabel(error) {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import type { ProductGroup } from "../lib/floriday-payload";
|
|
2
|
-
import type { FloridaySchema } from "./useFloriday";
|
|
1
|
+
import type { ProductGroup } from "../lib/floriday-payload.js";
|
|
2
|
+
import type { FloridaySchema } from "./useFloriday.js";
|
|
3
3
|
export interface SpecCharacteristicValue {
|
|
4
4
|
code: string;
|
|
5
5
|
label: string;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback, useEffect, useMemo, useState } from "react";
|
|
2
|
-
import { supabase } from "../integrations/supabase/client";
|
|
2
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
3
3
|
const EMPTY = {
|
|
4
4
|
physical_stock: 0,
|
|
5
5
|
minimum_stock: 0,
|
|
@@ -200,7 +200,7 @@ export function useTradeItemStock(connectionId, keyOrKeys, productId) {
|
|
|
200
200
|
if (sold > 0) {
|
|
201
201
|
void (async () => {
|
|
202
202
|
try {
|
|
203
|
-
const { registerSaleFustUsage } = await import("../lib/fusten");
|
|
203
|
+
const { registerSaleFustUsage } = await import("../lib/fusten.js");
|
|
204
204
|
await registerSaleFustUsage({
|
|
205
205
|
connectionId: savedConnectionId,
|
|
206
206
|
tradeItemKey: savedKey,
|
|
@@ -218,7 +218,7 @@ export function useTradeItemStock(connectionId, keyOrKeys, productId) {
|
|
|
218
218
|
// openstaande Engine-taak. Fire-and-forget, nooit blokkerend.
|
|
219
219
|
void (async () => {
|
|
220
220
|
try {
|
|
221
|
-
const { emitStockChangedEvent } = await import("../lib/logistics-events");
|
|
221
|
+
const { emitStockChangedEvent } = await import("../lib/logistics-events.js");
|
|
222
222
|
await emitStockChangedEvent({
|
|
223
223
|
tradeItemKey: savedKey,
|
|
224
224
|
physicalStock: values.physical_stock,
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { type GetRequiredFeaturesResult } from "../lib/floricode-required-features.functions";
|
|
1
|
+
import { type GetRequiredFeaturesResult } from "../lib/floricode-required-features.functions.js";
|
|
2
2
|
export declare function useVbnRegulatoryFeatures(vbnCode: string | null | undefined): import("@tanstack/react-query").UseQueryResult<GetRequiredFeaturesResult, Error>;
|
|
3
3
|
//# sourceMappingURL=useVbnRegulatoryFeatures.d.ts.map
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
* `vbn-product-group`, die deze koppeling niet bevat.
|
|
7
7
|
*/
|
|
8
8
|
import { useQuery } from "@tanstack/react-query";
|
|
9
|
-
import { getVbnRequiredFeatures, } from "../lib/floricode-required-features.functions";
|
|
9
|
+
import { getVbnRequiredFeatures, } from "../lib/floricode-required-features.functions.js";
|
|
10
10
|
export function useVbnRegulatoryFeatures(vbnCode) {
|
|
11
11
|
const code = String(vbnCode ?? "").trim();
|
|
12
12
|
const enabled = /^\d{5,6}$/.test(code);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type VoorraadCustomField } from "../lib/voorraad-custom-fields";
|
|
1
|
+
import { type VoorraadCustomField } from "../lib/voorraad-custom-fields.js";
|
|
2
2
|
/** Laadt de door de gebruiker gedefinieerde voorraadvelden. */
|
|
3
3
|
export declare function useVoorraadCustomFields(): {
|
|
4
4
|
fields: VoorraadCustomField[];
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from "react";
|
|
2
|
-
import { fetchVoorraadCustomFields, } from "../lib/voorraad-custom-fields";
|
|
2
|
+
import { fetchVoorraadCustomFields, } from "../lib/voorraad-custom-fields.js";
|
|
3
3
|
/** Laadt de door de gebruiker gedefinieerde voorraadvelden. */
|
|
4
4
|
export function useVoorraadCustomFields() {
|
|
5
5
|
const [fields, setFields] = useState([]);
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import { useCallback, useEffect, useState } from "react";
|
|
2
|
-
import { supabase } from "../integrations/supabase/client";
|
|
3
|
-
import { normaliseTradeItem } from "../lib/floriday-client";
|
|
4
|
-
import { floridayInfoFromCache } from "../lib/floriday-info";
|
|
5
|
-
import { useLocalTradeItems } from "./useLocalTradeItems";
|
|
6
|
-
import { fetchStockMap, lookupStock } from "./useTradeItemStock";
|
|
7
|
-
import { useFloridayContinuousStockMap } from "./useFloridayContinuousStock";
|
|
2
|
+
import { supabase } from "../integrations/supabase/client.js";
|
|
3
|
+
import { normaliseTradeItem } from "../lib/floriday-client.js";
|
|
4
|
+
import { floridayInfoFromCache } from "../lib/floriday-info.js";
|
|
5
|
+
import { useLocalTradeItems } from "./useLocalTradeItems.js";
|
|
6
|
+
import { fetchStockMap, lookupStock } from "./useTradeItemStock.js";
|
|
7
|
+
import { useFloridayContinuousStockMap } from "./useFloridayContinuousStock.js";
|
|
8
8
|
function applyStock(item, s) {
|
|
9
9
|
if (!s)
|
|
10
10
|
return item;
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
* package.json → flowselections.serverRoutes als routes aanmaakt.
|
|
4
4
|
* Server-only; nooit importeren vanuit client-code.
|
|
5
5
|
*/
|
|
6
|
-
export { handleFloridayBaseSupply } from "./server-hooks/floriday-base-supply";
|
|
7
|
-
export { handleFloridayContinuousStock } from "./server-hooks/floriday-continuous-stock";
|
|
8
|
-
export { handleFloridayContinuousStockPull } from "./server-hooks/floriday-continuous-stock-pull";
|
|
9
|
-
export { handleFloridayStockReconcile } from "./server-hooks/floriday-stock-reconcile";
|
|
10
|
-
export { handleLogisticsTasksRun } from "./server-hooks/logistics-tasks-run";
|
|
6
|
+
export { handleFloridayBaseSupply } from "./server-hooks/floriday-base-supply.js";
|
|
7
|
+
export { handleFloridayContinuousStock } from "./server-hooks/floriday-continuous-stock.js";
|
|
8
|
+
export { handleFloridayContinuousStockPull } from "./server-hooks/floriday-continuous-stock-pull.js";
|
|
9
|
+
export { handleFloridayStockReconcile } from "./server-hooks/floriday-stock-reconcile.js";
|
|
10
|
+
export { handleLogisticsTasksRun } from "./server-hooks/logistics-tasks-run.js";
|
|
11
11
|
//# sourceMappingURL=hooks-entry.d.ts.map
|
package/dist-lib/hooks-entry.js
CHANGED
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
* package.json → flowselections.serverRoutes als routes aanmaakt.
|
|
4
4
|
* Server-only; nooit importeren vanuit client-code.
|
|
5
5
|
*/
|
|
6
|
-
export { handleFloridayBaseSupply } from "./server-hooks/floriday-base-supply";
|
|
7
|
-
export { handleFloridayContinuousStock } from "./server-hooks/floriday-continuous-stock";
|
|
8
|
-
export { handleFloridayContinuousStockPull } from "./server-hooks/floriday-continuous-stock-pull";
|
|
9
|
-
export { handleFloridayStockReconcile } from "./server-hooks/floriday-stock-reconcile";
|
|
10
|
-
export { handleLogisticsTasksRun } from "./server-hooks/logistics-tasks-run";
|
|
6
|
+
export { handleFloridayBaseSupply } from "./server-hooks/floriday-base-supply.js";
|
|
7
|
+
export { handleFloridayContinuousStock } from "./server-hooks/floriday-continuous-stock.js";
|
|
8
|
+
export { handleFloridayContinuousStockPull } from "./server-hooks/floriday-continuous-stock-pull.js";
|
|
9
|
+
export { handleFloridayStockReconcile } from "./server-hooks/floriday-stock-reconcile.js";
|
|
10
|
+
export { handleLogisticsTasksRun } from "./server-hooks/logistics-tasks-run.js";
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import type { FlowModule } from "@flowselections/core";
|
|
2
|
-
export * from './_core-safelist';
|
|
3
|
-
export { VoorraadPage } from './components/voorraad/VoorraadPage';
|
|
4
|
-
export { NieuwArtikelPage } from './components/voorraad/NieuwArtikelPage';
|
|
5
|
-
export { EditArtikelPage } from './components/voorraad/EditArtikelPage';
|
|
6
|
-
export { ValidationPage } from './components/voorraad/ValidationPage';
|
|
7
|
-
export { ArtikelWizard } from './components/voorraad/ArtikelWizard';
|
|
8
|
-
export { ProductLinkCard } from './components/voorraad/ProductLinkCard';
|
|
9
|
-
export { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard';
|
|
10
|
-
export { ProductCustomFieldsCard } from './components/voorraad/ProductCustomFieldsCard';
|
|
11
|
-
export { FustenPage } from "./components/voorraad/FustenPage";
|
|
12
|
-
export { PublicatiesPage } from "./components/voorraad/PublicatiesPage";
|
|
2
|
+
export * from './_core-safelist.js';
|
|
3
|
+
export { VoorraadPage } from './components/voorraad/VoorraadPage.js';
|
|
4
|
+
export { NieuwArtikelPage } from './components/voorraad/NieuwArtikelPage.js';
|
|
5
|
+
export { EditArtikelPage } from './components/voorraad/EditArtikelPage.js';
|
|
6
|
+
export { ValidationPage } from './components/voorraad/ValidationPage.js';
|
|
7
|
+
export { ArtikelWizard } from './components/voorraad/ArtikelWizard.js';
|
|
8
|
+
export { ProductLinkCard } from './components/voorraad/ProductLinkCard.js';
|
|
9
|
+
export { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard.js';
|
|
10
|
+
export { ProductCustomFieldsCard } from './components/voorraad/ProductCustomFieldsCard.js';
|
|
11
|
+
export { FustenPage } from "./components/voorraad/FustenPage.js";
|
|
12
|
+
export { PublicatiesPage } from "./components/voorraad/PublicatiesPage.js";
|
|
13
13
|
export declare const floridayVoorraadModule: FlowModule;
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
package/dist-lib/index.js
CHANGED
|
@@ -2,18 +2,18 @@
|
|
|
2
2
|
// src/index.ts — MODULE CONTRACT (Voorraad)
|
|
3
3
|
// ============================================================================
|
|
4
4
|
import { Boxes, Package } from "lucide-react";
|
|
5
|
-
export * from './_core-safelist';
|
|
6
|
-
export { VoorraadPage } from './components/voorraad/VoorraadPage';
|
|
7
|
-
export { NieuwArtikelPage } from './components/voorraad/NieuwArtikelPage';
|
|
8
|
-
export { EditArtikelPage } from './components/voorraad/EditArtikelPage';
|
|
9
|
-
export { ValidationPage } from './components/voorraad/ValidationPage';
|
|
10
|
-
export { ArtikelWizard } from './components/voorraad/ArtikelWizard';
|
|
11
|
-
export { ProductLinkCard } from './components/voorraad/ProductLinkCard';
|
|
12
|
-
export { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard';
|
|
13
|
-
export { ProductCustomFieldsCard } from './components/voorraad/ProductCustomFieldsCard';
|
|
14
|
-
import { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard';
|
|
15
|
-
export { FustenPage } from "./components/voorraad/FustenPage";
|
|
16
|
-
export { PublicatiesPage } from "./components/voorraad/PublicatiesPage";
|
|
5
|
+
export * from './_core-safelist.js';
|
|
6
|
+
export { VoorraadPage } from './components/voorraad/VoorraadPage.js';
|
|
7
|
+
export { NieuwArtikelPage } from './components/voorraad/NieuwArtikelPage.js';
|
|
8
|
+
export { EditArtikelPage } from './components/voorraad/EditArtikelPage.js';
|
|
9
|
+
export { ValidationPage } from './components/voorraad/ValidationPage.js';
|
|
10
|
+
export { ArtikelWizard } from './components/voorraad/ArtikelWizard.js';
|
|
11
|
+
export { ProductLinkCard } from './components/voorraad/ProductLinkCard.js';
|
|
12
|
+
export { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard.js';
|
|
13
|
+
export { ProductCustomFieldsCard } from './components/voorraad/ProductCustomFieldsCard.js';
|
|
14
|
+
import { VoorraadVeldenCard } from './components/voorraad/VoorraadVeldenCard.js';
|
|
15
|
+
export { FustenPage } from "./components/voorraad/FustenPage.js";
|
|
16
|
+
export { PublicatiesPage } from "./components/voorraad/PublicatiesPage.js";
|
|
17
17
|
export const floridayVoorraadModule = {
|
|
18
18
|
id: "voorraad",
|
|
19
19
|
name: "Voorraad",
|