@flowselections/floriday-verkoop-module 1.0.17 → 1.0.19
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/verkoop/CreateOrderPage.d.ts.map +1 -1
- package/dist-lib/components/verkoop/CreateOrderPage.js +6 -4
- package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts +6 -0
- package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts.map +1 -0
- package/dist-lib/components/verkoop/EditLocalOrderDialog.js +102 -0
- package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderKarindelingCard.js +26 -28
- package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts +5 -0
- package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts.map +1 -0
- package/dist-lib/components/verkoop/OrderShipmentsCard.js +137 -0
- package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailPage.js +8 -2
- package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailView.js +2 -1
- package/dist-lib/components/verkoop/SalesOrdersTable.d.ts +4 -1
- package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrdersTable.js +2 -2
- package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts.map +1 -1
- package/dist-lib/components/verkoop/VerkoopOrdersPage.js +43 -1
- package/dist-lib/integrations/supabase/auth-middleware.d.ts +436 -149
- package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.d.ts +436 -149
- package/dist-lib/integrations/supabase/client.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.server.d.ts +436 -149
- package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +452 -153
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/cart-lock.functions.d.ts +436 -149
- package/dist-lib/lib/cart-lock.functions.d.ts.map +1 -1
- package/dist-lib/lib/cart-replan.functions.d.ts +884 -310
- package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
- package/dist-lib/lib/create-order.functions.d.ts +39491 -1379
- package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
- package/dist-lib/lib/create-order.functions.js +814 -64
- package/dist-lib/lib/expand-group-order-items.d.ts +13 -0
- package/dist-lib/lib/expand-group-order-items.d.ts.map +1 -0
- package/dist-lib/lib/expand-group-order-items.js +216 -0
- package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +1321 -460
- package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +436 -149
- package/dist-lib/lib/floriday-logistic-labels.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-public.functions.d.ts +3052 -1043
- package/dist-lib/lib/floriday-public.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-writes.functions.d.ts +2180 -745
- package/dist-lib/lib/floriday-writes.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-shipments.functions.d.ts +47382 -0
- package/dist-lib/lib/order-shipments.functions.d.ts.map +1 -0
- package/dist-lib/lib/order-shipments.functions.js +178 -0
- package/dist-lib/lib/salesorders-mapping.d.ts +1 -0
- package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
- package/dist-lib/lib/salesorders.functions.d.ts +1321 -460
- package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
- package/dist-lib/lib/tradeitems.functions.d.ts +436 -149
- package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
- package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
- package/dist-lib/lib/useSalesOrdersQuery.js +39 -2
- package/package.json +2 -2
|
@@ -7,6 +7,7 @@ import { useNavigate } from "@tanstack/react-router";
|
|
|
7
7
|
import { useQueryClient } from "@tanstack/react-query";
|
|
8
8
|
import { supabase } from "../../integrations/supabase/client";
|
|
9
9
|
import { runSalesOrdersSync } from "../../lib/salesorders.functions";
|
|
10
|
+
import { deleteLocalOrder } from "../../lib/create-order.functions";
|
|
10
11
|
import { runTradeItemsSync } from "../../lib/tradeitems.functions";
|
|
11
12
|
import { applyFilters, computeTotals, ordersToCsv, } from "../../lib/salesorders-mapping";
|
|
12
13
|
import { useSalesOrdersQuery } from "../../lib/useSalesOrdersQuery";
|
|
@@ -14,6 +15,7 @@ import { AnalyticsCards } from "./AnalyticsCards";
|
|
|
14
15
|
import { SalesOrdersFilters } from "./SalesOrdersFilters";
|
|
15
16
|
import { SalesOrdersFilterPanel, countActiveFilters, } from "./SalesOrdersFilterPanel";
|
|
16
17
|
import { SalesOrdersTable } from "./SalesOrdersTable";
|
|
18
|
+
import { EditLocalOrderDialog } from "./EditLocalOrderDialog";
|
|
17
19
|
const STATUS_TABS = [
|
|
18
20
|
{ id: "all", label: "Alle" },
|
|
19
21
|
{ id: "open", label: "Open" },
|
|
@@ -57,6 +59,30 @@ export function VerkoopOrdersPage() {
|
|
|
57
59
|
const queryClient = useQueryClient();
|
|
58
60
|
const triggerSync = useServerFn(runSalesOrdersSync);
|
|
59
61
|
const triggerTradeItemsSync = useServerFn(runTradeItemsSync);
|
|
62
|
+
const triggerDeleteOrder = useServerFn(deleteLocalOrder);
|
|
63
|
+
const [orderPendingDelete, setOrderPendingDelete] = useState(null);
|
|
64
|
+
const [deleting, setDeleting] = useState(false);
|
|
65
|
+
const [editOrderId, setEditOrderId] = useState(null);
|
|
66
|
+
const handleDeleteOrder = async () => {
|
|
67
|
+
if (!orderPendingDelete)
|
|
68
|
+
return;
|
|
69
|
+
const rawId = orderPendingDelete.id.startsWith("local:")
|
|
70
|
+
? orderPendingDelete.id.slice("local:".length)
|
|
71
|
+
: orderPendingDelete.id;
|
|
72
|
+
try {
|
|
73
|
+
setDeleting(true);
|
|
74
|
+
const res = await triggerDeleteOrder({ data: { orderId: rawId } });
|
|
75
|
+
toast.success(`Bestelling verwijderd — ${res.reversalEntries} voorraadmutatie(s) teruggedraaid`);
|
|
76
|
+
setOrderPendingDelete(null);
|
|
77
|
+
await refetch();
|
|
78
|
+
}
|
|
79
|
+
catch (e) {
|
|
80
|
+
toast.error(e?.message ?? "Verwijderen mislukt");
|
|
81
|
+
}
|
|
82
|
+
finally {
|
|
83
|
+
setDeleting(false);
|
|
84
|
+
}
|
|
85
|
+
};
|
|
60
86
|
const { data, isLoading, error, refetch, isFetching } = useSalesOrdersQuery();
|
|
61
87
|
const orders = data?.orders ?? [];
|
|
62
88
|
const activeEnvironment = data?.environment ?? "staging";
|
|
@@ -177,7 +203,23 @@ export function VerkoopOrdersPage() {
|
|
|
177
203
|
}) }) }), _jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3", children: [_jsx(SalesOrdersFilters, { value: filters, onChange: setFilters }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Button, { variant: "outline", size: "sm", onClick: () => setFilterPanelOpen(true), "aria-label": "Filters", children: [_jsx(Filter, { className: "mr-2 h-4 w-4" }), "Filters", activeFilterCount > 0 && (_jsx("span", { className: "ml-2 inline-flex h-5 min-w-5 items-center justify-center rounded-full bg-primary px-1.5 text-[11px] font-semibold text-primary-foreground", children: activeFilterCount }))] }), _jsx(Button, { variant: "outline", size: "icon", onClick: handleSync, disabled: syncing, "aria-label": "Synchroniseren", title: "Synchroniseren", children: _jsx(RefreshCw, { className: "h-4 w-4 " + (syncing ? "animate-spin" : "") }) }), _jsxs(Button, { variant: "outline", size: "sm", onClick: handleExport, children: [_jsx(Download, { className: "mr-2 h-4 w-4" }), " Exporteren"] }), _jsxs(Button, { size: "sm", onClick: () => navigate({ to: "/floriday-verkoop/verkooporders/nieuw" }), children: [_jsx(Plus, { className: "mr-2 h-4 w-4" }), " Bestelling aanmaken"] })] })] }), _jsx(AnalyticsCards, { totals: totals, loading: isLoading }), error && (_jsxs("div", { className: "flex items-start gap-3 rounded-lg border border-destructive/30 bg-destructive/5 p-4 text-sm", children: [_jsx(AlertTriangle, { className: "mt-0.5 h-5 w-5 shrink-0 text-destructive" }), _jsxs("div", { className: "flex-1", children: [_jsx("div", { className: "font-medium text-destructive", children: "Floriday gegevens konden niet geladen worden" }), _jsx("div", { className: "mt-1 text-muted-foreground", children: error.message })] }), _jsx(Button, { size: "sm", variant: "outline", onClick: () => refetch(), disabled: isFetching, children: "Opnieuw proberen" })] })), _jsx(SalesOrdersTable, { orders: paged, loading: isLoading, onSelectOrder: (o) => navigate({
|
|
178
204
|
to: "/floriday-verkoop/verkooporders/$salesOrderId",
|
|
179
205
|
params: { salesOrderId: o.id },
|
|
180
|
-
})
|
|
206
|
+
}), onDeleteOrder: (o) => {
|
|
207
|
+
if (!o.isLocal) {
|
|
208
|
+
toast.error("FO-orders kunnen niet verwijderd worden.");
|
|
209
|
+
return;
|
|
210
|
+
}
|
|
211
|
+
setOrderPendingDelete(o);
|
|
212
|
+
}, onEditOrder: (o) => {
|
|
213
|
+
if (!o.isLocal) {
|
|
214
|
+
toast.error("FO-orders kunnen niet bewerkt worden.");
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
const rawId = o.id.startsWith("local:") ? o.id.slice("local:".length) : o.id;
|
|
218
|
+
setEditOrderId(rawId);
|
|
219
|
+
}, onConfirmOrder: (o) => navigate({
|
|
220
|
+
to: "/floriday-verkoop/verkooporders/$salesOrderId",
|
|
221
|
+
params: { salesOrderId: o.id },
|
|
222
|
+
}) }), orderPendingDelete && (_jsx("div", { className: "fixed inset-0 z-50 flex items-center justify-center bg-black/50 p-4", onClick: () => !deleting && setOrderPendingDelete(null), children: _jsxs("div", { className: "w-full max-w-md rounded-lg border border-border bg-card p-6 shadow-lg", onClick: (e) => e.stopPropagation(), children: [_jsx("h2", { className: "text-lg font-semibold text-foreground", children: "Bestelling verwijderen?" }), _jsxs("p", { className: "mt-2 text-sm text-muted-foreground", children: ["Weet je zeker dat je bestelling", " ", _jsx("span", { className: "font-medium text-foreground", children: orderPendingDelete.orderNumber || orderPendingDelete.id }), " ", "wilt verwijderen? Alle voorraadmutaties van deze bestelling worden automatisch teruggedraaid."] }), _jsxs("div", { className: "mt-5 flex justify-end gap-2", children: [_jsx(Button, { variant: "outline", size: "sm", onClick: () => setOrderPendingDelete(null), disabled: deleting, children: "Annuleren" }), _jsx(Button, { size: "sm", onClick: handleDeleteOrder, disabled: deleting, className: "bg-destructive text-destructive-foreground hover:bg-destructive/90", children: deleting ? "Bezig…" : "Verwijderen" })] })] }) })), editOrderId && (_jsx(EditLocalOrderDialog, { orderId: editOrderId, open: !!editOrderId, onOpenChange: (o) => !o && setEditOrderId(null) })), _jsxs("div", { className: "flex flex-wrap items-center justify-between gap-3 text-sm text-muted-foreground", children: [_jsx("div", { children: totalCount === 0
|
|
181
223
|
? "Geen resultaten"
|
|
182
224
|
: totalCount === 1
|
|
183
225
|
? "1 resultaat"
|