@flowselections/pick-schermen-kwekers 1.0.94 → 1.0.95
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/pick/PickScherm.d.ts.map +1 -1
- package/dist-lib/components/pick/PickScherm.js +15 -3
- package/dist-lib/integrations/supabase/types.d.ts +2777 -32
- package/dist-lib/integrations/supabase/types.d.ts.map +1 -1
- package/dist-lib/lib/werkvloer.d.ts +6 -0
- package/dist-lib/lib/werkvloer.d.ts.map +1 -1
- package/dist-lib/lib/werkvloer.js +15 -0
- package/dist-lib/lib/werkvloer.test.js +10 -0
- package/package.json +1 -1
- package/schema/pickschermen.sql +51 -1
|
@@ -37,4 +37,10 @@ export declare function reprintQuestion(printedAt: string | null, tz: string | n
|
|
|
37
37
|
export declare const ACCEPTED_STATUSES: Set<string>;
|
|
38
38
|
/** Wachtrij-telling als echt getal: "12 orders nog te printen". */
|
|
39
39
|
export declare function todoCountText(n: number): string;
|
|
40
|
+
/**
|
|
41
|
+
* Bevestigvraag van de Engine (`payload.bevestigVraag`) voor een kaart: de
|
|
42
|
+
* eerste gevulde vraag van zijn karregels, anders null. Het scherm rekent zelf
|
|
43
|
+
* nooit of een kar vol is; het toont alleen wat de Engine vraagt.
|
|
44
|
+
*/
|
|
45
|
+
export declare function confirmQuestionOf(card: WerkvloerCard | null | undefined): string | null;
|
|
40
46
|
//# sourceMappingURL=werkvloer.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"werkvloer.d.ts","sourceRoot":"","sources":["../../src/lib/werkvloer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAIrD;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qDAAqD;IACrD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAsBlE;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAM7D;AASD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAIvD;AAcD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAa,GAAG,MAAM,GAAG,IAAI,CASjG;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAE9E;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAI1F;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGnF;AAED,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,aAA6E,CAAC;AAE5G,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C"}
|
|
1
|
+
{"version":3,"file":"werkvloer.d.ts","sourceRoot":"","sources":["../../src/lib/werkvloer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAIrD;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,aAAa,EAAE,CAAC;IACtB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,MAAM,EAAE,OAAO,CAAC;IAChB,6CAA6C;IAC7C,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,qDAAqD;IACrD,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;CAC1B;AAED,6FAA6F;AAC7F,wBAAgB,UAAU,CAAC,KAAK,EAAE,aAAa,EAAE,GAAG,aAAa,EAAE,CAsBlE;AAED,uFAAuF;AACvF,wBAAgB,UAAU,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,GAAG,IAAI,CAM7D;AASD,wBAAgB,SAAS,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAGzD;AAED,yDAAyD;AACzD,wBAAgB,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAIvD;AAcD,gFAAgF;AAChF,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,EAAE,GAAG,OAAa,GAAG,MAAM,GAAG,IAAI,CASjG;AAED,2CAA2C;AAC3C,wBAAgB,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,GAAG,IAAI,CAE9E;AAED,4EAA4E;AAC5E,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAI1F;AAED,qDAAqD;AACrD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,CAGrE;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI,EAAE,EAAE,EAAE,MAAM,GAAG,IAAI,GAAG,MAAM,CAGnF;AAED,2DAA2D;AAC3D,eAAO,MAAM,iBAAiB,aAA6E,CAAC;AAE5G,mEAAmE;AACnE,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,CAE/C;AAMD;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,GAAG,IAAI,CAQvF"}
|
|
@@ -119,3 +119,18 @@ export function todoCountText(n) {
|
|
|
119
119
|
function textOf(v) {
|
|
120
120
|
return typeof v === "string" && v.trim() ? v.trim() : null;
|
|
121
121
|
}
|
|
122
|
+
/**
|
|
123
|
+
* Bevestigvraag van de Engine (`payload.bevestigVraag`) voor een kaart: de
|
|
124
|
+
* eerste gevulde vraag van zijn karregels, anders null. Het scherm rekent zelf
|
|
125
|
+
* nooit of een kar vol is; het toont alleen wat de Engine vraagt.
|
|
126
|
+
*/
|
|
127
|
+
export function confirmQuestionOf(card) {
|
|
128
|
+
const rows = Array.isArray(card?.rows) ? card.rows : [];
|
|
129
|
+
for (const r of rows) {
|
|
130
|
+
const p = (r.payload && typeof r.payload === "object" ? r.payload : {});
|
|
131
|
+
const q = p["bevestigVraag"];
|
|
132
|
+
if (typeof q === "string" && q.trim() !== "")
|
|
133
|
+
return q.trim();
|
|
134
|
+
}
|
|
135
|
+
return null;
|
|
136
|
+
}
|
|
@@ -47,3 +47,13 @@ describe("werkvloer", () => {
|
|
|
47
47
|
expect(todoCountText(12)).toBe("12 orders nog te printen");
|
|
48
48
|
});
|
|
49
49
|
});
|
|
50
|
+
import { confirmQuestionOf as _cq } from "./werkvloer.js";
|
|
51
|
+
describe("confirmQuestionOf (bevestigVraag van de Engine)", () => {
|
|
52
|
+
const card = (payloads) => ({ key: "k", rows: payloads.map((payload, i) => ({ id: String(i), payload })) });
|
|
53
|
+
it("geeft de vraag van de Engine terug als die gevuld is", () => {
|
|
54
|
+
expect(_cq(card([{}, { bevestigVraag: "Deze kar is nog niet vol. Toch nu printen?" }]))).toBe("Deze kar is nog niet vol. Toch nu printen?");
|
|
55
|
+
});
|
|
56
|
+
it("geen vraag bij een volle kar (leeg veld)", () => {
|
|
57
|
+
expect(_cq(card([{ bevestigVraag: "" }, { bevestigVraag: null }]))).toBeNull();
|
|
58
|
+
});
|
|
59
|
+
});
|
package/package.json
CHANGED
package/schema/pickschermen.sql
CHANGED
|
@@ -6569,4 +6569,54 @@ BEGIN
|
|
|
6569
6569
|
VALUES ('pick_queue', NEW.id, TG_OP, auth.uid(), v_o, v_n);
|
|
6570
6570
|
RETURN NEW;
|
|
6571
6571
|
END; $function$;
|
|
6572
|
-
GRANT EXECUTE ON FUNCTION public.pick_queue_audit() TO anon, authenticated, service_role;
|
|
6572
|
+
GRANT EXECUTE ON FUNCTION public.pick_queue_audit() TO anon, authenticated, service_role;
|
|
6573
|
+
-- ==== 20261111093706_3c5ab944-e36a-4e47-9a41-681415615661.sql ====
|
|
6574
|
+
CREATE INDEX IF NOT EXISTS idx_pick_station_history_created_at ON public.pick_station_history USING btree (created_at);
|
|
6575
|
+
|
|
6576
|
+
CREATE OR REPLACE FUNCTION public.pick_cleanup_history()
|
|
6577
|
+
RETURNS jsonb
|
|
6578
|
+
LANGUAGE plpgsql
|
|
6579
|
+
VOLATILE
|
|
6580
|
+
SECURITY DEFINER
|
|
6581
|
+
SET search_path TO 'public'
|
|
6582
|
+
AS $function$
|
|
6583
|
+
DECLARE
|
|
6584
|
+
v_days integer; v_start timestamptz := clock_timestamp(); v_total integer := 0; n integer;
|
|
6585
|
+
v_bron text := 'standaard'; v_max integer := 5000; v_portie integer := 1000; v_rest boolean := false;
|
|
6586
|
+
BEGIN
|
|
6587
|
+
IF current_user NOT IN ('postgres','service_role','supabase_admin')
|
|
6588
|
+
AND NOT COALESCE(public.has_role(auth.uid(), 'admin'), false) THEN
|
|
6589
|
+
RAISE EXCEPTION 'Geen toegang tot het opruimen van de pickhistorie.' USING ERRCODE = '42501';
|
|
6590
|
+
END IF;
|
|
6591
|
+
IF to_regprocedure('public.logistics_retention_days(text)') IS NOT NULL THEN
|
|
6592
|
+
BEGIN
|
|
6593
|
+
EXECUTE 'SELECT public.logistics_retention_days($1)' INTO v_days USING 'pick_history_retention_days';
|
|
6594
|
+
v_bron := 'engine';
|
|
6595
|
+
EXCEPTION WHEN OTHERS THEN
|
|
6596
|
+
RAISE WARNING 'pick_cleanup_history: termijn uit Engine niet leesbaar (%), standaard 30 dagen', SQLERRM;
|
|
6597
|
+
v_days := NULL;
|
|
6598
|
+
END;
|
|
6599
|
+
END IF;
|
|
6600
|
+
IF v_days IS NULL OR v_days < 1 THEN v_days := 30; v_bron := 'standaard'; END IF;
|
|
6601
|
+
|
|
6602
|
+
BEGIN
|
|
6603
|
+
LOOP
|
|
6604
|
+
WITH weg AS (SELECT id FROM public.pick_station_history
|
|
6605
|
+
WHERE created_at < now() - make_interval(days => v_days)
|
|
6606
|
+
ORDER BY created_at LIMIT LEAST(v_portie, v_max - v_total))
|
|
6607
|
+
DELETE FROM public.pick_station_history h USING weg WHERE h.id = weg.id;
|
|
6608
|
+
GET DIAGNOSTICS n = ROW_COUNT;
|
|
6609
|
+
v_total := v_total + n;
|
|
6610
|
+
IF n = 0 THEN EXIT; END IF;
|
|
6611
|
+
IF v_total >= v_max OR clock_timestamp() - v_start > interval '10 seconds' THEN v_rest := true; EXIT; END IF;
|
|
6612
|
+
END LOOP;
|
|
6613
|
+
EXCEPTION WHEN OTHERS THEN
|
|
6614
|
+
RAISE WARNING 'pick_cleanup_history mislukt na % verwijderde regels: % (%)', v_total, SQLERRM, SQLSTATE;
|
|
6615
|
+
RAISE;
|
|
6616
|
+
END;
|
|
6617
|
+
RETURN jsonb_build_object('verwijderd', v_total, 'termijn_dagen', v_days, 'bron', v_bron,
|
|
6618
|
+
'mogelijk_meer', v_rest,
|
|
6619
|
+
'duur_ms', round(extract(epoch FROM clock_timestamp() - v_start) * 1000));
|
|
6620
|
+
END $function$;
|
|
6621
|
+
REVOKE ALL ON FUNCTION public.pick_cleanup_history() FROM PUBLIC, anon, authenticated;
|
|
6622
|
+
GRANT EXECUTE ON FUNCTION public.pick_cleanup_history() TO service_role;
|