@flowselections/logistiek-engine 1.0.99 → 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 (47) hide show
  1. package/dist-lib/components/BeladingIndelingCard.d.ts.map +1 -1
  2. package/dist-lib/components/BeladingIndelingCard.js +5 -1
  3. package/dist-lib/integrations/supabase/auth-middleware.d.ts +448 -6
  4. package/dist-lib/integrations/supabase/auth-middleware.d.ts.map +1 -1
  5. package/dist-lib/integrations/supabase/client.server.d.ts +448 -6
  6. package/dist-lib/integrations/supabase/client.server.d.ts.map +1 -1
  7. package/dist-lib/integrations/supabase/moduleClient.d.ts +448 -6
  8. package/dist-lib/integrations/supabase/moduleClient.d.ts.map +1 -1
  9. package/dist-lib/integrations/supabase/types.d.ts +462 -6
  10. package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
  11. package/dist-lib/lib/cartCoverage.functions.d.ts +448 -6
  12. package/dist-lib/lib/cartCoverage.functions.d.ts.map +1 -1
  13. package/dist-lib/lib/controlScan.server.d.ts +8 -0
  14. package/dist-lib/lib/controlScan.server.d.ts.map +1 -1
  15. package/dist-lib/lib/controlScan.server.js +49 -5
  16. package/dist-lib/lib/floridayCancellation.server.d.ts +15 -0
  17. package/dist-lib/lib/floridayCancellation.server.d.ts.map +1 -0
  18. package/dist-lib/lib/floridayCancellation.server.js +89 -0
  19. package/dist-lib/lib/floridayCancellation.test.d.ts +2 -0
  20. package/dist-lib/lib/floridayCancellation.test.d.ts.map +1 -0
  21. package/dist-lib/lib/floridayCancellation.test.js +42 -0
  22. package/dist-lib/lib/floridayDocuments.functions.d.ts +1344 -18
  23. package/dist-lib/lib/floridayDocuments.functions.d.ts.map +1 -1
  24. package/dist-lib/lib/floridayPush.functions.d.ts +448 -6
  25. package/dist-lib/lib/floridayPush.functions.d.ts.map +1 -1
  26. package/dist-lib/lib/layerUtilization.d.ts +2 -0
  27. package/dist-lib/lib/layerUtilization.d.ts.map +1 -0
  28. package/dist-lib/lib/layerUtilization.js +11 -0
  29. package/dist-lib/lib/layerUtilization.test.d.ts +2 -0
  30. package/dist-lib/lib/layerUtilization.test.d.ts.map +1 -0
  31. package/dist-lib/lib/layerUtilization.test.js +11 -0
  32. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts +2240 -30
  33. package/dist-lib/lib/loadCarrierPlanning.functions.d.ts.map +1 -1
  34. package/dist-lib/lib/loadCarrierPlanning.server.d.ts.map +1 -1
  35. package/dist-lib/lib/loadCarrierPlanning.server.js +10 -1
  36. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts +896 -12
  37. package/dist-lib/lib/logisticsRecalcJob.functions.d.ts.map +1 -1
  38. package/dist-lib/lib/logisticsRecalculate.functions.d.ts +448 -6
  39. package/dist-lib/lib/logisticsRecalculate.functions.d.ts.map +1 -1
  40. package/dist-lib/lib/moduleVersion.d.ts +1 -1
  41. package/dist-lib/lib/moduleVersion.d.ts.map +1 -1
  42. package/dist-lib/lib/moduleVersion.js +1 -1
  43. package/dist-lib/lib/plannerDiff.functions.d.ts +448 -6
  44. package/dist-lib/lib/plannerDiff.functions.d.ts.map +1 -1
  45. package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -1
  46. package/dist-lib/lib/shippingNoteQueue.server.js +11 -0
  47. package/package.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"BeladingIndelingCard.d.ts","sourceRoot":"","sources":["../../src/components/BeladingIndelingCard.tsx"],"names":[],"mappings":"AAmCA,wBAAgB,oBAAoB,gCA+InC"}
1
+ {"version":3,"file":"BeladingIndelingCard.d.ts","sourceRoot":"","sources":["../../src/components/BeladingIndelingCard.tsx"],"names":[],"mappings":"AAoCA,wBAAgB,oBAAoB,gCAmJnC"}
@@ -11,6 +11,7 @@ import { useServerFn } from "@tanstack/react-start";
11
11
  import { Boxes, Search } from "lucide-react";
12
12
  import { previewLoadCarrierPlan, replanOrderLoadCarriers } from "../lib/loadCarrierPlanning.functions";
13
13
  import { carrierLabel } from "../lib/loadCarrierTypes";
14
+ import { layerUtilizationPct } from "../lib/layerUtilization";
14
15
  const db = () => supabase;
15
16
  export function BeladingIndelingCard() {
16
17
  const preview = useServerFn(previewLoadCarrierPlan);
@@ -73,5 +74,8 @@ export function BeladingIndelingCard() {
73
74
  }
74
75
  };
75
76
  const safeCarts = Array.isArray(carts) ? carts : [];
76
- return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [_jsx(Boxes, { className: "h-5 w-5 text-primary" }), "Beladingindeling"] }), _jsx(CardDescription, { children: "De Engine deelt de orderregels van de hele buffer in over ladingdragers. Bekijk eerst het resultaat en leg het daarna vast." }), _jsxs("div", { className: "flex flex-wrap items-end gap-2 pt-2", children: [_jsxs("div", { className: "space-y-1.5", children: [_jsx(Label, { htmlFor: "indeling-order", children: "Ordernummer" }), _jsx(Input, { id: "indeling-order", value: orderNummer, onChange: (e) => setOrderNummer(e.target.value), placeholder: "SO-12345", className: "w-56" })] }), _jsxs(Button, { onClick: () => void bereken(), disabled: bezig || !orderNummer.trim(), children: [_jsx(Search, { className: "mr-2 h-4 w-4" }), "Berekenen"] }), _jsx(Button, { variant: "outline", onClick: () => void vastleggen(), disabled: bezig || !orderId, children: "Vastleggen" })] })] }), _jsxs(CardContent, { className: "space-y-4", children: [warnings.length > 0 && (_jsx("ul", { className: "space-y-1 rounded-lg border border-dashed p-3 text-sm text-muted-foreground", children: warnings.map((w, i) => (_jsx("li", { children: w }, i))) })), safeCarts.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Nog geen indeling berekend." })) : (safeCarts.map((cart) => (_jsxs("div", { className: "space-y-2 rounded-lg border p-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("span", { className: "font-medium", children: ["Ladingdrager ", cart.cart_number] }), _jsx(Badge, { variant: "secondary", children: carrierLabel(cart.carrier_type) }), _jsxs(Badge, { variant: cart.is_complete ? "default" : "outline", children: [cart.occupancy_pct, "% vol"] }), _jsxs("span", { className: "text-xs text-muted-foreground", children: [cart.total_layers_used, " van ", cart.max_layers, " lagen", cart.weight_kg ? ` · ${cart.weight_kg} kg` : ""] })] }), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Partij" }), _jsx(TableHead, { className: "text-right", children: "Fusten" }), _jsx(TableHead, { className: "text-right", children: "Planten" }), _jsx(TableHead, { className: "text-right", children: "Aandeel" })] }) }), _jsx(TableBody, { children: (Array.isArray(cart.items) ? cart.items : []).map((item, idx) => (_jsxs(TableRow, { children: [_jsx(TableCell, { className: "font-medium", children: item.product_name }), _jsx(TableCell, { className: "text-right", children: item.crates }), _jsx(TableCell, { className: "text-right", children: item.plants }), _jsxs(TableCell, { className: "text-right", children: [Math.round(item.layer_share_pct * 10) / 10, "%"] })] }, `${item.order_item_id}-${idx}`))) })] })] }, cart.cart_number))))] })] }));
77
+ return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsxs(CardTitle, { className: "flex items-center gap-2", children: [_jsx(Boxes, { className: "h-5 w-5 text-primary" }), "Beladingindeling"] }), _jsx(CardDescription, { children: "De Engine deelt de orderregels van de hele buffer in over ladingdragers. Bekijk eerst het resultaat en leg het daarna vast." }), _jsxs("div", { className: "flex flex-wrap items-end gap-2 pt-2", children: [_jsxs("div", { className: "space-y-1.5", children: [_jsx(Label, { htmlFor: "indeling-order", children: "Ordernummer" }), _jsx(Input, { id: "indeling-order", value: orderNummer, onChange: (e) => setOrderNummer(e.target.value), placeholder: "SO-12345", className: "w-56" })] }), _jsxs(Button, { onClick: () => void bereken(), disabled: bezig || !orderNummer.trim(), children: [_jsx(Search, { className: "mr-2 h-4 w-4" }), "Berekenen"] }), _jsx(Button, { variant: "outline", onClick: () => void vastleggen(), disabled: bezig || !orderId, children: "Vastleggen" })] })] }), _jsxs(CardContent, { className: "space-y-4", children: [warnings.length > 0 && (_jsx("ul", { className: "space-y-1 rounded-lg border border-dashed p-3 text-sm text-muted-foreground", children: warnings.map((w, i) => (_jsx("li", { children: w }, i))) })), safeCarts.length === 0 ? (_jsx("p", { className: "text-sm text-muted-foreground", children: "Nog geen indeling berekend." })) : (safeCarts.map((cart) => (_jsxs("div", { className: "space-y-2 rounded-lg border p-3", children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsxs("span", { className: "font-medium", children: ["Ladingdrager ", cart.cart_number] }), _jsx(Badge, { variant: "secondary", children: carrierLabel(cart.carrier_type) }), _jsxs(Badge, { variant: cart.is_complete ? "default" : "outline", children: [cart.occupancy_pct, "% vol"] }), _jsxs("span", { className: "text-xs text-muted-foreground", children: [cart.total_layers_used, " van ", cart.max_layers, " lagen", (() => {
78
+ const p = layerUtilizationPct(cart.total_layers_used, cart.max_layers);
79
+ return p === null ? "" : ` · ${p}% van de kar`;
80
+ })(), cart.weight_kg ? ` · ${cart.weight_kg} kg` : ""] })] }), _jsxs(Table, { children: [_jsx(TableHeader, { children: _jsxs(TableRow, { children: [_jsx(TableHead, { children: "Partij" }), _jsx(TableHead, { className: "text-right", children: "Fusten" }), _jsx(TableHead, { className: "text-right", children: "Planten" }), _jsx(TableHead, { className: "text-right", children: "Aandeel" })] }) }), _jsx(TableBody, { children: (Array.isArray(cart.items) ? cart.items : []).map((item, idx) => (_jsxs(TableRow, { children: [_jsx(TableCell, { className: "font-medium", children: item.product_name }), _jsx(TableCell, { className: "text-right", children: item.crates }), _jsx(TableCell, { className: "text-right", children: item.plants }), _jsxs(TableCell, { className: "text-right", children: [Math.round(item.layer_share_pct * 10) / 10, "%"] })] }, `${item.order_item_id}-${idx}`))) })] })] }, cart.cart_number))))] })] }));
77
81
  }