@flowselections/floriday-verkoop-module 1.0.94 → 1.0.98
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/AnalyticsCards.d.ts +1 -1
- package/dist-lib/components/verkoop/AnalyticsCards.d.ts.map +1 -1
- package/dist-lib/components/verkoop/CartAssignmentWizard.d.ts +1 -1
- package/dist-lib/components/verkoop/CartAssignmentWizard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/CartLayersDialog.d.ts +1 -1
- package/dist-lib/components/verkoop/CartLayersDialog.d.ts.map +1 -1
- package/dist-lib/components/verkoop/CreateOrderPage.d.ts +1 -1
- package/dist-lib/components/verkoop/CreateOrderPage.d.ts.map +1 -1
- package/dist-lib/components/verkoop/CreateOrderPage.js +82 -43
- package/dist-lib/components/verkoop/DiagnoseConnectionDialog.d.ts +1 -1
- package/dist-lib/components/verkoop/DiagnoseConnectionDialog.d.ts.map +1 -1
- package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts +1 -1
- package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts.map +1 -1
- package/dist-lib/components/verkoop/EngineBufferCard.d.ts +1 -1
- package/dist-lib/components/verkoop/EngineBufferCard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/FloridayStageLine.d.ts +2 -2
- package/dist-lib/components/verkoop/FloridayStageLine.d.ts.map +1 -1
- package/dist-lib/components/verkoop/InvoiceTimingSettings.d.ts +1 -1
- package/dist-lib/components/verkoop/InvoiceTimingSettings.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderAfleverbrievenCard.d.ts +1 -1
- package/dist-lib/components/verkoop/OrderAfleverbrievenCard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderCarrierPicker.d.ts +1 -1
- package/dist-lib/components/verkoop/OrderCarrierPicker.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderControlStatusCard.d.ts +1 -1
- package/dist-lib/components/verkoop/OrderControlStatusCard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts +1 -1
- package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderKarindelingCard.js +1 -1
- package/dist-lib/components/verkoop/OrderLinePackingCard.d.ts +1 -1
- package/dist-lib/components/verkoop/OrderLinePackingCard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts +1 -1
- package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts.map +1 -1
- package/dist-lib/components/verkoop/OrderPickupMomentPicker.js +2 -1
- package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts +1 -1
- package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts.map +1 -1
- package/dist-lib/components/verkoop/PlanCoverageBadge.d.ts +1 -1
- package/dist-lib/components/verkoop/PlanCoverageBadge.d.ts.map +1 -1
- package/dist-lib/components/verkoop/PlanCoverageBadge.js +7 -5
- package/dist-lib/components/verkoop/ProductDimensionsSettings.d.ts +1 -1
- package/dist-lib/components/verkoop/ProductDimensionsSettings.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrderDetailPage.js +6 -6
- package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts +1 -1
- 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/SalesOrdersFilterPanel.d.ts +1 -1
- package/dist-lib/components/verkoop/SalesOrdersFilterPanel.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrdersFilters.d.ts +1 -1
- package/dist-lib/components/verkoop/SalesOrdersFilters.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SalesOrdersTable.d.ts +2 -1
- package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
- package/dist-lib/components/verkoop/SearchableSelect.d.ts +1 -1
- package/dist-lib/components/verkoop/SearchableSelect.d.ts.map +1 -1
- package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.d.ts +1 -1
- package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.d.ts.map +1 -1
- package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts +1 -1
- package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts.map +1 -1
- package/dist-lib/components/verkoop/WeekCalendar.d.ts +1 -1
- package/dist-lib/components/verkoop/WeekCalendar.d.ts.map +1 -1
- package/dist-lib/integrations/supabase/client.js +1 -1
- package/dist-lib/integrations/supabase/client.server.js +1 -1
- package/dist-lib/integrations/supabase/types.d.ts +253 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/carrier-availability.d.ts +0 -28
- package/dist-lib/lib/carrier-availability.d.ts.map +1 -1
- package/dist-lib/lib/carrier-availability.js +3 -141
- package/dist-lib/lib/cart-replan.functions.d.ts +5 -0
- package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
- package/dist-lib/lib/cart-replan.functions.js +25 -1
- package/dist-lib/lib/create-order.functions.d.ts +5 -0
- package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
- package/dist-lib/lib/create-order.functions.js +81 -54
- package/dist-lib/lib/departure-preview.check.d.ts +2 -0
- package/dist-lib/lib/departure-preview.check.d.ts.map +1 -0
- package/dist-lib/lib/departure-preview.check.js +37 -0
- package/dist-lib/lib/departure-preview.d.ts +47 -0
- package/dist-lib/lib/departure-preview.d.ts.map +1 -0
- package/dist-lib/lib/departure-preview.functions.d.ts +13 -0
- package/dist-lib/lib/departure-preview.functions.d.ts.map +1 -0
- package/dist-lib/lib/departure-preview.functions.js +17 -0
- package/dist-lib/lib/departure-preview.js +70 -0
- package/dist-lib/lib/departure-preview.server.d.ts +10 -0
- package/dist-lib/lib/departure-preview.server.d.ts.map +1 -0
- package/dist-lib/lib/departure-preview.server.js +29 -0
- package/dist-lib/lib/floriday-external-fulfillment.check.d.ts +2 -0
- package/dist-lib/lib/floriday-external-fulfillment.check.d.ts.map +1 -0
- package/dist-lib/lib/floriday-external-fulfillment.check.js +21 -0
- package/dist-lib/lib/floriday-external-fulfillment.d.ts +19 -0
- package/dist-lib/lib/floriday-external-fulfillment.d.ts.map +1 -0
- package/dist-lib/lib/floriday-external-fulfillment.js +24 -0
- package/dist-lib/lib/floriday-external-fulfillment.server.d.ts +5 -0
- package/dist-lib/lib/floriday-external-fulfillment.server.d.ts.map +1 -0
- package/dist-lib/lib/floriday-external-fulfillment.server.js +110 -0
- package/dist-lib/lib/floriday-fulfillment-status.server.d.ts +2 -0
- package/dist-lib/lib/floriday-fulfillment-status.server.d.ts.map +1 -1
- package/dist-lib/lib/floriday-fulfillment-status.server.js +3 -0
- package/dist-lib/lib/floriday-line-key.check.d.ts +2 -0
- package/dist-lib/lib/floriday-line-key.check.d.ts.map +1 -0
- package/dist-lib/lib/floriday-line-key.check.js +31 -0
- package/dist-lib/lib/floriday-line-key.d.ts +12 -0
- package/dist-lib/lib/floriday-line-key.d.ts.map +1 -0
- package/dist-lib/lib/floriday-line-key.js +20 -0
- package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
- package/dist-lib/lib/floriday-mirror.functions.js +38 -2
- package/dist-lib/lib/logistics-engine.functions.d.ts +1 -1
- package/dist-lib/lib/order-cart-count.server.d.ts +8 -0
- package/dist-lib/lib/order-cart-count.server.d.ts.map +1 -0
- package/dist-lib/lib/order-cart-count.server.js +69 -0
- package/dist-lib/lib/order-departure.server.d.ts +1 -0
- package/dist-lib/lib/order-departure.server.d.ts.map +1 -1
- package/dist-lib/lib/order-departure.server.js +16 -4
- package/dist-lib/lib/order-pickup.functions.d.ts +4 -0
- package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
- package/dist-lib/lib/order-pickup.functions.js +7 -0
- package/dist-lib/lib/plan-coverage.d.ts +13 -1
- package/dist-lib/lib/plan-coverage.d.ts.map +1 -1
- package/dist-lib/lib/plan-coverage.js +20 -1
- package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
- package/dist-lib/lib/salesorders-list.server.js +6 -6
- package/dist-lib/lib/salesorders-mapping.d.ts +5 -0
- package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
- package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
- package/dist-lib/lib/salesorders.functions.js +6 -0
- package/dist-lib/lib/tradeitems.functions.d.ts +1117 -12
- package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
- package/dist-lib/lib/useBufferEvents.d.ts +2 -2
- package/dist-lib/lib/useBufferEvents.d.ts.map +1 -1
- package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts +2 -2
- package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts.map +1 -1
- package/dist-lib/lib/useSalesOrderDetailQuery.d.ts +1 -1
- package/dist-lib/lib/useSalesOrderDetailQuery.d.ts.map +1 -1
- package/dist-lib/lib/useSalesOrdersQuery.d.ts +1 -1
- package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist-lib/components/floriday/FlorydaySyncHealthBanner.d.ts +0 -9
- package/dist-lib/components/floriday/FlorydaySyncHealthBanner.d.ts.map +0 -1
- package/dist-lib/components/floriday/FlorydaySyncHealthBanner.js +0 -26
- package/dist-lib/components/karindeling/AfmetingenTab.d.ts +0 -6
- package/dist-lib/components/karindeling/AfmetingenTab.d.ts.map +0 -1
- package/dist-lib/components/karindeling/AfmetingenTab.js +0 -128
- package/dist-lib/components/karindeling/KarindelingPage.d.ts +0 -2
- package/dist-lib/components/karindeling/KarindelingPage.d.ts.map +0 -1
- package/dist-lib/components/karindeling/KarindelingPage.js +0 -102
- package/dist-lib/components/ui/dropdown-menu.d.ts +0 -9
- package/dist-lib/components/ui/dropdown-menu.d.ts.map +0 -1
- package/dist-lib/components/ui/dropdown-menu.js +0 -14
- package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.d.ts +0 -4
- package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.d.ts.map +0 -1
- package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.js +0 -95
- package/dist-lib/components/verkoop/CreateOrderDialog.d.ts +0 -5
- package/dist-lib/components/verkoop/CreateOrderDialog.d.ts.map +0 -1
- package/dist-lib/components/verkoop/CreateOrderDialog.js +0 -33
- package/dist-lib/lib/cron/mirror-floriday-orders.d.ts +0 -4
- package/dist-lib/lib/cron/mirror-floriday-orders.d.ts.map +0 -1
- package/dist-lib/lib/cron/mirror-floriday-orders.js +0 -23
- package/dist-lib/lib/cron/push-order-statuses.d.ts +0 -4
- package/dist-lib/lib/cron/push-order-statuses.d.ts.map +0 -1
- package/dist-lib/lib/cron/push-order-statuses.js +0 -23
- package/dist-lib/lib/floriday/floriday.server.d.ts +0 -14
- package/dist-lib/lib/floriday/floriday.server.d.ts.map +0 -1
- package/dist-lib/lib/floriday/floriday.server.js +0 -92
- package/dist-lib/lib/floriday/sales-orders.functions.d.ts +0 -4736
- package/dist-lib/lib/floriday/sales-orders.functions.d.ts.map +0 -1
- package/dist-lib/lib/floriday/sales-orders.functions.js +0 -193
- package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +0 -77581
- package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +0 -1
- package/dist-lib/lib/floriday-auto-fulfillment.functions.js +0 -65
- package/dist-lib/lib/floriday-auto-fulfillment.server.d.ts +0 -21
- package/dist-lib/lib/floriday-auto-fulfillment.server.d.ts.map +0 -1
- package/dist-lib/lib/floriday-auto-fulfillment.server.js +0 -352
- package/dist-lib/lib/floriday-status-sync.server.d.ts +0 -14
- package/dist-lib/lib/floriday-status-sync.server.d.ts.map +0 -1
- package/dist-lib/lib/floriday-status-sync.server.js +0 -130
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AnalyticsCards.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/AnalyticsCards.tsx"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,GACR,EAAE;IACD,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB
|
|
1
|
+
{"version":3,"file":"AnalyticsCards.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/AnalyticsCards.tsx"],"names":[],"mappings":"AAKA,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,GACR,EAAE;IACD,MAAM,CAAC,EAAE;QAAE,OAAO,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,MAAM,CAAA;KAAE,CAAC;IACpE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,+BAwBA"}
|
|
@@ -2,5 +2,5 @@ export declare function CartAssignmentWizard({ orderId, open, onClose, }: {
|
|
|
2
2
|
orderId: string | null;
|
|
3
3
|
open: boolean;
|
|
4
4
|
onClose: () => void;
|
|
5
|
-
}): import("react
|
|
5
|
+
}): import("react").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=CartAssignmentWizard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartAssignmentWizard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/CartAssignmentWizard.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EAAE,IAAI,EAAE,OAAO,GACvB,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"CartAssignmentWizard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/CartAssignmentWizard.tsx"],"names":[],"mappings":"AA8CA,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EAAE,IAAI,EAAE,OAAO,GACvB,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IAAC,IAAI,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAAE,+BA4ThE"}
|
|
@@ -4,6 +4,6 @@ interface Props {
|
|
|
4
4
|
open: boolean;
|
|
5
5
|
onOpenChange: (open: boolean) => void;
|
|
6
6
|
}
|
|
7
|
-
export declare function CartLayersDialog({ cartId, cartNumber, open, onOpenChange }: Props): import("react
|
|
7
|
+
export declare function CartLayersDialog({ cartId, cartNumber, open, onOpenChange }: Props): import("react").JSX.Element;
|
|
8
8
|
export {};
|
|
9
9
|
//# sourceMappingURL=CartLayersDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CartLayersDialog.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/CartLayersDialog.tsx"],"names":[],"mappings":"AA4BA,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AA2ID,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK
|
|
1
|
+
{"version":3,"file":"CartLayersDialog.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/CartLayersDialog.tsx"],"names":[],"mappings":"AA4BA,UAAU,KAAK;IACb,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACvC;AA2ID,wBAAgB,gBAAgB,CAAC,EAAE,MAAM,EAAE,UAAU,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,KAAK,+BAyMjF"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function CreateOrderPage(): import("react
|
|
1
|
+
export declare function CreateOrderPage(): import("react").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=CreateOrderPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CreateOrderPage.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/CreateOrderPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"CreateOrderPage.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/CreateOrderPage.tsx"],"names":[],"mappings":"AAuFA,wBAAgB,eAAe,gCAq3B9B"}
|
|
@@ -2,8 +2,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
// Handmatig aanmaken van een bestelling — gebruikt exact dezelfde workflow,
|
|
3
3
|
// server-fns en validaties als de Mailbox-module. Beide modules leunen op
|
|
4
4
|
// gedeelde queries (klanten, producten met voorraad, afleverlocaties,
|
|
5
|
-
// afhaallocaties, vervoerders
|
|
6
|
-
//
|
|
5
|
+
// afhaallocaties, vervoerders). Ophaalmoment en haalbare leverdatum komen
|
|
6
|
+
// van de Logistiek Engine (logistics_departure_preview).
|
|
7
7
|
import { useEffect, useMemo, useRef, useState } from "react";
|
|
8
8
|
import { Button, Card, CardContent, CardHeader, CardTitle, Input, Label, Textarea, toast, } from "@flowselections/core";
|
|
9
9
|
import { Link, useNavigate } from "@tanstack/react-router";
|
|
@@ -11,7 +11,9 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
|
|
|
11
11
|
import { ArrowLeft, Plus, Trash2 } from "lucide-react";
|
|
12
12
|
import { useServerFn } from "@tanstack/react-start";
|
|
13
13
|
import { SearchableSelect } from "./SearchableSelect.js";
|
|
14
|
-
import {
|
|
14
|
+
import { toISODate } from "../../lib/carrier-availability.js";
|
|
15
|
+
import { getDeparturePreview } from "../../lib/departure-preview.functions.js";
|
|
16
|
+
import { decidePreview, momentLabel, LATE_CONFIRM } from "../../lib/departure-preview.js";
|
|
15
17
|
import { listCustomersForCreateOrder, ensureCustomerFromTwinfield, listProductsForCreateOrder, listDeliveryLocationsForCustomerCO, listPickupLocationsCO, listCarriersForCreateOrder, getOrderPickDaysCO, listBeladingOptionsForProducts, createManualOrder, getEffectivePrices, } from "../../lib/create-order.functions.js";
|
|
16
18
|
import { checkOrderStockAllowed } from "../../lib/logistics-stock.functions.js";
|
|
17
19
|
import { useAllowedLoadCarriers } from "../../lib/useAllowedLoadCarriers.js";
|
|
@@ -74,7 +76,6 @@ export function CreateOrderPage() {
|
|
|
74
76
|
const products = productsQ.data?.items ?? [];
|
|
75
77
|
const pickupLocations = pickupQ.data?.items ?? [];
|
|
76
78
|
const carriers = carriersQ.data?.items ?? [];
|
|
77
|
-
const pickDays = Math.max(0, Number(pickDaysQ.data?.pickDays ?? 0));
|
|
78
79
|
const [customerId, setCustomerId] = useState(null);
|
|
79
80
|
// Twinfield-only klanten (id `twinfield:<code>`) worden bij selectie eerst
|
|
80
81
|
// geïmporteerd naar een lokale customers-rij; daarna gaat de flow normaal door.
|
|
@@ -187,10 +188,8 @@ export function CreateOrderPage() {
|
|
|
187
188
|
if (deliveryLocationId !== lastLocRef.current) {
|
|
188
189
|
lastLocRef.current = deliveryLocationId;
|
|
189
190
|
const loc = deliveryLocations.find((l) => l.id === deliveryLocationId);
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
else if (deliveryLocationId === null)
|
|
193
|
-
setCarrierId(null);
|
|
191
|
+
// Zonder standaardvervoerder kiest de Engine er een (voorbeeldversie).
|
|
192
|
+
setCarrierId(loc?.carrier_id ? loc.carrier_id : null);
|
|
194
193
|
}
|
|
195
194
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
196
195
|
}, [deliveryLocationId, deliveryLocations.length]);
|
|
@@ -203,31 +202,64 @@ export function CreateOrderPage() {
|
|
|
203
202
|
setLoadCarrierType(loadCarriersEngine.default ?? allowed[0]);
|
|
204
203
|
}
|
|
205
204
|
}, [loadCarriersEngine.allowed.join(","), loadCarriersEngine.default]);
|
|
206
|
-
const
|
|
207
|
-
const
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
205
|
+
const canPickDate = !!customerId && !!deliveryLocationId && !!pickupLocationId;
|
|
206
|
+
const [momentKey, setMomentKey] = useState(null);
|
|
207
|
+
// ---- Ophaalmoment (Logistiek Engine) ----------------------------------
|
|
208
|
+
// Bij elke wijziging van vervoerder, afleverlocatie, leverdatum of moment
|
|
209
|
+
// vraagt het scherm de Engine om een voorbeeld. Kort wachten zodat niet
|
|
210
|
+
// elke toetsaanslag een vraag wordt.
|
|
211
|
+
const fetchPreview = useServerFn(getDeparturePreview);
|
|
212
|
+
const previewInput = useMemo(() => canPickDate && !isReservation
|
|
213
|
+
? {
|
|
214
|
+
carrierId: carrierId ?? null,
|
|
215
|
+
deliveryLocation: deliveryLocationId,
|
|
216
|
+
deliveryDate: deliveryDate || toISODate(new Date()),
|
|
217
|
+
momentKey,
|
|
218
|
+
}
|
|
219
|
+
: null, [canPickDate, isReservation, carrierId, deliveryLocationId, deliveryDate, momentKey]);
|
|
220
|
+
const [debouncedInput, setDebouncedInput] = useState(previewInput);
|
|
221
|
+
useEffect(() => {
|
|
222
|
+
const t = setTimeout(() => setDebouncedInput(previewInput), 300);
|
|
223
|
+
return () => clearTimeout(t);
|
|
224
|
+
}, [previewInput]);
|
|
225
|
+
const previewQ = useQuery({
|
|
226
|
+
queryKey: ["co-departure-preview", debouncedInput],
|
|
227
|
+
enabled: !!debouncedInput,
|
|
228
|
+
staleTime: 15000,
|
|
229
|
+
queryFn: async () => {
|
|
230
|
+
try {
|
|
231
|
+
return (await fetchPreview({ data: debouncedInput })).preview;
|
|
232
|
+
}
|
|
233
|
+
catch {
|
|
234
|
+
return null;
|
|
235
|
+
}
|
|
236
|
+
},
|
|
217
237
|
});
|
|
218
|
-
const
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
})
|
|
222
|
-
: null;
|
|
238
|
+
const preview = previewQ.data ?? null;
|
|
239
|
+
const decision = previewQ.isSuccess ? decidePreview(preview) : null;
|
|
240
|
+
// Nog geen leverdatum: neem de eerste haalbare datum van de Engine over.
|
|
223
241
|
useEffect(() => {
|
|
224
|
-
if (!
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
242
|
+
if (!deliveryDate && preview?.firstFeasibleDeliveryDate)
|
|
243
|
+
setDeliveryDate(preview.firstFeasibleDeliveryDate);
|
|
244
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
245
|
+
}, [preview?.firstFeasibleDeliveryDate]);
|
|
246
|
+
// Geen vervoerder gekozen: de Engine kiest er een op de afleverlocatie.
|
|
247
|
+
useEffect(() => {
|
|
248
|
+
if (!carrierId && preview?.carrierId)
|
|
249
|
+
setCarrierId(preview.carrierId);
|
|
250
|
+
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
251
|
+
}, [preview?.carrierId]);
|
|
252
|
+
// Andere vervoerder/locatie/datum: eigen momentkeuze vervalt als hij er niet meer is.
|
|
253
|
+
useEffect(() => {
|
|
254
|
+
if (momentKey && preview && !preview.moments.some((m) => m.momentKey === momentKey && m.feasible)) {
|
|
255
|
+
setMomentKey(null);
|
|
228
256
|
}
|
|
229
257
|
// eslint-disable-next-line react-hooks/exhaustive-deps
|
|
230
|
-
}, [
|
|
258
|
+
}, [preview]);
|
|
259
|
+
const fmtDate = (iso) => {
|
|
260
|
+
const [y, m, d] = iso.split("-").map(Number);
|
|
261
|
+
return new Date(y, (m ?? 1) - 1, d ?? 1).toLocaleDateString("nl-NL", { weekday: "long", day: "numeric", month: "long" });
|
|
262
|
+
};
|
|
231
263
|
// ---- Voorraadcontrole (Logistics Engine) -------------------------------
|
|
232
264
|
// De Engine beslist of een order met producten zonder voorraad aangemaakt
|
|
233
265
|
// mag worden. Antwoord nooit cachen: de instelling kan elk moment wijzigen.
|
|
@@ -263,10 +295,20 @@ export function CreateOrderPage() {
|
|
|
263
295
|
throw new Error("Selecteer een afleverlocatie");
|
|
264
296
|
if (!pickupLocationId)
|
|
265
297
|
throw new Error("Selecteer een afhaallocatie (tuin)");
|
|
266
|
-
if (!isReservation && !carrierId)
|
|
267
|
-
throw new Error("Selecteer een vervoerder");
|
|
268
298
|
if (!isReservation && !deliveryDate)
|
|
269
299
|
throw new Error("Selecteer een leverdatum");
|
|
300
|
+
let acceptLateSignup = false;
|
|
301
|
+
if (!isReservation) {
|
|
302
|
+
if (!decision)
|
|
303
|
+
throw new Error("Het ophaalmoment wordt nog opgehaald. Probeer het zo opnieuw.");
|
|
304
|
+
if (decision.kind === "blocked")
|
|
305
|
+
throw new Error(decision.reason);
|
|
306
|
+
if (decision.kind === "late") {
|
|
307
|
+
if (!window.confirm(LATE_CONFIRM))
|
|
308
|
+
throw new Error("__cancelled__");
|
|
309
|
+
acceptLateSignup = true;
|
|
310
|
+
}
|
|
311
|
+
}
|
|
270
312
|
const validLines = lines.filter((l) => l.product_id && (l.quantity ?? 0) > 0);
|
|
271
313
|
if (validLines.length === 0)
|
|
272
314
|
throw new Error("Voeg minimaal één product toe");
|
|
@@ -302,7 +344,9 @@ export function CreateOrderPage() {
|
|
|
302
344
|
customerName: customer?.company_name ?? "Onbekende klant",
|
|
303
345
|
deliveryLocationId,
|
|
304
346
|
pickupLocationId,
|
|
305
|
-
carrierId: isReservation ? null : carrierId,
|
|
347
|
+
carrierId: isReservation ? null : (carrierId ?? preview?.carrierId ?? null),
|
|
348
|
+
momentKey: isReservation ? null : momentKey,
|
|
349
|
+
acceptLateSignup,
|
|
306
350
|
deliveryDate: isReservation ? null : deliveryDate,
|
|
307
351
|
isReservation,
|
|
308
352
|
loadCarrierType,
|
|
@@ -339,8 +383,11 @@ export function CreateOrderPage() {
|
|
|
339
383
|
}
|
|
340
384
|
},
|
|
341
385
|
onError: (e) => {
|
|
386
|
+
if (e?.message === "__cancelled__")
|
|
387
|
+
return;
|
|
342
388
|
console.error(e);
|
|
343
|
-
|
|
389
|
+
const msg = typeof e?.message === "string" && e.message.length < 400 ? e.message : null;
|
|
390
|
+
toast.error(msg ?? "De order is niet aangemaakt. Controleer de regels en probeer opnieuw.");
|
|
344
391
|
},
|
|
345
392
|
});
|
|
346
393
|
return (_jsxs("main", { className: "space-y-5 p-6", children: [_jsx("div", { children: _jsx(Button, { asChild: true, variant: "ghost", size: "sm", children: _jsxs(Link, { to: "/floriday-verkoop/verkooporders", children: [_jsx(ArrowLeft, { className: "mr-2 h-4 w-4" }), "Terug naar verkooporders"] }) }) }), _jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Nieuwe Bestelling" }), _jsx("p", { className: "text-sm text-muted-foreground", children: "Doorloop de stappen: klant \u2192 afleverlocatie \u2192 afhaallocatie \u2192 vervoerder \u2192 leverdatum \u2192 producten." })] }), _jsxs(CardContent, { className: "space-y-5", children: [_jsxs("div", { className: "space-y-1", children: [_jsxs(Label, { className: "flex items-center gap-2", children: ["Klant ", _jsx("span", { className: "text-destructive", children: "*" })] }), _jsx(SearchableSelect, { value: customerId, placeholder: customersQ.isLoading ? "Laden..." : "Kies klant...", options: customers.map((c) => ({
|
|
@@ -363,18 +410,10 @@ export function CreateOrderPage() {
|
|
|
363
410
|
};
|
|
364
411
|
}), onChange: setDeliveryLocationId })] }), selectedLocation && (_jsxs("div", { className: "rounded-md border bg-muted/30 p-3 space-y-2", children: [_jsx("div", { className: "text-xs font-medium text-muted-foreground", children: "Adresgegevens" }), _jsxs("div", { className: "grid grid-cols-2 gap-2", children: [_jsx(ReadOnlyField, { label: "Straat", value: selectedLocation.street }), _jsx(ReadOnlyField, { label: "Huisnummer", value: selectedLocation.house_number }), _jsx(ReadOnlyField, { label: "Postcode", value: selectedLocation.postal_code }), _jsx(ReadOnlyField, { label: "Plaats", value: selectedLocation.city }), _jsx(ReadOnlyField, { label: "Provincie", value: selectedLocation.province }), _jsx(ReadOnlyField, { label: "Land", value: selectedLocation.country })] })] })), _jsxs("div", { className: "space-y-1", children: [_jsxs(Label, { className: "flex items-center gap-2", children: ["Afhaallocatie / Tuin ", _jsx("span", { className: "text-destructive", children: "*" })] }), _jsx(SearchableSelect, { value: pickupLocationId, placeholder: pickupLocations.length ? "Kies eigen locatie..." : "Geen eigen locaties bekend", disabled: pickupLocations.length === 0, allowClear: false, options: pickupLocations.map((l) => ({ value: l.id, label: l.name })), onChange: setPickupLocationId }), _jsx("div", { className: "text-xs text-muted-foreground", children: "Eigen locatie (tuin) van waaruit de bestelling wordt geleverd of opgehaald." })] }), isReservation ? (_jsxs("div", { className: "space-y-1", children: [_jsx(Label, { children: "Vervoerder" }), _jsx("div", { className: "rounded-md border border-border bg-muted/40 px-3 py-2 text-sm text-muted-foreground", children: "Nog niet van toepassing \u2014 de vervoerder wordt pas gekozen bij het aanmaken van de verzending." })] })) : (_jsxs("div", { className: "space-y-1", children: [_jsxs(Label, { children: ["Vervoerder ", _jsx("span", { className: "text-destructive", children: "*" })] }), _jsx(SearchableSelect, { value: carrierId, placeholder: !customerId ? "Selecteer eerst een klant"
|
|
365
412
|
: !deliveryLocationId ? "Selecteer eerst een afleverlocatie"
|
|
366
|
-
: "
|
|
413
|
+
: "Wordt gekozen bij de afleverlocatie", disabled: !deliveryLocationId, allowClear: false, options: carriers.map((c) => ({
|
|
367
414
|
value: c.id,
|
|
368
415
|
label: c.name + (c.is_default ? " (standaard)" : ""),
|
|
369
|
-
})), onChange: setCarrierId }), selectedLocation?.carrier_id && carrierId && carrierId !== selectedLocation.carrier_id && (_jsx("div", { className: "text-xs text-muted-foreground", children: "Wijkt af van standaard vervoerder van deze locatie \u2014 geldt alleen voor deze bestelling." }))] })), _jsxs("div", { className: "space-y-1", children: [_jsxs(Label, { className: "flex items-center gap-2", children: ["Leverdatum ", !isReservation && _jsx("span", { className: "text-destructive", children: "*" })] }), _jsx(Input, { type: "date", value: !isReservation && canPickDate ? deliveryDate : "",
|
|
370
|
-
const v = e.target.value || "";
|
|
371
|
-
if (v && v < earliestISO) {
|
|
372
|
-
toast.error(`Eerst mogelijke leverdatum is ${earliestLabel}.`);
|
|
373
|
-
setDeliveryDate(earliestISO);
|
|
374
|
-
return;
|
|
375
|
-
}
|
|
376
|
-
setDeliveryDate(v);
|
|
377
|
-
} }), _jsxs("label", { className: "mt-1 flex items-center gap-2 text-sm text-foreground", children: [_jsx("input", { type: "checkbox", checked: isReservation, onChange: (e) => setIsReservation(e.target.checked), className: "h-4 w-4 rounded border-input" }), "Reservering (nog geen vaste leverdatum)"] }), isReservation ? (_jsx("div", { className: "text-xs text-muted-foreground", children: "De bestelling wordt als reservering aangemaakt zonder leverdatumvalidatie." })) : !canPickDate ? (_jsx("div", { className: "text-xs text-muted-foreground", children: "Selecteer eerst klant, afleverlocatie, afhaallocatie en vervoerder." })) : (_jsxs("div", { className: "text-xs text-muted-foreground", children: ["Eerst beschikbare leverdatum is ", earliestLabel, signupLabel ? `, o.b.v. het eerstvolgende aanmeldmoment (${signupLabel})` : "", " ", "en orderpicktijd (", pickDays, "d).", _jsx("div", { className: "mt-0.5", children: "Het definitieve ophaalmoment wordt bepaald zodra de order is aangemaakt." })] }))] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Bestelregels" }), _jsxs("div", { className: "grid grid-cols-12 gap-2 text-xs text-muted-foreground px-1", children: [_jsx("div", { className: "col-span-4", children: "Product" }), _jsx("div", { className: "col-span-3", children: "Belading" }), _jsx("div", { className: "col-span-2", children: "Fusten" }), _jsx("div", { className: "col-span-2", children: "Prijs" }), _jsx("div", { className: "col-span-1" })] }), lines.map((line, idx) => {
|
|
416
|
+
})), onChange: (v) => { setCarrierId(v); setMomentKey(null); } }), selectedLocation?.carrier_id && carrierId && carrierId !== selectedLocation.carrier_id && (_jsx("div", { className: "text-xs text-muted-foreground", children: "Wijkt af van standaard vervoerder van deze locatie \u2014 geldt alleen voor deze bestelling." }))] })), _jsxs("div", { className: "space-y-1", children: [_jsxs(Label, { className: "flex items-center gap-2", children: ["Leverdatum ", !isReservation && _jsx("span", { className: "text-destructive", children: "*" })] }), _jsx(Input, { type: "date", value: !isReservation && canPickDate ? deliveryDate : "", disabled: isReservation || !canPickDate, onChange: (e) => { setDeliveryDate(e.target.value || ""); setMomentKey(null); } }), _jsxs("label", { className: "mt-1 flex items-center gap-2 text-sm text-foreground", children: [_jsx("input", { type: "checkbox", checked: isReservation, onChange: (e) => setIsReservation(e.target.checked), className: "h-4 w-4 rounded border-input" }), "Reservering (nog geen vaste leverdatum)"] }), isReservation ? (_jsx("div", { className: "text-xs text-muted-foreground", children: "De bestelling wordt als reservering aangemaakt zonder leverdatumvalidatie." })) : !canPickDate ? (_jsx("div", { className: "text-xs text-muted-foreground", children: "Selecteer eerst klant, afleverlocatie en afhaallocatie." })) : !decision ? (_jsx("div", { className: "text-xs text-muted-foreground", children: "Ophaalmoment ophalen\u2026" })) : decision.kind === "blocked" ? (_jsx("div", { className: "text-xs text-destructive", children: decision.reason })) : (_jsxs("div", { className: "space-y-2 text-xs", children: [preview && preview.moments.length > 0 && (_jsx("select", { className: "h-9 w-full rounded-md border border-border bg-background px-2 text-sm text-foreground", value: momentKey ?? decision.momentKey ?? "", onChange: (e) => setMomentKey(e.target.value || null), "aria-label": "Ophaalmoment kiezen", children: preview.moments.map((m) => (_jsxs("option", { value: m.momentKey, disabled: !m.feasible, className: m.feasible ? "" : "text-muted-foreground", children: [momentLabel(m), m.feasible ? "" : " (niet haalbaar)"] }, m.momentKey))) })), decision.text && _jsx("div", { className: "text-foreground", children: decision.text }), decision.kind === "late" && (_jsxs("div", { className: "space-y-2 rounded-md border border-destructive/40 p-2", children: [_jsx("div", { className: "text-destructive", children: decision.reason }), decision.firstReason && _jsx("div", { className: "text-muted-foreground", children: decision.firstReason }), _jsxs("div", { className: "flex flex-wrap gap-2", children: [decision.firstDate && (_jsxs(Button, { type: "button", size: "sm", variant: "outline", onClick: () => { setDeliveryDate(decision.firstDate); setMomentKey(null); }, children: ["Gebruik ", fmtDate(decision.firstDate)] })), _jsxs(Button, { type: "button", size: "sm", variant: "outline", disabled: createMut.isPending, onClick: () => createMut.mutate(), children: ["Toch aanmaken voor ", deliveryDate ? fmtDate(deliveryDate) : "de gekozen datum"] })] })] }))] }))] }), _jsxs("div", { className: "space-y-2", children: [_jsx(Label, { children: "Bestelregels" }), _jsxs("div", { className: "grid grid-cols-12 gap-2 text-xs text-muted-foreground px-1", children: [_jsx("div", { className: "col-span-4", children: "Product" }), _jsx("div", { className: "col-span-3", children: "Belading" }), _jsx("div", { className: "col-span-2", children: "Fusten" }), _jsx("div", { className: "col-span-2", children: "Prijs" }), _jsx("div", { className: "col-span-1" })] }), lines.map((line, idx) => {
|
|
378
417
|
const product = line.product_id ? products.find((p) => p.id === line.product_id) : null;
|
|
379
418
|
const defaultBelading = completeBelading(product);
|
|
380
419
|
const effBelading = completeBelading(line.belading) ?? defaultBelading;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DiagnoseConnectionDialog.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/DiagnoseConnectionDialog.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,YAAY,GACb,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC
|
|
1
|
+
{"version":3,"file":"DiagnoseConnectionDialog.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/DiagnoseConnectionDialog.tsx"],"names":[],"mappings":"AAiBA,wBAAgB,wBAAwB,CAAC,EACvC,IAAI,EACJ,YAAY,GACb,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,+BAoMA"}
|
|
@@ -2,5 +2,5 @@ export declare function EditLocalOrderDialog({ orderId, open, onOpenChange, }: {
|
|
|
2
2
|
orderId: string;
|
|
3
3
|
open: boolean;
|
|
4
4
|
onOpenChange: (o: boolean) => void;
|
|
5
|
-
}): import("react
|
|
5
|
+
}): import("react").JSX.Element | null;
|
|
6
6
|
//# sourceMappingURL=EditLocalOrderDialog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EditLocalOrderDialog.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/EditLocalOrderDialog.tsx"],"names":[],"mappings":"AA6CA,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,IAAI,EACJ,YAAY,GACb,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,
|
|
1
|
+
{"version":3,"file":"EditLocalOrderDialog.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/EditLocalOrderDialog.tsx"],"names":[],"mappings":"AA6CA,wBAAgB,oBAAoB,CAAC,EACnC,OAAO,EACP,IAAI,EACJ,YAAY,GACb,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CACpC,sCAuiBA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"EngineBufferCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/EngineBufferCard.tsx"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"EngineBufferCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/EngineBufferCard.tsx"],"names":[],"mappings":"AAiBA;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,sCAkJvE"}
|
|
@@ -8,8 +8,8 @@ export declare function FloridayStageLine({ status, stage, floridayFulfilled, is
|
|
|
8
8
|
isFloriday?: boolean;
|
|
9
9
|
notReportedCount?: number;
|
|
10
10
|
bufferSize?: number;
|
|
11
|
-
}): import("react
|
|
11
|
+
}): import("react").JSX.Element | null;
|
|
12
12
|
export declare function MissingPriceBadge({ show }: {
|
|
13
13
|
show: boolean | undefined;
|
|
14
|
-
}): import("react
|
|
14
|
+
}): import("react").JSX.Element | null;
|
|
15
15
|
//# sourceMappingURL=FloridayStageLine.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FloridayStageLine.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/FloridayStageLine.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA8D,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,EAAE;IACD,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,
|
|
1
|
+
{"version":3,"file":"FloridayStageLine.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/FloridayStageLine.tsx"],"names":[],"mappings":"AAEA,OAAO,EAA8D,KAAK,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC/H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAErD,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,EAChC,MAAM,EACN,KAAK,EACL,iBAAiB,EACjB,UAAU,EACV,gBAAgB,EAChB,UAAU,GACX,EAAE;IACD,MAAM,EAAE,qBAAqB,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,KAAK,EAAE,UAAU,GAAG,SAAS,CAAC;IAC9B,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB,sCAwCA;AAED,wBAAgB,iBAAiB,CAAC,EAAE,IAAI,EAAE,EAAE;IAAE,IAAI,EAAE,OAAO,GAAG,SAAS,CAAA;CAAE,sCAOxE"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
export declare function InvoiceTimingSettingsCard(): import("react
|
|
1
|
+
export declare function InvoiceTimingSettingsCard(): import("react").JSX.Element;
|
|
2
2
|
export default InvoiceTimingSettingsCard;
|
|
3
3
|
//# sourceMappingURL=InvoiceTimingSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InvoiceTimingSettings.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/InvoiceTimingSettings.tsx"],"names":[],"mappings":"AA+GA,wBAAgB,yBAAyB,
|
|
1
|
+
{"version":3,"file":"InvoiceTimingSettings.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/InvoiceTimingSettings.tsx"],"names":[],"mappings":"AA+GA,wBAAgB,yBAAyB,gCA2GxC;AAED,eAAe,yBAAyB,CAAC"}
|
|
@@ -2,5 +2,5 @@ export declare function OrderAfleverbrievenCard({ salesOrderId, orderNumber, wer
|
|
|
2
2
|
salesOrderId: string;
|
|
3
3
|
orderNumber?: string;
|
|
4
4
|
werkplek?: string;
|
|
5
|
-
}): import("react
|
|
5
|
+
}): import("react").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=OrderAfleverbrievenCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderAfleverbrievenCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderAfleverbrievenCard.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,uBAAuB,CAAC,EACtC,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB
|
|
1
|
+
{"version":3,"file":"OrderAfleverbrievenCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderAfleverbrievenCard.tsx"],"names":[],"mappings":"AAuCA,wBAAgB,uBAAuB,CAAC,EACtC,YAAY,EACZ,WAAW,EACX,QAAQ,GACT,EAAE;IACD,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,+BAwMA"}
|
|
@@ -9,5 +9,5 @@ export declare function OrderCarrierPicker({ orderId, applyToBuffer, compact, lo
|
|
|
9
9
|
applyToBuffer?: boolean;
|
|
10
10
|
compact?: boolean;
|
|
11
11
|
locked?: boolean;
|
|
12
|
-
}): import("react
|
|
12
|
+
}): import("react").JSX.Element;
|
|
13
13
|
//# sourceMappingURL=OrderCarrierPicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderCarrierPicker.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderCarrierPicker.tsx"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,aAAqB,EACrB,OAAe,EACf,MAAc,GACf,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB
|
|
1
|
+
{"version":3,"file":"OrderCarrierPicker.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderCarrierPicker.tsx"],"names":[],"mappings":"AAMA;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,EACjC,OAAO,EACP,aAAqB,EACrB,OAAe,EACf,MAAc,GACf,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,+BA4EA"}
|
|
@@ -2,5 +2,5 @@ export declare function OrderControlStatusCard({ floridayId, isControlled, contr
|
|
|
2
2
|
floridayId: string;
|
|
3
3
|
isControlled: boolean;
|
|
4
4
|
controlledAt: string | null;
|
|
5
|
-
}): import("react
|
|
5
|
+
}): import("react").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=OrderControlStatusCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderControlStatusCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderControlStatusCard.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,EACV,YAAY,EACZ,YAAY,GACb,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B
|
|
1
|
+
{"version":3,"file":"OrderControlStatusCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderControlStatusCard.tsx"],"names":[],"mappings":"AAsBA,wBAAgB,sBAAsB,CAAC,EACrC,UAAU,EACV,YAAY,EACZ,YAAY,GACb,EAAE;IACD,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,OAAO,CAAC;IACtB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B,+BA6DA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SalesOrderDTO } from "../../lib/salesorders-mapping.js";
|
|
2
2
|
export declare function OrderKarindelingCard({ order }: {
|
|
3
3
|
order: SalesOrderDTO;
|
|
4
|
-
}): import("react
|
|
4
|
+
}): import("react").JSX.Element;
|
|
5
5
|
//# sourceMappingURL=OrderKarindelingCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderKarindelingCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderKarindelingCard.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAkB/D,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE
|
|
1
|
+
{"version":3,"file":"OrderKarindelingCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderKarindelingCard.tsx"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AAkB/D,wBAAgB,oBAAoB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,+BAyKvE"}
|
|
@@ -46,7 +46,7 @@ export function OrderKarindelingCard({ order }) {
|
|
|
46
46
|
const carts = Array.isArray(cov?.carts) ? cov.carts : [];
|
|
47
47
|
const pickRows = Array.isArray(cov?.pickRows) ? cov.pickRows : [];
|
|
48
48
|
const [layersFor, setLayersFor] = useState(null);
|
|
49
|
-
return (_jsxs(Card, { children: [_jsxs(CardHeader, { className: "grid grid-cols-[minmax(0,1fr)_auto] items-center gap-2 sm:flex sm:flex-row sm:justify-between", children: [_jsx(CardTitle, { className: "truncate text-base", children: "Karindeling" }), _jsxs("div", { className: "flex items-center gap-2", children: [cov && cov.state !== "onbekend" && (_jsxs(Badge, { variant: "secondary", children: [carts.length, " kar(ren)"] })), _jsx(Button, { variant: "ghost", size: "icon", "aria-label": "Vernieuwen", title: "Vernieuwen", onClick: () => void queryClient.invalidateQueries({ queryKey }), children: _jsx(RefreshCw, { className: "h-4 w-4 " + (isFetching ? "animate-spin" : "") }) })] })] }), _jsx(CardContent, { className: "space-y-4", children: isLoading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Karindeling laden\u2026" })) : error ? (_jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: "Indeling onbekend" }), _jsx("p", { className: "text-sm text-muted-foreground", children: error.message })] })) : cov ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex flex-wrap items-start gap-x-6 gap-y-2 text-sm", children: [_jsxs("div", { children: [_jsx("div", { className: "text-xs text-muted-foreground", children: "Indeling" }), _jsx(PlanCoverageBadge, { coverage: summarize(cov) })] }), _jsxs("div", { children: [_jsx("div", { className: "text-xs text-muted-foreground", children: "Pickstatus" }), _jsxs("div", { className: "mt-1", children: [cov.pickStatus ? PICK_LABEL[cov.pickStatus] : "—", cov.pickStatus === "gepickt" && cov.pickedAt ? ` · ${fmt(cov.pickedAt)}` : ""] })] }), pickRows.length > 0 && (_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-xs text-muted-foreground", children: "Pickdocumenten" }), _jsx("div", { className: "mt-1 flex flex-wrap gap-1", children: pickRows.map((p, i) => (_jsxs(Badge, { variant: "outline", className: "text-[10px]", title: [
|
|
49
|
+
return (_jsxs(Card, { children: [_jsxs(CardHeader, { className: "grid grid-cols-[minmax(0,1fr)_auto] items-center gap-2 sm:flex sm:flex-row sm:justify-between", children: [_jsx(CardTitle, { className: "truncate text-base", children: "Karindeling" }), _jsxs("div", { className: "flex items-center gap-2", children: [cov && cov.state !== "onbekend" && (_jsxs(Badge, { variant: "secondary", children: [carts.length, " kar(ren)"] })), _jsx(Button, { variant: "ghost", size: "icon", "aria-label": "Vernieuwen", title: "Vernieuwen", onClick: () => void queryClient.invalidateQueries({ queryKey }), children: _jsx(RefreshCw, { className: "h-4 w-4 " + (isFetching ? "animate-spin" : "") }) })] })] }), _jsx(CardContent, { className: "space-y-4", children: isLoading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Karindeling laden\u2026" })) : error ? (_jsxs("div", { className: "space-y-1", children: [_jsx("p", { className: "text-sm font-medium text-muted-foreground", children: "Indeling onbekend" }), _jsx("p", { className: "text-sm text-muted-foreground", children: error.message })] })) : cov ? (_jsxs(_Fragment, { children: [cov.externalFulfilled && !cov.externalFulfilled.full && (_jsxs("p", { className: "text-sm text-muted-foreground", children: [cov.externalFulfilled.salesOrderIds.length, " bestelling(en) afgehandeld in Floriday; de voortgang telt alleen de rest."] })), data?.externalEvent?.sendError ? (_jsxs("p", { className: "text-sm text-destructive", children: ["Het afronden in de planning lukte niet: de melding kon niet worden verstuurd (", data.externalEvent.sendError, ")."] })) : data?.externalEvent?.status === "failed" ? (_jsxs("p", { className: "text-sm text-destructive", children: ["Het afronden in de planning lukte niet: ", data.externalEvent.error ?? "geen reden opgegeven"] })) : data?.externalEvent && data.externalEvent.status && !["done", "processed", "completed", "applied", "skipped"].includes(data.externalEvent.status) ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "De planning verwerkt \"Afgehandeld in Floriday\" nog." })) : null, _jsxs("div", { className: "flex flex-wrap items-start gap-x-6 gap-y-2 text-sm", children: [_jsxs("div", { children: [_jsx("div", { className: "text-xs text-muted-foreground", children: "Indeling" }), _jsx(PlanCoverageBadge, { coverage: summarize(cov) })] }), _jsxs("div", { children: [_jsx("div", { className: "text-xs text-muted-foreground", children: "Pickstatus" }), _jsxs("div", { className: "mt-1", children: [cov.pickStatus ? PICK_LABEL[cov.pickStatus] : "—", cov.pickStatus === "gepickt" && cov.pickedAt ? ` · ${fmt(cov.pickedAt)}` : ""] })] }), pickRows.length > 0 && (_jsxs("div", { className: "min-w-0", children: [_jsx("div", { className: "text-xs text-muted-foreground", children: "Pickdocumenten" }), _jsx("div", { className: "mt-1 flex flex-wrap gap-1", children: pickRows.map((p, i) => (_jsxs(Badge, { variant: "outline", className: "text-[10px]", title: [
|
|
50
50
|
p.printedAt ? `Geprint ${fmt(p.printedAt)}` : "Nog niet geprint",
|
|
51
51
|
p.completedAt ? `Afgerond ${fmt(p.completedAt)}` : null,
|
|
52
52
|
]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderLinePackingCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderLinePackingCard.tsx"],"names":[],"mappings":"AAmJA,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"OrderLinePackingCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderLinePackingCard.tsx"],"names":[],"mappings":"AAmJA,wBAAgB,oBAAoB,CAAC,EAAE,OAAO,EAAE,EAAE;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,sCA4CpE"}
|
|
@@ -6,5 +6,5 @@ export declare function OrderPickupMomentPicker({ orderId, readOnly, compact, }:
|
|
|
6
6
|
orderId: string;
|
|
7
7
|
readOnly?: boolean;
|
|
8
8
|
compact?: boolean;
|
|
9
|
-
}): import("react
|
|
9
|
+
}): import("react").JSX.Element;
|
|
10
10
|
//# sourceMappingURL=OrderPickupMomentPicker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderPickupMomentPicker.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderPickupMomentPicker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"OrderPickupMomentPicker.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderPickupMomentPicker.tsx"],"names":[],"mappings":"AAOA;;;GAGG;AACH,wBAAgB,uBAAuB,CAAC,EACtC,OAAO,EACP,QAAgB,EAChB,OAAe,GAChB,EAAE;IACD,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,+BA6EA"}
|
|
@@ -4,6 +4,7 @@ import { useQuery, useQueryClient } from "@tanstack/react-query";
|
|
|
4
4
|
import { useServerFn } from "@tanstack/react-start";
|
|
5
5
|
import { Clock } from "lucide-react";
|
|
6
6
|
import { getOrderPickupMoment, setOrderPickupMoment } from "../../lib/order-pickup.functions.js";
|
|
7
|
+
import { formatMoment } from "../../lib/order-departure.js";
|
|
7
8
|
/**
|
|
8
9
|
* Toont het ophaal- en aanmeldmoment zoals de planning het heeft berekend.
|
|
9
10
|
* Zonder `readOnly` kun je een ander moment van de vervoerder kiezen.
|
|
@@ -40,5 +41,5 @@ export function OrderPickupMomentPicker({ orderId, readOnly = false, compact = f
|
|
|
40
41
|
return _jsx("span", { className: "text-sm text-muted-foreground", children: "Laden\u2026" });
|
|
41
42
|
const view = data?.view;
|
|
42
43
|
const options = data?.options ?? [];
|
|
43
|
-
return (_jsxs("div", { className: compact ? "space-y-1" : "inline-flex flex-col gap-1", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2 text-sm text-foreground", children: [!compact && _jsx(Clock, { className: "h-4 w-4 text-muted-foreground" }), view?.text ? (_jsxs("span", { children: [view.text, data?.deliveryTime ? (_jsxs("span", { className: "text-muted-foreground", children: [" \u00B7 aanlevering ", data.deliveryTime] })) : null] })) : (_jsx("span", { className: "text-muted-foreground", children: view?.reason ?? "Geen ophaalmoment bekend" })), view?.lateSignup && (_jsx("span", { className: "rounded border border-destructive/40 px-1.5 py-0.5 text-xs text-destructive", children: "te laat aangemeld" }))] }), !readOnly && options.length > 1 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("select", { className: "h-9 min-w-[18rem] rounded-md border border-border bg-background px-2 text-sm text-foreground disabled:opacity-60", value: data?.selectedKey ?? "", disabled: saving, onChange: (e) => onChange(e.target.value), "aria-label": "Ander ophaalmoment kiezen", children: [!data?.selectedKey && _jsx("option", { value: "", children: "Ander ophaalmoment kiezen\u2026" }), options.map((o) => (_jsx("option", { value: o.key, children: o.label }, o.key)))] }), saving && _jsx("span", { className: "text-xs text-muted-foreground", children: "Opslaan\u2026" })] })), error && _jsx("span", { className: "text-xs text-destructive", children: error })] }));
|
|
44
|
+
return (_jsxs("div", { className: compact ? "space-y-1" : "inline-flex flex-col gap-1", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2 text-sm text-foreground", children: [!compact && _jsx(Clock, { className: "h-4 w-4 text-muted-foreground" }), view?.text ? (_jsxs("span", { children: [view.text, data?.deliveryTime ? (_jsxs("span", { className: "text-muted-foreground", children: [" \u00B7 aanlevering ", data.deliveryTime] })) : null] })) : (_jsx("span", { className: "text-muted-foreground", children: view?.reason ?? "Geen ophaalmoment bekend" })), view?.lateSignup && (_jsx("span", { className: "rounded border border-destructive/40 px-1.5 py-0.5 text-xs text-destructive", children: "te laat aangemeld" }))] }), !readOnly && options.length > 1 && (_jsxs("div", { className: "flex items-center gap-2", children: [_jsxs("select", { className: "h-9 min-w-[18rem] rounded-md border border-border bg-background px-2 text-sm text-foreground disabled:opacity-60", value: data?.selectedKey ?? "", disabled: saving, onChange: (e) => onChange(e.target.value), "aria-label": "Ander ophaalmoment kiezen", children: [!data?.selectedKey && _jsx("option", { value: "", children: "Ander ophaalmoment kiezen\u2026" }), options.map((o) => (_jsx("option", { value: o.key, children: o.label }, o.key)))] }), saving && _jsx("span", { className: "text-xs text-muted-foreground", children: "Opslaan\u2026" })] })), data?.lateOverride && (_jsxs("span", { className: "text-xs text-muted-foreground", children: ["Toch aangemaakt na de aanmeldtijd door ", data.lateOverride.by ?? "onbekend", data.lateOverride.at ? ` op ${formatMoment(data.lateOverride.at)}` : ""] })), error && _jsx("span", { className: "text-xs text-destructive", children: error })] }));
|
|
44
45
|
}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { SalesOrderDTO } from "../../lib/salesorders-mapping.js";
|
|
2
2
|
export declare function OrderShipmentsCard({ order }: {
|
|
3
3
|
order: SalesOrderDTO;
|
|
4
|
-
}): import("react
|
|
4
|
+
}): import("react").JSX.Element | null;
|
|
5
5
|
//# sourceMappingURL=OrderShipmentsCard.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OrderShipmentsCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderShipmentsCard.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA+C/D,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,
|
|
1
|
+
{"version":3,"file":"OrderShipmentsCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderShipmentsCard.tsx"],"names":[],"mappings":"AAwBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,2BAA2B,CAAC;AA+C/D,wBAAgB,kBAAkB,CAAC,EAAE,KAAK,EAAE,EAAE;IAAE,KAAK,EAAE,aAAa,CAAA;CAAE,sCASrE"}
|
|
@@ -2,5 +2,5 @@ import { type PlanCoverageSummary } from "../../lib/plan-coverage.js";
|
|
|
2
2
|
export declare function PlanCoverageBadge({ coverage, showReason, }: {
|
|
3
3
|
coverage: PlanCoverageSummary | null | undefined;
|
|
4
4
|
showReason?: boolean;
|
|
5
|
-
}): import("react
|
|
5
|
+
}): import("react").JSX.Element | null;
|
|
6
6
|
//# sourceMappingURL=PlanCoverageBadge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PlanCoverageBadge.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/PlanCoverageBadge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGnF,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,UAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,
|
|
1
|
+
{"version":3,"file":"PlanCoverageBadge.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/PlanCoverageBadge.tsx"],"names":[],"mappings":"AACA,OAAO,EAAsB,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAGnF,wBAAgB,iBAAiB,CAAC,EAChC,QAAQ,EACR,UAAiB,GAClB,EAAE;IACD,QAAQ,EAAE,mBAAmB,GAAG,IAAI,GAAG,SAAS,CAAC;IACjD,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB,sCAsCA"}
|
|
@@ -12,11 +12,13 @@ export function PlanCoverageBadge({ coverage, showReason = true, }) {
|
|
|
12
12
|
if (state === "geen_indeling") {
|
|
13
13
|
return (_jsxs("div", { className: "mt-1 min-w-0", children: [_jsxs("span", { className: `${base} border-destructive/40 bg-destructive/10 text-destructive`, title: tip, children: [_jsx(AlertTriangle, { className: "h-3 w-3 shrink-0" }), label] }), showReason && reason && _jsx("div", { className: "mt-0.5 text-xs text-destructive", children: reason })] }));
|
|
14
14
|
}
|
|
15
|
-
const tone = state === "
|
|
16
|
-
? "border-
|
|
17
|
-
: state === "
|
|
18
|
-
? "border-
|
|
19
|
-
:
|
|
15
|
+
const tone = state === "afgehandeld_extern"
|
|
16
|
+
? "border-accent bg-accent text-accent-foreground"
|
|
17
|
+
: state === "deels"
|
|
18
|
+
? "border-primary/40 bg-primary/10 text-foreground"
|
|
19
|
+
: state === "ingedeeld"
|
|
20
|
+
? "border-border bg-muted text-foreground"
|
|
21
|
+
: "border-border bg-muted/50 text-muted-foreground";
|
|
20
22
|
const text = state === "deels" && progressPct != null
|
|
21
23
|
? `${label} · ${Math.round(progressPct)}%`
|
|
22
24
|
: state === "ingedeeld" && shared
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function ProductDimensionsSettingsCard(): import("react
|
|
1
|
+
export declare function ProductDimensionsSettingsCard(): import("react").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=ProductDimensionsSettings.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProductDimensionsSettings.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/ProductDimensionsSettings.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,6BAA6B,
|
|
1
|
+
{"version":3,"file":"ProductDimensionsSettings.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/ProductDimensionsSettings.tsx"],"names":[],"mappings":"AA0BA,wBAAgB,6BAA6B,gCAoK5C"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export declare function SalesOrderDetailPage(): import("react
|
|
1
|
+
export declare function SalesOrderDetailPage(): import("react").JSX.Element;
|
|
2
2
|
//# sourceMappingURL=SalesOrderDetailPage.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SalesOrderDetailPage.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrderDetailPage.tsx"],"names":[],"mappings":"AAgGA,wBAAgB,oBAAoB,
|
|
1
|
+
{"version":3,"file":"SalesOrderDetailPage.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrderDetailPage.tsx"],"names":[],"mappings":"AAgGA,wBAAgB,oBAAoB,gCAsPnC"}
|
|
@@ -5,13 +5,13 @@ import { useQuery } from "@tanstack/react-query";
|
|
|
5
5
|
import { useServerFn } from "@tanstack/react-start";
|
|
6
6
|
import { Badge, Button } from "@flowselections/core";
|
|
7
7
|
import { ArrowLeft, Pencil, Layers, ChevronDown, ChevronRight, ImageIcon, MapPin, Truck, Clock } from "lucide-react";
|
|
8
|
-
import { SalesOrderDetailView } from "
|
|
8
|
+
import { SalesOrderDetailView } from "./SalesOrderDetailView.js";
|
|
9
9
|
import { formatLoadUnits, mergeTypeNames } from "../../lib/load-carrier-labels.js";
|
|
10
|
-
import { OrderKarindelingCard } from "
|
|
11
|
-
import { EngineBufferCard } from "
|
|
12
|
-
import { OrderCarrierPicker } from "
|
|
13
|
-
import { OrderPickupMomentPicker } from "
|
|
14
|
-
import { EditLocalOrderDialog } from "
|
|
10
|
+
import { OrderKarindelingCard } from "./OrderKarindelingCard.js";
|
|
11
|
+
import { EngineBufferCard } from "./EngineBufferCard.js";
|
|
12
|
+
import { OrderCarrierPicker } from "./OrderCarrierPicker.js";
|
|
13
|
+
import { OrderPickupMomentPicker } from "./OrderPickupMomentPicker.js";
|
|
14
|
+
import { EditLocalOrderDialog } from "./EditLocalOrderDialog.js";
|
|
15
15
|
import { useSalesOrdersQuery } from "../../lib/useSalesOrdersQuery.js";
|
|
16
16
|
import { useBufferEvents } from "../../lib/useBufferEvents.js";
|
|
17
17
|
import { useSalesOrderDetailQuery } from "../../lib/useSalesOrderDetailQuery.js";
|
|
@@ -3,5 +3,5 @@ export declare function SalesOrderDetailView({ order, sellerFallback, hideKarind
|
|
|
3
3
|
order: SalesOrderDTO;
|
|
4
4
|
sellerFallback?: string | null;
|
|
5
5
|
hideKarindeling?: boolean;
|
|
6
|
-
}): import("react
|
|
6
|
+
}): import("react").JSX.Element;
|
|
7
7
|
//# sourceMappingURL=SalesOrderDetailView.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SalesOrderDetailView.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrderDetailView.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"SalesOrderDetailView.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrderDetailView.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AA4JnE,wBAAgB,oBAAoB,CAAC,EACnC,KAAK,EACL,cAAc,EACd,eAAuB,GACxB,EAAE;IACD,KAAK,EAAE,aAAa,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B,+BA6eA"}
|