@flowselections/floriday-verkoop-module 1.0.87 → 1.0.93

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.
Files changed (148) hide show
  1. package/dist-lib/components/verkoop/CreateOrderPage.d.ts.map +1 -1
  2. package/dist-lib/components/verkoop/CreateOrderPage.js +2 -2
  3. package/dist-lib/components/verkoop/DiagnoseConnectionDialog.js +1 -1
  4. package/dist-lib/components/verkoop/EditLocalOrderDialog.js +3 -3
  5. package/dist-lib/components/verkoop/OrderControlStatusCard.js +1 -1
  6. package/dist-lib/components/verkoop/OrderKarindelingCard.js +2 -2
  7. package/dist-lib/components/verkoop/OrderLinePackingCard.js +1 -1
  8. package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts +2 -2
  9. package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts.map +1 -1
  10. package/dist-lib/components/verkoop/OrderPickupMomentPicker.js +10 -23
  11. package/dist-lib/components/verkoop/OrderShipmentsCard.js +1 -1
  12. package/dist-lib/components/verkoop/ProductDimensionsSettings.js +1 -1
  13. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts +1 -1
  14. package/dist-lib/components/verkoop/SalesOrderDetailView.js +12 -12
  15. package/dist-lib/components/verkoop/SalesOrdersFilterPanel.d.ts +1 -1
  16. package/dist-lib/components/verkoop/SalesOrdersFilters.js +1 -1
  17. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts +1 -1
  18. package/dist-lib/components/verkoop/SalesOrdersTable.js +2 -2
  19. package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.js +1 -1
  20. package/dist-lib/components/verkoop/VerkoopOrdersPage.js +15 -15
  21. package/dist-lib/index.d.ts +4 -5
  22. package/dist-lib/index.d.ts.map +1 -1
  23. package/dist-lib/index.js +5 -6
  24. package/dist-lib/integrations/supabase/auth-middleware.d.ts +1 -1
  25. package/dist-lib/integrations/supabase/client.d.ts +1 -1
  26. package/dist-lib/integrations/supabase/client.server.d.ts +1 -1
  27. package/dist-lib/integrations/supabase/types.d.ts +162 -0
  28. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  29. package/dist-lib/lib/belading.server.js +1 -1
  30. package/dist-lib/lib/buffer-events.functions.d.ts +1 -1
  31. package/dist-lib/lib/buffer-events.functions.js +1 -1
  32. package/dist-lib/lib/cart-layers.functions.d.ts +4 -4
  33. package/dist-lib/lib/cart-layers.functions.js +2 -2
  34. package/dist-lib/lib/cart-lock.functions.d.ts +1 -1
  35. package/dist-lib/lib/cart-lock.functions.js +2 -2
  36. package/dist-lib/lib/cart-planning-settings.functions.d.ts +11 -11
  37. package/dist-lib/lib/cart-planning-settings.functions.js +1 -1
  38. package/dist-lib/lib/cart-replan.functions.d.ts +4 -4
  39. package/dist-lib/lib/cart-replan.functions.js +9 -9
  40. package/dist-lib/lib/create-order.functions.d.ts +18 -18
  41. package/dist-lib/lib/create-order.functions.js +15 -15
  42. package/dist-lib/lib/cron/index.d.ts +3 -3
  43. package/dist-lib/lib/cron/index.js +3 -3
  44. package/dist-lib/lib/cron/invoice-due.js +1 -1
  45. package/dist-lib/lib/cron/sync-salesorders.js +2 -2
  46. package/dist-lib/lib/cron/sync-tradeitems.js +1 -1
  47. package/dist-lib/lib/engine-block-alerts.server.js +4 -4
  48. package/dist-lib/lib/expand-group-order-items.d.ts +1 -1
  49. package/dist-lib/lib/floriday-change-diff.check.js +2 -2
  50. package/dist-lib/lib/floriday-gateway.server.d.ts +1 -1
  51. package/dist-lib/lib/floriday-gateway.server.js +2 -2
  52. package/dist-lib/lib/floriday-logistic-labels.functions.d.ts +2 -2
  53. package/dist-lib/lib/floriday-logistic-labels.functions.js +5 -5
  54. package/dist-lib/lib/floriday-mirror.functions.d.ts +1 -1
  55. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  56. package/dist-lib/lib/floriday-mirror.functions.js +19 -12
  57. package/dist-lib/lib/floriday-public.functions.d.ts +7 -7
  58. package/dist-lib/lib/floriday-public.functions.js +2 -2
  59. package/dist-lib/lib/floriday-status.d.ts +1 -1
  60. package/dist-lib/lib/floriday-status.server.d.ts +1 -1
  61. package/dist-lib/lib/floriday-status.server.js +2 -2
  62. package/dist-lib/lib/floriday-sync.js +1 -1
  63. package/dist-lib/lib/floriday-unlinked-products.js +1 -1
  64. package/dist-lib/lib/floriday-writes.functions.d.ts +3 -3
  65. package/dist-lib/lib/floriday-writes.functions.js +3 -3
  66. package/dist-lib/lib/invoice-timing.check.d.ts +2 -0
  67. package/dist-lib/lib/invoice-timing.check.d.ts.map +1 -0
  68. package/dist-lib/lib/invoice-timing.check.js +19 -0
  69. package/dist-lib/lib/invoice-timing.d.ts +2 -0
  70. package/dist-lib/lib/invoice-timing.d.ts.map +1 -1
  71. package/dist-lib/lib/invoice-timing.functions.d.ts +5 -5
  72. package/dist-lib/lib/invoice-timing.functions.js +8 -8
  73. package/dist-lib/lib/invoice-timing.js +22 -4
  74. package/dist-lib/lib/invoice-timing.server.d.ts +8 -3
  75. package/dist-lib/lib/invoice-timing.server.d.ts.map +1 -1
  76. package/dist-lib/lib/invoice-timing.server.js +70 -34
  77. package/dist-lib/lib/load-carriers.functions.d.ts +2 -2
  78. package/dist-lib/lib/load-carriers.functions.js +2 -2
  79. package/dist-lib/lib/load-carriers.server.d.ts +1 -1
  80. package/dist-lib/lib/load-carriers.server.js +1 -1
  81. package/dist-lib/lib/logistics-buffer.server.js +1 -1
  82. package/dist-lib/lib/logistics-engine.functions.d.ts +8 -8
  83. package/dist-lib/lib/logistics-engine.functions.js +6 -6
  84. package/dist-lib/lib/logistics-engine.server.d.ts +1 -1
  85. package/dist-lib/lib/logistics-engine.server.js +4 -4
  86. package/dist-lib/lib/logistics-stock.functions.d.ts +3 -3
  87. package/dist-lib/lib/logistics-stock.functions.js +3 -3
  88. package/dist-lib/lib/order-addresses.functions.d.ts +1 -1
  89. package/dist-lib/lib/order-addresses.functions.js +2 -2
  90. package/dist-lib/lib/order-block-mail.server.js +3 -3
  91. package/dist-lib/lib/order-buffers.functions.d.ts +3 -3
  92. package/dist-lib/lib/order-buffers.functions.js +3 -3
  93. package/dist-lib/lib/order-cancel.server.js +6 -6
  94. package/dist-lib/lib/order-carrier.functions.d.ts +2 -2
  95. package/dist-lib/lib/order-carrier.functions.js +2 -2
  96. package/dist-lib/lib/order-departure.check.d.ts +2 -0
  97. package/dist-lib/lib/order-departure.check.d.ts.map +1 -0
  98. package/dist-lib/lib/order-departure.check.js +25 -0
  99. package/dist-lib/lib/order-departure.d.ts +25 -0
  100. package/dist-lib/lib/order-departure.d.ts.map +1 -0
  101. package/dist-lib/lib/order-departure.js +54 -0
  102. package/dist-lib/lib/order-departure.server.d.ts +4 -0
  103. package/dist-lib/lib/order-departure.server.d.ts.map +1 -0
  104. package/dist-lib/lib/order-departure.server.js +62 -0
  105. package/dist-lib/lib/order-fulfill.functions.d.ts +1 -1
  106. package/dist-lib/lib/order-fulfill.functions.js +3 -3
  107. package/dist-lib/lib/order-item-packing.functions.d.ts +3 -3
  108. package/dist-lib/lib/order-item-packing.functions.js +3 -3
  109. package/dist-lib/lib/order-patch.check.d.ts +2 -0
  110. package/dist-lib/lib/order-patch.check.d.ts.map +1 -0
  111. package/dist-lib/lib/order-patch.check.js +40 -0
  112. package/dist-lib/lib/order-patch.d.ts +18 -0
  113. package/dist-lib/lib/order-patch.d.ts.map +1 -0
  114. package/dist-lib/lib/order-patch.js +105 -0
  115. package/dist-lib/lib/order-pickup.functions.d.ts +10 -15
  116. package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
  117. package/dist-lib/lib/order-pickup.functions.js +51 -78
  118. package/dist-lib/lib/order-shipments.functions.d.ts +4 -4
  119. package/dist-lib/lib/order-shipments.functions.js +6 -6
  120. package/dist-lib/lib/plan-coverage.check.js +1 -1
  121. package/dist-lib/lib/plan-coverage.server.d.ts +1 -1
  122. package/dist-lib/lib/plan-coverage.server.js +1 -1
  123. package/dist-lib/lib/product-dimensions.functions.d.ts +2 -2
  124. package/dist-lib/lib/product-dimensions.functions.js +1 -1
  125. package/dist-lib/lib/salesorders-list.functions.d.ts +5 -5
  126. package/dist-lib/lib/salesorders-list.functions.js +4 -4
  127. package/dist-lib/lib/salesorders-list.server.d.ts +2 -2
  128. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  129. package/dist-lib/lib/salesorders-list.server.js +39 -53
  130. package/dist-lib/lib/salesorders-mapping.d.ts +3 -3
  131. package/dist-lib/lib/salesorders-mapping.js +2 -2
  132. package/dist-lib/lib/salesorders.functions.d.ts +7 -7
  133. package/dist-lib/lib/salesorders.functions.js +20 -20
  134. package/dist-lib/lib/stock-consumption-alerts.functions.d.ts +2 -2
  135. package/dist-lib/lib/stock-consumption-alerts.functions.js +1 -1
  136. package/dist-lib/lib/tradeitems.functions.d.ts +1068 -1068
  137. package/dist-lib/lib/tradeitems.functions.js +3 -3
  138. package/dist-lib/lib/useAllowedLoadCarriers.d.ts +1 -1
  139. package/dist-lib/lib/useAllowedLoadCarriers.js +1 -1
  140. package/dist-lib/lib/useBufferEvents.d.ts +1 -1
  141. package/dist-lib/lib/useBufferEvents.js +2 -2
  142. package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts +2 -2
  143. package/dist-lib/lib/useLocalSalesOrderDetailQuery.js +2 -2
  144. package/dist-lib/lib/useSalesOrderDetailQuery.d.ts +1 -1
  145. package/dist-lib/lib/useSalesOrderDetailQuery.js +2 -2
  146. package/dist-lib/lib/useSalesOrdersQuery.d.ts +2 -2
  147. package/dist-lib/lib/useSalesOrdersQuery.js +3 -3
  148. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"CreateOrderPage.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/CreateOrderPage.tsx"],"names":[],"mappings":"AAqFA,wBAAgB,eAAe,gCAszB9B"}
1
+ {"version":3,"file":"CreateOrderPage.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/CreateOrderPage.tsx"],"names":[],"mappings":"AAqFA,wBAAgB,eAAe,gCAyzB9B"}
@@ -10,7 +10,7 @@ import { Link, useNavigate } from "@tanstack/react-router";
10
10
  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
- import { SearchableSelect } from "./SearchableSelect";
13
+ import { SearchableSelect } from "./SearchableSelect.js";
14
14
  import { computeEarliestDelivery } from "../../lib/carrier-availability.js";
15
15
  import { listCustomersForCreateOrder, ensureCustomerFromTwinfield, listProductsForCreateOrder, listDeliveryLocationsForCustomerCO, listPickupLocationsCO, listCarriersForCreateOrder, getOrderPickDaysCO, listBeladingOptionsForProducts, createManualOrder, getEffectivePrices, } from "../../lib/create-order.functions.js";
16
16
  import { checkOrderStockAllowed } from "../../lib/logistics-stock.functions.js";
@@ -374,7 +374,7 @@ export function CreateOrderPage() {
374
374
  return;
375
375
  }
376
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)."] }))] }), _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) => {
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) => {
378
378
  const product = line.product_id ? products.find((p) => p.id === line.product_id) : null;
379
379
  const defaultBelading = completeBelading(product);
380
380
  const effBelading = completeBelading(line.belading) ?? defaultBelading;
@@ -3,7 +3,7 @@ import { useEffect, useState } from "react";
3
3
  import { Button, Dialog, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogTitle, toast, } from "@flowselections/core";
4
4
  import { useServerFn } from "@tanstack/react-start";
5
5
  import { CheckCircle2, XCircle, Loader2, RefreshCw } from "lucide-react";
6
- import { diagnoseFloridayConnection } from "../../lib/salesorders.functions";
6
+ import { diagnoseFloridayConnection } from "../../lib/salesorders.functions.js";
7
7
  export function DiagnoseConnectionDialog({ open, onOpenChange, }) {
8
8
  const run = useServerFn(diagnoseFloridayConnection);
9
9
  const [loading, setLoading] = useState(false);
@@ -4,9 +4,9 @@ import { Button, Input, toast } from "@flowselections/core";
4
4
  import { Trash2 } from "lucide-react";
5
5
  import { useServerFn } from "@tanstack/react-start";
6
6
  import { useQuery, useQueryClient } from "@tanstack/react-query";
7
- import { getLocalOrderForEdit, updateLocalOrder, listProductsForCreateOrder, } from "../../lib/create-order.functions";
8
- import { checkOrderStockAllowed } from "../../lib/logistics-stock.functions";
9
- import { SearchableSelect } from "./SearchableSelect";
7
+ import { getLocalOrderForEdit, updateLocalOrder, listProductsForCreateOrder, } from "../../lib/create-order.functions.js";
8
+ import { checkOrderStockAllowed } from "../../lib/logistics-stock.functions.js";
9
+ import { SearchableSelect } from "./SearchableSelect.js";
10
10
  /** Positief geheel getal of null — ontbrekende belading blijft onbekend. */
11
11
  const pos = (v) => {
12
12
  const n = Number(v);
@@ -6,7 +6,7 @@ import { useServerFn } from "@tanstack/react-start";
6
6
  import { Button } from "@flowselections/core";
7
7
  import { toast } from "sonner";
8
8
  import { CheckCircle2, ClipboardCheck } from "lucide-react";
9
- import { setSalesOrderControlled } from "../../lib/salesorders.functions";
9
+ import { setSalesOrderControlled } from "../../lib/salesorders.functions.js";
10
10
  function fmt(iso) {
11
11
  if (!iso)
12
12
  return "";
@@ -11,8 +11,8 @@ import { LayoutGrid, RefreshCw } from "lucide-react";
11
11
  import { getOrderPlanCoverage } from "../../lib/cart-replan.functions.js";
12
12
  import { summarize } from "../../lib/plan-coverage.js";
13
13
  import { resolveProductName } from "../../lib/product-name.js";
14
- import { CartLayersDialog } from "./CartLayersDialog";
15
- import { PlanCoverageBadge } from "./PlanCoverageBadge";
14
+ import { CartLayersDialog } from "./CartLayersDialog.js";
15
+ import { PlanCoverageBadge } from "./PlanCoverageBadge.js";
16
16
  const UUID_RE = /^[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}$/i;
17
17
  const PICK_LABEL = {
18
18
  geen_pickrij: "Geen pickrij",
@@ -9,7 +9,7 @@ import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query";
9
9
  import { useServerFn } from "@tanstack/react-start";
10
10
  import { Badge, Button, Input, toast } from "@flowselections/core";
11
11
  import { Lock, LockOpen } from "lucide-react";
12
- import { listOrderItemPacking, setOrderItemPacking, clearOrderItemPackingLock, } from "../../lib/order-item-packing.functions";
12
+ import { listOrderItemPacking, setOrderItemPacking, clearOrderItemPackingLock, } from "../../lib/order-item-packing.functions.js";
13
13
  function fmtWhen(iso) {
14
14
  if (!iso)
15
15
  return "";
@@ -1,6 +1,6 @@
1
1
  /**
2
- * Toont het ophaalmoment van een order. Met `readOnly` (bijv. bij een buffer)
3
- * is het moment alleen zichtbaar en niet aanpasbaar.
2
+ * Toont het ophaal- en aanmeldmoment zoals de planning het heeft berekend.
3
+ * Zonder `readOnly` kun je een ander moment van de vervoerder kiezen.
4
4
  */
5
5
  export declare function OrderPickupMomentPicker({ orderId, readOnly, compact, }: {
6
6
  orderId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"OrderPickupMomentPicker.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderPickupMomentPicker.tsx"],"names":[],"mappings":"AASA;;;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,+BAgFA"}
1
+ {"version":3,"file":"OrderPickupMomentPicker.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderPickupMomentPicker.tsx"],"names":[],"mappings":"AAMA;;;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,+BAuEA"}
@@ -1,12 +1,12 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { useEffect, useState } from "react";
2
+ import { useState } from "react";
3
3
  import { useQuery, useQueryClient } from "@tanstack/react-query";
4
4
  import { useServerFn } from "@tanstack/react-start";
5
5
  import { Clock } from "lucide-react";
6
- import { getOrderPickupMoment, setOrderPickupMoment, } from "../../lib/order-pickup.functions.js";
6
+ import { getOrderPickupMoment, setOrderPickupMoment } from "../../lib/order-pickup.functions.js";
7
7
  /**
8
- * Toont het ophaalmoment van een order. Met `readOnly` (bijv. bij een buffer)
9
- * is het moment alleen zichtbaar en niet aanpasbaar.
8
+ * Toont het ophaal- en aanmeldmoment zoals de planning het heeft berekend.
9
+ * Zonder `readOnly` kun je een ander moment van de vervoerder kiezen.
10
10
  */
11
11
  export function OrderPickupMomentPicker({ orderId, readOnly = false, compact = false, }) {
12
12
  const qc = useQueryClient();
@@ -14,18 +14,12 @@ export function OrderPickupMomentPicker({ orderId, readOnly = false, compact = f
14
14
  const saveMoment = useServerFn(setOrderPickupMoment);
15
15
  const [saving, setSaving] = useState(false);
16
16
  const [error, setError] = useState(null);
17
- const [value, setValue] = useState("");
18
17
  const { data, isLoading } = useQuery({
19
18
  queryKey: ["order-pickup-moment", orderId],
20
19
  queryFn: () => fetchMoment({ data: { orderId } }),
21
20
  staleTime: 30000,
22
21
  });
23
- useEffect(() => {
24
- setValue(data?.selectedKey ?? "");
25
- }, [data?.selectedKey]);
26
- const options = data?.options ?? [];
27
22
  async function onChange(next) {
28
- setValue(next);
29
23
  if (!next)
30
24
  return;
31
25
  setSaving(true);
@@ -35,23 +29,16 @@ export function OrderPickupMomentPicker({ orderId, readOnly = false, compact = f
35
29
  await qc.invalidateQueries({ queryKey: ["order-pickup-moment"] });
36
30
  await qc.invalidateQueries({ queryKey: ["sales-orders"] });
37
31
  }
38
- catch (e) {
39
- setError(e?.message ?? "Opslaan mislukt");
40
- setValue(data?.selectedKey ?? "");
32
+ catch {
33
+ setError("Het ophaalmoment is niet opgeslagen. Probeer het opnieuw.");
41
34
  }
42
35
  finally {
43
36
  setSaving(false);
44
37
  }
45
38
  }
46
- if (isLoading) {
39
+ if (isLoading)
47
40
  return _jsx("span", { className: "text-sm text-muted-foreground", children: "Laden\u2026" });
48
- }
49
- if (options.length === 0) {
50
- return (_jsxs("span", { className: "text-sm text-muted-foreground", children: ["Geen ophaalmoment bekend", data?.hasCarrier ? "" : " (kies eerst een vervoerder)"] }));
51
- }
52
- if (readOnly) {
53
- const current = options.find((o) => o.key === (data?.selectedKey ?? "")) ?? options[0];
54
- return (_jsxs("div", { className: "flex items-center gap-2 text-sm text-foreground", children: [!compact && _jsx(Clock, { className: "h-4 w-4 text-muted-foreground" }), _jsx("span", { children: current.label })] }));
55
- }
56
- return (_jsxs("div", { className: compact ? "" : "inline-flex flex-col gap-1", children: [_jsxs("div", { className: "flex items-center gap-2", children: [!compact && _jsx(Clock, { className: "h-4 w-4 text-muted-foreground" }), _jsx("select", { className: "h-9 min-w-[18rem] rounded-md border border-border bg-background px-2 text-sm text-foreground disabled:opacity-60", value: value, disabled: saving, onChange: (e) => onChange(e.target.value), children: 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 })] }));
41
+ const view = data?.view;
42
+ 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 })] }));
57
44
  }
@@ -5,7 +5,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
5
5
  import { useMemo, useState } from "react";
6
6
  import { Badge, Button, Card, CardContent, CardHeader, CardTitle, Input, Table, TableBody, TableCell, TableHead, TableHeader, TableRow, toast, } from "@flowselections/core";
7
7
  import { CalendarPlus, CheckCircle2, Pencil, Trash2, Truck } from "lucide-react";
8
- import { EditLocalOrderDialog } from "./EditLocalOrderDialog";
8
+ import { EditLocalOrderDialog } from "./EditLocalOrderDialog.js";
9
9
  import { useQuery, useQueryClient } from "@tanstack/react-query";
10
10
  import { useServerFn } from "@tanstack/react-start";
11
11
  import { formatBeladingNotation } from "../../lib/load-carrier-labels.js";
@@ -7,7 +7,7 @@ import { useQuery, useQueryClient } from "@tanstack/react-query";
7
7
  import { useServerFn } from "@tanstack/react-start";
8
8
  import { Badge, Button, Card, CardContent, CardDescription, CardHeader, CardTitle, Input, Label, Switch, toast, } from "@flowselections/core";
9
9
  import { AlertTriangle, Ruler, Search } from "lucide-react";
10
- import { SearchableSelect } from "./SearchableSelect";
10
+ import { SearchableSelect } from "./SearchableSelect.js";
11
11
  import { listProductDimensions, saveProductDimensions, } from "../../lib/product-dimensions.functions.js";
12
12
  export function ProductDimensionsSettingsCard() {
13
13
  const [search, setSearch] = useState("");
@@ -1,4 +1,4 @@
1
- import type { SalesOrderDTO } from "../../lib/salesorders-mapping";
1
+ import type { SalesOrderDTO } from "../../lib/salesorders-mapping.js";
2
2
  export declare function SalesOrderDetailView({ order, sellerFallback, hideKarindeling, }: {
3
3
  order: SalesOrderDTO;
4
4
  sellerFallback?: string | null;
@@ -2,18 +2,18 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
2
2
  import { CheckCircle2, ImageIcon, MapPin, Truck } from "lucide-react";
3
3
  import { useQuery } from "@tanstack/react-query";
4
4
  import { useServerFn } from "@tanstack/react-start";
5
- import { formatBeladingNotation, formatLoadUnits } from "../../lib/load-carrier-labels";
6
- import { orderStageLabel, orderStageBadgeClass } from "../../lib/order-status";
7
- import { getOrderAddresses } from "../../lib/order-addresses.functions";
8
- import { OrderKarindelingCard } from "./OrderKarindelingCard";
9
- import { OrderLinePackingCard } from "./OrderLinePackingCard";
10
- import { OrderAfleverbrievenCard } from "./OrderAfleverbrievenCard";
11
- import { OrderShipmentsCard } from "./OrderShipmentsCard";
12
- import { OrderControlStatusCard } from "./OrderControlStatusCard";
13
- import { OrderCarrierPicker } from "./OrderCarrierPicker";
14
- import { OrderPickupMomentPicker } from "./OrderPickupMomentPicker";
15
- import { PlanCoverageBadge } from "./PlanCoverageBadge";
16
- import { FloridayStageLine } from "./FloridayStageLine";
5
+ import { formatBeladingNotation, formatLoadUnits } from "../../lib/load-carrier-labels.js";
6
+ import { orderStageLabel, orderStageBadgeClass } from "../../lib/order-status.js";
7
+ import { getOrderAddresses } from "../../lib/order-addresses.functions.js";
8
+ import { OrderKarindelingCard } from "./OrderKarindelingCard.js";
9
+ import { OrderLinePackingCard } from "./OrderLinePackingCard.js";
10
+ import { OrderAfleverbrievenCard } from "./OrderAfleverbrievenCard.js";
11
+ import { OrderShipmentsCard } from "./OrderShipmentsCard.js";
12
+ import { OrderControlStatusCard } from "./OrderControlStatusCard.js";
13
+ import { OrderCarrierPicker } from "./OrderCarrierPicker.js";
14
+ import { OrderPickupMomentPicker } from "./OrderPickupMomentPicker.js";
15
+ import { PlanCoverageBadge } from "./PlanCoverageBadge.js";
16
+ import { FloridayStageLine } from "./FloridayStageLine.js";
17
17
  function AddressCard({ icon, lines, extra, }) {
18
18
  return (_jsxs("div", { className: "inline-flex max-w-xs items-start gap-3 rounded-md border border-border bg-card p-3", children: [_jsx("div", { className: "flex h-9 w-9 items-center justify-center rounded-md bg-primary/10 text-primary", children: icon }), _jsxs("div", { className: "text-sm", children: [lines.length > 0 ? lines.map((l, i) => _jsx("div", { children: l }, i)) : _jsx("div", { children: "\u2014" }), extra && _jsx("div", { className: "mt-1 text-xs text-muted-foreground", children: extra })] })] }));
19
19
  }
@@ -1,4 +1,4 @@
1
- import type { Filters } from "./SalesOrdersFilters";
1
+ import type { Filters } from "./SalesOrdersFilters.js";
2
2
  export declare function countActiveFilters(f: Filters): number;
3
3
  export declare function SalesOrdersFilterPanel({ open, onOpenChange, value, onChange, }: {
4
4
  open: boolean;
@@ -2,7 +2,7 @@ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-run
2
2
  import { useState } from "react";
3
3
  import { DropdownMenu, DropdownMenuContent, DropdownMenuRadioGroup, DropdownMenuRadioItem, DropdownMenuSeparator, DropdownMenuTrigger, Input, Popover, PopoverContent, PopoverTrigger, Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "@flowselections/core";
4
4
  import { ChevronDown, ChevronLeft, ChevronRight, MoreVertical, Search, } from "lucide-react";
5
- import { WeekCalendar } from "./WeekCalendar";
5
+ import { WeekCalendar } from "./WeekCalendar.js";
6
6
  function getCurrentWeek() {
7
7
  const now = new Date();
8
8
  const target = new Date(Date.UTC(now.getFullYear(), now.getMonth(), now.getDate()));
@@ -1,5 +1,5 @@
1
1
  import React from "react";
2
- import type { SalesOrderDTO } from "../../lib/salesorders-mapping";
2
+ import type { SalesOrderDTO } from "../../lib/salesorders-mapping.js";
3
3
  /** Stabiele rij-id: buffers zijn serverside al samengevouwen tot één rij. */
4
4
  export declare function salesOrderRowId(row: SalesOrderDTO): string;
5
5
  export declare function SalesOrdersTable({ orders, loading, onSelectOrder, onDeleteOrder, onEditOrder, onFulfillOrder, fulfillingId, selectedIds, onSelectionChange, }: {
@@ -5,8 +5,8 @@ import { formatLoadUnits } from "../../lib/load-carrier-labels.js";
5
5
  import { orderStageBadgeClass, orderStageLabel } from "../../lib/order-status.js";
6
6
  import { DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger, } from "@flowselections/core";
7
7
  import { MoreVertical, AlertTriangle, ArrowDown } from "lucide-react";
8
- import { PlanCoverageBadge } from "./PlanCoverageBadge";
9
- import { FloridayStageLine, MissingPriceBadge } from "./FloridayStageLine";
8
+ import { PlanCoverageBadge } from "./PlanCoverageBadge.js";
9
+ import { FloridayStageLine, MissingPriceBadge } from "./FloridayStageLine.js";
10
10
  function formatDateShort(iso) {
11
11
  if (!iso)
12
12
  return { date: "—", time: "" };
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
2
  import { useQuery, useQueryClient } from "@tanstack/react-query";
3
3
  import { useServerFn } from "@tanstack/react-start";
4
4
  import { AlertTriangle, X } from "lucide-react";
5
- import { listOpenStockConsumptionAlerts, resolveStockConsumptionAlert, } from "../../lib/stock-consumption-alerts.functions";
5
+ import { listOpenStockConsumptionAlerts, resolveStockConsumptionAlert, } from "../../lib/stock-consumption-alerts.functions.js";
6
6
  /**
7
7
  * Toont voorraadafboekingen die zijn overgeslagen (product niet gekoppeld) of
8
8
  * geblokkeerd (statusovergang zonder bewijs van vertrek).
@@ -5,21 +5,21 @@ import { Download, Plus, AlertTriangle, RefreshCw, ChevronLeft, ChevronRight, Fi
5
5
  import { useServerFn } from "@tanstack/react-start";
6
6
  import { useNavigate } from "@tanstack/react-router";
7
7
  import { useQuery, useQueryClient } from "@tanstack/react-query";
8
- import { supabase } from "../../integrations/supabase/client";
9
- import { getFloridaySyncHealth, runSalesOrdersSync } from "../../lib/salesorders.functions";
10
- import { cancelLocalOrder, deleteLocalOrder } from "../../lib/create-order.functions";
11
- import { markOrdersShipped } from "../../lib/order-fulfill.functions";
12
- import { ordersToCsv, parseOrderRowId, } from "../../lib/salesorders-mapping";
13
- import { listSalesOrders } from "../../lib/salesorders-list.functions";
14
- import { derivePeriodWindow, useSalesOrdersQuery } from "../../lib/useSalesOrdersQuery";
15
- import { useBufferEvents } from "../../lib/useBufferEvents";
16
- import { AnalyticsCards } from "./AnalyticsCards";
17
- import { SalesOrdersFilters } from "./SalesOrdersFilters";
18
- import { SalesOrdersFilterPanel, countActiveFilters, } from "./SalesOrdersFilterPanel";
19
- import { SalesOrdersTable, salesOrderRowId } from "./SalesOrdersTable";
20
- import { EditLocalOrderDialog } from "./EditLocalOrderDialog";
21
- import { StockConsumptionAlertsBanner } from "./StockConsumptionAlertsBanner";
22
- import { ORDER_STAGES } from "../../lib/order-status";
8
+ import { supabase } from "../../integrations/supabase/client.js";
9
+ import { getFloridaySyncHealth, runSalesOrdersSync } from "../../lib/salesorders.functions.js";
10
+ import { cancelLocalOrder, deleteLocalOrder } from "../../lib/create-order.functions.js";
11
+ import { markOrdersShipped } from "../../lib/order-fulfill.functions.js";
12
+ import { ordersToCsv, parseOrderRowId, } from "../../lib/salesorders-mapping.js";
13
+ import { listSalesOrders } from "../../lib/salesorders-list.functions.js";
14
+ import { derivePeriodWindow, useSalesOrdersQuery } from "../../lib/useSalesOrdersQuery.js";
15
+ import { useBufferEvents } from "../../lib/useBufferEvents.js";
16
+ import { AnalyticsCards } from "./AnalyticsCards.js";
17
+ import { SalesOrdersFilters } from "./SalesOrdersFilters.js";
18
+ import { SalesOrdersFilterPanel, countActiveFilters, } from "./SalesOrdersFilterPanel.js";
19
+ import { SalesOrdersTable, salesOrderRowId } from "./SalesOrdersTable.js";
20
+ import { EditLocalOrderDialog } from "./EditLocalOrderDialog.js";
21
+ import { StockConsumptionAlertsBanner } from "./StockConsumptionAlertsBanner.js";
22
+ import { ORDER_STAGES } from "../../lib/order-status.js";
23
23
  const BACKLOG_TAB = {
24
24
  id: "backlog",
25
25
  label: "Te picken (achterstand)",
@@ -1,8 +1,7 @@
1
1
  import type { FlowModule } from "@flowselections/core";
2
- export * from "./_core-safelist";
3
- export { VerkoopOrdersPage } from "./components/verkoop/VerkoopOrdersPage";
4
- export { SalesOrderDetailPage } from "./components/verkoop/SalesOrderDetailPage";
5
- export { CreateOrderPage } from "./components/verkoop/CreateOrderPage";
6
- export { ProductDimensionsSettingsCard } from "./components/verkoop/ProductDimensionsSettings";
2
+ export * from "./_core-safelist.js";
3
+ export { VerkoopOrdersPage } from "./components/verkoop/VerkoopOrdersPage.js";
4
+ export { SalesOrderDetailPage } from "./components/verkoop/SalesOrderDetailPage.js";
5
+ export { CreateOrderPage } from "./components/verkoop/CreateOrderPage.js";
7
6
  export declare const floridayVerkoopModule: FlowModule;
8
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AACvE,OAAO,EAAE,6BAA6B,EAAE,MAAM,gDAAgD,CAAC;AAI/F,eAAO,MAAM,qBAAqB,EAAE,UAoBnC,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGvD,cAAc,kBAAkB,CAAC;AACjC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wCAAwC,CAAC;AAC3E,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,sCAAsC,CAAC;AAIvE,eAAO,MAAM,qBAAqB,EAAE,UAoBnC,CAAC"}
package/dist-lib/index.js CHANGED
@@ -1,10 +1,9 @@
1
1
  import { ShoppingCart, ListOrdered } from "lucide-react";
2
- import { ProductDimensionsSettingsCard } from "./components/verkoop/ProductDimensionsSettings";
3
- export * from "./_core-safelist";
4
- export { VerkoopOrdersPage } from "./components/verkoop/VerkoopOrdersPage";
5
- export { SalesOrderDetailPage } from "./components/verkoop/SalesOrderDetailPage";
6
- export { CreateOrderPage } from "./components/verkoop/CreateOrderPage";
7
- export { ProductDimensionsSettingsCard } from "./components/verkoop/ProductDimensionsSettings";
2
+ import { ProductDimensionsSettingsCard } from "./components/verkoop/ProductDimensionsSettings.js";
3
+ export * from "./_core-safelist.js";
4
+ export { VerkoopOrdersPage } from "./components/verkoop/VerkoopOrdersPage.js";
5
+ export { SalesOrderDetailPage } from "./components/verkoop/SalesOrderDetailPage.js";
6
+ export { CreateOrderPage } from "./components/verkoop/CreateOrderPage.js";
8
7
  export const floridayVerkoopModule = {
9
8
  id: "verkoop",
10
9
  name: "Orders",
@@ -1,5 +1,5 @@
1
1
  import type { SupabaseClient } from '@supabase/supabase-js';
2
- import type { Database } from './types';
2
+ import type { Database } from './types.js';
3
3
  export interface AuthedSupabaseClient extends SupabaseClient<Database> {
4
4
  }
5
5
  export declare const requireSupabaseAuth: import("@tanstack/start-client-core").FunctionMiddlewareAfterServer<{}, unknown, undefined, {
@@ -1,4 +1,4 @@
1
1
  import type { SupabaseClient } from '@supabase/supabase-js';
2
- import type { Database } from './types';
2
+ import type { Database } from './types.js';
3
3
  export declare const supabase: SupabaseClient<Database>;
4
4
  //# sourceMappingURL=client.d.ts.map
@@ -1,4 +1,4 @@
1
1
  import type { SupabaseClient } from '@supabase/supabase-js';
2
- import type { Database } from './types';
2
+ import type { Database } from './types.js';
3
3
  export declare const supabaseAdmin: SupabaseClient<Database>;
4
4
  //# sourceMappingURL=client.server.d.ts.map