@flowselections/logistiek-engine 1.0.191 → 1.0.193
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/db/schema/logistiek-engine.sql +196 -1
- package/dist-lib/components/InplanVoortgangCard.d.ts +16 -0
- package/dist-lib/components/InplanVoortgangCard.d.ts.map +1 -0
- package/dist-lib/components/InplanVoortgangCard.js +34 -0
- package/dist-lib/components/RegiePage.d.ts.map +1 -1
- package/dist-lib/components/RegiePage.js +2 -1
- package/dist-lib/index.d.ts +1 -0
- package/dist-lib/index.d.ts.map +1 -1
- package/dist-lib/index.js +1 -0
- package/dist-lib/integrations/supabase/types.d.ts +173 -0
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/logisticsRecalcJob.server.d.ts.map +1 -1
- package/dist-lib/lib/logisticsRecalcJob.server.js +2 -1
- package/dist-lib/lib/moduleVersion.d.ts +1 -1
- package/dist-lib/lib/moduleVersion.js +1 -1
- package/dist-lib/lib/planQueue.server.d.ts.map +1 -1
- package/dist-lib/lib/planQueue.server.js +2 -1
- package/dist-lib/lib/scheduleTasks.server.d.ts +18 -12
- package/dist-lib/lib/scheduleTasks.server.d.ts.map +1 -1
- package/dist-lib/lib/scheduleTasks.server.js +99 -51
- package/dist-lib/lib/voorraadFouten.d.ts +14 -0
- package/dist-lib/lib/voorraadFouten.d.ts.map +1 -0
- package/dist-lib/lib/voorraadFouten.js +18 -0
- package/package.json +1 -1
|
@@ -31636,4 +31636,199 @@ BEGIN
|
|
|
31636
31636
|
SELECT b.d, b.print_plek_id, b.breedte_mm, b.hoogte_mm, sum(greatest(coalesce(b.kopieen, 1), 1))::integer
|
|
31637
31637
|
FROM b WHERE b.d BETWEEN p_van AND p_tot
|
|
31638
31638
|
GROUP BY 1, 2, 3, 4 ORDER BY 1, 2, 3, 4;
|
|
31639
|
-
END $function$;
|
|
31639
|
+
END $function$;
|
|
31640
|
+
-- ===== 1.0.192: inplannen in porties (db/migrations/20261023190000) =====
|
|
31641
|
+
-- Logistiek Engine 1.0.192: taken opnieuw inplannen in porties met vingerafdruk per order.
|
|
31642
|
+
-- Herhaalbaar. Geen datacorrecties, geen deletes. Bestaande functies (o.a. logistics_schedule_tasks)
|
|
31643
|
+
-- blijven ongewijzigd, zodat gepubliceerde 1.0.190 blijft werken.
|
|
31644
|
+
|
|
31645
|
+
CREATE TABLE IF NOT EXISTS public.logistics_schedule_fp (
|
|
31646
|
+
order_ref text PRIMARY KEY,
|
|
31647
|
+
fp text NOT NULL,
|
|
31648
|
+
ingepland_at timestamptz NOT NULL DEFAULT now()
|
|
31649
|
+
);
|
|
31650
|
+
GRANT SELECT ON public.logistics_schedule_fp TO authenticated;
|
|
31651
|
+
GRANT ALL ON public.logistics_schedule_fp TO service_role;
|
|
31652
|
+
ALTER TABLE public.logistics_schedule_fp ENABLE ROW LEVEL SECURITY;
|
|
31653
|
+
DROP POLICY IF EXISTS "Ingelogd mag inplan-vingerafdruk lezen" ON public.logistics_schedule_fp;
|
|
31654
|
+
CREATE POLICY "Ingelogd mag inplan-vingerafdruk lezen" ON public.logistics_schedule_fp
|
|
31655
|
+
FOR SELECT TO authenticated USING (true);
|
|
31656
|
+
|
|
31657
|
+
CREATE TABLE IF NOT EXISTS public.logistics_schedule_werklijst (
|
|
31658
|
+
run_id uuid NOT NULL,
|
|
31659
|
+
order_ref text NOT NULL,
|
|
31660
|
+
verwerkt_at timestamptz,
|
|
31661
|
+
uitkomst text,
|
|
31662
|
+
PRIMARY KEY (run_id, order_ref)
|
|
31663
|
+
);
|
|
31664
|
+
GRANT SELECT ON public.logistics_schedule_werklijst TO authenticated;
|
|
31665
|
+
GRANT ALL ON public.logistics_schedule_werklijst TO service_role;
|
|
31666
|
+
ALTER TABLE public.logistics_schedule_werklijst ENABLE ROW LEVEL SECURITY;
|
|
31667
|
+
DROP POLICY IF EXISTS "Ingelogd mag inplan-werklijst lezen" ON public.logistics_schedule_werklijst;
|
|
31668
|
+
CREATE POLICY "Ingelogd mag inplan-werklijst lezen" ON public.logistics_schedule_werklijst
|
|
31669
|
+
FOR SELECT TO authenticated USING (true);
|
|
31670
|
+
|
|
31671
|
+
CREATE TABLE IF NOT EXISTS public.logistics_schedule_voortgang (
|
|
31672
|
+
id boolean PRIMARY KEY DEFAULT true CHECK (id),
|
|
31673
|
+
run_id uuid,
|
|
31674
|
+
gestart_at timestamptz,
|
|
31675
|
+
bijgewerkt_at timestamptz,
|
|
31676
|
+
totaal integer NOT NULL DEFAULT 0,
|
|
31677
|
+
verwerkt integer NOT NULL DEFAULT 0,
|
|
31678
|
+
ingepland integer NOT NULL DEFAULT 0,
|
|
31679
|
+
overgeslagen integer NOT NULL DEFAULT 0,
|
|
31680
|
+
fouten integer NOT NULL DEFAULT 0,
|
|
31681
|
+
laatste_fout text,
|
|
31682
|
+
klaar boolean NOT NULL DEFAULT true,
|
|
31683
|
+
duur_ms integer
|
|
31684
|
+
);
|
|
31685
|
+
GRANT SELECT ON public.logistics_schedule_voortgang TO authenticated;
|
|
31686
|
+
GRANT ALL ON public.logistics_schedule_voortgang TO service_role;
|
|
31687
|
+
ALTER TABLE public.logistics_schedule_voortgang ENABLE ROW LEVEL SECURITY;
|
|
31688
|
+
DROP POLICY IF EXISTS "Ingelogd mag inplan-voortgang lezen" ON public.logistics_schedule_voortgang;
|
|
31689
|
+
CREATE POLICY "Ingelogd mag inplan-voortgang lezen" ON public.logistics_schedule_voortgang
|
|
31690
|
+
FOR SELECT TO authenticated USING (true);
|
|
31691
|
+
|
|
31692
|
+
CREATE TABLE IF NOT EXISTS public.logistics_index_log (
|
|
31693
|
+
index_naam text PRIMARY KEY,
|
|
31694
|
+
tabel text NOT NULL,
|
|
31695
|
+
rijen bigint,
|
|
31696
|
+
duur_ms integer,
|
|
31697
|
+
aangemaakt_at timestamptz NOT NULL DEFAULT now()
|
|
31698
|
+
);
|
|
31699
|
+
GRANT SELECT ON public.logistics_index_log TO authenticated;
|
|
31700
|
+
GRANT ALL ON public.logistics_index_log TO service_role;
|
|
31701
|
+
ALTER TABLE public.logistics_index_log ENABLE ROW LEVEL SECURITY;
|
|
31702
|
+
DROP POLICY IF EXISTS "Ingelogd mag indexlog lezen" ON public.logistics_index_log;
|
|
31703
|
+
CREATE POLICY "Ingelogd mag indexlog lezen" ON public.logistics_index_log
|
|
31704
|
+
FOR SELECT TO authenticated USING (true);
|
|
31705
|
+
|
|
31706
|
+
-- Index voor "open taken per order", met gemeten duur (schrijfblokkade op logistics_tasks zolang hij loopt).
|
|
31707
|
+
DO $idx$
|
|
31708
|
+
DECLARE t0 timestamptz; n bigint;
|
|
31709
|
+
BEGIN
|
|
31710
|
+
IF to_regclass('public.idx_logistics_tasks_open_order') IS NULL THEN
|
|
31711
|
+
SELECT count(*) INTO n FROM public.logistics_tasks;
|
|
31712
|
+
t0 := clock_timestamp();
|
|
31713
|
+
CREATE INDEX idx_logistics_tasks_open_order ON public.logistics_tasks (order_ref)
|
|
31714
|
+
WHERE status IN ('planned', 'ready') AND order_ref IS NOT NULL;
|
|
31715
|
+
INSERT INTO public.logistics_index_log (index_naam, tabel, rijen, duur_ms)
|
|
31716
|
+
VALUES ('idx_logistics_tasks_open_order', 'logistics_tasks', n,
|
|
31717
|
+
(extract(epoch FROM clock_timestamp() - t0) * 1000)::int)
|
|
31718
|
+
ON CONFLICT (index_naam) DO NOTHING;
|
|
31719
|
+
END IF;
|
|
31720
|
+
END $idx$;
|
|
31721
|
+
|
|
31722
|
+
-- Algemene invoer van het inplannen: werkwijze, werktijden, afwijkende dagen, capaciteit,
|
|
31723
|
+
-- ladingdragers, ophaalmomenten (vervoerders) en het lopende uur (taken mogen niet in het verleden starten).
|
|
31724
|
+
CREATE OR REPLACE FUNCTION public.logistics_schedule_global_fp()
|
|
31725
|
+
RETURNS text LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path TO 'public' AS $$
|
|
31726
|
+
DECLARE
|
|
31727
|
+
v_tab text; v_h text; v_all text := '';
|
|
31728
|
+
BEGIN
|
|
31729
|
+
PERFORM public.logistics_acc_guard('ingelogd', 'logistics_schedule_global_fp');
|
|
31730
|
+
FOREACH v_tab IN ARRAY ARRAY['logistics_time_settings','logistics_opening_hours','logistics_opening_exceptions',
|
|
31731
|
+
'logistics_rule_configs','cart_planning_settings','cart_planning_pick_times','cart_types','carriers'] LOOP
|
|
31732
|
+
IF to_regclass('public.' || v_tab) IS NOT NULL THEN
|
|
31733
|
+
EXECUTE format('SELECT md5(coalesce(string_agg(x, ''|'' ORDER BY x), '''')) FROM (SELECT to_jsonb(t)::text AS x FROM public.%I t) s', v_tab)
|
|
31734
|
+
INTO v_h;
|
|
31735
|
+
v_all := v_all || v_tab || ':' || coalesce(v_h, '') || ';';
|
|
31736
|
+
END IF;
|
|
31737
|
+
END LOOP;
|
|
31738
|
+
v_all := v_all || 'uur:' || to_char(now() AT TIME ZONE coalesce(public.logistics_tz(), 'UTC'), 'YYYY-MM-DD HH24');
|
|
31739
|
+
RETURN md5(v_all);
|
|
31740
|
+
END $$;
|
|
31741
|
+
REVOKE ALL ON FUNCTION public.logistics_schedule_global_fp() FROM PUBLIC, anon;
|
|
31742
|
+
GRANT EXECUTE ON FUNCTION public.logistics_schedule_global_fp() TO authenticated, service_role;
|
|
31743
|
+
|
|
31744
|
+
CREATE OR REPLACE FUNCTION public.logistics_schedule_order_fp(p_order_ref text, p_global text)
|
|
31745
|
+
RETURNS text LANGUAGE plpgsql STABLE SECURITY DEFINER SET search_path TO 'public' AS $$
|
|
31746
|
+
DECLARE v_o text; v_t text; v_c text;
|
|
31747
|
+
BEGIN
|
|
31748
|
+
PERFORM public.logistics_acc_guard('ingelogd', 'logistics_schedule_order_fp');
|
|
31749
|
+
SELECT (to_jsonb(o) - 'updated_at')::text, array_to_string(public.logistics_order_cart_ids(o.id), ',')
|
|
31750
|
+
INTO v_o, v_c FROM public.orders o WHERE o.order_number = p_order_ref;
|
|
31751
|
+
SELECT string_agg(t.id::text || t.task_type || t.status, ',' ORDER BY t.id) INTO v_t
|
|
31752
|
+
FROM public.logistics_tasks t WHERE t.order_ref = p_order_ref AND t.status IN ('planned', 'ready');
|
|
31753
|
+
RETURN md5(coalesce(p_global, '') || '#' || coalesce(v_o, '') || '#' || coalesce(v_t, '') || '#' || coalesce(v_c, ''));
|
|
31754
|
+
END $$;
|
|
31755
|
+
REVOKE ALL ON FUNCTION public.logistics_schedule_order_fp(text, text) FROM PUBLIC, anon;
|
|
31756
|
+
GRANT EXECUTE ON FUNCTION public.logistics_schedule_order_fp(text, text) TO authenticated, service_role;
|
|
31757
|
+
|
|
31758
|
+
-- Portie-inplanner. Opties (jsonb): start (bool), run_id (uuid), max_orders (int, 25), budget_ms (int, 20000), force (bool).
|
|
31759
|
+
-- Per order een eigen subtransactie: lukt het niet, dan blijft de oude planning staan.
|
|
31760
|
+
CREATE OR REPLACE FUNCTION public.logistics_schedule_tasks_batch(p_opties jsonb)
|
|
31761
|
+
RETURNS jsonb LANGUAGE plpgsql SECURITY DEFINER SET search_path TO 'public' AS $$
|
|
31762
|
+
DECLARE
|
|
31763
|
+
v_start timestamptz := clock_timestamp();
|
|
31764
|
+
v_run uuid := nullif(p_opties->>'run_id', '')::uuid;
|
|
31765
|
+
v_max int := greatest(1, least(coalesce((p_opties->>'max_orders')::int, 25), 500));
|
|
31766
|
+
v_budget int := greatest(1000, least(coalesce((p_opties->>'budget_ms')::int, 20000), 120000));
|
|
31767
|
+
v_force boolean := coalesce((p_opties->>'force')::boolean, false);
|
|
31768
|
+
v_since timestamptz; v_160 timestamptz;
|
|
31769
|
+
v_global text; v_fp text; v_old text; r record;
|
|
31770
|
+
v_done int := 0; v_plan int := 0; v_skip int := 0; v_err int := 0; v_fouten jsonb := '[]'::jsonb;
|
|
31771
|
+
v_totaal int; v_rest int;
|
|
31772
|
+
BEGIN
|
|
31773
|
+
PERFORM public.logistics_acc_guard('ingelogd', 'logistics_schedule_tasks_batch');
|
|
31774
|
+
IF v_run IS NULL OR coalesce((p_opties->>'start')::boolean, false) THEN
|
|
31775
|
+
v_run := gen_random_uuid();
|
|
31776
|
+
SELECT departure_rule_since, rule_160_since INTO v_since, v_160
|
|
31777
|
+
FROM public.logistics_time_settings ORDER BY updated_at DESC NULLS LAST LIMIT 1;
|
|
31778
|
+
INSERT INTO public.logistics_schedule_werklijst (run_id, order_ref)
|
|
31779
|
+
SELECT v_run, o.order_number FROM public.orders o
|
|
31780
|
+
WHERE o.deleted_at IS NULL AND o.order_number IS NOT NULL
|
|
31781
|
+
AND EXISTS (SELECT 1 FROM public.logistics_tasks t WHERE t.order_ref = o.order_number AND t.status IN ('planned','ready'))
|
|
31782
|
+
AND NOT (v_since IS NOT NULL AND v_160 IS NOT NULL AND o.created_at >= v_since AND o.created_at < v_160)
|
|
31783
|
+
ON CONFLICT DO NOTHING;
|
|
31784
|
+
GET DIAGNOSTICS v_totaal = ROW_COUNT;
|
|
31785
|
+
INSERT INTO public.logistics_schedule_voortgang (id, run_id, gestart_at, bijgewerkt_at, totaal, verwerkt, ingepland, overgeslagen, fouten, laatste_fout, klaar, duur_ms)
|
|
31786
|
+
VALUES (true, v_run, now(), now(), v_totaal, 0, 0, 0, 0, NULL, v_totaal = 0, NULL)
|
|
31787
|
+
ON CONFLICT (id) DO UPDATE SET run_id = EXCLUDED.run_id, gestart_at = EXCLUDED.gestart_at, bijgewerkt_at = EXCLUDED.bijgewerkt_at,
|
|
31788
|
+
totaal = EXCLUDED.totaal, verwerkt = 0, ingepland = 0, overgeslagen = 0, fouten = 0, laatste_fout = NULL,
|
|
31789
|
+
klaar = EXCLUDED.klaar, duur_ms = NULL;
|
|
31790
|
+
END IF;
|
|
31791
|
+
|
|
31792
|
+
v_global := public.logistics_schedule_global_fp();
|
|
31793
|
+
FOR r IN SELECT w.order_ref FROM public.logistics_schedule_werklijst w
|
|
31794
|
+
WHERE w.run_id = v_run AND w.verwerkt_at IS NULL ORDER BY w.order_ref LIMIT v_max LOOP
|
|
31795
|
+
EXIT WHEN (extract(epoch FROM clock_timestamp() - v_start) * 1000) > v_budget;
|
|
31796
|
+
v_fp := public.logistics_schedule_order_fp(r.order_ref, v_global);
|
|
31797
|
+
SELECT f.fp INTO v_old FROM public.logistics_schedule_fp f WHERE f.order_ref = r.order_ref;
|
|
31798
|
+
IF NOT v_force AND v_old IS NOT DISTINCT FROM v_fp THEN
|
|
31799
|
+
v_skip := v_skip + 1;
|
|
31800
|
+
UPDATE public.logistics_schedule_werklijst SET verwerkt_at = now(), uitkomst = 'ongewijzigd'
|
|
31801
|
+
WHERE run_id = v_run AND order_ref = r.order_ref;
|
|
31802
|
+
ELSE
|
|
31803
|
+
BEGIN
|
|
31804
|
+
PERFORM public.logistics_schedule_tasks(p_order_ref => r.order_ref);
|
|
31805
|
+
INSERT INTO public.logistics_schedule_fp (order_ref, fp, ingepland_at) VALUES (r.order_ref, v_fp, now())
|
|
31806
|
+
ON CONFLICT (order_ref) DO UPDATE SET fp = EXCLUDED.fp, ingepland_at = EXCLUDED.ingepland_at;
|
|
31807
|
+
v_plan := v_plan + 1;
|
|
31808
|
+
UPDATE public.logistics_schedule_werklijst SET verwerkt_at = now(), uitkomst = 'ingepland'
|
|
31809
|
+
WHERE run_id = v_run AND order_ref = r.order_ref;
|
|
31810
|
+
EXCEPTION WHEN OTHERS THEN
|
|
31811
|
+
v_err := v_err + 1;
|
|
31812
|
+
v_fouten := v_fouten || jsonb_build_object('order', r.order_ref, 'fout', left(SQLERRM, 300));
|
|
31813
|
+
UPDATE public.logistics_schedule_werklijst SET verwerkt_at = now(), uitkomst = 'fout: ' || left(SQLERRM, 300)
|
|
31814
|
+
WHERE run_id = v_run AND order_ref = r.order_ref;
|
|
31815
|
+
END;
|
|
31816
|
+
END IF;
|
|
31817
|
+
v_done := v_done + 1;
|
|
31818
|
+
END LOOP;
|
|
31819
|
+
|
|
31820
|
+
SELECT count(*) FILTER (WHERE verwerkt_at IS NULL), count(*) INTO v_rest, v_totaal
|
|
31821
|
+
FROM public.logistics_schedule_werklijst WHERE run_id = v_run;
|
|
31822
|
+
UPDATE public.logistics_schedule_voortgang
|
|
31823
|
+
SET bijgewerkt_at = now(), verwerkt = v_totaal - v_rest, ingepland = ingepland + v_plan,
|
|
31824
|
+
overgeslagen = overgeslagen + v_skip, fouten = fouten + v_err,
|
|
31825
|
+
laatste_fout = CASE WHEN v_err > 0 THEN (v_fouten->0->>'order') || ': ' || (v_fouten->0->>'fout') ELSE laatste_fout END,
|
|
31826
|
+
klaar = (v_rest = 0),
|
|
31827
|
+
duur_ms = CASE WHEN v_rest = 0 THEN (extract(epoch FROM now() - gestart_at) * 1000)::int ELSE duur_ms END
|
|
31828
|
+
WHERE id AND run_id = v_run;
|
|
31829
|
+
RETURN jsonb_build_object('runId', v_run, 'totaal', v_totaal, 'verwerkt', v_totaal - v_rest, 'resterend', v_rest,
|
|
31830
|
+
'ingepland', v_plan, 'overgeslagen', v_skip, 'fouten', v_fouten,
|
|
31831
|
+
'durationMs', (extract(epoch FROM clock_timestamp() - v_start) * 1000)::int);
|
|
31832
|
+
END $$;
|
|
31833
|
+
REVOKE ALL ON FUNCTION public.logistics_schedule_tasks_batch(jsonb) FROM PUBLIC, anon;
|
|
31834
|
+
GRANT EXECUTE ON FUNCTION public.logistics_schedule_tasks_batch(jsonb) TO authenticated, service_role;
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
type Voortgang = {
|
|
2
|
+
totaal: number;
|
|
3
|
+
verwerkt: number;
|
|
4
|
+
ingepland: number;
|
|
5
|
+
overgeslagen: number;
|
|
6
|
+
fouten: number;
|
|
7
|
+
laatste_fout: string | null;
|
|
8
|
+
klaar: boolean;
|
|
9
|
+
gestart_at: string | null;
|
|
10
|
+
bijgewerkt_at: string | null;
|
|
11
|
+
duur_ms: number | null;
|
|
12
|
+
};
|
|
13
|
+
export declare function voortgangTekst(v: Pick<Voortgang, "verwerkt" | "totaal">): string;
|
|
14
|
+
export declare function InplanVoortgangCard(): import("react").JSX.Element;
|
|
15
|
+
export {};
|
|
16
|
+
//# sourceMappingURL=InplanVoortgangCard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"InplanVoortgangCard.d.ts","sourceRoot":"","sources":["../../src/components/InplanVoortgangCard.tsx"],"names":[],"mappings":"AAKA,KAAK,SAAS,GAAG;IACf,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC;IACf,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;CACxB,CAAC;AAEF,wBAAgB,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,SAAS,EAAE,UAAU,GAAG,QAAQ,CAAC,GAAG,MAAM,CAEhF;AAED,wBAAgB,mBAAmB,gCAgDlC"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
|
|
2
|
+
// 1.0.192: voortgang van "Taken opnieuw inplannen" (x van y).
|
|
3
|
+
// GEEN <Header /> hier — die levert de shell.
|
|
4
|
+
import { useEffect, useState } from "react";
|
|
5
|
+
import { Badge, Card, CardContent, CardDescription, CardHeader, CardTitle, supabase } from "@flowselections/core";
|
|
6
|
+
export function voortgangTekst(v) {
|
|
7
|
+
return `${v.verwerkt} van ${v.totaal} opnieuw ingepland`;
|
|
8
|
+
}
|
|
9
|
+
export function InplanVoortgangCard() {
|
|
10
|
+
const [v, setV] = useState(null);
|
|
11
|
+
const [fout, setFout] = useState(null);
|
|
12
|
+
useEffect(() => {
|
|
13
|
+
let actief = true;
|
|
14
|
+
const laad = async () => {
|
|
15
|
+
const { data, error } = await supabase
|
|
16
|
+
.from("logistics_schedule_voortgang")
|
|
17
|
+
.select("totaal, verwerkt, ingepland, overgeslagen, fouten, laatste_fout, klaar, gestart_at, bijgewerkt_at, duur_ms")
|
|
18
|
+
.limit(1);
|
|
19
|
+
if (!actief)
|
|
20
|
+
return;
|
|
21
|
+
if (error)
|
|
22
|
+
setFout(String(error.message));
|
|
23
|
+
const rij = Array.isArray(data) ? data[0] : null;
|
|
24
|
+
setV(rij ? rij : null);
|
|
25
|
+
};
|
|
26
|
+
void laad();
|
|
27
|
+
const t = setInterval(() => void laad(), 15000);
|
|
28
|
+
return () => {
|
|
29
|
+
actief = false;
|
|
30
|
+
clearInterval(t);
|
|
31
|
+
};
|
|
32
|
+
}, []);
|
|
33
|
+
return (_jsxs(Card, { children: [_jsxs(CardHeader, { children: [_jsx(CardTitle, { children: "Taken opnieuw inplannen" }), _jsx(CardDescription, { children: "Voortgang van de laatste herberekening. Ongewijzigde orders worden overgeslagen." })] }), _jsxs(CardContent, { className: "space-y-2 text-sm", children: [fout ? _jsx("p", { className: "text-destructive", children: fout }) : null, !v && !fout ? _jsx("p", { className: "text-muted-foreground", children: "Nog geen herberekening uitgevoerd." }) : null, v ? (_jsxs(_Fragment, { children: [_jsxs("div", { className: "flex flex-wrap items-center gap-2", children: [_jsx("span", { className: "font-medium", children: voortgangTekst(v) }), v.klaar ? _jsx(Badge, { variant: "secondary", children: "klaar" }) : _jsx(Badge, { children: "bezig" }), v.fouten > 0 ? _jsxs(Badge, { variant: "destructive", children: [v.fouten, " niet gelukt"] }) : null] }), _jsxs("p", { className: "text-muted-foreground", children: [v.ingepland, " ingepland, ", v.overgeslagen, " ongewijzigd", v.klaar && v.duur_ms != null ? `, duur ${Math.round(v.duur_ms / 1000)} s` : ""] }), v.laatste_fout ? _jsxs("p", { className: "text-muted-foreground", children: ["Laatste fout: ", v.laatste_fout] }) : null] })) : null] })] }));
|
|
34
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RegiePage.d.ts","sourceRoot":"","sources":["../../src/components/RegiePage.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"RegiePage.d.ts","sourceRoot":"","sources":["../../src/components/RegiePage.tsx"],"names":[],"mappings":"AAmCA,wBAAgB,SAAS,gCA+FxB"}
|
|
@@ -14,6 +14,7 @@ import { ConsistentieCard } from "./ConsistentieCard.js";
|
|
|
14
14
|
import { KarplanStatusCard } from "./KarplanStatusCard.js";
|
|
15
15
|
import { KardekkingCard } from "./KardekkingCard.js";
|
|
16
16
|
import { OrdersZonderKarCard } from "./OrdersZonderKarCard.js";
|
|
17
|
+
import { InplanVoortgangCard } from "./InplanVoortgangCard.js";
|
|
17
18
|
import { MisluktVerzendbrievenCard } from "./MisluktVerzendbrievenCard.js";
|
|
18
19
|
import { PlannerDiffCard } from "./PlannerDiffCard.js";
|
|
19
20
|
import { BeladingsafwijkingenCard } from "./BeladingsafwijkingenCard.js";
|
|
@@ -37,5 +38,5 @@ export function RegiePage() {
|
|
|
37
38
|
useEffect(() => {
|
|
38
39
|
void laden();
|
|
39
40
|
}, [laden]);
|
|
40
|
-
return (_jsxs("div", { className: "space-y-6 p-6", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [_jsxs("div", { children: [_jsxs("h1", { className: "flex items-center gap-2 text-2xl font-semibold tracking-tight", children: [_jsx(Workflow, { className: "h-6 w-6 text-primary" }), "Overzicht & meldingen"] }), _jsx("p", { className: "text-muted-foreground text-sm", children: "Wat er vandaag klaarstaat en waar aandacht voor nodig is." })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { variant: "outline", asChild: true, children: _jsx(Link, { to: "/logistiek-engine", children: "Terug naar overzicht" }) }), _jsxs(Button, { variant: "outline", onClick: () => void laden(), disabled: loading, children: [_jsx(RefreshCw, { className: "mr-2 h-4 w-4" }), "Vernieuwen"] })] })] }), _jsx(MinuutrondeCard, {}), _jsx(InklapbaarVenster, { titel: "Binnengekomen orders", omschrijving: "Klik een order open voor elke stap, beslissing, foutmelding en elk document.", standaardOpen: true, children: _jsx(OrderLogboek, { titel: "Binnengekomen orders" }) }), _jsx(InklapbaarVenster, { titel: "Consistentie", omschrijving: "Controle of alle modules hetzelfde tonen.", children: _jsx(ConsistentieCard, {}) }), _jsx(InklapbaarVenster, { titel: "Beladingsafwijkingen", omschrijving: "Verschillen tussen onze belading en de laatste Floriday-gegevens.", children: _jsx(BeladingsafwijkingenCard, {}) }), _jsx(InklapbaarVenster, { titel: "Karplanstatus", omschrijving: "Stand van de karrenindeling.", children: _jsx(KarplanStatusCard, {}) }), _jsxs(InklapbaarVenster, { titel: "Kardekking", omschrijving: "Staat elke bestelregel correct op een kar?", children: [_jsx(KardekkingCard, {}), _jsx(OrdersZonderKarCard, {}), _jsx(MisluktVerzendbrievenCard, {})] }), _jsx(InklapbaarVenster, { titel: "Vergelijkende planner", omschrijving: "Proefvergelijking: blijft de karindeling gelijk?", children: _jsx(PlannerDiffCard, {}) }), _jsxs(InklapbaarVenster, { titel: "Taken per module", omschrijving: "Openstaande en geplande taken.", children: [telFout && _jsxs("p", { className: "mb-2 text-sm text-destructive", children: ["Telling niet beschikbaar: ", telFout] }), _jsx("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-3", children: Object.keys(LOGISTICS_MODULES).map((key) => (_jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-2", children: [_jsx(CardDescription, { children: LOGISTICS_MODULES[key] }), _jsx(CardTitle, { className: "text-2xl", children: perModule[key] ?? 0 })] }), _jsx(CardContent, { className: "text-muted-foreground text-xs", children: "openstaande en geplande taken" })] }, key))) })] })] }));
|
|
41
|
+
return (_jsxs("div", { className: "space-y-6 p-6", children: [_jsxs("div", { className: "flex flex-wrap items-start justify-between gap-4", children: [_jsxs("div", { children: [_jsxs("h1", { className: "flex items-center gap-2 text-2xl font-semibold tracking-tight", children: [_jsx(Workflow, { className: "h-6 w-6 text-primary" }), "Overzicht & meldingen"] }), _jsx("p", { className: "text-muted-foreground text-sm", children: "Wat er vandaag klaarstaat en waar aandacht voor nodig is." })] }), _jsxs("div", { className: "flex items-center gap-2", children: [_jsx(Button, { variant: "outline", asChild: true, children: _jsx(Link, { to: "/logistiek-engine", children: "Terug naar overzicht" }) }), _jsxs(Button, { variant: "outline", onClick: () => void laden(), disabled: loading, children: [_jsx(RefreshCw, { className: "mr-2 h-4 w-4" }), "Vernieuwen"] })] })] }), _jsx(MinuutrondeCard, {}), _jsx(InklapbaarVenster, { titel: "Binnengekomen orders", omschrijving: "Klik een order open voor elke stap, beslissing, foutmelding en elk document.", standaardOpen: true, children: _jsx(OrderLogboek, { titel: "Binnengekomen orders" }) }), _jsx(InklapbaarVenster, { titel: "Consistentie", omschrijving: "Controle of alle modules hetzelfde tonen.", children: _jsx(ConsistentieCard, {}) }), _jsx(InklapbaarVenster, { titel: "Beladingsafwijkingen", omschrijving: "Verschillen tussen onze belading en de laatste Floriday-gegevens.", children: _jsx(BeladingsafwijkingenCard, {}) }), _jsx(InklapbaarVenster, { titel: "Karplanstatus", omschrijving: "Stand van de karrenindeling.", children: _jsx(KarplanStatusCard, {}) }), _jsxs(InklapbaarVenster, { titel: "Kardekking", omschrijving: "Staat elke bestelregel correct op een kar?", children: [_jsx(KardekkingCard, {}), _jsx(InplanVoortgangCard, {}), _jsx(OrdersZonderKarCard, {}), _jsx(MisluktVerzendbrievenCard, {})] }), _jsx(InklapbaarVenster, { titel: "Vergelijkende planner", omschrijving: "Proefvergelijking: blijft de karindeling gelijk?", children: _jsx(PlannerDiffCard, {}) }), _jsxs(InklapbaarVenster, { titel: "Taken per module", omschrijving: "Openstaande en geplande taken.", children: [telFout && _jsxs("p", { className: "mb-2 text-sm text-destructive", children: ["Telling niet beschikbaar: ", telFout] }), _jsx("div", { className: "grid gap-4 sm:grid-cols-2 lg:grid-cols-3", children: Object.keys(LOGISTICS_MODULES).map((key) => (_jsxs(Card, { children: [_jsxs(CardHeader, { className: "pb-2", children: [_jsx(CardDescription, { children: LOGISTICS_MODULES[key] }), _jsx(CardTitle, { className: "text-2xl", children: perModule[key] ?? 0 })] }), _jsx(CardContent, { className: "text-muted-foreground text-xs", children: "openstaande en geplande taken" })] }, key))) })] })] }));
|
|
41
42
|
}
|
package/dist-lib/index.d.ts
CHANGED
|
@@ -3,6 +3,7 @@ export * from './_core-safelist.js';
|
|
|
3
3
|
export * from './components/LogistiekEnginePage.js';
|
|
4
4
|
export * from './components/RuleEnginePage.js';
|
|
5
5
|
export * from './components/RegiePage.js';
|
|
6
|
+
export { InplanVoortgangCard } from './components/InplanVoortgangCard.js';
|
|
6
7
|
export * from './components/ModulePromptsPage.js';
|
|
7
8
|
export * from './components/LadingdragersPage.js';
|
|
8
9
|
export * from './components/BeladingIndelingCard.js';
|
package/dist-lib/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist-lib/index.js
CHANGED
|
@@ -6,6 +6,7 @@ export * from './_core-safelist.js';
|
|
|
6
6
|
export * from './components/LogistiekEnginePage.js';
|
|
7
7
|
export * from './components/RuleEnginePage.js';
|
|
8
8
|
export * from './components/RegiePage.js';
|
|
9
|
+
export { InplanVoortgangCard } from './components/InplanVoortgangCard.js';
|
|
9
10
|
export * from './components/ModulePromptsPage.js';
|
|
10
11
|
export * from './components/LadingdragersPage.js';
|
|
11
12
|
export * from './components/BeladingIndelingCard.js';
|
|
@@ -13486,6 +13486,30 @@ export type Database = {
|
|
|
13486
13486
|
}
|
|
13487
13487
|
];
|
|
13488
13488
|
};
|
|
13489
|
+
logistics_index_log: {
|
|
13490
|
+
Row: {
|
|
13491
|
+
aangemaakt_at: string;
|
|
13492
|
+
duur_ms: number | null;
|
|
13493
|
+
index_naam: string;
|
|
13494
|
+
rijen: number | null;
|
|
13495
|
+
tabel: string;
|
|
13496
|
+
};
|
|
13497
|
+
Insert: {
|
|
13498
|
+
aangemaakt_at?: string;
|
|
13499
|
+
duur_ms?: number | null;
|
|
13500
|
+
index_naam: string;
|
|
13501
|
+
rijen?: number | null;
|
|
13502
|
+
tabel: string;
|
|
13503
|
+
};
|
|
13504
|
+
Update: {
|
|
13505
|
+
aangemaakt_at?: string;
|
|
13506
|
+
duur_ms?: number | null;
|
|
13507
|
+
index_naam?: string;
|
|
13508
|
+
rijen?: number | null;
|
|
13509
|
+
tabel?: string;
|
|
13510
|
+
};
|
|
13511
|
+
Relationships: [];
|
|
13512
|
+
};
|
|
13489
13513
|
logistics_layer_override_log: {
|
|
13490
13514
|
Row: {
|
|
13491
13515
|
cart_id: string;
|
|
@@ -14530,6 +14554,90 @@ export type Database = {
|
|
|
14530
14554
|
}
|
|
14531
14555
|
];
|
|
14532
14556
|
};
|
|
14557
|
+
logistics_schedule_fp: {
|
|
14558
|
+
Row: {
|
|
14559
|
+
fp: string;
|
|
14560
|
+
ingepland_at: string;
|
|
14561
|
+
order_ref: string;
|
|
14562
|
+
};
|
|
14563
|
+
Insert: {
|
|
14564
|
+
fp: string;
|
|
14565
|
+
ingepland_at?: string;
|
|
14566
|
+
order_ref: string;
|
|
14567
|
+
};
|
|
14568
|
+
Update: {
|
|
14569
|
+
fp?: string;
|
|
14570
|
+
ingepland_at?: string;
|
|
14571
|
+
order_ref?: string;
|
|
14572
|
+
};
|
|
14573
|
+
Relationships: [];
|
|
14574
|
+
};
|
|
14575
|
+
logistics_schedule_voortgang: {
|
|
14576
|
+
Row: {
|
|
14577
|
+
bijgewerkt_at: string | null;
|
|
14578
|
+
duur_ms: number | null;
|
|
14579
|
+
fouten: number;
|
|
14580
|
+
gestart_at: string | null;
|
|
14581
|
+
id: boolean;
|
|
14582
|
+
ingepland: number;
|
|
14583
|
+
klaar: boolean;
|
|
14584
|
+
laatste_fout: string | null;
|
|
14585
|
+
overgeslagen: number;
|
|
14586
|
+
run_id: string | null;
|
|
14587
|
+
totaal: number;
|
|
14588
|
+
verwerkt: number;
|
|
14589
|
+
};
|
|
14590
|
+
Insert: {
|
|
14591
|
+
bijgewerkt_at?: string | null;
|
|
14592
|
+
duur_ms?: number | null;
|
|
14593
|
+
fouten?: number;
|
|
14594
|
+
gestart_at?: string | null;
|
|
14595
|
+
id?: boolean;
|
|
14596
|
+
ingepland?: number;
|
|
14597
|
+
klaar?: boolean;
|
|
14598
|
+
laatste_fout?: string | null;
|
|
14599
|
+
overgeslagen?: number;
|
|
14600
|
+
run_id?: string | null;
|
|
14601
|
+
totaal?: number;
|
|
14602
|
+
verwerkt?: number;
|
|
14603
|
+
};
|
|
14604
|
+
Update: {
|
|
14605
|
+
bijgewerkt_at?: string | null;
|
|
14606
|
+
duur_ms?: number | null;
|
|
14607
|
+
fouten?: number;
|
|
14608
|
+
gestart_at?: string | null;
|
|
14609
|
+
id?: boolean;
|
|
14610
|
+
ingepland?: number;
|
|
14611
|
+
klaar?: boolean;
|
|
14612
|
+
laatste_fout?: string | null;
|
|
14613
|
+
overgeslagen?: number;
|
|
14614
|
+
run_id?: string | null;
|
|
14615
|
+
totaal?: number;
|
|
14616
|
+
verwerkt?: number;
|
|
14617
|
+
};
|
|
14618
|
+
Relationships: [];
|
|
14619
|
+
};
|
|
14620
|
+
logistics_schedule_werklijst: {
|
|
14621
|
+
Row: {
|
|
14622
|
+
order_ref: string;
|
|
14623
|
+
run_id: string;
|
|
14624
|
+
uitkomst: string | null;
|
|
14625
|
+
verwerkt_at: string | null;
|
|
14626
|
+
};
|
|
14627
|
+
Insert: {
|
|
14628
|
+
order_ref: string;
|
|
14629
|
+
run_id: string;
|
|
14630
|
+
uitkomst?: string | null;
|
|
14631
|
+
verwerkt_at?: string | null;
|
|
14632
|
+
};
|
|
14633
|
+
Update: {
|
|
14634
|
+
order_ref?: string;
|
|
14635
|
+
run_id?: string;
|
|
14636
|
+
uitkomst?: string | null;
|
|
14637
|
+
verwerkt_at?: string | null;
|
|
14638
|
+
};
|
|
14639
|
+
Relationships: [];
|
|
14640
|
+
};
|
|
14533
14641
|
logistics_shipping_note_scan: {
|
|
14534
14642
|
Row: {
|
|
14535
14643
|
barcode: string;
|
|
@@ -30638,6 +30746,16 @@ export type Database = {
|
|
|
30638
30746
|
Args: never;
|
|
30639
30747
|
Returns: boolean;
|
|
30640
30748
|
};
|
|
30749
|
+
_layouts_toegang_besluit: {
|
|
30750
|
+
Args: {
|
|
30751
|
+
p_alleen_beheer: boolean;
|
|
30752
|
+
p_beheerder: boolean;
|
|
30753
|
+
p_ingelogd: boolean;
|
|
30754
|
+
p_request_path: string;
|
|
30755
|
+
p_server: boolean;
|
|
30756
|
+
};
|
|
30757
|
+
Returns: string;
|
|
30758
|
+
};
|
|
30641
30759
|
_layouts_toegang_server_of_ingelogd: {
|
|
30642
30760
|
Args: {
|
|
30643
30761
|
p_alleen_beheer: boolean;
|
|
@@ -33584,6 +33702,26 @@ export type Database = {
|
|
|
33584
33702
|
rijen: number;
|
|
33585
33703
|
}[];
|
|
33586
33704
|
};
|
|
33705
|
+
layouts_install_check: {
|
|
33706
|
+
Args: never;
|
|
33707
|
+
Returns: Json;
|
|
33708
|
+
};
|
|
33709
|
+
layouts_kies_sticker_route: {
|
|
33710
|
+
Args: {
|
|
33711
|
+
p_a4_printer: string;
|
|
33712
|
+
p_a4_vel: Json;
|
|
33713
|
+
p_etiketten: Json;
|
|
33714
|
+
p_heeft_barcode: boolean;
|
|
33715
|
+
p_instelling: Json;
|
|
33716
|
+
p_sticker_breedte_mm: number;
|
|
33717
|
+
p_sticker_hoogte_mm: number;
|
|
33718
|
+
};
|
|
33719
|
+
Returns: Json;
|
|
33720
|
+
};
|
|
33721
|
+
layouts_sticker_verkleinen: {
|
|
33722
|
+
Args: never;
|
|
33723
|
+
Returns: Json;
|
|
33724
|
+
};
|
|
33587
33725
|
layouts_vroege_sticker_waarschuwing: {
|
|
33588
33726
|
Args: {
|
|
33589
33727
|
p_tot: string;
|
|
@@ -33595,6 +33733,10 @@ export type Database = {
|
|
|
33595
33733
|
Args: never;
|
|
33596
33734
|
Returns: Json;
|
|
33597
33735
|
};
|
|
33736
|
+
layouts_zorg_voor_sticker_verkleinen: {
|
|
33737
|
+
Args: never;
|
|
33738
|
+
Returns: Json;
|
|
33739
|
+
};
|
|
33598
33740
|
list_medewerkers: {
|
|
33599
33741
|
Args: never;
|
|
33600
33742
|
Returns: {
|
|
@@ -36715,6 +36857,17 @@ export type Database = {
|
|
|
36715
36857
|
};
|
|
36716
36858
|
Returns: Json;
|
|
36717
36859
|
};
|
|
36860
|
+
logistics_schedule_global_fp: {
|
|
36861
|
+
Args: never;
|
|
36862
|
+
Returns: string;
|
|
36863
|
+
};
|
|
36864
|
+
logistics_schedule_order_fp: {
|
|
36865
|
+
Args: {
|
|
36866
|
+
p_global: string;
|
|
36867
|
+
p_order_ref: string;
|
|
36868
|
+
};
|
|
36869
|
+
Returns: string;
|
|
36870
|
+
};
|
|
36718
36871
|
logistics_schedule_tasks: {
|
|
36719
36872
|
Args: never;
|
|
36720
36873
|
Returns: number;
|
|
@@ -36724,6 +36877,12 @@ export type Database = {
|
|
|
36724
36877
|
};
|
|
36725
36878
|
Returns: number;
|
|
36726
36879
|
};
|
|
36880
|
+
logistics_schedule_tasks_batch: {
|
|
36881
|
+
Args: {
|
|
36882
|
+
p_opties: Json;
|
|
36883
|
+
};
|
|
36884
|
+
Returns: Json;
|
|
36885
|
+
};
|
|
36727
36886
|
logistics_set_components_scaled: {
|
|
36728
36887
|
Args: {
|
|
36729
36888
|
p_order_item_id: string;
|
|
@@ -42399,6 +42558,13 @@ export type Database = {
|
|
|
42399
42558
|
Args: never;
|
|
42400
42559
|
Returns: boolean;
|
|
42401
42560
|
};
|
|
42561
|
+
voorraad_reverse_order_mutations: {
|
|
42562
|
+
Args: {
|
|
42563
|
+
p_order_id: string;
|
|
42564
|
+
p_reason: string;
|
|
42565
|
+
};
|
|
42566
|
+
Returns: Json;
|
|
42567
|
+
};
|
|
42402
42568
|
voorraad_schema_ddl: {
|
|
42403
42569
|
Args: {
|
|
42404
42570
|
p_functions: string[];
|
|
@@ -42424,6 +42590,13 @@ export type Database = {
|
|
|
42424
42590
|
};
|
|
42425
42591
|
Returns: boolean;
|
|
42426
42592
|
};
|
|
42593
|
+
voorraad_withdraw_stock_row: {
|
|
42594
|
+
Args: {
|
|
42595
|
+
p_key: string;
|
|
42596
|
+
p_reason: string;
|
|
42597
|
+
};
|
|
42598
|
+
Returns: Json;
|
|
42599
|
+
};
|
|
42427
42600
|
wake_print_queue: {
|
|
42428
42601
|
Args: {
|
|
42429
42602
|
_min_interval_ms?: number;
|