@flowselections/floriday-verkoop-module 1.0.94 → 1.0.100

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 (185) hide show
  1. package/dist-lib/components/verkoop/AnalyticsCards.d.ts +1 -1
  2. package/dist-lib/components/verkoop/AnalyticsCards.d.ts.map +1 -1
  3. package/dist-lib/components/verkoop/CartAssignmentWizard.d.ts +1 -1
  4. package/dist-lib/components/verkoop/CartAssignmentWizard.d.ts.map +1 -1
  5. package/dist-lib/components/verkoop/CartLayersDialog.d.ts +1 -1
  6. package/dist-lib/components/verkoop/CartLayersDialog.d.ts.map +1 -1
  7. package/dist-lib/components/verkoop/ConfirmDialog.d.ts +11 -0
  8. package/dist-lib/components/verkoop/ConfirmDialog.d.ts.map +1 -0
  9. package/dist-lib/components/verkoop/ConfirmDialog.js +10 -0
  10. package/dist-lib/components/verkoop/CreateOrderPage.d.ts +1 -1
  11. package/dist-lib/components/verkoop/CreateOrderPage.d.ts.map +1 -1
  12. package/dist-lib/components/verkoop/CreateOrderPage.js +111 -48
  13. package/dist-lib/components/verkoop/DiagnoseConnectionDialog.d.ts +1 -1
  14. package/dist-lib/components/verkoop/DiagnoseConnectionDialog.d.ts.map +1 -1
  15. package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts +1 -1
  16. package/dist-lib/components/verkoop/EditLocalOrderDialog.d.ts.map +1 -1
  17. package/dist-lib/components/verkoop/EngineBufferCard.d.ts +1 -1
  18. package/dist-lib/components/verkoop/EngineBufferCard.d.ts.map +1 -1
  19. package/dist-lib/components/verkoop/FloridayStageLine.d.ts +2 -2
  20. package/dist-lib/components/verkoop/FloridayStageLine.d.ts.map +1 -1
  21. package/dist-lib/components/verkoop/InvoiceTimingSettings.d.ts +1 -1
  22. package/dist-lib/components/verkoop/InvoiceTimingSettings.d.ts.map +1 -1
  23. package/dist-lib/components/verkoop/OrderAfleverbrievenCard.d.ts +1 -1
  24. package/dist-lib/components/verkoop/OrderAfleverbrievenCard.d.ts.map +1 -1
  25. package/dist-lib/components/verkoop/OrderCarrierPicker.d.ts +1 -1
  26. package/dist-lib/components/verkoop/OrderCarrierPicker.d.ts.map +1 -1
  27. package/dist-lib/components/verkoop/OrderControlStatusCard.d.ts +1 -1
  28. package/dist-lib/components/verkoop/OrderControlStatusCard.d.ts.map +1 -1
  29. package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts +1 -1
  30. package/dist-lib/components/verkoop/OrderKarindelingCard.d.ts.map +1 -1
  31. package/dist-lib/components/verkoop/OrderKarindelingCard.js +28 -2
  32. package/dist-lib/components/verkoop/OrderLinePackingCard.d.ts +1 -1
  33. package/dist-lib/components/verkoop/OrderLinePackingCard.d.ts.map +1 -1
  34. package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts +1 -1
  35. package/dist-lib/components/verkoop/OrderPickupMomentPicker.d.ts.map +1 -1
  36. package/dist-lib/components/verkoop/OrderPickupMomentPicker.js +2 -1
  37. package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts +1 -1
  38. package/dist-lib/components/verkoop/OrderShipmentsCard.d.ts.map +1 -1
  39. package/dist-lib/components/verkoop/OrderShipmentsCard.js +16 -13
  40. package/dist-lib/components/verkoop/PlanCoverageBadge.d.ts +1 -1
  41. package/dist-lib/components/verkoop/PlanCoverageBadge.d.ts.map +1 -1
  42. package/dist-lib/components/verkoop/PlanCoverageBadge.js +7 -5
  43. package/dist-lib/components/verkoop/ProductDimensionsSettings.d.ts +1 -1
  44. package/dist-lib/components/verkoop/ProductDimensionsSettings.d.ts.map +1 -1
  45. package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts +1 -1
  46. package/dist-lib/components/verkoop/SalesOrderDetailPage.d.ts.map +1 -1
  47. package/dist-lib/components/verkoop/SalesOrderDetailPage.js +6 -6
  48. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts +1 -1
  49. package/dist-lib/components/verkoop/SalesOrderDetailView.d.ts.map +1 -1
  50. package/dist-lib/components/verkoop/SalesOrderDetailView.js +2 -1
  51. package/dist-lib/components/verkoop/SalesOrdersFilterPanel.d.ts +1 -1
  52. package/dist-lib/components/verkoop/SalesOrdersFilterPanel.d.ts.map +1 -1
  53. package/dist-lib/components/verkoop/SalesOrdersFilters.d.ts +1 -1
  54. package/dist-lib/components/verkoop/SalesOrdersFilters.d.ts.map +1 -1
  55. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts +2 -1
  56. package/dist-lib/components/verkoop/SalesOrdersTable.d.ts.map +1 -1
  57. package/dist-lib/components/verkoop/SalesOrdersTable.js +1 -1
  58. package/dist-lib/components/verkoop/SearchableSelect.d.ts +1 -1
  59. package/dist-lib/components/verkoop/SearchableSelect.d.ts.map +1 -1
  60. package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.d.ts +1 -1
  61. package/dist-lib/components/verkoop/StockConsumptionAlertsBanner.d.ts.map +1 -1
  62. package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts +1 -1
  63. package/dist-lib/components/verkoop/VerkoopOrdersPage.d.ts.map +1 -1
  64. package/dist-lib/components/verkoop/WeekCalendar.d.ts +1 -1
  65. package/dist-lib/components/verkoop/WeekCalendar.d.ts.map +1 -1
  66. package/dist-lib/integrations/supabase/client.js +1 -1
  67. package/dist-lib/integrations/supabase/client.server.js +1 -1
  68. package/dist-lib/integrations/supabase/types.d.ts +352 -0
  69. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  70. package/dist-lib/lib/carrier-availability.d.ts +0 -28
  71. package/dist-lib/lib/carrier-availability.d.ts.map +1 -1
  72. package/dist-lib/lib/carrier-availability.js +3 -141
  73. package/dist-lib/lib/cart-replan.functions.d.ts +5 -0
  74. package/dist-lib/lib/cart-replan.functions.d.ts.map +1 -1
  75. package/dist-lib/lib/cart-replan.functions.js +25 -1
  76. package/dist-lib/lib/create-order.functions.d.ts +8 -0
  77. package/dist-lib/lib/create-order.functions.d.ts.map +1 -1
  78. package/dist-lib/lib/create-order.functions.js +110 -54
  79. package/dist-lib/lib/departure-preview.check.d.ts +2 -0
  80. package/dist-lib/lib/departure-preview.check.d.ts.map +1 -0
  81. package/dist-lib/lib/departure-preview.check.js +60 -0
  82. package/dist-lib/lib/departure-preview.d.ts +71 -0
  83. package/dist-lib/lib/departure-preview.d.ts.map +1 -0
  84. package/dist-lib/lib/departure-preview.functions.d.ts +14 -0
  85. package/dist-lib/lib/departure-preview.functions.d.ts.map +1 -0
  86. package/dist-lib/lib/departure-preview.functions.js +18 -0
  87. package/dist-lib/lib/departure-preview.js +133 -0
  88. package/dist-lib/lib/departure-preview.server.d.ts +11 -0
  89. package/dist-lib/lib/departure-preview.server.d.ts.map +1 -0
  90. package/dist-lib/lib/departure-preview.server.js +32 -0
  91. package/dist-lib/lib/floriday-external-fulfillment.check.d.ts +2 -0
  92. package/dist-lib/lib/floriday-external-fulfillment.check.d.ts.map +1 -0
  93. package/dist-lib/lib/floriday-external-fulfillment.check.js +21 -0
  94. package/dist-lib/lib/floriday-external-fulfillment.d.ts +19 -0
  95. package/dist-lib/lib/floriday-external-fulfillment.d.ts.map +1 -0
  96. package/dist-lib/lib/floriday-external-fulfillment.js +24 -0
  97. package/dist-lib/lib/floriday-external-fulfillment.server.d.ts +5 -0
  98. package/dist-lib/lib/floriday-external-fulfillment.server.d.ts.map +1 -0
  99. package/dist-lib/lib/floriday-external-fulfillment.server.js +110 -0
  100. package/dist-lib/lib/floriday-fulfillment-status.server.d.ts +2 -0
  101. package/dist-lib/lib/floriday-fulfillment-status.server.d.ts.map +1 -1
  102. package/dist-lib/lib/floriday-fulfillment-status.server.js +3 -0
  103. package/dist-lib/lib/floriday-line-key.check.d.ts +2 -0
  104. package/dist-lib/lib/floriday-line-key.check.d.ts.map +1 -0
  105. package/dist-lib/lib/floriday-line-key.check.js +31 -0
  106. package/dist-lib/lib/floriday-line-key.d.ts +12 -0
  107. package/dist-lib/lib/floriday-line-key.d.ts.map +1 -0
  108. package/dist-lib/lib/floriday-line-key.js +20 -0
  109. package/dist-lib/lib/floriday-mirror.functions.d.ts.map +1 -1
  110. package/dist-lib/lib/floriday-mirror.functions.js +38 -2
  111. package/dist-lib/lib/invoice-timing.server.d.ts +3 -1
  112. package/dist-lib/lib/invoice-timing.server.d.ts.map +1 -1
  113. package/dist-lib/lib/invoice-timing.server.js +3 -2
  114. package/dist-lib/lib/logistics-engine.functions.d.ts +1 -1
  115. package/dist-lib/lib/module-version.d.ts +2 -0
  116. package/dist-lib/lib/module-version.d.ts.map +1 -0
  117. package/dist-lib/lib/module-version.js +3 -0
  118. package/dist-lib/lib/order-cart-count.server.d.ts +8 -0
  119. package/dist-lib/lib/order-cart-count.server.d.ts.map +1 -0
  120. package/dist-lib/lib/order-cart-count.server.js +69 -0
  121. package/dist-lib/lib/order-departure.server.d.ts +1 -0
  122. package/dist-lib/lib/order-departure.server.d.ts.map +1 -1
  123. package/dist-lib/lib/order-departure.server.js +16 -4
  124. package/dist-lib/lib/order-pickup.functions.d.ts +4 -0
  125. package/dist-lib/lib/order-pickup.functions.d.ts.map +1 -1
  126. package/dist-lib/lib/order-pickup.functions.js +7 -0
  127. package/dist-lib/lib/plan-coverage.d.ts +13 -1
  128. package/dist-lib/lib/plan-coverage.d.ts.map +1 -1
  129. package/dist-lib/lib/plan-coverage.js +20 -1
  130. package/dist-lib/lib/salesorders-list.server.d.ts.map +1 -1
  131. package/dist-lib/lib/salesorders-list.server.js +8 -7
  132. package/dist-lib/lib/salesorders-mapping.d.ts +7 -0
  133. package/dist-lib/lib/salesorders-mapping.d.ts.map +1 -1
  134. package/dist-lib/lib/salesorders.functions.d.ts.map +1 -1
  135. package/dist-lib/lib/salesorders.functions.js +10 -0
  136. package/dist-lib/lib/tradeitems.functions.d.ts +1117 -12
  137. package/dist-lib/lib/tradeitems.functions.d.ts.map +1 -1
  138. package/dist-lib/lib/useBufferEvents.d.ts +2 -2
  139. package/dist-lib/lib/useBufferEvents.d.ts.map +1 -1
  140. package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts +2 -2
  141. package/dist-lib/lib/useLocalSalesOrderDetailQuery.d.ts.map +1 -1
  142. package/dist-lib/lib/useSalesOrderDetailQuery.d.ts +1 -1
  143. package/dist-lib/lib/useSalesOrderDetailQuery.d.ts.map +1 -1
  144. package/dist-lib/lib/useSalesOrdersQuery.d.ts +1 -1
  145. package/dist-lib/lib/useSalesOrdersQuery.d.ts.map +1 -1
  146. package/package.json +1 -1
  147. package/dist-lib/components/floriday/FlorydaySyncHealthBanner.d.ts +0 -9
  148. package/dist-lib/components/floriday/FlorydaySyncHealthBanner.d.ts.map +0 -1
  149. package/dist-lib/components/floriday/FlorydaySyncHealthBanner.js +0 -26
  150. package/dist-lib/components/karindeling/AfmetingenTab.d.ts +0 -6
  151. package/dist-lib/components/karindeling/AfmetingenTab.d.ts.map +0 -1
  152. package/dist-lib/components/karindeling/AfmetingenTab.js +0 -128
  153. package/dist-lib/components/karindeling/KarindelingPage.d.ts +0 -2
  154. package/dist-lib/components/karindeling/KarindelingPage.d.ts.map +0 -1
  155. package/dist-lib/components/karindeling/KarindelingPage.js +0 -102
  156. package/dist-lib/components/ui/dropdown-menu.d.ts +0 -9
  157. package/dist-lib/components/ui/dropdown-menu.d.ts.map +0 -1
  158. package/dist-lib/components/ui/dropdown-menu.js +0 -14
  159. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.d.ts +0 -4
  160. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.d.ts.map +0 -1
  161. package/dist-lib/components/verkoop/AutoFulfillmentStatusCard.js +0 -95
  162. package/dist-lib/components/verkoop/CreateOrderDialog.d.ts +0 -5
  163. package/dist-lib/components/verkoop/CreateOrderDialog.d.ts.map +0 -1
  164. package/dist-lib/components/verkoop/CreateOrderDialog.js +0 -33
  165. package/dist-lib/lib/cron/mirror-floriday-orders.d.ts +0 -4
  166. package/dist-lib/lib/cron/mirror-floriday-orders.d.ts.map +0 -1
  167. package/dist-lib/lib/cron/mirror-floriday-orders.js +0 -23
  168. package/dist-lib/lib/cron/push-order-statuses.d.ts +0 -4
  169. package/dist-lib/lib/cron/push-order-statuses.d.ts.map +0 -1
  170. package/dist-lib/lib/cron/push-order-statuses.js +0 -23
  171. package/dist-lib/lib/floriday/floriday.server.d.ts +0 -14
  172. package/dist-lib/lib/floriday/floriday.server.d.ts.map +0 -1
  173. package/dist-lib/lib/floriday/floriday.server.js +0 -92
  174. package/dist-lib/lib/floriday/sales-orders.functions.d.ts +0 -4736
  175. package/dist-lib/lib/floriday/sales-orders.functions.d.ts.map +0 -1
  176. package/dist-lib/lib/floriday/sales-orders.functions.js +0 -193
  177. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts +0 -77581
  178. package/dist-lib/lib/floriday-auto-fulfillment.functions.d.ts.map +0 -1
  179. package/dist-lib/lib/floriday-auto-fulfillment.functions.js +0 -65
  180. package/dist-lib/lib/floriday-auto-fulfillment.server.d.ts +0 -21
  181. package/dist-lib/lib/floriday-auto-fulfillment.server.d.ts.map +0 -1
  182. package/dist-lib/lib/floriday-auto-fulfillment.server.js +0 -352
  183. package/dist-lib/lib/floriday-status-sync.server.d.ts +0 -14
  184. package/dist-lib/lib/floriday-status-sync.server.d.ts.map +0 -1
  185. package/dist-lib/lib/floriday-status-sync.server.js +0 -130
@@ -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,kDA4CpE"}
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/jsx-runtime").JSX.Element;
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":"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,2CAuEA"}
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/jsx-runtime").JSX.Element | null;
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,kDASrE"}
1
+ {"version":3,"file":"OrderShipmentsCard.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/OrderShipmentsCard.tsx"],"names":[],"mappings":"AAyBA,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"}
@@ -4,6 +4,7 @@ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-run
4
4
  // en knoppen om nieuwe bezorgmomenten aan te maken en te markeren als geleverd.
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
+ import { ConfirmDialog } from "./ConfirmDialog.js";
7
8
  import { CalendarPlus, CheckCircle2, Pencil, Trash2, Truck } from "lucide-react";
8
9
  import { EditLocalOrderDialog } from "./EditLocalOrderDialog.js";
9
10
  import { useQuery, useQueryClient } from "@tanstack/react-query";
@@ -55,9 +56,22 @@ function OrderShipmentsInner({ orderId }) {
55
56
  queryClient.invalidateQueries({ queryKey: ["order-shipments", orderId] });
56
57
  queryClient.invalidateQueries({ queryKey: ["floriday", "salesorders-cache"] });
57
58
  };
59
+ const [pendingDelete, setPendingDelete] = useState(null);
60
+ const doDelete = async (shipmentId) => {
61
+ try {
62
+ await cancel({ data: { shipmentId } });
63
+ toast.success("Bezorgmoment verwijderd");
64
+ refresh();
65
+ }
66
+ catch (e) {
67
+ toast.error(e?.message ?? "Verwijderen mislukt");
68
+ }
69
+ };
58
70
  const hasOpen = totals.some((t) => t.remaining > 0);
59
71
  const allShipped = totals.length > 0 && summed.outstanding === 0;
60
- return (_jsxs(_Fragment, { children: [_jsxs(Card, { children: [_jsxs(CardHeader, { className: "flex flex-row items-center justify-between", children: [_jsx(CardTitle, { className: "text-base", children: "Bezorgmomenten & deelleveringen" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Badge, { variant: allShipped ? "default" : "secondary", children: [summed.shipped, " / ", summed.ordered, " geleverd"] }), _jsxs(Button, { size: "sm", variant: "outline", onClick: () => setOpenEdit(true), children: [_jsx(Pencil, { className: "mr-2 h-4 w-4" }), "Order wijzigen"] }), _jsxs(Button, { size: "sm", onClick: () => setOpenCreate(true), disabled: !hasOpen, title: hasOpen ? "" : "Er zijn geen openstaande aantallen meer.", children: [_jsx(CalendarPlus, { className: "mr-2 h-4 w-4" }), "Nieuw bezorgmoment"] })] })] }), _jsx(CardContent, { className: "space-y-6", children: isLoading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Laden\u2026" })) : error ? (_jsxs("div", { className: "flex items-center justify-between gap-3 rounded-md border border-border bg-muted/30 p-3", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "De bezorgmomenten konden niet worden geladen. Controleer je sessie en probeer opnieuw." }), _jsx(Button, { size: "sm", variant: "outline", onClick: () => void refetch(), children: "Opnieuw proberen" })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("div", { className: "mb-2 text-sm font-medium", children: "Voortgang per artikel" }), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Artikel" }), _jsx(TableHead, { children: "Belading" }), _jsx(TableHead, { className: "text-right", children: "Besteld" }), _jsx(TableHead, { className: "text-right", children: "Gepland" }), _jsx(TableHead, { className: "text-right", children: "Geleverd" }), _jsx(TableHead, { className: "text-right", children: "Nog te leveren" })] }) }), _jsx(TableBody, { children: totals.map((t) => {
72
+ return (_jsxs(_Fragment, { children: [_jsx(ConfirmDialog, { open: !!pendingDelete, onOpenChange: (o) => { if (!o)
73
+ setPendingDelete(null); }, title: "Bezorgmoment verwijderen?", description: "Dit bezorgmoment wordt verwijderd. De regels komen weer bij 'openstaand'.", confirmLabel: "Verwijderen", destructive: true, onConfirm: () => { const id = pendingDelete; setPendingDelete(null); if (id)
74
+ void doDelete(id); } }), _jsxs(Card, { children: [_jsxs(CardHeader, { className: "flex flex-row items-center justify-between", children: [_jsx(CardTitle, { className: "text-base", children: "Bezorgmomenten & deelleveringen" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsxs(Badge, { variant: allShipped ? "default" : "secondary", children: [summed.shipped, " / ", summed.ordered, " geleverd"] }), _jsxs(Button, { size: "sm", variant: "outline", onClick: () => setOpenEdit(true), children: [_jsx(Pencil, { className: "mr-2 h-4 w-4" }), "Order wijzigen"] }), _jsxs(Button, { size: "sm", onClick: () => setOpenCreate(true), disabled: !hasOpen, title: hasOpen ? "" : "Er zijn geen openstaande aantallen meer.", children: [_jsx(CalendarPlus, { className: "mr-2 h-4 w-4" }), "Nieuw bezorgmoment"] })] })] }), _jsx(CardContent, { className: "space-y-6", children: isLoading ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Laden\u2026" })) : error ? (_jsxs("div", { className: "flex items-center justify-between gap-3 rounded-md border border-border bg-muted/30 p-3", children: [_jsx("p", { className: "text-sm text-muted-foreground", children: "De bezorgmomenten konden niet worden geladen. Controleer je sessie en probeer opnieuw." }), _jsx(Button, { size: "sm", variant: "outline", onClick: () => void refetch(), children: "Opnieuw proberen" })] })) : (_jsxs(_Fragment, { children: [_jsxs("div", { children: [_jsx("div", { className: "mb-2 text-sm font-medium", children: "Voortgang per artikel" }), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Artikel" }), _jsx(TableHead, { children: "Belading" }), _jsx(TableHead, { className: "text-right", children: "Besteld" }), _jsx(TableHead, { className: "text-right", children: "Gepland" }), _jsx(TableHead, { className: "text-right", children: "Geleverd" }), _jsx(TableHead, { className: "text-right", children: "Nog te leveren" })] }) }), _jsx(TableBody, { children: totals.map((t) => {
61
75
  const belading = t.layers_per_cart !== null &&
62
76
  t.crates_per_layer !== null &&
63
77
  t.plants_per_crate !== null
@@ -77,18 +91,7 @@ function OrderShipmentsInner({ orderId }) {
77
91
  catch (e) {
78
92
  toast.error(e?.message ?? "Markeren mislukt");
79
93
  }
80
- }, children: [_jsx(Truck, { className: "mr-2 h-4 w-4" }), "Markeer geleverd"] }), _jsx(Button, { size: "sm", variant: "outline", onClick: async () => {
81
- if (!confirm("Bezorgmoment verwijderen?"))
82
- return;
83
- try {
84
- await cancel({ data: { shipmentId: s.id } });
85
- toast.success("Bezorgmoment verwijderd");
86
- refresh();
87
- }
88
- catch (e) {
89
- toast.error(e?.message ?? "Verwijderen mislukt");
90
- }
91
- }, children: _jsx(Trash2, { className: "h-4 w-4" }) })] })) })] }), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Artikel" }), _jsx(TableHead, { className: "text-right", children: "Aantal" })] }) }), _jsx(TableBody, { children: s.order_shipment_items.map((i) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: i.product_name }), _jsx(TableCell, { className: "text-right", children: i.quantity })] }, i.id))) })] })] }, s.id))) }))] })] })) })] }), openCreate && (_jsx(CreateShipmentDialog, { orderId: orderId, totals: totals.filter((t) => t.remaining > 0), onClose: () => setOpenCreate(false), onCreated: () => {
94
+ }, children: [_jsx(Truck, { className: "mr-2 h-4 w-4" }), "Markeer geleverd"] }), _jsx(Button, { size: "sm", variant: "outline", onClick: () => setPendingDelete(s.id), children: _jsx(Trash2, { className: "h-4 w-4" }) })] })) })] }), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Artikel" }), _jsx(TableHead, { className: "text-right", children: "Aantal" })] }) }), _jsx(TableBody, { children: s.order_shipment_items.map((i) => (_jsxs(TableRow, { children: [_jsx(TableCell, { children: i.product_name }), _jsx(TableCell, { className: "text-right", children: i.quantity })] }, i.id))) })] })] }, s.id))) }))] })] })) })] }), openCreate && (_jsx(CreateShipmentDialog, { orderId: orderId, totals: totals.filter((t) => t.remaining > 0), onClose: () => setOpenCreate(false), onCreated: () => {
92
95
  setOpenCreate(false);
93
96
  refresh();
94
97
  }, create: create })), _jsx(EditLocalOrderDialog, { orderId: orderId, open: openEdit, onOpenChange: (o) => {
@@ -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/jsx-runtime").JSX.Element | null;
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,kDAoCA"}
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 === "deels"
16
- ? "border-primary/40 bg-primary/10 text-foreground"
17
- : state === "ingedeeld"
18
- ? "border-border bg-muted text-foreground"
19
- : "border-border bg-muted/50 text-muted-foreground";
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/jsx-runtime").JSX.Element;
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,4CAoK5C"}
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/jsx-runtime").JSX.Element;
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,4CAsPnC"}
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 "../../components/verkoop/SalesOrderDetailView.js";
8
+ import { SalesOrderDetailView } from "./SalesOrderDetailView.js";
9
9
  import { formatLoadUnits, mergeTypeNames } from "../../lib/load-carrier-labels.js";
10
- import { OrderKarindelingCard } from "../../components/verkoop/OrderKarindelingCard.js";
11
- import { EngineBufferCard } from "../../components/verkoop/EngineBufferCard.js";
12
- import { OrderCarrierPicker } from "../../components/verkoop/OrderCarrierPicker.js";
13
- import { OrderPickupMomentPicker } from "../../components/verkoop/OrderPickupMomentPicker.js";
14
- import { EditLocalOrderDialog } from "../../components/verkoop/EditLocalOrderDialog.js";
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/jsx-runtime").JSX.Element;
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":"AAGA,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,2CAydA"}
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,+BAkfA"}
@@ -1,4 +1,5 @@
1
1
  import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { formatMoment } from "../../lib/order-departure.js";
2
3
  import { CheckCircle2, ImageIcon, MapPin, Truck } from "lucide-react";
3
4
  import { useQuery } from "@tanstack/react-query";
4
5
  import { useServerFn } from "@tanstack/react-start";
@@ -280,5 +281,5 @@ export function SalesOrderDetailView({ order, sellerFallback, hideKarindeling =
280
281
  .join(" "),
281
282
  resolvedAddresses.pickup.country,
282
283
  ].filter((v) => !!v && v.trim().length > 0)
283
- : [], extra: resolvedAddresses?.pickup?.gln ?? null }) }), _jsx(Row, { label: "Vervoerder", children: _jsx(OrderCarrierPicker, { orderId: String(order.id), locked: !!order.isReservation }) }), _jsx(Row, { label: "Ophaalmoment", children: _jsx(OrderPickupMomentPicker, { orderId: String(order.id) }) })] }), _jsxs("div", { children: [_jsx(SectionTitle, { children: "Klant" }), _jsxs(Row, { label: "Naam", children: [_jsx("span", { className: "font-medium", children: customerName }), customerLegalName && (_jsx("div", { className: "text-xs text-muted-foreground", children: customerLegalName }))] }), !fs && (order.floridayIds?.length ?? 0) > 0 && (_jsx(FloridayStageLine, { status: null, stage: order.stage, floridayFulfilled: order.floridayFulfilled, isFloriday: true })), _jsx(Row, { label: "GLN", children: customerGln }), _jsx(Row, { label: "Administratienummer", children: customerAdmin }), _jsx(Row, { label: "Telefoonnummer", children: customerPhone })] })] }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "rounded-md border border-border p-4", children: [_jsx("div", { className: "mb-3 text-sm font-semibold", children: "Prijs per stuk" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-muted-foreground", children: "Product" }), _jsxs("span", { children: [oldProductPrice !== null && (_jsx("span", { className: "mr-2 text-destructive line-through", children: eurFlex.format(oldProductPrice) })), eurFlex.format(productUnit)] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-muted-foreground", children: "Transportkosten" }), _jsx("span", { children: eurFlex.format(transportPerPiece) })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-muted-foreground", children: "Inkoopprijs" }), _jsx("span", { children: eurFlex.format(purchaseUnit) })] }), _jsxs("div", { className: "mt-2 flex justify-between border-t border-border pt-2 font-semibold", children: [_jsx("span", { children: "Totaal" }), _jsxs("span", { children: [_jsx("span", { className: "mr-2 text-xs font-normal text-muted-foreground", children: totalBreakdown ? `(${totalBreakdown})` : null }), eurFlex.format(totalAmount)] })] }), (order.missingPrice || (linesWithoutPrice > 0 && !fs)) && (_jsxs("div", { className: "mt-2 rounded-md border border-destructive/40 bg-destructive/10 px-2 py-1 text-xs text-destructive", children: ["Geen prijs: ", linesWithoutPrice || "een of meer", " regel(s) zonder prijs. Vul de prijs in voordat de order wordt bevestigd."] }))] })] }), _jsxs("div", { className: "rounded-md border border-border p-4", children: [_jsx("div", { className: "mb-3 text-sm font-semibold", children: "Status" }), _jsxs("div", { className: "space-y-3 text-sm", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-muted-foreground", children: "Bestelling" }), _jsx("span", { className: `rounded-full px-2 py-0.5 text-xs font-medium ${orderStageBadgeClass(order.stage ?? "incoming")}`, children: bestellingLabel })] }), order.floridayFulfilled && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-muted-foreground", children: "Floriday" }), _jsx("span", { className: "rounded-full bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground", title: "Administratief doorgegeven aan Floriday. Dit bepaalt de orderstatus niet.", children: "Doorgegeven aan Floriday" })] })), hasCorrection && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-muted-foreground", children: "Correctie" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(CheckCircle2, { className: "h-4 w-4 text-emerald-600" }), "Correctie is verwerkt"] })] }))] })] })] })] }), _jsx(OrderLinePackingCard, { orderId: String(order.id) }), _jsx(OrderShipmentsCard, { order: order }), !hideKarindeling && _jsx(OrderKarindelingCard, { order: order }), o?.salesOrderId ? (_jsxs(_Fragment, { children: [_jsx(OrderControlStatusCard, { floridayId: String(o.salesOrderId), isControlled: order.status.isControlled, controlledAt: order.status.controlledAt }), _jsx(OrderAfleverbrievenCard, { salesOrderId: String(o.salesOrderId), orderNumber: order.orderNumber ?? undefined })] })) : null] }));
284
+ : [], extra: resolvedAddresses?.pickup?.gln ?? null }) }), _jsx(Row, { label: "Vervoerder", children: _jsx(OrderCarrierPicker, { orderId: String(order.id), locked: !!order.isReservation }) }), _jsx(Row, { label: "Ophaalmoment", children: _jsx(OrderPickupMomentPicker, { orderId: String(order.id) }) })] }), _jsxs("div", { children: [_jsx(SectionTitle, { children: "Klant" }), _jsxs(Row, { label: "Naam", children: [_jsx("span", { className: "font-medium", children: customerName }), customerLegalName && (_jsx("div", { className: "text-xs text-muted-foreground", children: customerLegalName }))] }), !fs && (order.floridayIds?.length ?? 0) > 0 && (_jsx(FloridayStageLine, { status: null, stage: order.stage, floridayFulfilled: order.floridayFulfilled, isFloriday: true })), _jsx(Row, { label: "GLN", children: customerGln }), _jsx(Row, { label: "Administratienummer", children: customerAdmin }), _jsx(Row, { label: "Telefoonnummer", children: customerPhone })] })] }), _jsxs("div", { className: "space-y-6", children: [_jsxs("div", { className: "rounded-md border border-border p-4", children: [_jsx("div", { className: "mb-3 text-sm font-semibold", children: "Prijs per stuk" }), _jsxs("div", { className: "space-y-2 text-sm", children: [_jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-muted-foreground", children: "Product" }), _jsxs("span", { children: [oldProductPrice !== null && (_jsx("span", { className: "mr-2 text-destructive line-through", children: eurFlex.format(oldProductPrice) })), eurFlex.format(productUnit)] })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-muted-foreground", children: "Transportkosten" }), _jsx("span", { children: eurFlex.format(transportPerPiece) })] }), _jsxs("div", { className: "flex justify-between", children: [_jsx("span", { className: "text-muted-foreground", children: "Inkoopprijs" }), _jsx("span", { children: eurFlex.format(purchaseUnit) })] }), _jsxs("div", { className: "mt-2 flex justify-between border-t border-border pt-2 font-semibold", children: [_jsx("span", { children: "Totaal" }), _jsxs("span", { children: [_jsx("span", { className: "mr-2 text-xs font-normal text-muted-foreground", children: totalBreakdown ? `(${totalBreakdown})` : null }), eurFlex.format(totalAmount)] })] }), (order.missingPrice || (linesWithoutPrice > 0 && !fs)) && (_jsxs("div", { className: "mt-2 rounded-md border border-destructive/40 bg-destructive/10 px-2 py-1 text-xs text-destructive", children: ["Geen prijs: ", linesWithoutPrice || "een of meer", " regel(s) zonder prijs. Vul de prijs in voordat de order wordt bevestigd."] }))] })] }), _jsxs("div", { className: "rounded-md border border-border p-4", children: [_jsx("div", { className: "mb-3 text-sm font-semibold", children: "Status" }), _jsxs("div", { className: "space-y-3 text-sm", children: [_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-muted-foreground", children: "Bestelling" }), _jsx("span", { className: `rounded-full px-2 py-0.5 text-xs font-medium ${orderStageBadgeClass(order.stage ?? "incoming")}`, children: bestellingLabel })] }), order.customerReference && (_jsxs("div", { className: "text-xs text-muted-foreground", children: ["Referentie klant: ", _jsx("span", { className: "font-medium text-foreground", children: order.customerReference })] })), order.floridayMissingLineKeyNotice && (_jsx("div", { className: "rounded-md border border-destructive/40 bg-destructive/10 px-2 py-1 text-xs text-destructive", children: order.floridayMissingLineKeyNotice })), order.floridayExternalFulfilledAt ? (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-muted-foreground", children: "Afhandeling" }), _jsxs("span", { className: "text-xs text-foreground", children: ["Afgehandeld in Floriday (niet via het ERP) \u00B7 ", formatMoment(order.floridayExternalFulfilledAt)] })] })) : (order.floridayExternalFulfilledIds?.length ?? 0) > 0 ? (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-muted-foreground", children: "Afhandeling" }), _jsxs("span", { className: "text-xs text-foreground", children: [order.floridayExternalFulfilledIds.length, " bestelling(en) afgehandeld in Floriday; de rest loopt door"] })] })) : null, order.floridayFulfilled && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-muted-foreground", children: "Floriday" }), _jsx("span", { className: "rounded-full bg-muted px-2 py-0.5 text-xs font-medium text-muted-foreground", title: "Administratief doorgegeven aan Floriday. Dit bepaalt de orderstatus niet.", children: "Doorgegeven aan Floriday" })] })), hasCorrection && (_jsxs("div", { className: "flex items-center justify-between", children: [_jsx("div", { className: "text-muted-foreground", children: "Correctie" }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(CheckCircle2, { className: "h-4 w-4 text-emerald-600" }), "Correctie is verwerkt"] })] }))] })] })] })] }), _jsx(OrderLinePackingCard, { orderId: String(order.id) }), _jsx(OrderShipmentsCard, { order: order }), !hideKarindeling && _jsx(OrderKarindelingCard, { order: order }), o?.salesOrderId ? (_jsxs(_Fragment, { children: [_jsx(OrderControlStatusCard, { floridayId: String(o.salesOrderId), isControlled: order.status.isControlled, controlledAt: order.status.controlledAt }), _jsx(OrderAfleverbrievenCard, { salesOrderId: String(o.salesOrderId), orderNumber: order.orderNumber ?? undefined })] })) : null] }));
284
285
  }
@@ -5,5 +5,5 @@ export declare function SalesOrdersFilterPanel({ open, onOpenChange, value, onCh
5
5
  onOpenChange: (open: boolean) => void;
6
6
  value: Filters;
7
7
  onChange: (next: Filters) => void;
8
- }): import("react/jsx-runtime").JSX.Element;
8
+ }): import("react").JSX.Element;
9
9
  //# sourceMappingURL=SalesOrdersFilterPanel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SalesOrdersFilterPanel.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrdersFilterPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAYrD;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC,2CA2OA"}
1
+ {"version":3,"file":"SalesOrdersFilterPanel.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrdersFilterPanel.tsx"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,sBAAsB,CAAC;AAEpD,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAYrD;AAED,wBAAgB,sBAAsB,CAAC,EACrC,IAAI,EACJ,YAAY,EACZ,KAAK,EACL,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC,+BA2OA"}
@@ -25,5 +25,5 @@ export interface Filters {
25
25
  export declare function SalesOrdersFilters({ value, onChange, }: {
26
26
  value: Filters;
27
27
  onChange: (next: Filters) => void;
28
- }): import("react/jsx-runtime").JSX.Element;
28
+ }): import("react").JSX.Element;
29
29
  //# sourceMappingURL=SalesOrdersFilters.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SalesOrdersFilters.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrdersFilters.tsx"],"names":[],"mappings":"AA4BA,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACnE;AAoCD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC,2CA0NA"}
1
+ {"version":3,"file":"SalesOrdersFilters.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrdersFilters.tsx"],"names":[],"mappings":"AA4BA,MAAM,WAAW,OAAO;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,MAAM,CAAC;IAC/B,mBAAmB,CAAC,EAAE,OAAO,CAAC;IAC9B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,SAAS,GAAG,UAAU,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,QAAQ,CAAC;CACnE;AAoCD,wBAAgB,kBAAkB,CAAC,EACjC,KAAK,EACL,QAAQ,GACT,EAAE;IACD,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;CACnC,+BA0NA"}
@@ -1,3 +1,4 @@
1
+ import React from "react";
1
2
  import type { SalesOrderDTO } from "../../lib/salesorders-mapping.js";
2
3
  /** Stabiele rij-id: buffers zijn serverside al samengevouwen tot één rij. */
3
4
  export declare function salesOrderRowId(row: SalesOrderDTO): string;
@@ -11,5 +12,5 @@ export declare function SalesOrdersTable({ orders, loading, onSelectOrder, onDel
11
12
  fulfillingId?: string | null;
12
13
  selectedIds?: string[];
13
14
  onSelectionChange?: (ids: string[]) => void;
14
- }): import("react/jsx-runtime").JSX.Element;
15
+ }): React.JSX.Element;
15
16
  //# sourceMappingURL=SalesOrdersTable.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SalesOrdersTable.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrdersTable.tsx"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAyGnE,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAG1D;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,OAAO,EACP,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7C,2CA+SA"}
1
+ {"version":3,"file":"SalesOrdersTable.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SalesOrdersTable.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA4B,MAAM,OAAO,CAAC;AAsBjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAyGnE,6EAA6E;AAC7E,wBAAgB,eAAe,CAAC,GAAG,EAAE,aAAa,GAAG,MAAM,CAG1D;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,MAAM,EACN,OAAO,EACP,aAAa,EACb,aAAa,EACb,WAAW,EACX,cAAc,EACd,YAAY,EACZ,WAAW,EACX,iBAAiB,GAClB,EAAE;IACD,MAAM,EAAE,aAAa,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC/C,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;IAChD,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;CAC7C,qBAoTA"}
@@ -100,7 +100,7 @@ export function SalesOrdersTable({ orders, loading, onSelectOrder, onDeleteOrder
100
100
  const delivery = formatDelivery(row.deliveryAt);
101
101
  const reserved = row.reservationCount ?? (row.isReservation ? 1 : 0);
102
102
  const incomplete = row.incomplete ?? [];
103
- return (_jsxs(TableRow, { className: `align-top cursor-pointer ${isBuffer ? "bg-muted/20 border-l-2 border-primary/40" : ""}`, onClick: () => onSelectOrder?.(row), children: [_jsx(TableCell, { onClick: (e) => e.stopPropagation(), children: _jsx(Checkbox, { checked: selected.has(rowId), onCheckedChange: () => toggle(rowId) }) }), _jsxs(TableCell, { children: [_jsx("div", { className: "font-medium text-foreground", children: delivery.date }), delivery.time && (_jsx("div", { className: "text-xs text-muted-foreground", children: delivery.time }))] }), _jsxs(TableCell, { children: [_jsx("div", { className: "font-medium text-foreground", children: formatPickDate(row.pickDate) }), row.pickupLabel && (_jsxs("div", { className: "text-xs text-muted-foreground", title: "Ophaalmoment van de vervoerder", children: ["Ophalen: ", row.pickupLabel] })), _jsx("div", { className: "mt-1 flex flex-wrap gap-1", children: row.printedAt && (_jsx(Badge, { variant: "outline", className: "border-transparent bg-muted text-[11px] font-normal text-muted-foreground", title: "Deze order is al uitgeprint.", children: "uitgeprint" })) })] }), _jsxs(TableCell, { children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx("span", { className: "font-medium text-foreground", children: row.customer.name }), isBuffer && (_jsxs(Badge, { variant: "outline", className: "border-primary/30 text-primary", children: ["Gecombineerd \u00B7 ", bufferSize] })), _jsx(MissingPriceBadge, { show: row.missingPrice }), reserved > 0 && (_jsx(Badge, { variant: "outline", className: "border-amber-400/40 text-amber-600", children: reserved === bufferSize
103
+ return (_jsxs(TableRow, { className: `align-top cursor-pointer ${isBuffer ? "bg-muted/20 border-l-2 border-primary/40" : ""}`, onClick: () => onSelectOrder?.(row), children: [_jsx(TableCell, { onClick: (e) => e.stopPropagation(), children: _jsx(Checkbox, { checked: selected.has(rowId), onCheckedChange: () => toggle(rowId) }) }), _jsxs(TableCell, { children: [_jsx("div", { className: "font-medium text-foreground", children: delivery.date }), delivery.time && (_jsx("div", { className: "text-xs text-muted-foreground", children: delivery.time }))] }), _jsxs(TableCell, { children: [_jsx("div", { className: "font-medium text-foreground", children: formatPickDate(row.pickDate) }), row.pickupLabel && (_jsxs("div", { className: "text-xs text-muted-foreground", title: "Ophaalmoment van de vervoerder", children: ["Ophalen: ", row.pickupLabel] })), _jsx("div", { className: "mt-1 flex flex-wrap gap-1", children: row.printedAt && (_jsx(Badge, { variant: "outline", className: "border-transparent bg-muted text-[11px] font-normal text-muted-foreground", title: "Deze order is al uitgeprint.", children: "uitgeprint" })) })] }), _jsxs(TableCell, { children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx("span", { className: "font-medium text-foreground", children: row.customer.name }), row.customerReference && (_jsxs("span", { className: "text-xs text-muted-foreground", title: "Referentie klant", children: ["Ref. ", row.customerReference] })), isBuffer && (_jsxs(Badge, { variant: "outline", className: "border-primary/30 text-primary", children: ["Gecombineerd \u00B7 ", bufferSize] })), _jsx(MissingPriceBadge, { show: row.missingPrice }), reserved > 0 && (_jsx(Badge, { variant: "outline", className: "border-amber-400/40 text-amber-600", children: reserved === bufferSize
104
104
  ? "Reservering"
105
105
  : `Reservering · ${reserved} van ${bufferSize}` }))] }), row.customer.legalName && (_jsx("div", { className: "text-xs text-muted-foreground", children: row.customer.legalName })), _jsx("div", { className: "text-xs text-muted-foreground", children: [row.customer.postalCode, row.customer.city].filter(Boolean).join(" ") }), incomplete.length > 0 && (_jsxs("div", { className: "mt-1 inline-flex items-center gap-1 text-xs text-amber-600", children: [_jsx(AlertTriangle, { className: "h-3 w-3" }), incomplete.join(" · ")] })), (row.unlinkedProducts?.length ?? 0) > 0 && (_jsxs("div", { className: "mt-1 flex items-start gap-1 text-xs text-destructive", title: row.unlinkedProducts
106
106
  .map((u) => `${u.name} (trade-item ${u.tradeItemId ?? "onbekend"})`)
@@ -15,6 +15,6 @@ interface SearchableSelectProps {
15
15
  className?: string;
16
16
  disabled?: boolean;
17
17
  }
18
- export declare function SearchableSelect({ value, options, placeholder, emptyLabel, allowClear, clearLabel, onChange, className, disabled, }: SearchableSelectProps): import("react/jsx-runtime").JSX.Element;
18
+ export declare function SearchableSelect({ value, options, placeholder, emptyLabel, allowClear, clearLabel, onChange, className, disabled, }: SearchableSelectProps): import("react").JSX.Element;
19
19
  export {};
20
20
  //# sourceMappingURL=SearchableSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"SearchableSelect.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SearchableSelect.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EAAE,OAAO,EAAE,WAAuB,EAAE,UAA6B,EACtE,UAAiB,EAAE,UAAiC,EACpD,QAAQ,EAAE,SAAS,EAAE,QAAgB,GACtC,EAAE,qBAAqB,2CAuFvB"}
1
+ {"version":3,"file":"SearchableSelect.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/SearchableSelect.tsx"],"names":[],"mappings":"AAMA,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,UAAU,qBAAqB;IAC7B,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EAAE,OAAO,EAAE,WAAuB,EAAE,UAA6B,EACtE,UAAiB,EAAE,UAAiC,EACpD,QAAQ,EAAE,SAAS,EAAE,QAAgB,GACtC,EAAE,qBAAqB,+BAuFvB"}
@@ -2,5 +2,5 @@
2
2
  * Toont voorraadafboekingen die zijn overgeslagen (product niet gekoppeld) of
3
3
  * geblokkeerd (statusovergang zonder bewijs van vertrek).
4
4
  */
5
- export declare function StockConsumptionAlertsBanner(): import("react/jsx-runtime").JSX.Element | null;
5
+ export declare function StockConsumptionAlertsBanner(): import("react").JSX.Element | null;
6
6
  //# sourceMappingURL=StockConsumptionAlertsBanner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"StockConsumptionAlertsBanner.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/StockConsumptionAlertsBanner.tsx"],"names":[],"mappings":"AAQA;;;GAGG;AACH,wBAAgB,4BAA4B,mDA6C3C"}
1
+ {"version":3,"file":"StockConsumptionAlertsBanner.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/StockConsumptionAlertsBanner.tsx"],"names":[],"mappings":"AAQA;;;GAGG;AACH,wBAAgB,4BAA4B,uCA6C3C"}
@@ -1,2 +1,2 @@
1
- export declare function VerkoopOrdersPage(): import("react/jsx-runtime").JSX.Element;
1
+ export declare function VerkoopOrdersPage(): import("react").JSX.Element;
2
2
  //# sourceMappingURL=VerkoopOrdersPage.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"VerkoopOrdersPage.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/VerkoopOrdersPage.tsx"],"names":[],"mappings":"AAkFA,wBAAgB,iBAAiB,4CA4sBhC"}
1
+ {"version":3,"file":"VerkoopOrdersPage.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/VerkoopOrdersPage.tsx"],"names":[],"mappings":"AAkFA,wBAAgB,iBAAiB,gCA4sBhC"}
@@ -2,5 +2,5 @@ export declare function WeekCalendar({ week, year, onSelect, }: {
2
2
  week: number;
3
3
  year: number;
4
4
  onSelect: (week: number, year: number) => void;
5
- }): import("react/jsx-runtime").JSX.Element;
5
+ }): import("react").JSX.Element;
6
6
  //# sourceMappingURL=WeekCalendar.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"WeekCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/WeekCalendar.tsx"],"names":[],"mappings":"AAiDA,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,2CAqJA"}
1
+ {"version":3,"file":"WeekCalendar.d.ts","sourceRoot":"","sources":["../../../src/components/verkoop/WeekCalendar.tsx"],"names":[],"mappings":"AAiDA,wBAAgB,YAAY,CAAC,EAC3B,IAAI,EACJ,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAChD,+BAqJA"}
@@ -1,7 +1,7 @@
1
1
  // This file is automatically generated. Do not edit it directly.
2
2
  import { supabase as coreSupabase } from '@flowselections/core';
3
3
  // Import the supabase client like this:
4
- // import { supabase } from "../../integrations/supabase/client.js";
4
+ // import { supabase } from "./client.js";
5
5
  // De shell beheert de browseraanmelding al via @flowselections/core. Hergebruik
6
6
  // exact die client zodat er nooit twee GoTrue-instanties met dezelfde
7
7
  // opslagsleutel tegelijk de sessie lezen of vernieuwen.
@@ -20,7 +20,7 @@ function createSupabaseAdminClient() {
20
20
  let _supabaseAdmin;
21
21
  // Server-side Supabase client with service role - bypasses RLS
22
22
  // SECURITY: Only use this for trusted server-side operations, never expose to client code
23
- // Import like: import { supabaseAdmin } from "../../integrations/supabase/client.server.js";
23
+ // Import like: import { supabaseAdmin } from "./client.server.js";
24
24
  export const supabaseAdmin = new Proxy({}, {
25
25
  get(_, prop, receiver) {
26
26
  if (!_supabaseAdmin)