@flowselections/logistiek-engine 1.0.153 → 1.0.155
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist-lib/components/BeheerPage.d.ts.map +1 -1
- package/dist-lib/components/BeheerPage.js +2 -1
- package/dist-lib/components/OpruimlijstKarrenCard.d.ts +2 -0
- package/dist-lib/components/OpruimlijstKarrenCard.d.ts.map +1 -0
- package/dist-lib/components/OpruimlijstKarrenCard.js +42 -0
- package/dist-lib/hooks/useWerkwijzeStatus.d.ts.map +1 -1
- package/dist-lib/hooks/useWerkwijzeStatus.js +28 -2
- package/dist-lib/integrations/supabase/types.d.ts +363 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/autoSend.server.d.ts.map +1 -1
- package/dist-lib/lib/autoSend.server.js +9 -0
- package/dist-lib/lib/handlers/logistics-tick.server.js +8 -0
- package/dist-lib/lib/modulePrompts.d.ts.map +1 -1
- package/dist-lib/lib/modulePrompts.js +212 -0
- package/dist-lib/lib/moduleVersion.d.ts +1 -1
- package/dist-lib/lib/moduleVersion.js +1 -1
- package/dist-lib/lib/shippingNoteQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/shippingNoteQueue.server.js +9 -6
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BeheerPage.d.ts","sourceRoot":"","sources":["../../src/components/BeheerPage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BeheerPage.d.ts","sourceRoot":"","sources":["../../src/components/BeheerPage.tsx"],"names":[],"mappings":"AAsJA,wBAAgB,UAAU,gCAWzB"}
|
|
@@ -13,6 +13,7 @@ import { supabase } from "../integrations/supabase/moduleClient.js";
|
|
|
13
13
|
import { RolPoort } from "./RolPoort";
|
|
14
14
|
import { OudeOrderregelsCard } from "./OudeOrderregelsCard";
|
|
15
15
|
import { AutomatischVersturenCard } from "./AutomatischVersturenCard";
|
|
16
|
+
import { OpruimlijstKarrenCard } from "./OpruimlijstKarrenCard";
|
|
16
17
|
import { ENGINE_TOEGANG } from "../hooks/useEngineRollen";
|
|
17
18
|
function HerindelenBeheer() {
|
|
18
19
|
const [datum, setDatum] = useState("");
|
|
@@ -71,5 +72,5 @@ function HerindelenBeheer() {
|
|
|
71
72
|
: `${voor?.geprintOfGepickt ?? 0} order(s) die al geprint of gepickt zijn, blijven ongemoeid.` })] }), _jsxs(AlertDialogFooter, { children: [_jsx(AlertDialogCancel, { children: "Annuleren" }), _jsxs(AlertDialogAction, { onClick: () => void voerUit(), disabled: (voor?.aantal ?? 0) === 0, children: ["Ja, ", voor?.aantal ?? 0, " order(s) opnieuw indelen"] })] })] }) })] }));
|
|
72
73
|
}
|
|
73
74
|
export function BeheerPage() {
|
|
74
|
-
return (_jsx(RolPoort, { rollen: ENGINE_TOEGANG.beheer, children: _jsxs("div", { className: "space-y-6 p-6", children: [_jsx(HerindelenBeheer, {}), _jsx(OudeOrderregelsCard, {}), _jsx(AutomatischVersturenCard, {})] }) }));
|
|
75
|
+
return (_jsx(RolPoort, { rollen: ENGINE_TOEGANG.beheer, children: _jsxs("div", { className: "space-y-6 p-6", children: [_jsx(HerindelenBeheer, {}), _jsx(OudeOrderregelsCard, {}), _jsx(AutomatischVersturenCard, {}), _jsx(OpruimlijstKarrenCard, {})] }) }));
|
|
75
76
|
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"OpruimlijstKarrenCard.d.ts","sourceRoot":"","sources":["../../src/components/OpruimlijstKarrenCard.tsx"],"names":[],"mappings":"AAqBA,wBAAgB,qBAAqB,gCAkFpC"}
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
|
+
// Alleen-lezen opruimlijst van losse karren. Niets verwijderen.
|
|
3
|
+
import { useState } from "react";
|
|
4
|
+
import { Button, Card, CardContent, CardDescription, CardHeader, CardTitle } from "@flowselections/core";
|
|
5
|
+
import { supabase } from "../integrations/supabase/moduleClient.js";
|
|
6
|
+
const GROEPEN = [
|
|
7
|
+
{ key: "buffer_bestaat", titel: "Buffer bestaat nog" },
|
|
8
|
+
{ key: "buffer_weg", titel: "Buffer weg / geen koppeling" },
|
|
9
|
+
{ key: "order_verwijderd", titel: "Order verwijderd" },
|
|
10
|
+
];
|
|
11
|
+
export function OpruimlijstKarrenCard() {
|
|
12
|
+
const [karren, setKarren] = useState(null);
|
|
13
|
+
const [tellers, setTellers] = useState({});
|
|
14
|
+
const [bezig, setBezig] = useState(false);
|
|
15
|
+
const [fout, setFout] = useState(null);
|
|
16
|
+
const [open, setOpen] = useState(null);
|
|
17
|
+
const laad = async () => {
|
|
18
|
+
setBezig(true);
|
|
19
|
+
setFout(null);
|
|
20
|
+
try {
|
|
21
|
+
const { data, error } = await supabase.rpc("logistics_orphan_carts_list");
|
|
22
|
+
if (error)
|
|
23
|
+
throw error;
|
|
24
|
+
const d = (data ?? {});
|
|
25
|
+
setKarren(Array.isArray(d["karren"]) ? d["karren"] : []);
|
|
26
|
+
setTellers((d["tellers"] ?? {}));
|
|
27
|
+
}
|
|
28
|
+
catch (e) {
|
|
29
|
+
setFout(e?.message ? String(e.message) : "De opruimlijst kon niet worden opgehaald.");
|
|
30
|
+
}
|
|
31
|
+
finally {
|
|
32
|
+
setBezig(false);
|
|
33
|
+
}
|
|
34
|
+
};
|
|
35
|
+
const lijst = Array.isArray(karren) ? karren : [];
|
|
36
|
+
return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Opruimlijst losse karren" }), _jsx(CardDescription, { children: "Alleen bekijken. Er wordt niets verwijderd." })] }), _jsxs(CardContent, { className: "space-y-4", children: [_jsx(Button, { onClick: () => void laad(), disabled: bezig, children: karren ? "Verversen" : "Lijst ophalen" }), fout ? _jsx("p", { className: "text-sm text-destructive", children: fout }) : null, karren
|
|
37
|
+
? GROEPEN.map((g) => {
|
|
38
|
+
const rijen = lijst.filter((k) => k.groep === g.key);
|
|
39
|
+
return (_jsxs("div", { className: "rounded border border-border", children: [_jsxs("button", { type: "button", className: "flex w-full justify-between p-3 text-left text-sm font-medium", onClick: () => setOpen(open === g.key ? null : g.key), children: [_jsx("span", { children: g.titel }), _jsxs("span", { children: [Number(tellers[g.key] ?? rijen.length), " karren"] })] }), open === g.key ? (_jsx("div", { className: "max-h-96 overflow-auto border-t border-border", children: _jsxs("table", { className: "w-full text-xs", children: [_jsx("thead", { children: _jsxs("tr", { className: "text-left text-muted-foreground", children: [_jsx("th", { className: "p-2", children: "Karnummer" }), _jsx("th", { className: "p-2", children: "Order" }), _jsx("th", { className: "p-2", children: "Buffer" }), _jsx("th", { className: "p-2", children: "Aangemaakt" })] }) }), _jsx("tbody", { children: rijen.map((k) => (_jsxs("tr", { className: "border-t border-border", children: [_jsx("td", { className: "p-2", children: k.cartNumber ?? "—" }), _jsx("td", { className: "p-2", children: k.orderNumber ?? "—" }), _jsx("td", { className: "p-2 font-mono", children: k.bufferId ? k.bufferId.slice(0, 8) : "—" }), _jsx("td", { className: "p-2", children: k.createdAt ? new Date(k.createdAt).toLocaleString("nl-NL") : "—" })] }, k.id))) })] }) })) : null] }, g.key));
|
|
40
|
+
})
|
|
41
|
+
: null] })] }));
|
|
42
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useWerkwijzeStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useWerkwijzeStatus.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,kBAAkB;;;;;;;
|
|
1
|
+
{"version":3,"file":"useWerkwijzeStatus.d.ts","sourceRoot":"","sources":["../../src/hooks/useWerkwijzeStatus.ts"],"names":[],"mappings":"AAWA,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,UAAU,GAAG,YAAY,CAAC;IACnC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,kBAAkB,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,oBAAoB,EAAE,MAAM,CAAC;IAC7B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAClC;AAED,wBAAgB,kBAAkB;;;;;;;sBA0DS,OAAO,CAAC,MAAM,CAAC;iCAmBJ,OAAO,CAAC;QAC1D,SAAS,EAAE,MAAM,CAAC;QAClB,gBAAgB,EAAE,MAAM,CAAC;QACzB,kBAAkB,EAAE,MAAM,CAAC;KAC5B,CAAC;gCA4BiD,OAAO,CAAC;QACzD,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;EA4BH"}
|
|
@@ -21,10 +21,36 @@ export function useWerkwijzeStatus() {
|
|
|
21
21
|
if (rpcError)
|
|
22
22
|
throw rpcError;
|
|
23
23
|
const raw = (data ?? {});
|
|
24
|
+
const werkwijzeId = raw["actieveWerkwijzeId"] ?? null;
|
|
25
|
+
// Naam uit de lijst met werkwijzen, gekoppeld op id (nooit op naam).
|
|
26
|
+
let naam = raw["actieveWerkwijze"] ?? null;
|
|
27
|
+
if (werkwijzeId) {
|
|
28
|
+
try {
|
|
29
|
+
const { data: cfg } = await supabase
|
|
30
|
+
.from("logistics_rule_configs")
|
|
31
|
+
.select("strategy_id")
|
|
32
|
+
.eq("id", werkwijzeId)
|
|
33
|
+
.maybeSingle();
|
|
34
|
+
const sid = cfg?.strategy_id ?? null;
|
|
35
|
+
if (sid) {
|
|
36
|
+
const { data: st } = await supabase
|
|
37
|
+
.from("logistics_strategies")
|
|
38
|
+
.select("name")
|
|
39
|
+
.eq("id", sid)
|
|
40
|
+
.maybeSingle();
|
|
41
|
+
const n = st?.name;
|
|
42
|
+
if (n && n.trim())
|
|
43
|
+
naam = n.trim();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
/* naam uit de status blijft staan */
|
|
48
|
+
}
|
|
49
|
+
}
|
|
24
50
|
setStatus({
|
|
25
51
|
methode: raw["methode"] === "afmetingen" ? "afmetingen" : "belading",
|
|
26
|
-
actieveWerkwijze:
|
|
27
|
-
actieveWerkwijzeId:
|
|
52
|
+
actieveWerkwijze: naam,
|
|
53
|
+
actieveWerkwijzeId: werkwijzeId,
|
|
28
54
|
karrenVolgensMethode: Number(raw["karrenVolgensMethode"] ?? 0),
|
|
29
55
|
karrenOudeMethode: Number(raw["karrenOudeMethode"] ?? 0),
|
|
30
56
|
wachtrij: raw["wachtrij"] ?? {},
|