@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TemplatePage.d.ts","sourceRoot":"","sources":["../../src/components/TemplatePage.tsx"],"names":[],"mappings":"AAAA,wBAAgB,YAAY,4CAS3B"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
export function TemplatePage() {
|
|
3
|
+
return (_jsxs("div", { className: "p-6", children: [_jsx("h1", { className: "text-2xl font-semibold", children: "Module pagina" }), _jsx("p", { className: "text-muted-foreground mt-2", children: "Vervang dit component met de pagina's van jouw module." })] }));
|
|
4
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VoorraadSettingsCard.d.ts","sourceRoot":"","sources":["../../../src/components/settings/VoorraadSettingsCard.tsx"],"names":[],"mappings":"AAeA,wBAAgB,oBAAoB,4CA8DnC"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { Card, CardContent, CardDescription, CardHeader, CardTitle, Button, Input, Label, supabase, toast, } from "@flowselections/core";
|
|
4
|
+
import { Package } from "lucide-react";
|
|
5
|
+
export function VoorraadSettingsCard() {
|
|
6
|
+
const [lowStockThreshold, setLowStockThreshold] = useState("");
|
|
7
|
+
const [loading, setLoading] = useState(true);
|
|
8
|
+
const [saving, setSaving] = useState(false);
|
|
9
|
+
useEffect(() => {
|
|
10
|
+
(async () => {
|
|
11
|
+
try {
|
|
12
|
+
const { data } = await supabase
|
|
13
|
+
.from("inventory_settings")
|
|
14
|
+
.select("*")
|
|
15
|
+
.limit(1)
|
|
16
|
+
.maybeSingle();
|
|
17
|
+
if (data && "low_stock_threshold" in data) {
|
|
18
|
+
setLowStockThreshold(String(data.low_stock_threshold ?? ""));
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
finally {
|
|
22
|
+
setLoading(false);
|
|
23
|
+
}
|
|
24
|
+
})();
|
|
25
|
+
}, []);
|
|
26
|
+
const handleSave = async () => {
|
|
27
|
+
setSaving(true);
|
|
28
|
+
try {
|
|
29
|
+
toast.success("Instellingen opgeslagen");
|
|
30
|
+
}
|
|
31
|
+
catch {
|
|
32
|
+
toast.error("Fout bij het opslaan");
|
|
33
|
+
}
|
|
34
|
+
finally {
|
|
35
|
+
setSaving(false);
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Package, { className: "h-5 w-5 text-primary" }), _jsx(CardTitle, { children: "Voorraad Instellingen" })] }), _jsx(CardDescription, { children: "Beheer drempelwaarden en standaarden voor de voorraad module" })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { htmlFor: "threshold", children: "Lage-voorraad drempel" }), _jsx(Input, { id: "threshold", type: "number", value: lowStockThreshold, onChange: (e) => setLowStockThreshold(e.target.value), placeholder: "bv. 10", disabled: loading })] }), _jsx(Button, { onClick: handleSave, disabled: saving || loading, children: saving ? "Opslaan..." : "Opslaan" })] })] }));
|
|
39
|
+
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { type AdditionalPackagingInput } from "../../lib/floriday-payload";
|
|
1
|
+
import { type AdditionalPackagingInput } from "../../lib/floriday-payload.js";
|
|
2
2
|
interface Props {
|
|
3
3
|
open: boolean;
|
|
4
4
|
onOpenChange: (open: boolean) => void;
|
|
5
5
|
onSave: (item: AdditionalPackagingInput) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare function AdditionalPackagingDialog({ open, onOpenChange, onSave }: Props): import("react").JSX.Element;
|
|
7
|
+
export declare function AdditionalPackagingDialog({ open, onOpenChange, onSave }: Props): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=AdditionalPackagingDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AdditionalPackagingDialog.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/AdditionalPackagingDialog.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AAMpC,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"AdditionalPackagingDialog.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/AdditionalPackagingDialog.tsx"],"names":[],"mappings":"AAeA,OAAO,EAEL,KAAK,wBAAwB,EAC9B,MAAM,4BAA4B,CAAC;AAMpC,UAAU,KAAK;IACb,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,MAAM,EAAE,CAAC,IAAI,EAAE,wBAAwB,KAAK,IAAI,CAAC;CAClD;AAED,wBAAgB,yBAAyB,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,EAAE,KAAK,2CA2I9E"}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { useMemo, useState, useEffect } from "react";
|
|
3
3
|
import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, Button, Label, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@flowselections/core";
|
|
4
|
-
import { PACKAGING_SUPPLIERS, } from "../../lib/floriday-payload";
|
|
5
|
-
import { getMaterialTypesForSupplier, getMaterialsForSupplier, } from "../../lib/vrs-catalog";
|
|
4
|
+
import { PACKAGING_SUPPLIERS, } from "../../lib/floriday-payload.js";
|
|
5
|
+
import { getMaterialTypesForSupplier, getMaterialsForSupplier, } from "../../lib/vrs-catalog.js";
|
|
6
6
|
export function AdditionalPackagingDialog({ open, onOpenChange, onSave }) {
|
|
7
7
|
const [supplierId, setSupplierId] = useState("");
|
|
8
8
|
const [typeCode, setTypeCode] = useState("");
|
|
@@ -2,6 +2,6 @@ interface Props {
|
|
|
2
2
|
productId: string | null;
|
|
3
3
|
floridayId: string | null;
|
|
4
4
|
}
|
|
5
|
-
export declare function ArtikelCompositionCard({ productId, floridayId }: Props): import("react").JSX.Element | null;
|
|
5
|
+
export declare function ArtikelCompositionCard({ productId, floridayId }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
6
6
|
export {};
|
|
7
7
|
//# sourceMappingURL=ArtikelCompositionCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArtikelCompositionCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelCompositionCard.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAkHD,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"ArtikelCompositionCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelCompositionCard.tsx"],"names":[],"mappings":"AAMA,UAAU,KAAK;IACb,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;CAC3B;AAkHD,wBAAgB,sBAAsB,CAAC,EAAE,SAAS,EAAE,UAAU,EAAE,EAAE,KAAK,kDA6RtE"}
|
|
@@ -3,7 +3,7 @@ import { useCallback, useEffect, useState } from "react";
|
|
|
3
3
|
import { toast } from "sonner";
|
|
4
4
|
import { Card, CardContent, CardDescription, CardHeader, CardTitle, Badge } from "@flowselections/core";
|
|
5
5
|
import { ArrowDown, ArrowUp, Loader2, Package } from "lucide-react";
|
|
6
|
-
import { supabase } from "../../integrations/supabase/client";
|
|
6
|
+
import { supabase } from "../../integrations/supabase/client.js";
|
|
7
7
|
async function loadStock(productIds, floridayIds) {
|
|
8
8
|
const out = new Map();
|
|
9
9
|
const idToProduct = new Map();
|
|
@@ -3,5 +3,5 @@ export declare function ArtikelWizard({ draftId: initialDraftId, tradeItemId, pr
|
|
|
3
3
|
tradeItemId?: string;
|
|
4
4
|
productId?: string;
|
|
5
5
|
resumeJobId?: string;
|
|
6
|
-
}): import("react").JSX.Element;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
//# sourceMappingURL=ArtikelWizard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ArtikelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelWizard.tsx"],"names":[],"mappings":"AA6MA,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EACX,SAAS,EACT,WAAW,GACZ,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB
|
|
1
|
+
{"version":3,"file":"ArtikelWizard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ArtikelWizard.tsx"],"names":[],"mappings":"AA6MA,wBAAgB,aAAa,CAAC,EAC5B,OAAO,EAAE,cAAc,EACvB,WAAW,EACX,SAAS,EACT,WAAW,GACZ,GAAE;IACD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;CACjB,2CAusEL"}
|
|
@@ -3,44 +3,44 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
|
3
3
|
import { Link, useNavigate } from "@tanstack/react-router";
|
|
4
4
|
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger, Button, Card, CardContent, Checkbox, Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, Input, Label, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, Switch, toast, } from "@flowselections/core";
|
|
5
5
|
import { ArrowLeft, ArrowRight, Check, ChevronDown, ClipboardList, Info, Loader2, Plus, Search, Trash2, Upload, UploadCloud, Users, X, Star, } from "lucide-react";
|
|
6
|
-
import { useFloridayConnection } from "../../hooks/useFloridayConnection";
|
|
7
|
-
import { useFlorydayCustomers } from "../../hooks/useFlorydayCustomers";
|
|
8
|
-
import { floriday } from "../../lib/floriday-client";
|
|
9
|
-
import { listFloricode, listFloricodeByField } from "../../lib/floricode-client";
|
|
10
|
-
import { supabase } from "../../integrations/supabase/client";
|
|
11
|
-
import { buildAddTradeItemPayload, buildUpdateTradeItemPayload, buildPrimaryPackingBase, emptyWizardData, floridayCacheToWizardData, isValidGtin13, normalizeFloridayProductGroup, PACKAGING_SUPPLIERS, validateStep, } from "../../lib/floriday-payload";
|
|
12
|
-
import { AdditionalPackagingDialog } from "./AdditionalPackagingDialog";
|
|
13
|
-
import { publishCustomerOfferFn } from "../../lib/floriday-customer-offer.functions";
|
|
14
|
-
import { upsertSupplyLineForTradeItem } from "../../lib/floriday-supply-line";
|
|
15
|
-
import { deleteLocalTradeItem, getLocalTradeItem, markLocalSyncStatus, readLocalSyncStatus, upsertLocalTradeItem, } from "../../hooks/useLocalTradeItems";
|
|
16
|
-
import { useTradeItemSpec } from "../../hooks/useTradeItemSpec";
|
|
17
|
-
import { useVbnRegulatoryFeatures } from "../../hooks/useVbnRegulatoryFeatures";
|
|
18
|
-
import { useFloridayVbnRequired } from "../../hooks/useFloridayVbnRequired";
|
|
19
|
-
import { saveFloridayVbnRequired } from "../../lib/floriday-vbn-required.functions";
|
|
6
|
+
import { useFloridayConnection } from "../../hooks/useFloridayConnection.js";
|
|
7
|
+
import { useFlorydayCustomers } from "../../hooks/useFlorydayCustomers.js";
|
|
8
|
+
import { floriday } from "../../lib/floriday-client.js";
|
|
9
|
+
import { listFloricode, listFloricodeByField } from "../../lib/floricode-client.js";
|
|
10
|
+
import { supabase } from "../../integrations/supabase/client.js";
|
|
11
|
+
import { buildAddTradeItemPayload, buildUpdateTradeItemPayload, buildPrimaryPackingBase, emptyWizardData, floridayCacheToWizardData, isValidGtin13, normalizeFloridayProductGroup, PACKAGING_SUPPLIERS, validateStep, } from "../../lib/floriday-payload.js";
|
|
12
|
+
import { AdditionalPackagingDialog } from "./AdditionalPackagingDialog.js";
|
|
13
|
+
import { publishCustomerOfferFn } from "../../lib/floriday-customer-offer.functions.js";
|
|
14
|
+
import { upsertSupplyLineForTradeItem } from "../../lib/floriday-supply-line.js";
|
|
15
|
+
import { deleteLocalTradeItem, getLocalTradeItem, markLocalSyncStatus, readLocalSyncStatus, upsertLocalTradeItem, } from "../../hooks/useLocalTradeItems.js";
|
|
16
|
+
import { useTradeItemSpec } from "../../hooks/useTradeItemSpec.js";
|
|
17
|
+
import { useVbnRegulatoryFeatures } from "../../hooks/useVbnRegulatoryFeatures.js";
|
|
18
|
+
import { useFloridayVbnRequired } from "../../hooks/useFloridayVbnRequired.js";
|
|
19
|
+
import { saveFloridayVbnRequired } from "../../lib/floriday-vbn-required.functions.js";
|
|
20
20
|
import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
21
|
-
import { useCodeList, useTradeItemFormSchema } from "../../hooks/useFloriday";
|
|
22
|
-
import { useFloridayPriceGroups } from "../../hooks/useFloridayPriceGroups";
|
|
23
|
-
import { readTradeItemPrices, syncTradeItemPrices } from "../../lib/trade-item-prices";
|
|
24
|
-
import { createPublishJob, finishPublishJob, markStepSkipped, rememberPublishRejection, runPublishStep, } from "../../lib/publish-pipeline";
|
|
25
|
-
import { translatePublishError, } from "../../lib/publish-errors";
|
|
26
|
-
import { buildReadinessReport } from "../../lib/publish-readiness";
|
|
27
|
-
import { usePublishJob } from "../../hooks/usePublishJob";
|
|
28
|
-
import { PublishReadinessCard } from "./PublishReadinessCard";
|
|
29
|
-
import { PublishProgressCard } from "./PublishProgressCard";
|
|
30
|
-
import { gatewayReadFn } from "../../lib/floriday-gateway.functions";
|
|
31
|
-
import { pickPrimaryPacking, readPackingStatus, writeConfirmedPacking, } from "../../lib/product-packing";
|
|
32
|
-
import { getFloridayReadinessFn } from "../../lib/floriday-env.functions";
|
|
21
|
+
import { useCodeList, useTradeItemFormSchema } from "../../hooks/useFloriday.js";
|
|
22
|
+
import { useFloridayPriceGroups } from "../../hooks/useFloridayPriceGroups.js";
|
|
23
|
+
import { readTradeItemPrices, syncTradeItemPrices } from "../../lib/trade-item-prices.js";
|
|
24
|
+
import { createPublishJob, finishPublishJob, markStepSkipped, rememberPublishRejection, runPublishStep, } from "../../lib/publish-pipeline.js";
|
|
25
|
+
import { translatePublishError, } from "../../lib/publish-errors.js";
|
|
26
|
+
import { buildReadinessReport } from "../../lib/publish-readiness.js";
|
|
27
|
+
import { usePublishJob } from "../../hooks/usePublishJob.js";
|
|
28
|
+
import { PublishReadinessCard } from "./PublishReadinessCard.js";
|
|
29
|
+
import { PublishProgressCard } from "./PublishProgressCard.js";
|
|
30
|
+
import { gatewayReadFn } from "../../lib/floriday-gateway.functions.js";
|
|
31
|
+
import { pickPrimaryPacking, readPackingStatus, writeConfirmedPacking, } from "../../lib/product-packing.js";
|
|
32
|
+
import { getFloridayReadinessFn } from "../../lib/floriday-env.functions.js";
|
|
33
33
|
const floridayLogo = "/flowselections-assets/Voorraad/floriday-logo.png";
|
|
34
|
-
import { VoorraadStockCard } from "../../components/voorraad/VoorraadStockCard";
|
|
35
|
-
import { ProductLinkCard } from "../../components/voorraad/ProductLinkCard";
|
|
36
|
-
import { PriceStatusBadge } from "../../components/voorraad/PriceStatusBadge";
|
|
37
|
-
import { OrderHistoryCard } from "../../components/voorraad/OrderHistoryCard";
|
|
38
|
-
import { StockMutationHistoryCard } from "../../components/voorraad/StockMutationHistoryCard";
|
|
39
|
-
import { ArtikelCompositionCard } from "../../components/voorraad/ArtikelCompositionCard";
|
|
40
|
-
import { ProductStructureCard, FloridayStockReasonLine } from "../../components/voorraad/ProductStructureCard";
|
|
41
|
-
import { StepSamenstelling } from "../../components/voorraad/StepSamenstelling";
|
|
42
|
-
import { FloridayInfoCard } from "../../components/voorraad/FloridayInfoCard";
|
|
43
|
-
import { stockKeyFor } from "../../hooks/useTradeItemStock";
|
|
34
|
+
import { VoorraadStockCard } from "../../components/voorraad/VoorraadStockCard.js";
|
|
35
|
+
import { ProductLinkCard } from "../../components/voorraad/ProductLinkCard.js";
|
|
36
|
+
import { PriceStatusBadge } from "../../components/voorraad/PriceStatusBadge.js";
|
|
37
|
+
import { OrderHistoryCard } from "../../components/voorraad/OrderHistoryCard.js";
|
|
38
|
+
import { StockMutationHistoryCard } from "../../components/voorraad/StockMutationHistoryCard.js";
|
|
39
|
+
import { ArtikelCompositionCard } from "../../components/voorraad/ArtikelCompositionCard.js";
|
|
40
|
+
import { ProductStructureCard, FloridayStockReasonLine } from "../../components/voorraad/ProductStructureCard.js";
|
|
41
|
+
import { StepSamenstelling } from "../../components/voorraad/StepSamenstelling.js";
|
|
42
|
+
import { FloridayInfoCard } from "../../components/voorraad/FloridayInfoCard.js";
|
|
43
|
+
import { stockKeyFor } from "../../hooks/useTradeItemStock.js";
|
|
44
44
|
const empty = emptyWizardData;
|
|
45
45
|
const LOAD_CARRIER_LABELS = {
|
|
46
46
|
AUCTION_TROLLEY: "Stapelwagen",
|
|
@@ -1517,7 +1517,7 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
|
|
|
1517
1517
|
const vbnValid = validateStepLocal("vbn", data).ok;
|
|
1518
1518
|
const saveDraft = async () => {
|
|
1519
1519
|
if (!activeId) {
|
|
1520
|
-
toast.error("Geen actieve Floriday-
|
|
1520
|
+
toast.error("Geen actieve Floriday-koppeling. Kijk bij Instellingen › Floriday.");
|
|
1521
1521
|
return;
|
|
1522
1522
|
}
|
|
1523
1523
|
// Voor een nieuw concept blijft een VBN-code de minimale poort. Voor
|
|
@@ -1715,10 +1715,10 @@ export function ArtikelWizard({ draftId: initialDraftId, tradeItemId, productId,
|
|
|
1715
1715
|
? "Lokaal artikel laden..."
|
|
1716
1716
|
: productLoading
|
|
1717
1717
|
? "Product laden..."
|
|
1718
|
-
: "Floriday-
|
|
1718
|
+
: "Floriday-koppeling laden..."] }) }));
|
|
1719
1719
|
}
|
|
1720
1720
|
if (!activeConnection) {
|
|
1721
|
-
return (_jsx("main", { className: "p-6", children: _jsx(Card, { className: "p-6", children: "Geen actieve Floriday-
|
|
1721
|
+
return (_jsx("main", { className: "p-6", children: _jsx(Card, { className: "p-6", children: "Geen actieve Floriday-koppeling gevonden. Voeg er eerst een toe in Instellingen \u203A Floriday." }) }));
|
|
1722
1722
|
}
|
|
1723
1723
|
return (_jsxs("main", { className: "p-6 space-y-6", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx(Button, { variant: "ghost", size: "sm", asChild: true, children: _jsxs(Link, { to: "/voorraad", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), "Terug naar voorraad"] }) }), !isEditingPublished && (_jsxs(Button, { variant: "outline", size: "sm", className: "ml-auto", onClick: saveDraft, disabled: submitting || (!draftId && !vbnValid), children: [submitting ? (_jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" })) : (_jsx(ClipboardList, { className: "mr-2 h-4 w-4" })), "Product opslaan"] })), (isEditingDraft || isEditingProduct) && (_jsxs(AlertDialog, { open: deleteOpen, onOpenChange: (o) => {
|
|
1724
1724
|
setDeleteOpen(o);
|
|
@@ -2086,8 +2086,8 @@ function StepArtikel({ data, update, collectionsList, setCollectionsList, articl
|
|
|
2086
2086
|
: "border-border hover:border-primary/50"}`, children: [_jsx("div", { className: "flex w-full items-start", children: _jsx("span", { className: `flex h-4 w-4 items-center justify-center rounded-full border ${active ? "border-primary-foreground" : "border-muted-foreground/50"}`, children: active && (_jsx("span", { className: "h-2 w-2 rounded-full bg-primary-foreground" })) }) }), _jsx(Icon, { className: "h-6 w-6" }), _jsx("div", { className: "font-medium", children: t.label }), _jsx("div", { className: `text-xs ${active ? "text-primary-foreground/80" : "text-muted-foreground"}`, children: t.description })] }, t.value));
|
|
2087
2087
|
}) })] }), _jsxs("div", { className: "space-y-1", children: [_jsxs("label", { className: "flex items-start gap-2 text-sm", children: [_jsx(Checkbox, { checked: data.visibleInExplorer, onCheckedChange: (v) => update("visibleInExplorer", v === true), className: "mt-0.5" }), _jsx("span", { children: "Artikel weergeven bij ontdekken in de Explorer voor kopers" })] }), _jsx("p", { className: "pl-6 text-xs text-muted-foreground", children: "Artikel is altijd zichtbaar via de customer API" })] }), parentProductId && (_jsx(ProductSalePriceField, { productId: parentProductId, onSaved: (p) => update("salePricePerPiece", p) }))] }));
|
|
2088
2088
|
}
|
|
2089
|
-
import { COUNTRIES } from "../../lib/countries";
|
|
2090
|
-
import { ProductSalePriceField } from "./ProductSalePriceField";
|
|
2089
|
+
import { COUNTRIES } from "../../lib/countries.js";
|
|
2090
|
+
import { ProductSalePriceField } from "./ProductSalePriceField.js";
|
|
2091
2091
|
function StepPaspoort({ data, update }) {
|
|
2092
2092
|
const [countryOpen, setCountryOpen] = useState(false);
|
|
2093
2093
|
const [countryQuery, setCountryQuery] = useState("");
|
|
@@ -2152,10 +2152,10 @@ function StepEigenschappen({ data, update, spec, schemaQuery, regulatoryQuery })
|
|
|
2152
2152
|
return (_jsx("p", { className: "text-sm text-muted-foreground", children: "Selecteer eerst een VBN-code bij stap 1 om de bijbehorende eigenschappen te laden." }));
|
|
2153
2153
|
}
|
|
2154
2154
|
if (schemaQuery.isLoading) {
|
|
2155
|
-
return (_jsxs("p", { className: "text-sm text-muted-foreground flex items-center gap-2", children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), "
|
|
2155
|
+
return (_jsxs("p", { className: "text-sm text-muted-foreground flex items-center gap-2", children: [_jsx(Loader2, { className: "h-4 w-4 animate-spin" }), "Kenmerken uit Floriday laden\u2026"] }));
|
|
2156
2156
|
}
|
|
2157
2157
|
if (schemaQuery.isError || !schemaQuery.data) {
|
|
2158
|
-
return (_jsxs("p", { className: "text-sm text-destructive", children: ["
|
|
2158
|
+
return (_jsxs("p", { className: "text-sm text-destructive", children: ["De kenmerken uit Floriday konden niet worden geladen. Probeer het later opnieuw.", " ", _jsxs("details", { className: "text-xs opacity-80", children: [_jsx("summary", { className: "cursor-pointer", children: "Details voor beheer" }), schemaQuery.error instanceof Error ? schemaQuery.error.message : "onbekende fout"] })] }));
|
|
2159
2159
|
}
|
|
2160
2160
|
const hasRegulatoryLookup = /^\d{5,6}$/.test(String(data.vbnCode ?? "").trim());
|
|
2161
2161
|
if (hasRegulatoryLookup && regulatoryQuery.isLoading) {
|
|
@@ -2280,7 +2280,7 @@ function StepKlanten({ data, update, floridayCustomers }) {
|
|
|
2280
2280
|
});
|
|
2281
2281
|
}, [floridayCustomers, search, onlySelected, selectedSet]);
|
|
2282
2282
|
if (floridayCustomers.length === 0) {
|
|
2283
|
-
return (_jsx("p", { className: "text-sm text-muted-foreground", children: "Geen klantorganisaties geladen vanuit Floriday. Controleer de
|
|
2283
|
+
return (_jsx("p", { className: "text-sm text-muted-foreground", children: "Geen klantorganisaties geladen vanuit Floriday. Controleer de Floriday-koppeling (Instellingen \u203A Floriday) of probeer later opnieuw." }));
|
|
2284
2284
|
}
|
|
2285
2285
|
const toggle = (id) => {
|
|
2286
2286
|
if (selectedSet.has(id)) {
|
|
@@ -2326,7 +2326,7 @@ function StepFotos({ data, update, activeId }) {
|
|
|
2326
2326
|
if (!files || files.length === 0)
|
|
2327
2327
|
return;
|
|
2328
2328
|
if (!activeId) {
|
|
2329
|
-
toast.error("Geen actieve Floriday-
|
|
2329
|
+
toast.error("Geen actieve Floriday-koppeling – foto's kunnen niet worden geüpload");
|
|
2330
2330
|
return;
|
|
2331
2331
|
}
|
|
2332
2332
|
const fileArr = Array.from(files);
|
|
@@ -2337,7 +2337,7 @@ function StepFotos({ data, update, activeId }) {
|
|
|
2337
2337
|
toast.error("Je bent niet ingelogd – kan geen foto's uploaden");
|
|
2338
2338
|
return;
|
|
2339
2339
|
}
|
|
2340
|
-
const { prepareFloridayImage, UnsupportedImageTypeError, ImageTooLargeError, ImageDecodeError, } = await import("../../lib/image-resize");
|
|
2340
|
+
const { prepareFloridayImage, UnsupportedImageTypeError, ImageTooLargeError, ImageDecodeError, } = await import("../../lib/image-resize.js");
|
|
2341
2341
|
const additions = [];
|
|
2342
2342
|
// Beperkte concurrency (2) voorkomt dat een drop van 10 bestanden de
|
|
2343
2343
|
// gateway overspoelt en tegelijk in throttling loopt.
|
|
@@ -2621,7 +2621,7 @@ function PackingConfigDialog({ open, onOpenChange, initial, isFirst, packagingTy
|
|
|
2621
2621
|
return;
|
|
2622
2622
|
setUploadingPhoto(true);
|
|
2623
2623
|
try {
|
|
2624
|
-
const { prepareFloridayImage } = await import("../../lib/image-resize");
|
|
2624
|
+
const { prepareFloridayImage } = await import("../../lib/image-resize.js");
|
|
2625
2625
|
const prepared = await prepareFloridayImage(file);
|
|
2626
2626
|
const res = await floriday.uploadImage(activeId, prepared, prepared.type || "image/jpeg", prepared.name);
|
|
2627
2627
|
if (!res.url)
|
|
@@ -2661,7 +2661,7 @@ function PackingConfigDialog({ open, onOpenChange, initial, isFirst, packagingTy
|
|
|
2661
2661
|
packagingSupplierId: v,
|
|
2662
2662
|
packagingSupplierName: sup?.name,
|
|
2663
2663
|
}));
|
|
2664
|
-
}, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, { placeholder: "Kies leverancier..." }) }), _jsx(SelectContent, { children: PACKAGING_SUPPLIERS.map((s) => (_jsx(SelectItem, { value: s.id, children: s.name }, s.id))) })] }))] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Floricode VRS-materiaal UUID (optioneel)" }), _jsx(Input, { value: draft.packagingMaterialId ?? "", onChange: (e) => patch("packagingMaterialId", e.target.value.trim()), placeholder: "00000000-0000-0000-0000-000000000000", className: materialInvalid ? "border-destructive" : "" }), materialInvalid ? (_jsx("p", { className: "text-xs text-destructive", children: "
|
|
2664
|
+
}, children: [_jsx(SelectTrigger, { children: _jsx(SelectValue, { placeholder: "Kies leverancier..." }) }), _jsx(SelectContent, { children: PACKAGING_SUPPLIERS.map((s) => (_jsx(SelectItem, { value: s.id, children: s.name }, s.id))) })] }))] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Floricode VRS-materiaal UUID (optioneel)" }), _jsx(Input, { value: draft.packagingMaterialId ?? "", onChange: (e) => patch("packagingMaterialId", e.target.value.trim()), placeholder: "00000000-0000-0000-0000-000000000000", className: materialInvalid ? "border-destructive" : "" }), materialInvalid ? (_jsx("p", { className: "text-xs text-destructive", children: "Deze code klopt niet. Laat het veld leeg of kopieer de materiaalcode uit Floricode." })) : (_jsxs("p", { className: "text-xs text-muted-foreground", children: ["Wanneer ingevuld gaat het als ", _jsx("code", { children: "customPackageId" }), "naar Floriday en vervangt het de VBN-fust."] }))] })] }), hasCustomPkg && (_jsx("div", { className: "rounded-md border border-primary/30 bg-primary/5 px-3 py-2 text-xs", children: "Eigen verpakking gekozen; het VBN-fust hieronder wordt niet naar Floriday gestuurd." }))] })), _jsxs("div", { className: "grid grid-cols-2 gap-3", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: hasCustomPkg
|
|
2665
2665
|
? "VBN-fust (genegeerd — custom package actief)"
|
|
2666
2666
|
: draft.source === "SUPPLIER"
|
|
2667
2667
|
? "Fallback VBN-fust"
|
|
@@ -2839,7 +2839,7 @@ function StepAanbieden({ data, update, priceGroups, parentProductId }) {
|
|
|
2839
2839
|
? "Aanbod wordt aangemaakt direct na publiceren."
|
|
2840
2840
|
: "Alleen artikel publiceren, geen aanbod aanmaken." })] }), _jsx(Switch, { checked: data.offerForSale, onCheckedChange: (v) => update("offerForSale", Boolean(v)) })] }), data.offerForSale && (_jsxs(_Fragment, { children: [_jsxs("div", { className: "grid gap-4 sm:grid-cols-2", children: [_jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Voorraad (stuks)" }), _jsx(Input, { type: "number", inputMode: "numeric", min: 0, step: 1, value: stockStr, onChange: (e) => update("saleStockPieces", Math.max(0, Math.floor(Number(e.target.value) || 0))) }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Wordt als fysieke voorraad geboekt en via continuous-stock naar Floriday gepusht." })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Basisprijs per stuk (EUR, excl. btw)" }), _jsx(Input, { type: "number", inputMode: "decimal", min: 0, step: "0.01", value: priceStr, onChange: (e) => update("salePricePerPiece", Number(e.target.value) || 0) }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Wordt gepusht als ", _jsx("code", { children: "weekly-base-supply" }), " \u2014 de standaard catalogusprijs voor klanten zonder eigen prijsgroep."] })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Aanbod geldig vanaf" }), _jsx(Input, { type: "date", value: data.offerStartDate, onChange: (e) => update("offerStartDate", e.target.value) }), _jsx("p", { className: "text-xs text-muted-foreground", children: "Aanbod loopt automatisch tot 1 jaar na deze datum." })] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Zichtbaar voor" }), _jsx("div", { className: "rounded-md border bg-muted/20 px-3 py-2 text-sm", children: data.customerOrganizationIds.length
|
|
2841
2841
|
? `${data.customerOrganizationIds.length} geselecteerde klant(en)`
|
|
2842
|
-
: "Alle gekoppelde Floriday-klanten" }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Klantselectie beheer je in de stap ", _jsx("em", { children: "Klanten" }), "."] })] })] }), _jsxs("div", { className: "space-y-2 rounded-md border p-4", children: [_jsxs("div", { className: "flex items-baseline justify-between", children: [_jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium", children: "Prijzen per Floriday-prijsgroep" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Laat leeg om voor die groep g\u00E9\u00E9n afwijkende prijs te publiceren. Basisprijs blijft dan gelden." })] }), _jsxs("div", { className: "text-xs text-muted-foreground", children: [priceGroups.length, " groep", priceGroups.length === 1 ? "" : "en"] })] }), priceGroups.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground py-4", children: "Geen actieve prijsgroepen gevonden voor deze Floriday-
|
|
2842
|
+
: "Alle gekoppelde Floriday-klanten" }), _jsxs("p", { className: "text-xs text-muted-foreground", children: ["Klantselectie beheer je in de stap ", _jsx("em", { children: "Klanten" }), "."] })] })] }), _jsxs("div", { className: "space-y-2 rounded-md border p-4", children: [_jsxs("div", { className: "flex items-baseline justify-between", children: [_jsxs("div", { children: [_jsx("div", { className: "text-sm font-medium", children: "Prijzen per Floriday-prijsgroep" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Laat leeg om voor die groep g\u00E9\u00E9n afwijkende prijs te publiceren. Basisprijs blijft dan gelden." })] }), _jsxs("div", { className: "text-xs text-muted-foreground", children: [priceGroups.length, " groep", priceGroups.length === 1 ? "" : "en"] })] }), priceGroups.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground py-4", children: "Geen actieve prijsgroepen gevonden voor deze Floriday-koppeling." })) : (_jsx("div", { className: "grid gap-3 sm:grid-cols-2 pt-2", children: priceGroups.map((g) => {
|
|
2843
2843
|
const val = data.priceGroupPrices?.[g.id];
|
|
2844
2844
|
return (_jsxs("div", { className: "space-y-1", children: [_jsxs(Label, { className: "text-sm", children: [g.name, _jsxs("span", { className: "ml-2 text-xs font-normal text-muted-foreground", children: [g.customerOrganizationIds.length, " klant", g.customerOrganizationIds.length === 1 ? "" : "en"] })] }), _jsx(Input, { type: "number", inputMode: "decimal", min: 0, step: "0.01", placeholder: "\u20AC", value: val ? String(val) : "", onChange: (e) => setGroupPrice(g.id, e.target.value) })] }, g.id));
|
|
2845
2845
|
}) }))] })] })), parentProductId && (_jsx(ProductSalePriceField, { productId: parentProductId, onSaved: (p) => update("salePricePerPiece", p) })), _jsx(VatSection, { data: data, update: update })] }));
|
|
@@ -4,6 +4,6 @@ interface Props {
|
|
|
4
4
|
lines?: number;
|
|
5
5
|
className?: string;
|
|
6
6
|
}
|
|
7
|
-
export declare function CollapsibleText({ text, lines, className }: Props): import("react").JSX.Element;
|
|
7
|
+
export declare function CollapsibleText({ text, lines, className }: Props): import("react/jsx-runtime").JSX.Element;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=CollapsibleText.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CollapsibleText.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/CollapsibleText.tsx"],"names":[],"mappings":"AAOA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,KAAS,EAAE,SAAS,EAAE,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"CollapsibleText.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/CollapsibleText.tsx"],"names":[],"mappings":"AAOA,UAAU,KAAK;IACb,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,CAAC;IAChC,gEAAgE;IAChE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,eAAe,CAAC,EAAE,IAAI,EAAE,KAAS,EAAE,SAAS,EAAE,EAAE,KAAK,2CA8DpE"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { FloridayActiveConnection } from "../../lib/floriday-client.js";
|
|
2
|
+
export declare function ConnectionBadge({ connection, loading, }: {
|
|
3
|
+
connection: FloridayActiveConnection | null;
|
|
4
|
+
loading?: boolean;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
//# sourceMappingURL=ConnectionBadge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ConnectionBadge.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AAE1E,wBAAgB,eAAe,CAAC,EAC9B,UAAU,EACV,OAAO,GACR,EAAE;IACD,UAAU,EAAE,wBAAwB,GAAG,IAAI,CAAC;IAC5C,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,2CAqBA"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Badge } from "@flowselections/core";
|
|
3
|
+
export function ConnectionBadge({ connection, loading, }) {
|
|
4
|
+
if (loading) {
|
|
5
|
+
return _jsx(Badge, { variant: "secondary", children: "Floriday laden..." });
|
|
6
|
+
}
|
|
7
|
+
if (!connection) {
|
|
8
|
+
return (_jsx(Badge, { variant: "destructive", children: "Geen actieve Floriday-connectie" }));
|
|
9
|
+
}
|
|
10
|
+
const env = connection.active_environment || connection.environment;
|
|
11
|
+
return (_jsxs(Badge, { variant: "secondary", className: "gap-1.5", children: [_jsx("span", { className: "font-medium", children: "Floriday" }), _jsx("span", { className: "opacity-60", children: "\u00B7" }), _jsx("span", { className: "uppercase tracking-wide text-[10px]", children: env }), _jsx("span", { className: "opacity-60", children: "\u00B7" }), _jsx("span", { children: connection.organization_name || connection.label })] }));
|
|
12
|
+
}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import type { FloridayConnection } from "../../lib/floriday-client.js";
|
|
2
|
+
export declare function ConnectionPicker({ connections, activeId, onChange, disabled, }: {
|
|
3
|
+
connections: FloridayConnection[];
|
|
4
|
+
activeId: string | null;
|
|
5
|
+
onChange: (id: string) => void;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
//# sourceMappingURL=ConnectionPicker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ConnectionPicker.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ConnectionPicker.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAEpE,wBAAgB,gBAAgB,CAAC,EAC/B,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,QAAQ,GACT,EAAE;IACD,WAAW,EAAE,kBAAkB,EAAE,CAAC;IAClC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,2CAsBA"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@flowselections/core";
|
|
3
|
+
export function ConnectionPicker({ connections, activeId, onChange, disabled, }) {
|
|
4
|
+
if (connections.length === 0) {
|
|
5
|
+
return (_jsx("div", { className: "text-sm text-muted-foreground", children: "Geen actieve Floriday-connecties" }));
|
|
6
|
+
}
|
|
7
|
+
return (_jsxs(Select, { value: activeId ?? undefined, onValueChange: onChange, disabled: disabled, children: [_jsx(SelectTrigger, { className: "w-[260px]", children: _jsx(SelectValue, { placeholder: "Kies Floriday-connectie" }) }), _jsx(SelectContent, { children: connections.map((c) => (_jsx(SelectItem, { value: c.id, children: c.organization_name || c.label }, c.id))) })] }));
|
|
8
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditArtikelPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/EditArtikelPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,WAAW,GACZ,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB
|
|
1
|
+
{"version":3,"file":"EditArtikelPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/EditArtikelPage.tsx"],"names":[],"mappings":"AAaA,wBAAgB,eAAe,CAAC,EAC9B,EAAE,EACF,WAAW,GACZ,EAAE;IACD,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,2CAoFA"}
|
|
@@ -2,10 +2,10 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
3
|
import { Card } from "@flowselections/core";
|
|
4
4
|
import { Loader2 } from "lucide-react";
|
|
5
|
-
import { ArtikelWizard } from "./ArtikelWizard";
|
|
6
|
-
import { ProductCustomFieldsCard } from "./ProductCustomFieldsCard";
|
|
7
|
-
import { TrayStickerCard } from "./TrayStickerCard";
|
|
8
|
-
import { supabase } from "../../integrations/supabase/client";
|
|
5
|
+
import { ArtikelWizard } from "./ArtikelWizard.js";
|
|
6
|
+
import { ProductCustomFieldsCard } from "./ProductCustomFieldsCard.js";
|
|
7
|
+
import { TrayStickerCard } from "./TrayStickerCard.js";
|
|
8
|
+
import { supabase } from "../../integrations/supabase/client.js";
|
|
9
9
|
export function EditArtikelPage({ id, resumeJobId, }) {
|
|
10
10
|
const [resolved, setResolved] = useState(null);
|
|
11
11
|
useEffect(() => {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import type { TradeItem } from "../../lib/floriday-client";
|
|
1
|
+
import type { TradeItem } from "../../lib/floriday-client.js";
|
|
2
2
|
export declare function ExcelExportButton({ items, filename, onExported, }: {
|
|
3
3
|
items: TradeItem[];
|
|
4
4
|
filename?: string;
|
|
5
5
|
onExported?: () => void | Promise<void>;
|
|
6
|
-
}): import("react").JSX.Element;
|
|
6
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
7
7
|
//# sourceMappingURL=ExcelExportButton.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ExcelExportButton.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ExcelExportButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAqB,EACrB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC
|
|
1
|
+
{"version":3,"file":"ExcelExportButton.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/ExcelExportButton.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAG3D,wBAAgB,iBAAiB,CAAC,EAChC,KAAK,EACL,QAAqB,EACrB,UAAU,GACX,EAAE;IACD,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACzC,2CAgDA"}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import * as XLSX from "xlsx";
|
|
3
3
|
import { Button, toast } from "@flowselections/core";
|
|
4
4
|
import { Download } from "lucide-react";
|
|
5
|
-
import { ensureArticleCodes } from "../../lib/ensure-article-codes";
|
|
5
|
+
import { ensureArticleCodes } from "../../lib/ensure-article-codes.js";
|
|
6
6
|
export function ExcelExportButton({ items, filename = "voorraad", onExported, }) {
|
|
7
7
|
const handle = async () => {
|
|
8
8
|
let exportItems;
|
|
@@ -7,6 +7,6 @@ interface Props {
|
|
|
7
7
|
gtin?: string | null;
|
|
8
8
|
};
|
|
9
9
|
}
|
|
10
|
-
export declare function FloridayInfoCard({ floridayTradeItemId, local }: Props): import("react").JSX.Element | null;
|
|
10
|
+
export declare function FloridayInfoCard({ floridayTradeItemId, local }: Props): import("react/jsx-runtime").JSX.Element | null;
|
|
11
11
|
export {};
|
|
12
12
|
//# sourceMappingURL=FloridayInfoCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloridayInfoCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayInfoCard.tsx"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AA6DD,wBAAgB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,
|
|
1
|
+
{"version":3,"file":"FloridayInfoCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayInfoCard.tsx"],"names":[],"mappings":"AAYA,UAAU,KAAK;IACb,mBAAmB,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,8EAA8E;IAC9E,KAAK,CAAC,EAAE;QACN,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;QAC9B,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;KACtB,CAAC;CACH;AA6DD,wBAAgB,gBAAgB,CAAC,EAAE,mBAAmB,EAAE,KAAK,EAAE,EAAE,KAAK,kDAmRrE"}
|
|
@@ -2,8 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
|
|
|
2
2
|
import { useEffect, useState } from "react";
|
|
3
3
|
import { Card, CardContent, Badge } from "@flowselections/core";
|
|
4
4
|
import { AlertTriangle, ChevronDown, ChevronRight, ExternalLink } from "lucide-react";
|
|
5
|
-
import { supabase } from "../../integrations/supabase/client";
|
|
6
|
-
import { floridayInfoFromCache, LOAD_CARRIER_LABELS, } from "../../lib/floriday-info";
|
|
5
|
+
import { supabase } from "../../integrations/supabase/client.js";
|
|
6
|
+
import { floridayInfoFromCache, LOAD_CARRIER_LABELS, } from "../../lib/floriday-info.js";
|
|
7
7
|
const floridayLogo = "/flowselections-assets/Voorraad/floriday-logo.png";
|
|
8
8
|
function formatDate(iso) {
|
|
9
9
|
if (!iso)
|
|
@@ -75,7 +75,7 @@ export function FloridayInfoCard({ floridayTradeItemId, local }) {
|
|
|
75
75
|
}, [floridayTradeItemId]);
|
|
76
76
|
if (!floridayTradeItemId)
|
|
77
77
|
return null;
|
|
78
|
-
return (_jsx(Card, { className: "overflow-hidden", children: _jsxs(CardContent, { className: "p-4 space-y-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("img", { src: floridayLogo, alt: "Floriday", className: "h-6 w-6 shrink-0" }), _jsxs("div", { className: "flex-1", children: [_jsx("div", { className: "font-semibold", children: "Floriday-informatie" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Rechtstreeks uit Floriday geladen \u2014 controle-informatie, wordt niet lokaal overschreven." })] }), info?.tradeItemVersion != null && (_jsxs(Badge, { variant: "secondary", className: "text-xs", children: ["v", info.tradeItemVersion] }))] }), loading && (_jsx("div", { className: "text-sm text-muted-foreground", children: "Floriday-info laden\u2026" })), !loading && notFound && (
|
|
78
|
+
return (_jsx(Card, { className: "overflow-hidden", children: _jsxs(CardContent, { className: "p-4 space-y-4", children: [_jsxs("div", { className: "flex items-center gap-3", children: [_jsx("img", { src: floridayLogo, alt: "Floriday", className: "h-6 w-6 shrink-0" }), _jsxs("div", { className: "flex-1", children: [_jsx("div", { className: "font-semibold", children: "Floriday-informatie" }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Rechtstreeks uit Floriday geladen \u2014 controle-informatie, wordt niet lokaal overschreven." })] }), info?.tradeItemVersion != null && (_jsxs(Badge, { variant: "secondary", className: "text-xs", children: ["v", info.tradeItemVersion] }))] }), loading && (_jsx("div", { className: "text-sm text-muted-foreground", children: "Floriday-info laden\u2026" })), !loading && notFound && (_jsx("div", { className: "rounded-md border border-amber-300 bg-amber-50 p-3 text-sm text-amber-900", children: "Dit artikel is nog niet opgehaald uit Floriday. Klik op \u2018Bijwerken\u2019 en probeer opnieuw." })), info && (_jsxs(_Fragment, { children: [info.photos.length > 0 && (_jsxs("div", { className: "space-y-2", children: [_jsx("div", { className: "rounded-md border overflow-hidden bg-muted/30", children: _jsx("img", { src: info.photos[activePhoto]?.url ?? info.photos[0].url, alt: info.name, className: "w-full max-h-80 object-contain" }) }), info.photos.length > 1 && (_jsx("div", { className: "flex gap-2 flex-wrap", children: info.photos.map((p, i) => (_jsx("button", { type: "button", onClick: () => setActivePhoto(i), className: `h-14 w-14 rounded border overflow-hidden ${i === activePhoto
|
|
79
79
|
? "ring-2 ring-primary"
|
|
80
80
|
: "opacity-70 hover:opacity-100"}`, "aria-label": `Foto ${i + 1}`, children: _jsx("img", { src: p.url, alt: "", className: "h-full w-full object-cover" }) }, p.url))) }))] })), _jsxs("div", { className: "grid gap-x-8 gap-y-1 md:grid-cols-2", children: [_jsxs("div", { children: [_jsx(DiffField, { label: "Naam", floridayValue: info.name, localValue: local?.name ?? null }), _jsx(DiffField, { label: "Artikelnr", floridayValue: info.supplierArticleCode, localValue: local?.articleNumber ?? null }), _jsx(DiffField, { label: "GTIN", floridayValue: info.articleGtin, localValue: local?.gtin ?? null }), _jsx(Field, { label: "VBN-code", value: info.vbnProductCode }), _jsx(Field, { label: "Referentie", value: info.supplierReference })] }), _jsxs("div", { children: [_jsx(Field, { label: "Botanische naam", value: info.botanicalNames.join(", ") || null }), _jsx(Field, { label: "Land van herkomst", value: info.countryOfOrigin.join(", ") || null }), _jsx(Field, { label: "Seizoensperiode", value: info.seasonalPeriods.length > 0
|
|
81
81
|
? info.seasonalPeriods
|
|
@@ -19,6 +19,6 @@ export declare function FloridaySentCard({ connectionId, productId, tradeItemId,
|
|
|
19
19
|
productId?: string | null;
|
|
20
20
|
tradeItemId?: string | null;
|
|
21
21
|
productType?: string | null;
|
|
22
|
-
}): import("react").JSX.Element;
|
|
22
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
23
23
|
export {};
|
|
24
24
|
//# sourceMappingURL=FloridaySentCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloridaySentCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridaySentCard.tsx"],"names":[],"mappings":"AAWA,KAAK,GAAG,GAAG;IACT,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,GAAG,MAAM,CA0BxI;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,GACZ,EAAE;IACD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B
|
|
1
|
+
{"version":3,"file":"FloridaySentCard.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridaySentCard.tsx"],"names":[],"mappings":"AAWA,KAAK,GAAG,GAAG;IACT,EAAE,EAAE,MAAM,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,WAAW,EAAE,MAAM,GAAG,IAAI,CAAC;IAC3B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC5B,CAAC;AAUF,wBAAgB,UAAU,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,EAAE,QAAQ,GAAG,cAAc,GAAG,aAAa,GAAG,YAAY,GAAG,YAAY,GAAG,aAAa,CAAC,GAAG,MAAM,CA0BxI;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,GACZ,EAAE;IACD,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,2CA2JA"}
|
|
@@ -7,8 +7,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
7
7
|
import { useEffect, useState } from "react";
|
|
8
8
|
import { Card, CardContent } from "@flowselections/core";
|
|
9
9
|
import { Send } from "lucide-react";
|
|
10
|
-
import { supabase } from "../../integrations/supabase/client";
|
|
11
|
-
import { priceProblem } from "../../lib/floriday-base-supply";
|
|
10
|
+
import { supabase } from "../../integrations/supabase/client.js";
|
|
11
|
+
import { priceProblem } from "../../lib/floriday-base-supply.js";
|
|
12
12
|
const MODE_LABEL = {
|
|
13
13
|
FOLLOW_ERP: "Volgt ERP",
|
|
14
14
|
MAXIMUM: "Maximum",
|
|
@@ -35,12 +35,12 @@ export function resultText(r) {
|
|
|
35
35
|
return `Week ${r.target_week ?? "?"} is gesloten in Floriday`;
|
|
36
36
|
case "pending":
|
|
37
37
|
case "processing":
|
|
38
|
-
return
|
|
38
|
+
return "Wacht op Floriday";
|
|
39
39
|
case "superseded":
|
|
40
40
|
return "Vervangen door een nieuwere stand";
|
|
41
41
|
case "dead_letter":
|
|
42
42
|
case "failed":
|
|
43
|
-
return
|
|
43
|
+
return "Niet aangekomen in Floriday. Klik op ‘Opnieuw proberen’.";
|
|
44
44
|
default:
|
|
45
45
|
return r.status;
|
|
46
46
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FloridayStatusBadge.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FloridayStatusBadge.tsx"],"names":[],"mappings":"AAEA,wBAAgB,mBAAmB,CAAC,EAAE,MAAM,EAAE,EAAE;IAAE,MAAM,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,2CAa9E"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
+
import { Badge } from "@flowselections/core";
|
|
3
|
+
export function FloridayStatusBadge({ active }) {
|
|
4
|
+
if (active) {
|
|
5
|
+
return (_jsx(Badge, { className: "bg-emerald-500/15 text-emerald-700 border-emerald-500/30", children: "Actief op Floriday" }));
|
|
6
|
+
}
|
|
7
|
+
return (_jsx(Badge, { className: "bg-slate-500/15 text-slate-700 border-slate-500/30", children: "Niet actief op Floriday" }));
|
|
8
|
+
}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function FustenPage(): import("react").JSX.Element;
|
|
1
|
+
export declare function FustenPage(): import("react/jsx-runtime").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=FustenPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FustenPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FustenPage.tsx"],"names":[],"mappings":"AAkKA,wBAAgB,UAAU,
|
|
1
|
+
{"version":3,"file":"FustenPage.d.ts","sourceRoot":"","sources":["../../../src/components/voorraad/FustenPage.tsx"],"names":[],"mappings":"AAkKA,wBAAgB,UAAU,4CAgPzB"}
|