@flowselections/floriday-voorraad 1.0.97 → 1.0.101
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.
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
-- @flowselections/floriday-voorraad 1.0.
|
|
1
|
+
-- @flowselections/floriday-voorraad 1.0.100 – volledig schema (idempotent, geen gegevens).
|
|
2
2
|
-- Gegenereerd uit de database met scripts/generate-voorraad-schema.py. Niet met de hand wijzigen.
|
|
3
3
|
-- Volgorde 20. Ontbrekende tabellen van andere modules worden overgeslagen met een NOTICE; draai opnieuw na die module.
|
|
4
4
|
-- De statuscontrole van floriday_continuous_stock_queue is van Voorraad en wordt hier opnieuw gemaakt.
|
|
@@ -502,6 +502,16 @@ ALTER TABLE public.voorraad_buffer_state ADD COLUMN IF NOT EXISTS detached_order
|
|
|
502
502
|
ALTER TABLE public.voorraad_buffer_state ADD COLUMN IF NOT EXISTS created_at timestamp with time zone DEFAULT now() NOT NULL;
|
|
503
503
|
ALTER TABLE public.voorraad_buffer_state ADD COLUMN IF NOT EXISTS updated_at timestamp with time zone DEFAULT now() NOT NULL;
|
|
504
504
|
|
|
505
|
+
-- voorraad_correcties
|
|
506
|
+
CREATE TABLE IF NOT EXISTS public.voorraad_correcties ();
|
|
507
|
+
ALTER TABLE public.voorraad_correcties ADD COLUMN IF NOT EXISTS id uuid DEFAULT gen_random_uuid() NOT NULL;
|
|
508
|
+
ALTER TABLE public.voorraad_correcties ADD COLUMN IF NOT EXISTS correctie text NOT NULL;
|
|
509
|
+
ALTER TABLE public.voorraad_correcties ADD COLUMN IF NOT EXISTS uitgevoerd_op timestamp with time zone DEFAULT now() NOT NULL;
|
|
510
|
+
ALTER TABLE public.voorraad_correcties ADD COLUMN IF NOT EXISTS uitgevoerd_door text NOT NULL;
|
|
511
|
+
ALTER TABLE public.voorraad_correcties ADD COLUMN IF NOT EXISTS proef boolean NOT NULL;
|
|
512
|
+
ALTER TABLE public.voorraad_correcties ADD COLUMN IF NOT EXISTS aantallen jsonb DEFAULT '{}'::jsonb NOT NULL;
|
|
513
|
+
ALTER TABLE public.voorraad_correcties ADD COLUMN IF NOT EXISTS hash_ok boolean;
|
|
514
|
+
|
|
505
515
|
-- voorraad_custom_fields
|
|
506
516
|
CREATE TABLE IF NOT EXISTS public.voorraad_custom_fields ();
|
|
507
517
|
ALTER TABLE public.voorraad_custom_fields ADD COLUMN IF NOT EXISTS id uuid DEFAULT gen_random_uuid() NOT NULL;
|
|
@@ -622,6 +632,7 @@ CREATE OR REPLACE FUNCTION public._floriday_queue_cleanup_batch(p_statuses text[
|
|
|
622
632
|
AS $function$
|
|
623
633
|
DECLARE v_n integer;
|
|
624
634
|
BEGIN
|
|
635
|
+
PERFORM public.voorraad_vereis('server', '_floriday_queue_cleanup_batch');
|
|
625
636
|
WITH victims AS (
|
|
626
637
|
SELECT q.id FROM public.floriday_continuous_stock_queue q
|
|
627
638
|
WHERE q.status = ANY(p_statuses)
|
|
@@ -641,12 +652,15 @@ BEGIN
|
|
|
641
652
|
END $function$
|
|
642
653
|
;
|
|
643
654
|
REVOKE ALL ON FUNCTION _floriday_queue_cleanup_batch(text[],integer,boolean,integer) FROM PUBLIC;
|
|
655
|
+
REVOKE ALL ON FUNCTION _floriday_queue_cleanup_batch(text[],integer,boolean,integer) FROM anon;
|
|
644
656
|
GRANT EXECUTE ON FUNCTION _floriday_queue_cleanup_batch(text[],integer,boolean,integer) TO service_role;
|
|
645
657
|
CREATE OR REPLACE FUNCTION public._migrate_rewrite_stock_key(_from_key text, _to_key text)
|
|
646
658
|
RETURNS void
|
|
647
659
|
LANGUAGE plpgsql
|
|
660
|
+
SET search_path TO 'public'
|
|
648
661
|
AS $function$
|
|
649
|
-
BEGIN
|
|
662
|
+
BEGIN
|
|
663
|
+
PERFORM public.voorraad_vereis('server', '_migrate_rewrite_stock_key');
|
|
650
664
|
IF _from_key = _to_key THEN RETURN; END IF;
|
|
651
665
|
|
|
652
666
|
-- Voor rijen die botsen: som fysiek/reserved/incoming in de target, kies max voor minimum
|
|
@@ -682,8 +696,11 @@ END;
|
|
|
682
696
|
$function$
|
|
683
697
|
;
|
|
684
698
|
REVOKE ALL ON FUNCTION _migrate_rewrite_stock_key(text,text) FROM PUBLIC;
|
|
685
|
-
|
|
686
|
-
|
|
699
|
+
REVOKE ALL ON FUNCTION _migrate_rewrite_stock_key(text,text) FROM anon;
|
|
700
|
+
REVOKE EXECUTE ON FUNCTION _migrate_rewrite_stock_key(text,text) FROM PUBLIC;
|
|
701
|
+
GRANT EXECUTE ON FUNCTION _migrate_rewrite_stock_key(text,text) TO authenticated;
|
|
702
|
+
GRANT EXECUTE ON FUNCTION _migrate_rewrite_stock_key(text,text) TO service_role;
|
|
703
|
+
REVOKE EXECUTE ON FUNCTION _migrate_rewrite_stock_key(text,text) FROM anon;
|
|
687
704
|
GRANT EXECUTE ON FUNCTION _migrate_rewrite_stock_key(text,text) TO authenticated;
|
|
688
705
|
GRANT EXECUTE ON FUNCTION _migrate_rewrite_stock_key(text,text) TO service_role;
|
|
689
706
|
CREATE OR REPLACE FUNCTION public._stock_import_caller(p_owner uuid)
|
|
@@ -696,6 +713,7 @@ AS $function$
|
|
|
696
713
|
$function$
|
|
697
714
|
;
|
|
698
715
|
REVOKE ALL ON FUNCTION _stock_import_caller(uuid) FROM PUBLIC;
|
|
716
|
+
REVOKE ALL ON FUNCTION _stock_import_caller(uuid) FROM anon;
|
|
699
717
|
GRANT EXECUTE ON FUNCTION _stock_import_caller(uuid) TO service_role;
|
|
700
718
|
CREATE OR REPLACE FUNCTION public.apply_fust_stock_mutation()
|
|
701
719
|
RETURNS trigger
|
|
@@ -713,8 +731,11 @@ END;
|
|
|
713
731
|
$function$
|
|
714
732
|
;
|
|
715
733
|
REVOKE ALL ON FUNCTION apply_fust_stock_mutation() FROM PUBLIC;
|
|
716
|
-
|
|
717
|
-
|
|
734
|
+
REVOKE ALL ON FUNCTION apply_fust_stock_mutation() FROM anon;
|
|
735
|
+
REVOKE EXECUTE ON FUNCTION apply_fust_stock_mutation() FROM PUBLIC;
|
|
736
|
+
GRANT EXECUTE ON FUNCTION apply_fust_stock_mutation() TO authenticated;
|
|
737
|
+
GRANT EXECUTE ON FUNCTION apply_fust_stock_mutation() TO service_role;
|
|
738
|
+
REVOKE EXECUTE ON FUNCTION apply_fust_stock_mutation() FROM anon;
|
|
718
739
|
GRANT EXECUTE ON FUNCTION apply_fust_stock_mutation() TO authenticated;
|
|
719
740
|
GRANT EXECUTE ON FUNCTION apply_fust_stock_mutation() TO service_role;
|
|
720
741
|
CREATE OR REPLACE FUNCTION public.apply_stock_consumption(p_trade_item_key text, p_qty numeric, p_order_id uuid, p_order_item_id uuid, p_source text, p_reason text)
|
|
@@ -728,6 +749,7 @@ DECLARE
|
|
|
728
749
|
v_src text := CASE WHEN v_norm = 'FO' THEN 'FLORIDAY_ORDER' ELSE 'ORDER_DELIVERY' END;
|
|
729
750
|
v_ctx record; v_key text; r public.trade_item_stock%ROWTYPE; v_after numeric; v_res_after numeric;
|
|
730
751
|
BEGIN
|
|
752
|
+
PERFORM public.voorraad_vereis('ingelogd', 'apply_stock_consumption');
|
|
731
753
|
IF p_trade_item_key IS NULL OR COALESCE(p_qty,0) <= 0 THEN RETURN; END IF;
|
|
732
754
|
SELECT * INTO v_ctx FROM public.get_active_floriday_context();
|
|
733
755
|
v_key := public.ensure_trade_item_stock_row_key(p_trade_item_key);
|
|
@@ -774,8 +796,11 @@ BEGIN
|
|
|
774
796
|
END $function$
|
|
775
797
|
;
|
|
776
798
|
REVOKE ALL ON FUNCTION apply_stock_consumption(text,numeric,uuid,uuid,text,text) FROM PUBLIC;
|
|
777
|
-
|
|
778
|
-
|
|
799
|
+
REVOKE ALL ON FUNCTION apply_stock_consumption(text,numeric,uuid,uuid,text,text) FROM anon;
|
|
800
|
+
REVOKE EXECUTE ON FUNCTION apply_stock_consumption(text,numeric,uuid,uuid,text,text) FROM PUBLIC;
|
|
801
|
+
GRANT EXECUTE ON FUNCTION apply_stock_consumption(text,numeric,uuid,uuid,text,text) TO authenticated;
|
|
802
|
+
GRANT EXECUTE ON FUNCTION apply_stock_consumption(text,numeric,uuid,uuid,text,text) TO service_role;
|
|
803
|
+
REVOKE EXECUTE ON FUNCTION apply_stock_consumption(text,numeric,uuid,uuid,text,text) FROM anon;
|
|
779
804
|
GRANT EXECUTE ON FUNCTION apply_stock_consumption(text,numeric,uuid,uuid,text,text) TO authenticated;
|
|
780
805
|
GRANT EXECUTE ON FUNCTION apply_stock_consumption(text,numeric,uuid,uuid,text,text) TO service_role;
|
|
781
806
|
CREATE OR REPLACE FUNCTION public.apply_stock_reservation(p_trade_item_key text, p_qty numeric, p_order_id uuid, p_order_item_id uuid, p_source text, p_reason text)
|
|
@@ -789,6 +814,7 @@ DECLARE
|
|
|
789
814
|
v_src text := public.normalize_order_source(p_source);
|
|
790
815
|
v_found boolean := false;
|
|
791
816
|
BEGIN
|
|
817
|
+
PERFORM public.voorraad_vereis('ingelogd', 'apply_stock_reservation');
|
|
792
818
|
IF p_qty = 0 THEN RETURN; END IF;
|
|
793
819
|
IF p_trade_item_key IS NULL THEN
|
|
794
820
|
INSERT INTO public.stock_mutation_log(trade_item_key, order_id, order_item_id, order_source, mutation_type, qty_delta, reason, created_by)
|
|
@@ -814,8 +840,11 @@ BEGIN
|
|
|
814
840
|
END $function$
|
|
815
841
|
;
|
|
816
842
|
REVOKE ALL ON FUNCTION apply_stock_reservation(text,numeric,uuid,uuid,text,text) FROM PUBLIC;
|
|
817
|
-
|
|
818
|
-
|
|
843
|
+
REVOKE ALL ON FUNCTION apply_stock_reservation(text,numeric,uuid,uuid,text,text) FROM anon;
|
|
844
|
+
REVOKE EXECUTE ON FUNCTION apply_stock_reservation(text,numeric,uuid,uuid,text,text) FROM PUBLIC;
|
|
845
|
+
GRANT EXECUTE ON FUNCTION apply_stock_reservation(text,numeric,uuid,uuid,text,text) TO authenticated;
|
|
846
|
+
GRANT EXECUTE ON FUNCTION apply_stock_reservation(text,numeric,uuid,uuid,text,text) TO service_role;
|
|
847
|
+
REVOKE EXECUTE ON FUNCTION apply_stock_reservation(text,numeric,uuid,uuid,text,text) FROM anon;
|
|
819
848
|
GRANT EXECUTE ON FUNCTION apply_stock_reservation(text,numeric,uuid,uuid,text,text) TO authenticated;
|
|
820
849
|
GRANT EXECUTE ON FUNCTION apply_stock_reservation(text,numeric,uuid,uuid,text,text) TO service_role;
|
|
821
850
|
CREATE OR REPLACE FUNCTION public.autolink_product_to_floriday(p_product_id uuid)
|
|
@@ -826,6 +855,7 @@ CREATE OR REPLACE FUNCTION public.autolink_product_to_floriday(p_product_id uuid
|
|
|
826
855
|
AS $function$
|
|
827
856
|
DECLARE v_row RECORD; v_new_key text; v_old_key text; v_floriday_id text;
|
|
828
857
|
BEGIN
|
|
858
|
+
PERFORM public.voorraad_vereis('ingelogd', 'autolink_product_to_floriday');
|
|
829
859
|
SELECT id, product, barcode, trade_item_key, floriday_trade_item_id INTO v_row
|
|
830
860
|
FROM public.products WHERE id = p_product_id;
|
|
831
861
|
IF NOT FOUND THEN RETURN NULL; END IF;
|
|
@@ -870,8 +900,11 @@ END;
|
|
|
870
900
|
$function$
|
|
871
901
|
;
|
|
872
902
|
REVOKE ALL ON FUNCTION autolink_product_to_floriday(uuid) FROM PUBLIC;
|
|
873
|
-
|
|
874
|
-
|
|
903
|
+
REVOKE ALL ON FUNCTION autolink_product_to_floriday(uuid) FROM anon;
|
|
904
|
+
REVOKE EXECUTE ON FUNCTION autolink_product_to_floriday(uuid) FROM PUBLIC;
|
|
905
|
+
GRANT EXECUTE ON FUNCTION autolink_product_to_floriday(uuid) TO authenticated;
|
|
906
|
+
GRANT EXECUTE ON FUNCTION autolink_product_to_floriday(uuid) TO service_role;
|
|
907
|
+
REVOKE EXECUTE ON FUNCTION autolink_product_to_floriday(uuid) FROM anon;
|
|
875
908
|
GRANT EXECUTE ON FUNCTION autolink_product_to_floriday(uuid) TO authenticated;
|
|
876
909
|
GRANT EXECUTE ON FUNCTION autolink_product_to_floriday(uuid) TO service_role;
|
|
877
910
|
CREATE OR REPLACE FUNCTION public.backfill_open_order_reservations()
|
|
@@ -885,6 +918,7 @@ DECLARE
|
|
|
885
918
|
v_key text;
|
|
886
919
|
n int := 0;
|
|
887
920
|
BEGIN
|
|
921
|
+
PERFORM public.voorraad_vereis('server', 'backfill_open_order_reservations');
|
|
888
922
|
FOR r IN
|
|
889
923
|
SELECT oi.id AS oi_id, oi.order_id, oi.product_id, oi.quantity,
|
|
890
924
|
COALESCE(o.order_source,'manual') AS src
|
|
@@ -903,8 +937,11 @@ BEGIN
|
|
|
903
937
|
END $function$
|
|
904
938
|
;
|
|
905
939
|
REVOKE ALL ON FUNCTION backfill_open_order_reservations() FROM PUBLIC;
|
|
906
|
-
|
|
907
|
-
|
|
940
|
+
REVOKE ALL ON FUNCTION backfill_open_order_reservations() FROM anon;
|
|
941
|
+
REVOKE EXECUTE ON FUNCTION backfill_open_order_reservations() FROM PUBLIC;
|
|
942
|
+
GRANT EXECUTE ON FUNCTION backfill_open_order_reservations() TO authenticated;
|
|
943
|
+
GRANT EXECUTE ON FUNCTION backfill_open_order_reservations() TO service_role;
|
|
944
|
+
REVOKE EXECUTE ON FUNCTION backfill_open_order_reservations() FROM anon;
|
|
908
945
|
GRANT EXECUTE ON FUNCTION backfill_open_order_reservations() TO authenticated;
|
|
909
946
|
GRANT EXECUTE ON FUNCTION backfill_open_order_reservations() TO service_role;
|
|
910
947
|
CREATE OR REPLACE FUNCTION public.calculate_floriday_desired_stock(p_connection_id uuid, p_product_id uuid)
|
|
@@ -917,6 +954,7 @@ DECLARE
|
|
|
917
954
|
s public.floriday_inventory_settings%ROWTYPE;
|
|
918
955
|
v_pack integer; v_calc jsonb; v_type text; v_avail integer := 0; v_raw integer; v_reason text;
|
|
919
956
|
BEGIN
|
|
957
|
+
PERFORM public.voorraad_vereis('ingelogd', 'calculate_floriday_desired_stock');
|
|
920
958
|
SELECT * INTO s FROM public.floriday_inventory_settings
|
|
921
959
|
WHERE connection_id = p_connection_id AND product_id = p_product_id;
|
|
922
960
|
stock_mode := COALESCE(s.stock_mode, 'FOLLOW_ERP');
|
|
@@ -960,6 +998,7 @@ END;
|
|
|
960
998
|
$function$
|
|
961
999
|
;
|
|
962
1000
|
REVOKE ALL ON FUNCTION calculate_floriday_desired_stock(uuid,uuid) FROM PUBLIC;
|
|
1001
|
+
REVOKE ALL ON FUNCTION calculate_floriday_desired_stock(uuid,uuid) FROM anon;
|
|
963
1002
|
GRANT EXECUTE ON FUNCTION calculate_floriday_desired_stock(uuid,uuid) TO service_role;
|
|
964
1003
|
CREATE OR REPLACE FUNCTION public.calculate_structure_available(p_connection_id uuid, p_product_id uuid, p_level integer DEFAULT 0, p_path uuid[] DEFAULT '{}'::uuid[])
|
|
965
1004
|
RETURNS jsonb
|
|
@@ -972,6 +1011,7 @@ DECLARE
|
|
|
972
1011
|
v_sum integer := 0; v_min integer; v_limit uuid; v_reason text; v_info text;
|
|
973
1012
|
v_parts jsonb := '[]'; v_member uuid; v_qty numeric; v_possible integer; v_path uuid[];
|
|
974
1013
|
BEGIN
|
|
1014
|
+
PERFORM public.voorraad_vereis('ingelogd', 'calculate_structure_available');
|
|
975
1015
|
IF p_product_id = ANY(p_path) THEN
|
|
976
1016
|
RETURN jsonb_build_object('type','UNKNOWN','available',0,'reason','CYCLE',
|
|
977
1017
|
'path', to_jsonb(p_path || p_product_id));
|
|
@@ -1066,6 +1106,7 @@ EXCEPTION WHEN others THEN
|
|
|
1066
1106
|
END $function$
|
|
1067
1107
|
;
|
|
1068
1108
|
REVOKE ALL ON FUNCTION calculate_structure_available(uuid,uuid,integer,uuid[]) FROM PUBLIC;
|
|
1109
|
+
REVOKE ALL ON FUNCTION calculate_structure_available(uuid,uuid,integer,uuid[]) FROM anon;
|
|
1069
1110
|
GRANT EXECUTE ON FUNCTION calculate_structure_available(uuid,uuid,integer,uuid[]) TO service_role;
|
|
1070
1111
|
CREATE OR REPLACE FUNCTION public.canonicalize_trade_item_stock_key()
|
|
1071
1112
|
RETURNS trigger
|
|
@@ -1137,8 +1178,11 @@ END;
|
|
|
1137
1178
|
$function$
|
|
1138
1179
|
;
|
|
1139
1180
|
REVOKE ALL ON FUNCTION canonicalize_trade_item_stock_key() FROM PUBLIC;
|
|
1140
|
-
|
|
1141
|
-
|
|
1181
|
+
REVOKE ALL ON FUNCTION canonicalize_trade_item_stock_key() FROM anon;
|
|
1182
|
+
REVOKE EXECUTE ON FUNCTION canonicalize_trade_item_stock_key() FROM PUBLIC;
|
|
1183
|
+
GRANT EXECUTE ON FUNCTION canonicalize_trade_item_stock_key() TO authenticated;
|
|
1184
|
+
GRANT EXECUTE ON FUNCTION canonicalize_trade_item_stock_key() TO service_role;
|
|
1185
|
+
REVOKE EXECUTE ON FUNCTION canonicalize_trade_item_stock_key() FROM anon;
|
|
1142
1186
|
GRANT EXECUTE ON FUNCTION canonicalize_trade_item_stock_key() TO authenticated;
|
|
1143
1187
|
GRANT EXECUTE ON FUNCTION canonicalize_trade_item_stock_key() TO service_role;
|
|
1144
1188
|
CREATE OR REPLACE FUNCTION public.check_product_structure(p_kind text, p_parent uuid, p_child uuid, p_name text DEFAULT NULL::text)
|
|
@@ -1149,6 +1193,7 @@ CREATE OR REPLACE FUNCTION public.check_product_structure(p_kind text, p_parent
|
|
|
1149
1193
|
AS $function$
|
|
1150
1194
|
DECLARE v_head uuid; v_other uuid; v_path uuid[]; v_depth integer; v_max integer := public.product_structure_max_depth();
|
|
1151
1195
|
BEGIN
|
|
1196
|
+
PERFORM public.voorraad_vereis('ingelogd', 'check_product_structure');
|
|
1152
1197
|
ok := true; code := NULL; message := NULL;
|
|
1153
1198
|
IF p_kind = 'group_member' THEN
|
|
1154
1199
|
SELECT COALESCE(g.head_product_id, public.product_id_from_ref(g.head_trade_item_floriday_id)) INTO v_head
|
|
@@ -1231,6 +1276,7 @@ EXCEPTION WHEN others THEN
|
|
|
1231
1276
|
END $function$
|
|
1232
1277
|
;
|
|
1233
1278
|
REVOKE ALL ON FUNCTION check_product_structure(text,uuid,uuid,text) FROM PUBLIC;
|
|
1279
|
+
REVOKE ALL ON FUNCTION check_product_structure(text,uuid,uuid,text) FROM anon;
|
|
1234
1280
|
GRANT EXECUTE ON FUNCTION check_product_structure(text,uuid,uuid,text) TO authenticated;
|
|
1235
1281
|
GRANT EXECUTE ON FUNCTION check_product_structure(text,uuid,uuid,text) TO service_role;
|
|
1236
1282
|
CREATE OR REPLACE FUNCTION public.claim_floriday_base_supply(p_worker text DEFAULT 'voorraad-base-supply'::text)
|
|
@@ -1241,6 +1287,7 @@ CREATE OR REPLACE FUNCTION public.claim_floriday_base_supply(p_worker text DEFAU
|
|
|
1241
1287
|
AS $function$
|
|
1242
1288
|
DECLARE l record;
|
|
1243
1289
|
BEGIN
|
|
1290
|
+
PERFORM public.voorraad_vereis('ingelogd', 'claim_floriday_base_supply');
|
|
1244
1291
|
SELECT * INTO l FROM public.inventory_recompute_limits WHERE inventory_recompute_limits.id;
|
|
1245
1292
|
-- Time-out: blijven hangen aanmaken gaat terug naar wachtend
|
|
1246
1293
|
UPDATE public.floriday_continuous_stock_queue q
|
|
@@ -1273,6 +1320,7 @@ BEGIN
|
|
|
1273
1320
|
END $function$
|
|
1274
1321
|
;
|
|
1275
1322
|
REVOKE ALL ON FUNCTION claim_floriday_base_supply(text) FROM PUBLIC;
|
|
1323
|
+
REVOKE ALL ON FUNCTION claim_floriday_base_supply(text) FROM anon;
|
|
1276
1324
|
GRANT EXECUTE ON FUNCTION claim_floriday_base_supply(text) TO service_role;
|
|
1277
1325
|
CREATE OR REPLACE FUNCTION public.claim_floriday_stock_queue(p_limit integer DEFAULT 25, p_worker text DEFAULT 'auth-module'::text)
|
|
1278
1326
|
RETURNS SETOF floriday_continuous_stock_queue
|
|
@@ -1281,6 +1329,7 @@ CREATE OR REPLACE FUNCTION public.claim_floriday_stock_queue(p_limit integer DEF
|
|
|
1281
1329
|
SET search_path TO 'public'
|
|
1282
1330
|
AS $function$
|
|
1283
1331
|
BEGIN
|
|
1332
|
+
PERFORM public.voorraad_vereis('ingelogd', 'claim_floriday_stock_queue');
|
|
1284
1333
|
RETURN QUERY
|
|
1285
1334
|
WITH candidates AS (
|
|
1286
1335
|
SELECT q.id
|
|
@@ -1306,50 +1355,13 @@ END;
|
|
|
1306
1355
|
$function$
|
|
1307
1356
|
;
|
|
1308
1357
|
REVOKE ALL ON FUNCTION claim_floriday_stock_queue(integer,text) FROM PUBLIC;
|
|
1309
|
-
|
|
1310
|
-
|
|
1358
|
+
REVOKE ALL ON FUNCTION claim_floriday_stock_queue(integer,text) FROM anon;
|
|
1359
|
+
REVOKE EXECUTE ON FUNCTION claim_floriday_stock_queue(integer,text) FROM PUBLIC;
|
|
1360
|
+
GRANT EXECUTE ON FUNCTION claim_floriday_stock_queue(integer,text) TO authenticated;
|
|
1361
|
+
GRANT EXECUTE ON FUNCTION claim_floriday_stock_queue(integer,text) TO service_role;
|
|
1362
|
+
REVOKE EXECUTE ON FUNCTION claim_floriday_stock_queue(integer,text) FROM anon;
|
|
1311
1363
|
GRANT EXECUTE ON FUNCTION claim_floriday_stock_queue(integer,text) TO authenticated;
|
|
1312
1364
|
GRANT EXECUTE ON FUNCTION claim_floriday_stock_queue(integer,text) TO service_role;
|
|
1313
|
-
CREATE OR REPLACE FUNCTION public.claim_logistics_tasks(_owner_module text, _task_type text, _worker text, _limit integer DEFAULT 25, _stale_minutes integer DEFAULT 5)
|
|
1314
|
-
RETURNS SETOF logistics_tasks
|
|
1315
|
-
LANGUAGE plpgsql
|
|
1316
|
-
SECURITY DEFINER
|
|
1317
|
-
SET search_path TO 'public'
|
|
1318
|
-
AS $function$
|
|
1319
|
-
BEGIN
|
|
1320
|
-
RETURN QUERY
|
|
1321
|
-
WITH candidates AS (
|
|
1322
|
-
SELECT t.id
|
|
1323
|
-
FROM public.logistics_tasks t
|
|
1324
|
-
WHERE t.owner_module = _owner_module
|
|
1325
|
-
AND t.task_type = _task_type
|
|
1326
|
-
AND (
|
|
1327
|
-
(t.status IN ('planned', 'claimed')
|
|
1328
|
-
AND (t.next_attempt_at IS NULL OR t.next_attempt_at <= now()))
|
|
1329
|
-
OR (t.status = 'in_progress'
|
|
1330
|
-
AND t.claimed_at IS NOT NULL
|
|
1331
|
-
AND t.claimed_at < now() - make_interval(mins => _stale_minutes))
|
|
1332
|
-
)
|
|
1333
|
-
ORDER BY t.priority DESC, t.planned_start NULLS FIRST, t.created_at
|
|
1334
|
-
LIMIT GREATEST(_limit, 0)
|
|
1335
|
-
FOR UPDATE SKIP LOCKED
|
|
1336
|
-
)
|
|
1337
|
-
UPDATE public.logistics_tasks t
|
|
1338
|
-
SET status = 'in_progress',
|
|
1339
|
-
claimed_by = _worker,
|
|
1340
|
-
claimed_at = now(),
|
|
1341
|
-
started_at = COALESCE(t.started_at, now()),
|
|
1342
|
-
updated_at = now()
|
|
1343
|
-
FROM candidates c
|
|
1344
|
-
WHERE t.id = c.id
|
|
1345
|
-
RETURNING t.*;
|
|
1346
|
-
END;
|
|
1347
|
-
$function$
|
|
1348
|
-
;
|
|
1349
|
-
REVOKE ALL ON FUNCTION claim_logistics_tasks(text,text,text,integer,integer) FROM PUBLIC;
|
|
1350
|
-
GRANT EXECUTE ON FUNCTION claim_logistics_tasks(text,text,text,integer,integer) TO anon;
|
|
1351
|
-
GRANT EXECUTE ON FUNCTION claim_logistics_tasks(text,text,text,integer,integer) TO authenticated;
|
|
1352
|
-
GRANT EXECUTE ON FUNCTION claim_logistics_tasks(text,text,text,integer,integer) TO service_role;
|
|
1353
1365
|
CREATE OR REPLACE FUNCTION public.cleanup_floriday_stock_queue()
|
|
1354
1366
|
RETURNS void
|
|
1355
1367
|
LANGUAGE sql
|
|
@@ -1362,8 +1374,11 @@ AS $function$
|
|
|
1362
1374
|
$function$
|
|
1363
1375
|
;
|
|
1364
1376
|
REVOKE ALL ON FUNCTION cleanup_floriday_stock_queue() FROM PUBLIC;
|
|
1365
|
-
|
|
1366
|
-
|
|
1377
|
+
REVOKE ALL ON FUNCTION cleanup_floriday_stock_queue() FROM anon;
|
|
1378
|
+
REVOKE EXECUTE ON FUNCTION cleanup_floriday_stock_queue() FROM PUBLIC;
|
|
1379
|
+
GRANT EXECUTE ON FUNCTION cleanup_floriday_stock_queue() TO authenticated;
|
|
1380
|
+
GRANT EXECUTE ON FUNCTION cleanup_floriday_stock_queue() TO service_role;
|
|
1381
|
+
REVOKE EXECUTE ON FUNCTION cleanup_floriday_stock_queue() FROM anon;
|
|
1367
1382
|
GRANT EXECUTE ON FUNCTION cleanup_floriday_stock_queue() TO authenticated;
|
|
1368
1383
|
GRANT EXECUTE ON FUNCTION cleanup_floriday_stock_queue() TO service_role;
|
|
1369
1384
|
CREATE OR REPLACE FUNCTION public.cleanup_voorraad_module_history()
|
|
@@ -1373,6 +1388,7 @@ CREATE OR REPLACE FUNCTION public.cleanup_voorraad_module_history()
|
|
|
1373
1388
|
SET search_path TO 'public'
|
|
1374
1389
|
AS $function$
|
|
1375
1390
|
BEGIN
|
|
1391
|
+
PERFORM public.voorraad_vereis('server', 'cleanup_voorraad_module_history');
|
|
1376
1392
|
DELETE FROM public.logistics_tasks
|
|
1377
1393
|
WHERE status IN ('done', 'skipped', 'cancelled', 'failed')
|
|
1378
1394
|
AND COALESCE(completed_at, updated_at) < now() - interval '90 days';
|
|
@@ -1384,6 +1400,7 @@ END;
|
|
|
1384
1400
|
$function$
|
|
1385
1401
|
;
|
|
1386
1402
|
REVOKE ALL ON FUNCTION cleanup_voorraad_module_history() FROM PUBLIC;
|
|
1403
|
+
REVOKE ALL ON FUNCTION cleanup_voorraad_module_history() FROM anon;
|
|
1387
1404
|
GRANT EXECUTE ON FUNCTION cleanup_voorraad_module_history() TO service_role;
|
|
1388
1405
|
CREATE OR REPLACE FUNCTION public.complete_floriday_base_supply(p_id uuid, p_kind text, p_label text DEFAULT NULL::text, p_error text DEFAULT NULL::text, p_attempt_id text DEFAULT NULL::text, p_outcome text DEFAULT NULL::text, p_price_status text DEFAULT NULL::text, p_price numeric DEFAULT NULL::numeric)
|
|
1389
1406
|
RETURNS text
|
|
@@ -1393,6 +1410,7 @@ CREATE OR REPLACE FUNCTION public.complete_floriday_base_supply(p_id uuid, p_kin
|
|
|
1393
1410
|
AS $function$
|
|
1394
1411
|
DECLARE l record; v_row public.floriday_continuous_stock_queue%ROWTYPE; v_steps int[]; v_wait int; v_since timestamptz;
|
|
1395
1412
|
BEGIN
|
|
1413
|
+
PERFORM public.voorraad_vereis('ingelogd', 'complete_floriday_base_supply');
|
|
1396
1414
|
SELECT * INTO v_row FROM public.floriday_continuous_stock_queue WHERE id = p_id;
|
|
1397
1415
|
IF v_row.id IS NULL THEN RETURN 'missing'; END IF;
|
|
1398
1416
|
SELECT * INTO l FROM public.inventory_recompute_limits WHERE inventory_recompute_limits.id;
|
|
@@ -1455,6 +1473,7 @@ BEGIN
|
|
|
1455
1473
|
END $function$
|
|
1456
1474
|
;
|
|
1457
1475
|
REVOKE ALL ON FUNCTION complete_floriday_base_supply(uuid,text,text,text,text,text,text,numeric) FROM PUBLIC;
|
|
1476
|
+
REVOKE ALL ON FUNCTION complete_floriday_base_supply(uuid,text,text,text,text,text,text,numeric) FROM anon;
|
|
1458
1477
|
GRANT EXECUTE ON FUNCTION complete_floriday_base_supply(uuid,text,text,text,text,text,text,numeric) TO service_role;
|
|
1459
1478
|
CREATE OR REPLACE FUNCTION public.complete_floriday_stock_queue(p_id uuid, p_ok boolean, p_error text DEFAULT NULL::text, p_permanent boolean DEFAULT false, p_attempt_id text DEFAULT NULL::text)
|
|
1460
1479
|
RETURNS void
|
|
@@ -1473,6 +1492,7 @@ DECLARE
|
|
|
1473
1492
|
v_since timestamptz;
|
|
1474
1493
|
v_min integer;
|
|
1475
1494
|
BEGIN
|
|
1495
|
+
PERFORM public.voorraad_vereis('ingelogd', 'complete_floriday_stock_queue');
|
|
1476
1496
|
SELECT * INTO v_row FROM public.floriday_continuous_stock_queue WHERE id = p_id;
|
|
1477
1497
|
IF v_row.id IS NULL THEN RETURN; END IF;
|
|
1478
1498
|
v_attempts := COALESCE(v_row.attempts, 0) + 1;
|
|
@@ -1560,8 +1580,11 @@ END;
|
|
|
1560
1580
|
$function$
|
|
1561
1581
|
;
|
|
1562
1582
|
REVOKE ALL ON FUNCTION complete_floriday_stock_queue(uuid,boolean,text,boolean,text) FROM PUBLIC;
|
|
1563
|
-
|
|
1564
|
-
|
|
1583
|
+
REVOKE ALL ON FUNCTION complete_floriday_stock_queue(uuid,boolean,text,boolean,text) FROM anon;
|
|
1584
|
+
REVOKE EXECUTE ON FUNCTION complete_floriday_stock_queue(uuid,boolean,text,boolean,text) FROM PUBLIC;
|
|
1585
|
+
GRANT EXECUTE ON FUNCTION complete_floriday_stock_queue(uuid,boolean,text,boolean,text) TO authenticated;
|
|
1586
|
+
GRANT EXECUTE ON FUNCTION complete_floriday_stock_queue(uuid,boolean,text,boolean,text) TO service_role;
|
|
1587
|
+
REVOKE EXECUTE ON FUNCTION complete_floriday_stock_queue(uuid,boolean,text,boolean,text) FROM anon;
|
|
1565
1588
|
GRANT EXECUTE ON FUNCTION complete_floriday_stock_queue(uuid,boolean,text,boolean,text) TO authenticated;
|
|
1566
1589
|
GRANT EXECUTE ON FUNCTION complete_floriday_stock_queue(uuid,boolean,text,boolean,text) TO service_role;
|
|
1567
1590
|
CREATE OR REPLACE FUNCTION public.complete_floriday_stock_queue_outcome(p_id uuid, p_outcome text, p_availability_sent boolean DEFAULT false, p_quantity_sent boolean DEFAULT false, p_error text DEFAULT NULL::text, p_attempt_id text DEFAULT NULL::text, p_permanent boolean DEFAULT false)
|
|
@@ -1572,6 +1595,7 @@ CREATE OR REPLACE FUNCTION public.complete_floriday_stock_queue_outcome(p_id uui
|
|
|
1572
1595
|
AS $function$
|
|
1573
1596
|
DECLARE v_row public.floriday_continuous_stock_queue%ROWTYPE; v_reason text; v_outcome text := p_outcome; v_err text := p_error;
|
|
1574
1597
|
BEGIN
|
|
1598
|
+
PERFORM public.voorraad_vereis('ingelogd', 'complete_floriday_stock_queue_outcome');
|
|
1575
1599
|
SELECT * INTO v_row FROM public.floriday_continuous_stock_queue WHERE id = p_id;
|
|
1576
1600
|
IF v_row.id IS NULL THEN RETURN; END IF;
|
|
1577
1601
|
|
|
@@ -1688,6 +1712,7 @@ BEGIN
|
|
|
1688
1712
|
END $function$
|
|
1689
1713
|
;
|
|
1690
1714
|
REVOKE ALL ON FUNCTION complete_floriday_stock_queue_outcome(uuid,text,boolean,boolean,text,text,boolean) FROM PUBLIC;
|
|
1715
|
+
REVOKE ALL ON FUNCTION complete_floriday_stock_queue_outcome(uuid,text,boolean,boolean,text,text,boolean) FROM anon;
|
|
1691
1716
|
GRANT EXECUTE ON FUNCTION complete_floriday_stock_queue_outcome(uuid,text,boolean,boolean,text,text,boolean) TO service_role;
|
|
1692
1717
|
CREATE OR REPLACE FUNCTION public.consume_bom_for_production(p_parent_kind text, p_parent_id text, p_parent_key text, p_quantity numeric, p_connection_id uuid, p_user_id uuid)
|
|
1693
1718
|
RETURNS jsonb
|
|
@@ -1716,7 +1741,8 @@ DECLARE
|
|
|
1716
1741
|
v_component_product_id uuid;
|
|
1717
1742
|
v_stock_row record;
|
|
1718
1743
|
v_connection_id uuid := p_connection_id;
|
|
1719
|
-
BEGIN
|
|
1744
|
+
BEGIN
|
|
1745
|
+
PERFORM public.voorraad_vereis('ingelogd', 'consume_bom_for_production');
|
|
1720
1746
|
IF p_quantity IS NULL OR p_quantity <= 0 THEN
|
|
1721
1747
|
RETURN jsonb_build_object('ok', true, 'consumed', '[]'::jsonb);
|
|
1722
1748
|
END IF;
|
|
@@ -1941,6 +1967,7 @@ END;
|
|
|
1941
1967
|
$function$
|
|
1942
1968
|
;
|
|
1943
1969
|
REVOKE ALL ON FUNCTION consume_bom_for_production(text,text,text,numeric,uuid,uuid) FROM PUBLIC;
|
|
1970
|
+
REVOKE ALL ON FUNCTION consume_bom_for_production(text,text,text,numeric,uuid,uuid) FROM anon;
|
|
1944
1971
|
GRANT EXECUTE ON FUNCTION consume_bom_for_production(text,text,text,numeric,uuid,uuid) TO service_role;
|
|
1945
1972
|
CREATE OR REPLACE FUNCTION public.consume_bom_for_production(p_parent_kind text, p_parent_id text, p_parent_key text, p_quantity numeric, p_connection_id uuid, p_user_id uuid, p_batch_id uuid DEFAULT NULL::uuid)
|
|
1946
1973
|
RETURNS jsonb
|
|
@@ -1970,7 +1997,8 @@ DECLARE
|
|
|
1970
1997
|
v_stock_row record;
|
|
1971
1998
|
v_connection_id uuid := p_connection_id;
|
|
1972
1999
|
v_batch_id uuid := COALESCE(p_batch_id, gen_random_uuid());
|
|
1973
|
-
BEGIN
|
|
2000
|
+
BEGIN
|
|
2001
|
+
PERFORM public.voorraad_vereis('ingelogd', 'consume_bom_for_production');
|
|
1974
2002
|
IF p_quantity IS NULL OR p_quantity <= 0 THEN
|
|
1975
2003
|
RETURN jsonb_build_object('ok', true, 'consumed', '[]'::jsonb, 'batch_id', v_batch_id);
|
|
1976
2004
|
END IF;
|
|
@@ -2150,6 +2178,7 @@ END;
|
|
|
2150
2178
|
$function$
|
|
2151
2179
|
;
|
|
2152
2180
|
REVOKE ALL ON FUNCTION consume_bom_for_production(text,text,text,numeric,uuid,uuid,uuid) FROM PUBLIC;
|
|
2181
|
+
REVOKE ALL ON FUNCTION consume_bom_for_production(text,text,text,numeric,uuid,uuid,uuid) FROM anon;
|
|
2153
2182
|
GRANT EXECUTE ON FUNCTION consume_bom_for_production(text,text,text,numeric,uuid,uuid,uuid) TO service_role;
|
|
2154
2183
|
CREATE OR REPLACE FUNCTION public.consume_order_item(p_order_id uuid, p_order_item_id uuid, p_source text, p_reason text)
|
|
2155
2184
|
RETURNS integer
|
|
@@ -2159,6 +2188,7 @@ CREATE OR REPLACE FUNCTION public.consume_order_item(p_order_id uuid, p_order_it
|
|
|
2159
2188
|
AS $function$
|
|
2160
2189
|
DECLARE a record; n integer := 0; v_ins integer; v_norm text := public.normalize_order_source(p_source);
|
|
2161
2190
|
BEGIN
|
|
2191
|
+
PERFORM public.voorraad_vereis('ingelogd', 'consume_order_item');
|
|
2162
2192
|
IF p_order_item_id IS NULL THEN RETURN 0; END IF;
|
|
2163
2193
|
IF EXISTS (SELECT 1 FROM public.stock_mutation_log WHERE order_item_id = p_order_item_id AND mutation_type = 'consumption')
|
|
2164
2194
|
AND NOT EXISTS (SELECT 1 FROM public.stock_mutation_log WHERE order_item_id = p_order_item_id AND mutation_type = 'consumption_done') THEN
|
|
@@ -2193,6 +2223,7 @@ BEGIN
|
|
|
2193
2223
|
END $function$
|
|
2194
2224
|
;
|
|
2195
2225
|
REVOKE ALL ON FUNCTION consume_order_item(uuid,uuid,text,text) FROM PUBLIC;
|
|
2226
|
+
REVOKE ALL ON FUNCTION consume_order_item(uuid,uuid,text,text) FROM anon;
|
|
2196
2227
|
GRANT EXECUTE ON FUNCTION consume_order_item(uuid,uuid,text,text) TO service_role;
|
|
2197
2228
|
CREATE OR REPLACE FUNCTION public.drain_inventory_recompute_queue()
|
|
2198
2229
|
RETURNS integer
|
|
@@ -2202,6 +2233,7 @@ CREATE OR REPLACE FUNCTION public.drain_inventory_recompute_queue()
|
|
|
2202
2233
|
AS $function$
|
|
2203
2234
|
DECLARE n integer := 0; v_batch int;
|
|
2204
2235
|
BEGIN
|
|
2236
|
+
PERFORM public.voorraad_vereis('server', 'drain_inventory_recompute_queue');
|
|
2205
2237
|
SELECT drain_batch INTO v_batch FROM public.inventory_recompute_limits WHERE id;
|
|
2206
2238
|
PERFORM set_config('inventory.inline_overflow', '0', true);
|
|
2207
2239
|
n := public.process_inventory_recompute_queue(COALESCE(v_batch, 500));
|
|
@@ -2213,6 +2245,7 @@ BEGIN
|
|
|
2213
2245
|
END $function$
|
|
2214
2246
|
;
|
|
2215
2247
|
REVOKE ALL ON FUNCTION drain_inventory_recompute_queue() FROM PUBLIC;
|
|
2248
|
+
REVOKE ALL ON FUNCTION drain_inventory_recompute_queue() FROM anon;
|
|
2216
2249
|
GRANT EXECUTE ON FUNCTION drain_inventory_recompute_queue() TO service_role;
|
|
2217
2250
|
CREATE OR REPLACE FUNCTION public.enqueue_floriday_continuous_stock()
|
|
2218
2251
|
RETURNS trigger
|
|
@@ -2264,8 +2297,11 @@ END;
|
|
|
2264
2297
|
$function$
|
|
2265
2298
|
;
|
|
2266
2299
|
REVOKE ALL ON FUNCTION enqueue_floriday_continuous_stock() FROM PUBLIC;
|
|
2267
|
-
|
|
2268
|
-
|
|
2300
|
+
REVOKE ALL ON FUNCTION enqueue_floriday_continuous_stock() FROM anon;
|
|
2301
|
+
REVOKE EXECUTE ON FUNCTION enqueue_floriday_continuous_stock() FROM PUBLIC;
|
|
2302
|
+
GRANT EXECUTE ON FUNCTION enqueue_floriday_continuous_stock() TO authenticated;
|
|
2303
|
+
GRANT EXECUTE ON FUNCTION enqueue_floriday_continuous_stock() TO service_role;
|
|
2304
|
+
REVOKE EXECUTE ON FUNCTION enqueue_floriday_continuous_stock() FROM anon;
|
|
2269
2305
|
GRANT EXECUTE ON FUNCTION enqueue_floriday_continuous_stock() TO authenticated;
|
|
2270
2306
|
GRANT EXECUTE ON FUNCTION enqueue_floriday_continuous_stock() TO service_role;
|
|
2271
2307
|
CREATE OR REPLACE FUNCTION public.enqueue_floriday_continuous_stock_after_warehouse_preference()
|
|
@@ -2310,8 +2346,11 @@ END;
|
|
|
2310
2346
|
$function$
|
|
2311
2347
|
;
|
|
2312
2348
|
REVOKE ALL ON FUNCTION enqueue_floriday_continuous_stock_after_warehouse_preference() FROM PUBLIC;
|
|
2313
|
-
|
|
2314
|
-
|
|
2349
|
+
REVOKE ALL ON FUNCTION enqueue_floriday_continuous_stock_after_warehouse_preference() FROM anon;
|
|
2350
|
+
REVOKE EXECUTE ON FUNCTION enqueue_floriday_continuous_stock_after_warehouse_preference() FROM PUBLIC;
|
|
2351
|
+
GRANT EXECUTE ON FUNCTION enqueue_floriday_continuous_stock_after_warehouse_preference() TO authenticated;
|
|
2352
|
+
GRANT EXECUTE ON FUNCTION enqueue_floriday_continuous_stock_after_warehouse_preference() TO service_role;
|
|
2353
|
+
REVOKE EXECUTE ON FUNCTION enqueue_floriday_continuous_stock_after_warehouse_preference() FROM anon;
|
|
2315
2354
|
GRANT EXECUTE ON FUNCTION enqueue_floriday_continuous_stock_after_warehouse_preference() TO authenticated;
|
|
2316
2355
|
GRANT EXECUTE ON FUNCTION enqueue_floriday_continuous_stock_after_warehouse_preference() TO service_role;
|
|
2317
2356
|
CREATE OR REPLACE FUNCTION public.enqueue_structure_recompute(p_product_ids uuid[], p_reason text, p_include_self boolean DEFAULT false)
|
|
@@ -2322,6 +2361,7 @@ CREATE OR REPLACE FUNCTION public.enqueue_structure_recompute(p_product_ids uuid
|
|
|
2322
2361
|
AS $function$
|
|
2323
2362
|
DECLARE n integer := 0;
|
|
2324
2363
|
BEGIN
|
|
2364
|
+
PERFORM public.voorraad_vereis('ingelogd', 'enqueue_structure_recompute');
|
|
2325
2365
|
IF p_product_ids IS NULL OR cardinality(p_product_ids) = 0 THEN RETURN 0; END IF;
|
|
2326
2366
|
INSERT INTO public.inventory_recompute_queue(product_id, reason)
|
|
2327
2367
|
SELECT DISTINCT id, p_reason FROM (
|
|
@@ -2334,6 +2374,7 @@ BEGIN
|
|
|
2334
2374
|
END $function$
|
|
2335
2375
|
;
|
|
2336
2376
|
REVOKE ALL ON FUNCTION enqueue_structure_recompute(uuid[],text,boolean) FROM PUBLIC;
|
|
2377
|
+
REVOKE ALL ON FUNCTION enqueue_structure_recompute(uuid[],text,boolean) FROM anon;
|
|
2337
2378
|
GRANT EXECUTE ON FUNCTION enqueue_structure_recompute(uuid[],text,boolean) TO service_role;
|
|
2338
2379
|
CREATE OR REPLACE FUNCTION public.ensure_inventory_recompute_drain()
|
|
2339
2380
|
RETURNS void
|
|
@@ -2342,6 +2383,7 @@ CREATE OR REPLACE FUNCTION public.ensure_inventory_recompute_drain()
|
|
|
2342
2383
|
SET search_path TO 'public'
|
|
2343
2384
|
AS $function$
|
|
2344
2385
|
BEGIN
|
|
2386
|
+
PERFORM public.voorraad_vereis('server', 'ensure_inventory_recompute_drain');
|
|
2345
2387
|
IF NOT EXISTS (SELECT 1 FROM cron.job WHERE jobname = 'inventory-recompute-drain') THEN
|
|
2346
2388
|
PERFORM cron.schedule('inventory-recompute-drain', '* * * * *', 'select public.drain_inventory_recompute_queue()');
|
|
2347
2389
|
END IF;
|
|
@@ -2350,6 +2392,7 @@ EXCEPTION WHEN others THEN
|
|
|
2350
2392
|
END $function$
|
|
2351
2393
|
;
|
|
2352
2394
|
REVOKE ALL ON FUNCTION ensure_inventory_recompute_drain() FROM PUBLIC;
|
|
2395
|
+
REVOKE ALL ON FUNCTION ensure_inventory_recompute_drain() FROM anon;
|
|
2353
2396
|
GRANT EXECUTE ON FUNCTION ensure_inventory_recompute_drain() TO service_role;
|
|
2354
2397
|
CREATE OR REPLACE FUNCTION public.ensure_trade_item_stock_row(p_key text)
|
|
2355
2398
|
RETURNS void
|
|
@@ -2358,12 +2401,14 @@ CREATE OR REPLACE FUNCTION public.ensure_trade_item_stock_row(p_key text)
|
|
|
2358
2401
|
SET search_path TO 'public'
|
|
2359
2402
|
AS $function$
|
|
2360
2403
|
BEGIN
|
|
2404
|
+
PERFORM public.voorraad_vereis('ingelogd', 'ensure_trade_item_stock_row');
|
|
2361
2405
|
PERFORM public.ensure_trade_item_stock_row_key(p_key);
|
|
2362
2406
|
END
|
|
2363
2407
|
$function$
|
|
2364
2408
|
;
|
|
2365
2409
|
REVOKE ALL ON FUNCTION ensure_trade_item_stock_row(text) FROM PUBLIC;
|
|
2366
|
-
|
|
2410
|
+
REVOKE ALL ON FUNCTION ensure_trade_item_stock_row(text) FROM anon;
|
|
2411
|
+
REVOKE EXECUTE ON FUNCTION ensure_trade_item_stock_row(text) FROM anon;
|
|
2367
2412
|
GRANT EXECUTE ON FUNCTION ensure_trade_item_stock_row(text) TO authenticated;
|
|
2368
2413
|
GRANT EXECUTE ON FUNCTION ensure_trade_item_stock_row(text) TO service_role;
|
|
2369
2414
|
CREATE OR REPLACE FUNCTION public.ensure_trade_item_stock_row_key(p_key text)
|
|
@@ -2377,6 +2422,7 @@ DECLARE
|
|
|
2377
2422
|
v_product_id uuid;
|
|
2378
2423
|
v_canonical_key text;
|
|
2379
2424
|
BEGIN
|
|
2425
|
+
PERFORM public.voorraad_vereis('ingelogd', 'ensure_trade_item_stock_row_key');
|
|
2380
2426
|
IF p_key IS NULL OR btrim(p_key) = '' THEN
|
|
2381
2427
|
RETURN NULL;
|
|
2382
2428
|
END IF;
|
|
@@ -2450,6 +2496,7 @@ END
|
|
|
2450
2496
|
$function$
|
|
2451
2497
|
;
|
|
2452
2498
|
REVOKE ALL ON FUNCTION ensure_trade_item_stock_row_key(text) FROM PUBLIC;
|
|
2499
|
+
REVOKE ALL ON FUNCTION ensure_trade_item_stock_row_key(text) FROM anon;
|
|
2453
2500
|
GRANT EXECUTE ON FUNCTION ensure_trade_item_stock_row_key(text) TO service_role;
|
|
2454
2501
|
CREATE OR REPLACE FUNCTION public.fcsq_block_disabled()
|
|
2455
2502
|
RETURNS trigger
|
|
@@ -2469,6 +2516,7 @@ BEGIN
|
|
|
2469
2516
|
END $function$
|
|
2470
2517
|
;
|
|
2471
2518
|
REVOKE ALL ON FUNCTION fcsq_block_disabled() FROM PUBLIC;
|
|
2519
|
+
REVOKE ALL ON FUNCTION fcsq_block_disabled() FROM anon;
|
|
2472
2520
|
GRANT EXECUTE ON FUNCTION fcsq_block_disabled() TO service_role;
|
|
2473
2521
|
CREATE OR REPLACE FUNCTION public.fcsq_fallback_supersede()
|
|
2474
2522
|
RETURNS trigger
|
|
@@ -2498,6 +2546,7 @@ BEGIN
|
|
|
2498
2546
|
END $function$
|
|
2499
2547
|
;
|
|
2500
2548
|
REVOKE ALL ON FUNCTION fcsq_fallback_supersede() FROM PUBLIC;
|
|
2549
|
+
REVOKE ALL ON FUNCTION fcsq_fallback_supersede() FROM anon;
|
|
2501
2550
|
GRANT EXECUTE ON FUNCTION fcsq_fallback_supersede() TO service_role;
|
|
2502
2551
|
CREATE OR REPLACE FUNCTION public.fcsq_wake_base_supply()
|
|
2503
2552
|
RETURNS trigger
|
|
@@ -2522,6 +2571,7 @@ BEGIN
|
|
|
2522
2571
|
END $function$
|
|
2523
2572
|
;
|
|
2524
2573
|
REVOKE ALL ON FUNCTION fcsq_wake_base_supply() FROM PUBLIC;
|
|
2574
|
+
REVOKE ALL ON FUNCTION fcsq_wake_base_supply() FROM anon;
|
|
2525
2575
|
GRANT EXECUTE ON FUNCTION fcsq_wake_base_supply() TO service_role;
|
|
2526
2576
|
CREATE OR REPLACE FUNCTION public.find_trade_item_key(p_name text, p_barcode text, p_product_id uuid)
|
|
2527
2577
|
RETURNS text
|
|
@@ -2531,6 +2581,7 @@ CREATE OR REPLACE FUNCTION public.find_trade_item_key(p_name text, p_barcode tex
|
|
|
2531
2581
|
AS $function$
|
|
2532
2582
|
DECLARE v_key text; v_bar text; v_name text;
|
|
2533
2583
|
BEGIN
|
|
2584
|
+
PERFORM public.voorraad_vereis('ingelogd', 'find_trade_item_key');
|
|
2534
2585
|
v_bar := NULLIF(btrim(p_barcode), '');
|
|
2535
2586
|
v_name := NULLIF(lower(btrim(p_name)), '');
|
|
2536
2587
|
|
|
@@ -2577,8 +2628,11 @@ BEGIN
|
|
|
2577
2628
|
END $function$
|
|
2578
2629
|
;
|
|
2579
2630
|
REVOKE ALL ON FUNCTION find_trade_item_key(text,text,uuid) FROM PUBLIC;
|
|
2580
|
-
|
|
2581
|
-
|
|
2631
|
+
REVOKE ALL ON FUNCTION find_trade_item_key(text,text,uuid) FROM anon;
|
|
2632
|
+
REVOKE EXECUTE ON FUNCTION find_trade_item_key(text,text,uuid) FROM PUBLIC;
|
|
2633
|
+
GRANT EXECUTE ON FUNCTION find_trade_item_key(text,text,uuid) TO authenticated;
|
|
2634
|
+
GRANT EXECUTE ON FUNCTION find_trade_item_key(text,text,uuid) TO service_role;
|
|
2635
|
+
REVOKE EXECUTE ON FUNCTION find_trade_item_key(text,text,uuid) FROM anon;
|
|
2582
2636
|
GRANT EXECUTE ON FUNCTION find_trade_item_key(text,text,uuid) TO authenticated;
|
|
2583
2637
|
GRANT EXECUTE ON FUNCTION find_trade_item_key(text,text,uuid) TO service_role;
|
|
2584
2638
|
CREATE OR REPLACE FUNCTION public.floriday_adopt_connection(p_old uuid, p_new uuid)
|
|
@@ -2592,6 +2646,7 @@ DECLARE
|
|
|
2592
2646
|
v_moved jsonb := '{}'::jsonb;
|
|
2593
2647
|
v_count bigint;
|
|
2594
2648
|
BEGIN
|
|
2649
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_adopt_connection');
|
|
2595
2650
|
IF p_old IS NULL OR p_new IS NULL OR p_old = p_new THEN
|
|
2596
2651
|
RETURN jsonb_build_object('ok', false, 'reason', 'ongeldige connecties');
|
|
2597
2652
|
END IF;
|
|
@@ -2630,7 +2685,8 @@ END;
|
|
|
2630
2685
|
$function$
|
|
2631
2686
|
;
|
|
2632
2687
|
REVOKE ALL ON FUNCTION floriday_adopt_connection(uuid,uuid) FROM PUBLIC;
|
|
2633
|
-
|
|
2688
|
+
REVOKE ALL ON FUNCTION floriday_adopt_connection(uuid,uuid) FROM anon;
|
|
2689
|
+
REVOKE EXECUTE ON FUNCTION floriday_adopt_connection(uuid,uuid) FROM anon;
|
|
2634
2690
|
GRANT EXECUTE ON FUNCTION floriday_adopt_connection(uuid,uuid) TO authenticated;
|
|
2635
2691
|
GRANT EXECUTE ON FUNCTION floriday_adopt_connection(uuid,uuid) TO service_role;
|
|
2636
2692
|
CREATE OR REPLACE FUNCTION public.floriday_autoheal_connections()
|
|
@@ -2646,6 +2702,7 @@ DECLARE
|
|
|
2646
2702
|
v_adopted jsonb := '[]'::jsonb;
|
|
2647
2703
|
v_relink jsonb;
|
|
2648
2704
|
BEGIN
|
|
2705
|
+
PERFORM public.voorraad_vereis('server', 'floriday_autoheal_connections');
|
|
2649
2706
|
FOR env IN
|
|
2650
2707
|
SELECT environment
|
|
2651
2708
|
FROM public.floriday_connections
|
|
@@ -2675,7 +2732,8 @@ END;
|
|
|
2675
2732
|
$function$
|
|
2676
2733
|
;
|
|
2677
2734
|
REVOKE ALL ON FUNCTION floriday_autoheal_connections() FROM PUBLIC;
|
|
2678
|
-
|
|
2735
|
+
REVOKE ALL ON FUNCTION floriday_autoheal_connections() FROM anon;
|
|
2736
|
+
REVOKE EXECUTE ON FUNCTION floriday_autoheal_connections() FROM anon;
|
|
2679
2737
|
GRANT EXECUTE ON FUNCTION floriday_autoheal_connections() TO authenticated;
|
|
2680
2738
|
GRANT EXECUTE ON FUNCTION floriday_autoheal_connections() TO service_role;
|
|
2681
2739
|
CREATE OR REPLACE FUNCTION public.floriday_capture_stock_snapshot()
|
|
@@ -2687,6 +2745,7 @@ AS $function$
|
|
|
2687
2745
|
DECLARE
|
|
2688
2746
|
v_rows integer;
|
|
2689
2747
|
BEGIN
|
|
2748
|
+
PERFORM public.voorraad_vereis('server', 'floriday_capture_stock_snapshot');
|
|
2690
2749
|
INSERT INTO public.inventory_stock_snapshots (
|
|
2691
2750
|
user_id, connection_id, snapshot_at, granularity,
|
|
2692
2751
|
erp_available_quantity, floriday_desired_quantity, floriday_remote_quantity
|
|
@@ -2718,6 +2777,7 @@ END;
|
|
|
2718
2777
|
$function$
|
|
2719
2778
|
;
|
|
2720
2779
|
REVOKE ALL ON FUNCTION floriday_capture_stock_snapshot() FROM PUBLIC;
|
|
2780
|
+
REVOKE ALL ON FUNCTION floriday_capture_stock_snapshot() FROM anon;
|
|
2721
2781
|
GRANT EXECUTE ON FUNCTION floriday_capture_stock_snapshot() TO service_role;
|
|
2722
2782
|
CREATE OR REPLACE FUNCTION public.floriday_cleanup_stock_queue_v2()
|
|
2723
2783
|
RETURNS jsonb
|
|
@@ -2736,6 +2796,7 @@ DECLARE
|
|
|
2736
2796
|
g jsonb; v_days int; v_total int; v_n int; v_batches int := 0;
|
|
2737
2797
|
v_deleted jsonb := '{}'::jsonb; v_more boolean := false; v_statuses text[];
|
|
2738
2798
|
BEGIN
|
|
2799
|
+
PERFORM public.voorraad_vereis('server', 'floriday_cleanup_stock_queue_v2');
|
|
2739
2800
|
SELECT * INTO l FROM public.inventory_recompute_limits LIMIT 1;
|
|
2740
2801
|
INSERT INTO public.floriday_queue_cleanup_runs DEFAULT VALUES RETURNING id INTO v_run;
|
|
2741
2802
|
BEGIN
|
|
@@ -2767,6 +2828,7 @@ BEGIN
|
|
|
2767
2828
|
END $function$
|
|
2768
2829
|
;
|
|
2769
2830
|
REVOKE ALL ON FUNCTION floriday_cleanup_stock_queue_v2() FROM PUBLIC;
|
|
2831
|
+
REVOKE ALL ON FUNCTION floriday_cleanup_stock_queue_v2() FROM anon;
|
|
2770
2832
|
GRANT EXECUTE ON FUNCTION floriday_cleanup_stock_queue_v2() TO service_role;
|
|
2771
2833
|
CREATE OR REPLACE FUNCTION public.floriday_compact_stock_snapshots()
|
|
2772
2834
|
RETURNS void
|
|
@@ -2775,6 +2837,7 @@ CREATE OR REPLACE FUNCTION public.floriday_compact_stock_snapshots()
|
|
|
2775
2837
|
SET search_path TO 'public'
|
|
2776
2838
|
AS $function$
|
|
2777
2839
|
BEGIN
|
|
2840
|
+
PERFORM public.voorraad_vereis('server', 'floriday_compact_stock_snapshots');
|
|
2778
2841
|
INSERT INTO public.inventory_stock_snapshots (
|
|
2779
2842
|
user_id, connection_id, snapshot_at, granularity,
|
|
2780
2843
|
erp_available_quantity, floriday_desired_quantity, floriday_remote_quantity
|
|
@@ -2797,6 +2860,7 @@ END;
|
|
|
2797
2860
|
$function$
|
|
2798
2861
|
;
|
|
2799
2862
|
REVOKE ALL ON FUNCTION floriday_compact_stock_snapshots() FROM PUBLIC;
|
|
2863
|
+
REVOKE ALL ON FUNCTION floriday_compact_stock_snapshots() FROM anon;
|
|
2800
2864
|
GRANT EXECUTE ON FUNCTION floriday_compact_stock_snapshots() TO service_role;
|
|
2801
2865
|
CREATE OR REPLACE FUNCTION public.floriday_default_owner(p_connection_id uuid)
|
|
2802
2866
|
RETURNS uuid
|
|
@@ -2815,6 +2879,7 @@ AS $function$
|
|
|
2815
2879
|
$function$
|
|
2816
2880
|
;
|
|
2817
2881
|
REVOKE ALL ON FUNCTION floriday_default_owner(uuid) FROM PUBLIC;
|
|
2882
|
+
REVOKE ALL ON FUNCTION floriday_default_owner(uuid) FROM anon;
|
|
2818
2883
|
GRANT EXECUTE ON FUNCTION floriday_default_owner(uuid) TO service_role;
|
|
2819
2884
|
CREATE OR REPLACE FUNCTION public.floriday_desired_stock_regression_check()
|
|
2820
2885
|
RETURNS TABLE(product_id uuid, product_name text, stock_mode text, packing integer, available integer, expected integer, actual integer, equal boolean)
|
|
@@ -2847,6 +2912,7 @@ AS $function$
|
|
|
2847
2912
|
$function$
|
|
2848
2913
|
;
|
|
2849
2914
|
REVOKE ALL ON FUNCTION floriday_desired_stock_regression_check() FROM PUBLIC;
|
|
2915
|
+
REVOKE ALL ON FUNCTION floriday_desired_stock_regression_check() FROM anon;
|
|
2850
2916
|
GRANT EXECUTE ON FUNCTION floriday_desired_stock_regression_check() TO service_role;
|
|
2851
2917
|
CREATE OR REPLACE FUNCTION public.floriday_ensure_inventory_settings()
|
|
2852
2918
|
RETURNS trigger
|
|
@@ -2877,6 +2943,7 @@ END;
|
|
|
2877
2943
|
$function$
|
|
2878
2944
|
;
|
|
2879
2945
|
REVOKE ALL ON FUNCTION floriday_ensure_inventory_settings() FROM PUBLIC;
|
|
2946
|
+
REVOKE ALL ON FUNCTION floriday_ensure_inventory_settings() FROM anon;
|
|
2880
2947
|
GRANT EXECUTE ON FUNCTION floriday_ensure_inventory_settings() TO service_role;
|
|
2881
2948
|
CREATE OR REPLACE FUNCTION public.floriday_erp_leading_preview(p_connection_id uuid, p_product_ids uuid[], p_stock_mode text DEFAULT 'FOLLOW_ERP'::text)
|
|
2882
2949
|
RETURNS TABLE(product_id uuid, product_name text, trade_item_id text, stock_mode text, desired_quantity integer, desired_available boolean, sale_price numeric, offer_forms jsonb, weeks jsonb, blocker text, horizon_weeks integer)
|
|
@@ -2887,7 +2954,8 @@ AS $function$
|
|
|
2887
2954
|
DECLARE v_pid uuid; v_q int; v_av boolean; v_reason text; v_mode text; v_h int := public.floriday_publish_horizon_weeks(); v_w jsonb; v_d date; i int;
|
|
2888
2955
|
v_tid text; v_price numeric; v_forms jsonb; v_y int; v_wk int; v_fl int;
|
|
2889
2956
|
BEGIN
|
|
2890
|
-
|
|
2957
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_erp_leading_preview');
|
|
2958
|
+
IF NOT public.voorraad_is_server() AND (auth.uid() IS NULL OR NOT public.voorraad_can_write()) THEN
|
|
2891
2959
|
RAISE EXCEPTION 'Je hebt geen rechten' USING ERRCODE = '42501'; END IF;
|
|
2892
2960
|
IF p_stock_mode NOT IN ('FOLLOW_ERP','MAXIMUM','FIXED_REFILL','MANUAL') THEN RAISE EXCEPTION 'Kies een voorraadmodus'; END IF;
|
|
2893
2961
|
FOREACH v_pid IN ARRAY p_product_ids LOOP
|
|
@@ -2943,6 +3011,7 @@ BEGIN
|
|
|
2943
3011
|
END $function$
|
|
2944
3012
|
;
|
|
2945
3013
|
REVOKE ALL ON FUNCTION floriday_erp_leading_preview(uuid,uuid[],text) FROM PUBLIC;
|
|
3014
|
+
REVOKE ALL ON FUNCTION floriday_erp_leading_preview(uuid,uuid[],text) FROM anon;
|
|
2946
3015
|
GRANT EXECUTE ON FUNCTION floriday_erp_leading_preview(uuid,uuid[],text) TO authenticated;
|
|
2947
3016
|
GRANT EXECUTE ON FUNCTION floriday_erp_leading_preview(uuid,uuid[],text) TO service_role;
|
|
2948
3017
|
CREATE OR REPLACE FUNCTION public.floriday_fill_publish_horizon()
|
|
@@ -2955,6 +3024,7 @@ DECLARE
|
|
|
2955
3024
|
r record;
|
|
2956
3025
|
v_count integer := 0;
|
|
2957
3026
|
BEGIN
|
|
3027
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_fill_publish_horizon');
|
|
2958
3028
|
-- verlopen weken afsluiten
|
|
2959
3029
|
UPDATE public.floriday_continuous_stock_queue
|
|
2960
3030
|
SET status = 'superseded', updated_at = now()
|
|
@@ -2977,6 +3047,7 @@ END;
|
|
|
2977
3047
|
$function$
|
|
2978
3048
|
;
|
|
2979
3049
|
REVOKE ALL ON FUNCTION floriday_fill_publish_horizon() FROM PUBLIC;
|
|
3050
|
+
REVOKE ALL ON FUNCTION floriday_fill_publish_horizon() FROM anon;
|
|
2980
3051
|
GRANT EXECUTE ON FUNCTION floriday_fill_publish_horizon() TO service_role;
|
|
2981
3052
|
CREATE OR REPLACE FUNCTION public.floriday_follow_apply(p_connection_id uuid, p_items jsonb)
|
|
2982
3053
|
RETURNS jsonb
|
|
@@ -2989,6 +3060,7 @@ DECLARE
|
|
|
2989
3060
|
v_stock numeric; v_price numeric; v_res text; v_fs text; v_old_claims text;
|
|
2990
3061
|
v_upd int := 0; v_same int := 0; v_skip int := 0; v_err int := 0;
|
|
2991
3062
|
BEGIN
|
|
3063
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_follow_apply');
|
|
2992
3064
|
IF NOT public.voorraad_hook_on('follow_floriday') THEN
|
|
2993
3065
|
RETURN jsonb_build_object('waiting', true, 'reason', 'Volgt Floriday staat uit');
|
|
2994
3066
|
END IF;
|
|
@@ -3042,6 +3114,7 @@ BEGIN
|
|
|
3042
3114
|
END $function$
|
|
3043
3115
|
;
|
|
3044
3116
|
REVOKE ALL ON FUNCTION floriday_follow_apply(uuid,jsonb) FROM PUBLIC;
|
|
3117
|
+
REVOKE ALL ON FUNCTION floriday_follow_apply(uuid,jsonb) FROM anon;
|
|
3045
3118
|
GRANT EXECUTE ON FUNCTION floriday_follow_apply(uuid,jsonb) TO service_role;
|
|
3046
3119
|
CREATE OR REPLACE FUNCTION public.floriday_ingest_sales_orders(p_limit integer DEFAULT 200)
|
|
3047
3120
|
RETURNS integer
|
|
@@ -3067,6 +3140,7 @@ DECLARE
|
|
|
3067
3140
|
v_fust_delta integer;
|
|
3068
3141
|
v_owner uuid;
|
|
3069
3142
|
BEGIN
|
|
3143
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_ingest_sales_orders');
|
|
3070
3144
|
FOR r IN
|
|
3071
3145
|
SELECT c.connection_id,
|
|
3072
3146
|
c.floriday_id,
|
|
@@ -3242,6 +3316,7 @@ END;
|
|
|
3242
3316
|
$function$
|
|
3243
3317
|
;
|
|
3244
3318
|
REVOKE ALL ON FUNCTION floriday_ingest_sales_orders(integer) FROM PUBLIC;
|
|
3319
|
+
REVOKE ALL ON FUNCTION floriday_ingest_sales_orders(integer) FROM anon;
|
|
3245
3320
|
GRANT EXECUTE ON FUNCTION floriday_ingest_sales_orders(integer) TO service_role;
|
|
3246
3321
|
CREATE OR REPLACE FUNCTION public.floriday_leading_summary(p_connection_id uuid)
|
|
3247
3322
|
RETURNS jsonb
|
|
@@ -3259,6 +3334,7 @@ AS $function$
|
|
|
3259
3334
|
$function$
|
|
3260
3335
|
;
|
|
3261
3336
|
REVOKE ALL ON FUNCTION floriday_leading_summary(uuid) FROM PUBLIC;
|
|
3337
|
+
REVOKE ALL ON FUNCTION floriday_leading_summary(uuid) FROM anon;
|
|
3262
3338
|
GRANT EXECUTE ON FUNCTION floriday_leading_summary(uuid) TO authenticated;
|
|
3263
3339
|
GRANT EXECUTE ON FUNCTION floriday_leading_summary(uuid) TO service_role;
|
|
3264
3340
|
CREATE OR REPLACE FUNCTION public.floriday_make_erp_leading(p_connection_id uuid, p_product_ids uuid[], p_stock_mode text DEFAULT 'FOLLOW_ERP'::text)
|
|
@@ -3269,7 +3345,8 @@ CREATE OR REPLACE FUNCTION public.floriday_make_erp_leading(p_connection_id uuid
|
|
|
3269
3345
|
AS $function$
|
|
3270
3346
|
DECLARE v_pid uuid; v_n int := 0; v_skipped jsonb := '[]'::jsonb; v_old text; v_block text; r record;
|
|
3271
3347
|
BEGIN
|
|
3272
|
-
|
|
3348
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_make_erp_leading');
|
|
3349
|
+
IF NOT public.voorraad_is_server() AND (auth.uid() IS NULL OR NOT public.voorraad_can_write()) THEN
|
|
3273
3350
|
RAISE EXCEPTION 'Je hebt geen rechten' USING ERRCODE = '42501'; END IF;
|
|
3274
3351
|
IF p_stock_mode NOT IN ('FOLLOW_ERP','MAXIMUM','FIXED_REFILL','MANUAL') THEN
|
|
3275
3352
|
RAISE EXCEPTION 'Kies een voorraadmodus'; END IF;
|
|
@@ -3302,6 +3379,7 @@ BEGIN
|
|
|
3302
3379
|
END $function$
|
|
3303
3380
|
;
|
|
3304
3381
|
REVOKE ALL ON FUNCTION floriday_make_erp_leading(uuid,uuid[],text) FROM PUBLIC;
|
|
3382
|
+
REVOKE ALL ON FUNCTION floriday_make_erp_leading(uuid,uuid[],text) FROM anon;
|
|
3305
3383
|
GRANT EXECUTE ON FUNCTION floriday_make_erp_leading(uuid,uuid[],text) TO authenticated;
|
|
3306
3384
|
GRANT EXECUTE ON FUNCTION floriday_make_erp_leading(uuid,uuid[],text) TO service_role;
|
|
3307
3385
|
CREATE OR REPLACE FUNCTION public.floriday_norm_offer_forms(p jsonb)
|
|
@@ -3321,8 +3399,11 @@ BEGIN
|
|
|
3321
3399
|
END $function$
|
|
3322
3400
|
;
|
|
3323
3401
|
REVOKE ALL ON FUNCTION floriday_norm_offer_forms(jsonb) FROM PUBLIC;
|
|
3324
|
-
|
|
3325
|
-
|
|
3402
|
+
REVOKE ALL ON FUNCTION floriday_norm_offer_forms(jsonb) FROM anon;
|
|
3403
|
+
REVOKE EXECUTE ON FUNCTION floriday_norm_offer_forms(jsonb) FROM PUBLIC;
|
|
3404
|
+
GRANT EXECUTE ON FUNCTION floriday_norm_offer_forms(jsonb) TO authenticated;
|
|
3405
|
+
GRANT EXECUTE ON FUNCTION floriday_norm_offer_forms(jsonb) TO service_role;
|
|
3406
|
+
REVOKE EXECUTE ON FUNCTION floriday_norm_offer_forms(jsonb) FROM anon;
|
|
3326
3407
|
GRANT EXECUTE ON FUNCTION floriday_norm_offer_forms(jsonb) TO authenticated;
|
|
3327
3408
|
GRANT EXECUTE ON FUNCTION floriday_norm_offer_forms(jsonb) TO service_role;
|
|
3328
3409
|
CREATE OR REPLACE FUNCTION public.floriday_orphan_settings_count()
|
|
@@ -3336,6 +3417,7 @@ AS $function$
|
|
|
3336
3417
|
$function$
|
|
3337
3418
|
;
|
|
3338
3419
|
REVOKE ALL ON FUNCTION floriday_orphan_settings_count() FROM PUBLIC;
|
|
3420
|
+
REVOKE ALL ON FUNCTION floriday_orphan_settings_count() FROM anon;
|
|
3339
3421
|
GRANT EXECUTE ON FUNCTION floriday_orphan_settings_count() TO service_role;
|
|
3340
3422
|
CREATE OR REPLACE FUNCTION public.floriday_publish_horizon_weeks()
|
|
3341
3423
|
RETURNS integer
|
|
@@ -3349,6 +3431,7 @@ AS $function$
|
|
|
3349
3431
|
$function$
|
|
3350
3432
|
;
|
|
3351
3433
|
REVOKE ALL ON FUNCTION floriday_publish_horizon_weeks() FROM PUBLIC;
|
|
3434
|
+
REVOKE ALL ON FUNCTION floriday_publish_horizon_weeks() FROM anon;
|
|
3352
3435
|
GRANT EXECUTE ON FUNCTION floriday_publish_horizon_weeks() TO service_role;
|
|
3353
3436
|
CREATE OR REPLACE FUNCTION public.floriday_queue_erp_guard()
|
|
3354
3437
|
RETURNS trigger
|
|
@@ -3413,6 +3496,7 @@ BEGIN
|
|
|
3413
3496
|
END $function$
|
|
3414
3497
|
;
|
|
3415
3498
|
REVOKE ALL ON FUNCTION floriday_queue_erp_guard() FROM PUBLIC;
|
|
3499
|
+
REVOKE ALL ON FUNCTION floriday_queue_erp_guard() FROM anon;
|
|
3416
3500
|
GRANT EXECUTE ON FUNCTION floriday_queue_erp_guard() TO service_role;
|
|
3417
3501
|
CREATE OR REPLACE FUNCTION public.floriday_queue_first_positive()
|
|
3418
3502
|
RETURNS trigger
|
|
@@ -3434,6 +3518,7 @@ EXCEPTION WHEN OTHERS THEN RETURN NULL;
|
|
|
3434
3518
|
END $function$
|
|
3435
3519
|
;
|
|
3436
3520
|
REVOKE ALL ON FUNCTION floriday_queue_first_positive() FROM PUBLIC;
|
|
3521
|
+
REVOKE ALL ON FUNCTION floriday_queue_first_positive() FROM anon;
|
|
3437
3522
|
GRANT EXECUTE ON FUNCTION floriday_queue_first_positive() TO service_role;
|
|
3438
3523
|
CREATE OR REPLACE FUNCTION public.floriday_recompute_inventory(p_connection_id uuid, p_product_id uuid, p_force boolean DEFAULT false)
|
|
3439
3524
|
RETURNS void
|
|
@@ -3447,6 +3532,7 @@ DECLARE
|
|
|
3447
3532
|
v_horizon integer := public.floriday_publish_horizon_weeks();
|
|
3448
3533
|
v_offset integer; v_date date; v_year integer; v_week integer; v_changed boolean;
|
|
3449
3534
|
BEGIN
|
|
3535
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_recompute_inventory');
|
|
3450
3536
|
SELECT * INTO s FROM public.floriday_inventory_settings
|
|
3451
3537
|
WHERE connection_id = p_connection_id AND product_id = p_product_id;
|
|
3452
3538
|
IF s.id IS NULL THEN RETURN; END IF;
|
|
@@ -3508,6 +3594,7 @@ END;
|
|
|
3508
3594
|
$function$
|
|
3509
3595
|
;
|
|
3510
3596
|
REVOKE ALL ON FUNCTION floriday_recompute_inventory(uuid,uuid,boolean) FROM PUBLIC;
|
|
3597
|
+
REVOKE ALL ON FUNCTION floriday_recompute_inventory(uuid,uuid,boolean) FROM anon;
|
|
3511
3598
|
GRANT EXECUTE ON FUNCTION floriday_recompute_inventory(uuid,uuid,boolean) TO service_role;
|
|
3512
3599
|
CREATE OR REPLACE FUNCTION public.floriday_relink_products(p_connection_id uuid DEFAULT NULL::uuid)
|
|
3513
3600
|
RETURNS jsonb
|
|
@@ -3519,6 +3606,7 @@ DECLARE
|
|
|
3519
3606
|
v_conn uuid; v_cache_count int; v_row RECORD; v_cf jsonb; v_cf_id text; v_match text;
|
|
3520
3607
|
v_linked int := 0; v_repaired int := 0; v_cleared int := 0;
|
|
3521
3608
|
BEGIN
|
|
3609
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_relink_products');
|
|
3522
3610
|
v_conn := p_connection_id;
|
|
3523
3611
|
IF v_conn IS NULL THEN
|
|
3524
3612
|
SELECT c.id INTO v_conn FROM public.floriday_settings s
|
|
@@ -3574,7 +3662,8 @@ BEGIN
|
|
|
3574
3662
|
END; $function$
|
|
3575
3663
|
;
|
|
3576
3664
|
REVOKE ALL ON FUNCTION floriday_relink_products(uuid) FROM PUBLIC;
|
|
3577
|
-
|
|
3665
|
+
REVOKE ALL ON FUNCTION floriday_relink_products(uuid) FROM anon;
|
|
3666
|
+
REVOKE EXECUTE ON FUNCTION floriday_relink_products(uuid) FROM anon;
|
|
3578
3667
|
GRANT EXECUTE ON FUNCTION floriday_relink_products(uuid) TO authenticated;
|
|
3579
3668
|
GRANT EXECUTE ON FUNCTION floriday_relink_products(uuid) TO service_role;
|
|
3580
3669
|
CREATE OR REPLACE FUNCTION public.floriday_requeue_dead_letters(p_connection_id uuid DEFAULT NULL::uuid)
|
|
@@ -3585,6 +3674,7 @@ CREATE OR REPLACE FUNCTION public.floriday_requeue_dead_letters(p_connection_id
|
|
|
3585
3674
|
AS $function$
|
|
3586
3675
|
DECLARE v_count integer;
|
|
3587
3676
|
BEGIN
|
|
3677
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_requeue_dead_letters');
|
|
3588
3678
|
UPDATE public.floriday_continuous_stock_queue
|
|
3589
3679
|
SET status = 'pending',
|
|
3590
3680
|
attempts = 0,
|
|
@@ -3602,6 +3692,7 @@ END;
|
|
|
3602
3692
|
$function$
|
|
3603
3693
|
;
|
|
3604
3694
|
REVOKE ALL ON FUNCTION floriday_requeue_dead_letters(uuid) FROM PUBLIC;
|
|
3695
|
+
REVOKE ALL ON FUNCTION floriday_requeue_dead_letters(uuid) FROM anon;
|
|
3605
3696
|
GRANT EXECUTE ON FUNCTION floriday_requeue_dead_letters(uuid) TO service_role;
|
|
3606
3697
|
CREATE OR REPLACE FUNCTION public.floriday_settings_change_recompute()
|
|
3607
3698
|
RETURNS trigger
|
|
@@ -3625,6 +3716,7 @@ END;
|
|
|
3625
3716
|
$function$
|
|
3626
3717
|
;
|
|
3627
3718
|
REVOKE ALL ON FUNCTION floriday_settings_change_recompute() FROM PUBLIC;
|
|
3719
|
+
REVOKE ALL ON FUNCTION floriday_settings_change_recompute() FROM anon;
|
|
3628
3720
|
GRANT EXECUTE ON FUNCTION floriday_settings_change_recompute() TO service_role;
|
|
3629
3721
|
CREATE OR REPLACE FUNCTION public.floriday_settings_change_recompute_stmt()
|
|
3630
3722
|
RETURNS trigger
|
|
@@ -3655,6 +3747,7 @@ BEGIN
|
|
|
3655
3747
|
END $function$
|
|
3656
3748
|
;
|
|
3657
3749
|
REVOKE ALL ON FUNCTION floriday_settings_change_recompute_stmt() FROM PUBLIC;
|
|
3750
|
+
REVOKE ALL ON FUNCTION floriday_settings_change_recompute_stmt() FROM anon;
|
|
3658
3751
|
GRANT EXECUTE ON FUNCTION floriday_settings_change_recompute_stmt() TO service_role;
|
|
3659
3752
|
CREATE OR REPLACE FUNCTION public.floriday_stock_change_recompute()
|
|
3660
3753
|
RETURNS trigger
|
|
@@ -3690,6 +3783,7 @@ BEGIN
|
|
|
3690
3783
|
END $function$
|
|
3691
3784
|
;
|
|
3692
3785
|
REVOKE ALL ON FUNCTION floriday_stock_change_recompute() FROM PUBLIC;
|
|
3786
|
+
REVOKE ALL ON FUNCTION floriday_stock_change_recompute() FROM anon;
|
|
3693
3787
|
GRANT EXECUTE ON FUNCTION floriday_stock_change_recompute() TO service_role;
|
|
3694
3788
|
CREATE OR REPLACE FUNCTION public.floriday_stock_queue_supersede()
|
|
3695
3789
|
RETURNS trigger
|
|
@@ -3750,6 +3844,7 @@ BEGIN
|
|
|
3750
3844
|
END $function$
|
|
3751
3845
|
;
|
|
3752
3846
|
REVOKE ALL ON FUNCTION floriday_stock_queue_supersede() FROM PUBLIC;
|
|
3847
|
+
REVOKE ALL ON FUNCTION floriday_stock_queue_supersede() FROM anon;
|
|
3753
3848
|
GRANT EXECUTE ON FUNCTION floriday_stock_queue_supersede() TO service_role;
|
|
3754
3849
|
CREATE OR REPLACE FUNCTION public.floriday_takeover_apply(p_connection_id uuid, p_items jsonb)
|
|
3755
3850
|
RETURNS jsonb
|
|
@@ -3761,7 +3856,8 @@ DECLARE
|
|
|
3761
3856
|
v_run uuid; v_it jsonb; v_tid text; v_pid uuid; v_created boolean; v_old_stock numeric; v_old_price numeric;
|
|
3762
3857
|
v_old_lead boolean; v_old_forms jsonb; v_stock numeric; v_price numeric; v_n int := 0; v_c int := 0; v_name text; v_fs text;
|
|
3763
3858
|
BEGIN
|
|
3764
|
-
|
|
3859
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_takeover_apply');
|
|
3860
|
+
IF NOT public.voorraad_is_server() AND (auth.uid() IS NULL OR NOT public.voorraad_can_write()) THEN
|
|
3765
3861
|
RAISE EXCEPTION 'Je hebt geen rechten om voorraad over te nemen' USING ERRCODE = '42501';
|
|
3766
3862
|
END IF;
|
|
3767
3863
|
IF p_connection_id IS NULL OR NOT EXISTS (SELECT 1 FROM public.floriday_connections c WHERE c.id = p_connection_id) THEN
|
|
@@ -3828,6 +3924,7 @@ BEGIN
|
|
|
3828
3924
|
END $function$
|
|
3829
3925
|
;
|
|
3830
3926
|
REVOKE ALL ON FUNCTION floriday_takeover_apply(uuid,jsonb) FROM PUBLIC;
|
|
3927
|
+
REVOKE ALL ON FUNCTION floriday_takeover_apply(uuid,jsonb) FROM anon;
|
|
3831
3928
|
GRANT EXECUTE ON FUNCTION floriday_takeover_apply(uuid,jsonb) TO authenticated;
|
|
3832
3929
|
GRANT EXECUTE ON FUNCTION floriday_takeover_apply(uuid,jsonb) TO service_role;
|
|
3833
3930
|
CREATE OR REPLACE FUNCTION public.floriday_takeover_fetch_state(p_connection_id uuid, p_entity text DEFAULT 'trade-items'::text)
|
|
@@ -3838,6 +3935,7 @@ CREATE OR REPLACE FUNCTION public.floriday_takeover_fetch_state(p_connection_id
|
|
|
3838
3935
|
AS $function$
|
|
3839
3936
|
DECLARE r record; v_found boolean; v_cached boolean := false;
|
|
3840
3937
|
BEGIN
|
|
3938
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_takeover_fetch_state');
|
|
3841
3939
|
SELECT s.backfill_target_sequence, s.backfill_done_at, s.last_success_at INTO r
|
|
3842
3940
|
FROM public.floriday_sync_state s WHERE s.connection_id = p_connection_id AND s.entity_type = p_entity LIMIT 1;
|
|
3843
3941
|
v_found := FOUND;
|
|
@@ -3852,6 +3950,7 @@ BEGIN
|
|
|
3852
3950
|
END $function$
|
|
3853
3951
|
;
|
|
3854
3952
|
REVOKE ALL ON FUNCTION floriday_takeover_fetch_state(uuid,text) FROM PUBLIC;
|
|
3953
|
+
REVOKE ALL ON FUNCTION floriday_takeover_fetch_state(uuid,text) FROM anon;
|
|
3855
3954
|
GRANT EXECUTE ON FUNCTION floriday_takeover_fetch_state(uuid,text) TO authenticated;
|
|
3856
3955
|
GRANT EXECUTE ON FUNCTION floriday_takeover_fetch_state(uuid,text) TO service_role;
|
|
3857
3956
|
CREATE OR REPLACE FUNCTION public.floriday_takeover_store_forms()
|
|
@@ -3861,6 +3960,7 @@ CREATE OR REPLACE FUNCTION public.floriday_takeover_store_forms()
|
|
|
3861
3960
|
AS $function$ BEGIN NEW.floriday_offer_forms := public.floriday_norm_offer_forms(NEW.floriday_offer_forms); RETURN NEW; END $function$
|
|
3862
3961
|
;
|
|
3863
3962
|
REVOKE ALL ON FUNCTION floriday_takeover_store_forms() FROM PUBLIC;
|
|
3963
|
+
REVOKE ALL ON FUNCTION floriday_takeover_store_forms() FROM anon;
|
|
3864
3964
|
GRANT EXECUTE ON FUNCTION floriday_takeover_store_forms() TO service_role;
|
|
3865
3965
|
CREATE OR REPLACE FUNCTION public.floriday_takeover_undo(p_run_id uuid)
|
|
3866
3966
|
RETURNS jsonb
|
|
@@ -3871,7 +3971,8 @@ AS $function$
|
|
|
3871
3971
|
DECLARE v_r public.floriday_takeover_runs%ROWTYPE; v_i public.floriday_takeover_items%ROWTYPE;
|
|
3872
3972
|
v_cur numeric; v_curp numeric; v_curlead boolean; v_done int := 0; v_skip int := 0; v_reason text;
|
|
3873
3973
|
BEGIN
|
|
3874
|
-
|
|
3974
|
+
PERFORM public.voorraad_vereis('ingelogd', 'floriday_takeover_undo');
|
|
3975
|
+
IF NOT public.voorraad_is_server() AND (auth.uid() IS NULL OR NOT public.voorraad_can_write()) THEN
|
|
3875
3976
|
RAISE EXCEPTION 'Je hebt geen rechten om een overname terug te draaien' USING ERRCODE = '42501';
|
|
3876
3977
|
END IF;
|
|
3877
3978
|
SELECT * INTO v_r FROM public.floriday_takeover_runs WHERE id = p_run_id FOR UPDATE;
|
|
@@ -3914,6 +4015,7 @@ BEGIN
|
|
|
3914
4015
|
END $function$
|
|
3915
4016
|
;
|
|
3916
4017
|
REVOKE ALL ON FUNCTION floriday_takeover_undo(uuid) FROM PUBLIC;
|
|
4018
|
+
REVOKE ALL ON FUNCTION floriday_takeover_undo(uuid) FROM anon;
|
|
3917
4019
|
GRANT EXECUTE ON FUNCTION floriday_takeover_undo(uuid) TO authenticated;
|
|
3918
4020
|
GRANT EXECUTE ON FUNCTION floriday_takeover_undo(uuid) TO service_role;
|
|
3919
4021
|
CREATE OR REPLACE FUNCTION public.fust_negative_stock_report()
|
|
@@ -3930,8 +4032,11 @@ AS $function$
|
|
|
3930
4032
|
$function$
|
|
3931
4033
|
;
|
|
3932
4034
|
REVOKE ALL ON FUNCTION fust_negative_stock_report() FROM PUBLIC;
|
|
3933
|
-
|
|
3934
|
-
|
|
4035
|
+
REVOKE ALL ON FUNCTION fust_negative_stock_report() FROM anon;
|
|
4036
|
+
REVOKE EXECUTE ON FUNCTION fust_negative_stock_report() FROM PUBLIC;
|
|
4037
|
+
GRANT EXECUTE ON FUNCTION fust_negative_stock_report() TO authenticated;
|
|
4038
|
+
GRANT EXECUTE ON FUNCTION fust_negative_stock_report() TO service_role;
|
|
4039
|
+
REVOKE EXECUTE ON FUNCTION fust_negative_stock_report() FROM anon;
|
|
3935
4040
|
GRANT EXECUTE ON FUNCTION fust_negative_stock_report() TO authenticated;
|
|
3936
4041
|
GRANT EXECUTE ON FUNCTION fust_negative_stock_report() TO service_role;
|
|
3937
4042
|
CREATE OR REPLACE FUNCTION public.fust_types_duplicate_guard()
|
|
@@ -3951,38 +4056,8 @@ BEGIN
|
|
|
3951
4056
|
END $function$
|
|
3952
4057
|
;
|
|
3953
4058
|
REVOKE ALL ON FUNCTION fust_types_duplicate_guard() FROM PUBLIC;
|
|
4059
|
+
REVOKE ALL ON FUNCTION fust_types_duplicate_guard() FROM anon;
|
|
3954
4060
|
GRANT EXECUTE ON FUNCTION fust_types_duplicate_guard() TO service_role;
|
|
3955
|
-
CREATE OR REPLACE FUNCTION public.get_active_floriday_connection_public()
|
|
3956
|
-
RETURNS TABLE(id uuid, label text, environment text, organization_name text, gln_code text, preferred_warehouse_id text, preferred_warehouse_name text, active_environment text)
|
|
3957
|
-
LANGUAGE sql
|
|
3958
|
-
STABLE SECURITY DEFINER
|
|
3959
|
-
SET search_path TO 'public'
|
|
3960
|
-
AS $function$
|
|
3961
|
-
SELECT
|
|
3962
|
-
c.id,
|
|
3963
|
-
c.label,
|
|
3964
|
-
c.environment,
|
|
3965
|
-
c.organization_name,
|
|
3966
|
-
c.gln_code,
|
|
3967
|
-
c.preferred_warehouse_id,
|
|
3968
|
-
c.preferred_warehouse_name,
|
|
3969
|
-
s.active_environment
|
|
3970
|
-
FROM public.floriday_settings s
|
|
3971
|
-
LEFT JOIN LATERAL (
|
|
3972
|
-
SELECT *
|
|
3973
|
-
FROM public.floriday_connections fc
|
|
3974
|
-
WHERE fc.is_active = true
|
|
3975
|
-
AND fc.environment = s.active_environment
|
|
3976
|
-
ORDER BY fc.updated_at DESC NULLS LAST, fc.created_at DESC NULLS LAST
|
|
3977
|
-
LIMIT 1
|
|
3978
|
-
) c ON true
|
|
3979
|
-
WHERE s.id = 1;
|
|
3980
|
-
$function$
|
|
3981
|
-
;
|
|
3982
|
-
REVOKE ALL ON FUNCTION get_active_floriday_connection_public() FROM PUBLIC;
|
|
3983
|
-
GRANT EXECUTE ON FUNCTION get_active_floriday_connection_public() TO anon;
|
|
3984
|
-
GRANT EXECUTE ON FUNCTION get_active_floriday_connection_public() TO authenticated;
|
|
3985
|
-
GRANT EXECUTE ON FUNCTION get_active_floriday_connection_public() TO service_role;
|
|
3986
4061
|
CREATE OR REPLACE FUNCTION public.get_active_floriday_context()
|
|
3987
4062
|
RETURNS TABLE(connection_id uuid, user_id uuid)
|
|
3988
4063
|
LANGUAGE sql
|
|
@@ -3997,8 +4072,11 @@ AS $function$
|
|
|
3997
4072
|
$function$
|
|
3998
4073
|
;
|
|
3999
4074
|
REVOKE ALL ON FUNCTION get_active_floriday_context() FROM PUBLIC;
|
|
4000
|
-
|
|
4001
|
-
|
|
4075
|
+
REVOKE ALL ON FUNCTION get_active_floriday_context() FROM anon;
|
|
4076
|
+
REVOKE EXECUTE ON FUNCTION get_active_floriday_context() FROM PUBLIC;
|
|
4077
|
+
GRANT EXECUTE ON FUNCTION get_active_floriday_context() TO authenticated;
|
|
4078
|
+
GRANT EXECUTE ON FUNCTION get_active_floriday_context() TO service_role;
|
|
4079
|
+
REVOKE EXECUTE ON FUNCTION get_active_floriday_context() FROM anon;
|
|
4002
4080
|
GRANT EXECUTE ON FUNCTION get_active_floriday_context() TO authenticated;
|
|
4003
4081
|
GRANT EXECUTE ON FUNCTION get_active_floriday_context() TO service_role;
|
|
4004
4082
|
CREATE OR REPLACE FUNCTION public.get_group_allocation_keys(p_product_id uuid)
|
|
@@ -4024,8 +4102,11 @@ AS $function$
|
|
|
4024
4102
|
$function$
|
|
4025
4103
|
;
|
|
4026
4104
|
REVOKE ALL ON FUNCTION get_group_allocation_keys(uuid) FROM PUBLIC;
|
|
4027
|
-
|
|
4028
|
-
|
|
4105
|
+
REVOKE ALL ON FUNCTION get_group_allocation_keys(uuid) FROM anon;
|
|
4106
|
+
REVOKE EXECUTE ON FUNCTION get_group_allocation_keys(uuid) FROM PUBLIC;
|
|
4107
|
+
GRANT EXECUTE ON FUNCTION get_group_allocation_keys(uuid) TO authenticated;
|
|
4108
|
+
GRANT EXECUTE ON FUNCTION get_group_allocation_keys(uuid) TO service_role;
|
|
4109
|
+
REVOKE EXECUTE ON FUNCTION get_group_allocation_keys(uuid) FROM anon;
|
|
4029
4110
|
GRANT EXECUTE ON FUNCTION get_group_allocation_keys(uuid) TO authenticated;
|
|
4030
4111
|
GRANT EXECUTE ON FUNCTION get_group_allocation_keys(uuid) TO service_role;
|
|
4031
4112
|
CREATE OR REPLACE FUNCTION public.get_group_head_key(p_group_id uuid)
|
|
@@ -4054,8 +4135,11 @@ AS $function$
|
|
|
4054
4135
|
$function$
|
|
4055
4136
|
;
|
|
4056
4137
|
REVOKE ALL ON FUNCTION get_group_head_key(uuid) FROM PUBLIC;
|
|
4057
|
-
|
|
4058
|
-
|
|
4138
|
+
REVOKE ALL ON FUNCTION get_group_head_key(uuid) FROM anon;
|
|
4139
|
+
REVOKE EXECUTE ON FUNCTION get_group_head_key(uuid) FROM PUBLIC;
|
|
4140
|
+
GRANT EXECUTE ON FUNCTION get_group_head_key(uuid) TO authenticated;
|
|
4141
|
+
GRANT EXECUTE ON FUNCTION get_group_head_key(uuid) TO service_role;
|
|
4142
|
+
REVOKE EXECUTE ON FUNCTION get_group_head_key(uuid) FROM anon;
|
|
4059
4143
|
GRANT EXECUTE ON FUNCTION get_group_head_key(uuid) TO authenticated;
|
|
4060
4144
|
GRANT EXECUTE ON FUNCTION get_group_head_key(uuid) TO service_role;
|
|
4061
4145
|
CREATE OR REPLACE FUNCTION public.get_product_stock(p_product_id uuid)
|
|
@@ -4068,7 +4152,8 @@ AS $function$
|
|
|
4068
4152
|
DECLARE
|
|
4069
4153
|
v_connection_id uuid; v_key text; v_product_key text; v_floriday_key text;
|
|
4070
4154
|
BEGIN
|
|
4071
|
-
|
|
4155
|
+
PERFORM public.voorraad_vereis('ingelogd', 'get_product_stock');
|
|
4156
|
+
IF auth.uid() IS NULL AND NOT public.voorraad_is_server() THEN RAISE EXCEPTION 'Niet ingelogd' USING ERRCODE = '42501'; END IF;
|
|
4072
4157
|
SELECT NULLIF(trim(COALESCE(p.floriday_trade_item_id, '')), ''), NULLIF(trim(COALESCE(p.trade_item_key, '')), '')
|
|
4073
4158
|
INTO v_floriday_key, v_product_key FROM public.products p WHERE p.id = p_product_id;
|
|
4074
4159
|
v_key := COALESCE(v_floriday_key, v_product_key, 'product:' || p_product_id::text);
|
|
@@ -4093,6 +4178,7 @@ BEGIN
|
|
|
4093
4178
|
END; $function$
|
|
4094
4179
|
;
|
|
4095
4180
|
REVOKE ALL ON FUNCTION get_product_stock(uuid) FROM PUBLIC;
|
|
4181
|
+
REVOKE ALL ON FUNCTION get_product_stock(uuid) FROM anon;
|
|
4096
4182
|
GRANT EXECUTE ON FUNCTION get_product_stock(uuid) TO authenticated;
|
|
4097
4183
|
GRANT EXECUTE ON FUNCTION get_product_stock(uuid) TO service_role;
|
|
4098
4184
|
CREATE OR REPLACE FUNCTION public.get_product_structure_totals(p_product_id uuid)
|
|
@@ -4103,6 +4189,7 @@ CREATE OR REPLACE FUNCTION public.get_product_structure_totals(p_product_id uuid
|
|
|
4103
4189
|
AS $function$
|
|
4104
4190
|
DECLARE v_ctx record;
|
|
4105
4191
|
BEGIN
|
|
4192
|
+
PERFORM public.voorraad_vereis('ingelogd', 'get_product_structure_totals');
|
|
4106
4193
|
SELECT * INTO v_ctx FROM public.get_active_floriday_context();
|
|
4107
4194
|
IF v_ctx.connection_id IS NULL THEN
|
|
4108
4195
|
RETURN jsonb_build_object('product_id',p_product_id,'type',public.product_type(p_product_id),'reason','NO_ACTIVE_CONNECTION');
|
|
@@ -4116,6 +4203,7 @@ BEGIN
|
|
|
4116
4203
|
END $function$
|
|
4117
4204
|
;
|
|
4118
4205
|
REVOKE ALL ON FUNCTION get_product_structure_totals(uuid) FROM PUBLIC;
|
|
4206
|
+
REVOKE ALL ON FUNCTION get_product_structure_totals(uuid) FROM anon;
|
|
4119
4207
|
GRANT EXECUTE ON FUNCTION get_product_structure_totals(uuid) TO authenticated;
|
|
4120
4208
|
GRANT EXECUTE ON FUNCTION get_product_structure_totals(uuid) TO service_role;
|
|
4121
4209
|
CREATE OR REPLACE FUNCTION public.get_product_structure_totals_batch(p_product_ids uuid[])
|
|
@@ -4128,6 +4216,7 @@ AS $function$
|
|
|
4128
4216
|
$function$
|
|
4129
4217
|
;
|
|
4130
4218
|
REVOKE ALL ON FUNCTION get_product_structure_totals_batch(uuid[]) FROM PUBLIC;
|
|
4219
|
+
REVOKE ALL ON FUNCTION get_product_structure_totals_batch(uuid[]) FROM anon;
|
|
4131
4220
|
GRANT EXECUTE ON FUNCTION get_product_structure_totals_batch(uuid[]) TO authenticated;
|
|
4132
4221
|
GRANT EXECUTE ON FUNCTION get_product_structure_totals_batch(uuid[]) TO service_role;
|
|
4133
4222
|
CREATE OR REPLACE FUNCTION public.inventory_inline_budget_ok()
|
|
@@ -4138,6 +4227,7 @@ CREATE OR REPLACE FUNCTION public.inventory_inline_budget_ok()
|
|
|
4138
4227
|
AS $function$
|
|
4139
4228
|
DECLARE v_n int; v_t0 timestamptz; l record;
|
|
4140
4229
|
BEGIN
|
|
4230
|
+
PERFORM public.voorraad_vereis('ingelogd', 'inventory_inline_budget_ok');
|
|
4141
4231
|
SELECT max_parents_inline, max_ms_inline INTO l FROM public.inventory_recompute_limits WHERE id;
|
|
4142
4232
|
v_n := COALESCE(NULLIF(current_setting('inventory.inline_n', true),'')::int, 0) + 1;
|
|
4143
4233
|
v_t0 := COALESCE(NULLIF(current_setting('inventory.inline_t0', true),'')::timestamptz, clock_timestamp());
|
|
@@ -4153,6 +4243,7 @@ EXCEPTION WHEN others THEN RETURN false;
|
|
|
4153
4243
|
END $function$
|
|
4154
4244
|
;
|
|
4155
4245
|
REVOKE ALL ON FUNCTION inventory_inline_budget_ok() FROM PUBLIC;
|
|
4246
|
+
REVOKE ALL ON FUNCTION inventory_inline_budget_ok() FROM anon;
|
|
4156
4247
|
GRANT EXECUTE ON FUNCTION inventory_inline_budget_ok() TO service_role;
|
|
4157
4248
|
CREATE OR REPLACE FUNCTION public.merge_products(_canonical uuid, _loser uuid)
|
|
4158
4249
|
RETURNS void
|
|
@@ -4161,7 +4252,8 @@ CREATE OR REPLACE FUNCTION public.merge_products(_canonical uuid, _loser uuid)
|
|
|
4161
4252
|
SET search_path TO 'public'
|
|
4162
4253
|
AS $function$
|
|
4163
4254
|
DECLARE loser_row record;
|
|
4164
|
-
BEGIN
|
|
4255
|
+
BEGIN
|
|
4256
|
+
PERFORM public.voorraad_vereis('ingelogd', 'merge_products');
|
|
4165
4257
|
IF _canonical = _loser THEN RETURN; END IF;
|
|
4166
4258
|
SELECT * INTO loser_row FROM public.products WHERE id = _loser;
|
|
4167
4259
|
IF NOT FOUND THEN RETURN; END IF;
|
|
@@ -4189,96 +4281,13 @@ END;
|
|
|
4189
4281
|
$function$
|
|
4190
4282
|
;
|
|
4191
4283
|
REVOKE ALL ON FUNCTION merge_products(uuid,uuid) FROM PUBLIC;
|
|
4192
|
-
|
|
4193
|
-
|
|
4284
|
+
REVOKE ALL ON FUNCTION merge_products(uuid,uuid) FROM anon;
|
|
4285
|
+
REVOKE EXECUTE ON FUNCTION merge_products(uuid,uuid) FROM PUBLIC;
|
|
4286
|
+
GRANT EXECUTE ON FUNCTION merge_products(uuid,uuid) TO authenticated;
|
|
4287
|
+
GRANT EXECUTE ON FUNCTION merge_products(uuid,uuid) TO service_role;
|
|
4288
|
+
REVOKE EXECUTE ON FUNCTION merge_products(uuid,uuid) FROM anon;
|
|
4194
4289
|
GRANT EXECUTE ON FUNCTION merge_products(uuid,uuid) TO authenticated;
|
|
4195
4290
|
GRANT EXECUTE ON FUNCTION merge_products(uuid,uuid) TO service_role;
|
|
4196
|
-
CREATE OR REPLACE FUNCTION public.mirror_offer_order_to_orders()
|
|
4197
|
-
RETURNS trigger
|
|
4198
|
-
LANGUAGE plpgsql
|
|
4199
|
-
SECURITY DEFINER
|
|
4200
|
-
SET search_path TO 'public'
|
|
4201
|
-
AS $function$
|
|
4202
|
-
DECLARE
|
|
4203
|
-
v_order_id uuid; v_item jsonb;
|
|
4204
|
-
v_total_numeric numeric := COALESCE(NEW.total_amount, 0);
|
|
4205
|
-
v_total_text text; v_product_id uuid;
|
|
4206
|
-
v_pieces int; v_plants_per_crate int; v_crate_price numeric;
|
|
4207
|
-
v_qty int; v_unit text; v_unit_price numeric;
|
|
4208
|
-
BEGIN
|
|
4209
|
-
IF EXISTS (SELECT 1 FROM public.orders WHERE (custom_fields->>'offer_order_id')::uuid = NEW.id) THEN
|
|
4210
|
-
RETURN NEW;
|
|
4211
|
-
END IF;
|
|
4212
|
-
v_total_text := '€ ' || replace(replace(to_char(v_total_numeric,'FM999G999G990D00'),'.','X'),',','.');
|
|
4213
|
-
v_total_text := replace(v_total_text,'X',',');
|
|
4214
|
-
v_order_id := gen_random_uuid();
|
|
4215
|
-
|
|
4216
|
-
INSERT INTO public.orders (id, order_number, customer_name, customer_id, order_date, delivery_date,
|
|
4217
|
-
status, total, notes, custom_fields, order_source, created_at, updated_at)
|
|
4218
|
-
VALUES (v_order_id, NEW.order_number, COALESCE(NEW.customer_name,'Onbekende klant'), NEW.customer_id,
|
|
4219
|
-
to_char(COALESCE(NEW.created_at,now()),'YYYY-MM-DD'), to_char(COALESCE(NEW.created_at,now()),'YYYY-MM-DD'),
|
|
4220
|
-
'open', v_total_text, NEW.notes,
|
|
4221
|
-
jsonb_build_object('source','offer','offer_order_id',NEW.id,'offer_campaign_id',NEW.campaign_id,
|
|
4222
|
-
'offer_recipient_id',NEW.recipient_id,'customer_email',NEW.customer_email,'customer_phone',NEW.customer_phone,
|
|
4223
|
-
'order_type','AO'),
|
|
4224
|
-
'offer', COALESCE(NEW.created_at,now()), now());
|
|
4225
|
-
|
|
4226
|
-
IF jsonb_typeof(NEW.items)='array' THEN
|
|
4227
|
-
FOR v_item IN SELECT * FROM jsonb_array_elements(NEW.items) LOOP
|
|
4228
|
-
v_product_id := NULL;
|
|
4229
|
-
BEGIN v_product_id := NULLIF(v_item->>'product_id','')::uuid;
|
|
4230
|
-
EXCEPTION WHEN others THEN v_product_id := NULL; END;
|
|
4231
|
-
|
|
4232
|
-
v_pieces := COALESCE((v_item->>'quantity')::int,0);
|
|
4233
|
-
v_unit_price := COALESCE((v_item->>'unit_price')::numeric,0);
|
|
4234
|
-
v_qty := v_pieces;
|
|
4235
|
-
v_unit := COALESCE(NULLIF(v_item->>'unit',''),'stuks');
|
|
4236
|
-
|
|
4237
|
-
-- Zoek plants_per_crate + tier prijs in offer_campaign_products
|
|
4238
|
-
v_plants_per_crate := NULL; v_crate_price := NULL;
|
|
4239
|
-
IF v_product_id IS NOT NULL AND NEW.campaign_id IS NOT NULL THEN
|
|
4240
|
-
SELECT plants_per_crate INTO v_plants_per_crate
|
|
4241
|
-
FROM public.offer_campaign_products
|
|
4242
|
-
WHERE id = v_product_id AND campaign_id = NEW.campaign_id;
|
|
4243
|
-
|
|
4244
|
-
IF v_plants_per_crate IS NOT NULL AND v_plants_per_crate > 0 THEN
|
|
4245
|
-
v_qty := CEIL(v_pieces::numeric / v_plants_per_crate)::int;
|
|
4246
|
-
v_unit := 'fust';
|
|
4247
|
-
-- Beste tier: hoogste min_crates <= v_qty
|
|
4248
|
-
SELECT price_per_crate INTO v_crate_price
|
|
4249
|
-
FROM public.offer_campaign_product_tiers
|
|
4250
|
-
WHERE campaign_product_id = v_product_id AND min_crates <= v_qty
|
|
4251
|
-
ORDER BY min_crates DESC LIMIT 1;
|
|
4252
|
-
IF v_crate_price IS NOT NULL THEN
|
|
4253
|
-
v_unit_price := v_crate_price;
|
|
4254
|
-
ELSE
|
|
4255
|
-
v_unit_price := v_unit_price * v_plants_per_crate;
|
|
4256
|
-
END IF;
|
|
4257
|
-
END IF;
|
|
4258
|
-
END IF;
|
|
4259
|
-
|
|
4260
|
-
-- v_product_id verwijst naar offer_campaign_products.id, niet products.id
|
|
4261
|
-
IF v_product_id IS NOT NULL AND NOT EXISTS (SELECT 1 FROM public.products WHERE id = v_product_id) THEN
|
|
4262
|
-
v_product_id := NULL;
|
|
4263
|
-
END IF;
|
|
4264
|
-
|
|
4265
|
-
INSERT INTO public.order_items (order_id, product_id, product_name, quantity, unit, unit_price)
|
|
4266
|
-
VALUES (v_order_id, v_product_id, COALESCE(v_item->>'product_name','Artikel'),
|
|
4267
|
-
v_qty, v_unit, v_unit_price);
|
|
4268
|
-
END LOOP;
|
|
4269
|
-
END IF;
|
|
4270
|
-
RETURN NEW;
|
|
4271
|
-
EXCEPTION WHEN OTHERS THEN
|
|
4272
|
-
RAISE WARNING 'mirror_offer_order_to_orders failed for %: %', NEW.id, SQLERRM;
|
|
4273
|
-
RETURN NEW;
|
|
4274
|
-
END;
|
|
4275
|
-
$function$
|
|
4276
|
-
;
|
|
4277
|
-
REVOKE ALL ON FUNCTION mirror_offer_order_to_orders() FROM PUBLIC;
|
|
4278
|
-
GRANT EXECUTE ON FUNCTION mirror_offer_order_to_orders() TO PUBLIC;
|
|
4279
|
-
GRANT EXECUTE ON FUNCTION mirror_offer_order_to_orders() TO anon;
|
|
4280
|
-
GRANT EXECUTE ON FUNCTION mirror_offer_order_to_orders() TO authenticated;
|
|
4281
|
-
GRANT EXECUTE ON FUNCTION mirror_offer_order_to_orders() TO service_role;
|
|
4282
4291
|
CREATE OR REPLACE FUNCTION public.normalize_order_source(p_src text)
|
|
4283
4292
|
RETURNS text
|
|
4284
4293
|
LANGUAGE sql
|
|
@@ -4296,8 +4305,11 @@ AS $function$
|
|
|
4296
4305
|
$function$
|
|
4297
4306
|
;
|
|
4298
4307
|
REVOKE ALL ON FUNCTION normalize_order_source(text) FROM PUBLIC;
|
|
4299
|
-
|
|
4300
|
-
|
|
4308
|
+
REVOKE ALL ON FUNCTION normalize_order_source(text) FROM anon;
|
|
4309
|
+
REVOKE EXECUTE ON FUNCTION normalize_order_source(text) FROM PUBLIC;
|
|
4310
|
+
GRANT EXECUTE ON FUNCTION normalize_order_source(text) TO authenticated;
|
|
4311
|
+
GRANT EXECUTE ON FUNCTION normalize_order_source(text) TO service_role;
|
|
4312
|
+
REVOKE EXECUTE ON FUNCTION normalize_order_source(text) FROM anon;
|
|
4301
4313
|
GRANT EXECUTE ON FUNCTION normalize_order_source(text) TO authenticated;
|
|
4302
4314
|
GRANT EXECUTE ON FUNCTION normalize_order_source(text) TO service_role;
|
|
4303
4315
|
CREATE OR REPLACE FUNCTION public.process_inventory_recompute_queue(p_limit integer DEFAULT 200)
|
|
@@ -4308,6 +4320,7 @@ CREATE OR REPLACE FUNCTION public.process_inventory_recompute_queue(p_limit inte
|
|
|
4308
4320
|
AS $function$
|
|
4309
4321
|
DECLARE r record; s record; n integer := 0;
|
|
4310
4322
|
BEGIN
|
|
4323
|
+
PERFORM public.voorraad_vereis('server', 'process_inventory_recompute_queue');
|
|
4311
4324
|
FOR r IN SELECT q.product_id FROM public.inventory_recompute_queue q
|
|
4312
4325
|
ORDER BY q.enqueued_at LIMIT GREATEST(1, LEAST(p_limit, 1000)) FOR UPDATE SKIP LOCKED LOOP
|
|
4313
4326
|
BEGIN
|
|
@@ -4327,6 +4340,7 @@ BEGIN
|
|
|
4327
4340
|
END $function$
|
|
4328
4341
|
;
|
|
4329
4342
|
REVOKE ALL ON FUNCTION process_inventory_recompute_queue(integer) FROM PUBLIC;
|
|
4343
|
+
REVOKE ALL ON FUNCTION process_inventory_recompute_queue(integer) FROM anon;
|
|
4330
4344
|
GRANT EXECUTE ON FUNCTION process_inventory_recompute_queue(integer) TO service_role;
|
|
4331
4345
|
CREATE OR REPLACE FUNCTION public.produce_designed_product(p_parent_kind text, p_parent_id text, p_quantity numeric)
|
|
4332
4346
|
RETURNS jsonb
|
|
@@ -4343,7 +4357,8 @@ DECLARE
|
|
|
4343
4357
|
v_connection_id uuid;
|
|
4344
4358
|
v_result jsonb;
|
|
4345
4359
|
v_batch_id uuid := gen_random_uuid();
|
|
4346
|
-
BEGIN
|
|
4360
|
+
BEGIN
|
|
4361
|
+
PERFORM public.voorraad_vereis('ingelogd', 'produce_designed_product');
|
|
4347
4362
|
IF v_uid IS NULL THEN RAISE EXCEPTION 'Niet ingelogd'; END IF;
|
|
4348
4363
|
IF p_quantity IS NULL OR p_quantity <= 0 THEN RAISE EXCEPTION 'Aantal moet groter dan 0 zijn'; END IF;
|
|
4349
4364
|
|
|
@@ -4417,6 +4432,7 @@ END;
|
|
|
4417
4432
|
$function$
|
|
4418
4433
|
;
|
|
4419
4434
|
REVOKE ALL ON FUNCTION produce_designed_product(text,text,numeric) FROM PUBLIC;
|
|
4435
|
+
REVOKE ALL ON FUNCTION produce_designed_product(text,text,numeric) FROM anon;
|
|
4420
4436
|
GRANT EXECUTE ON FUNCTION produce_designed_product(text,text,numeric) TO service_role;
|
|
4421
4437
|
CREATE OR REPLACE FUNCTION public.product_active_group_id(p_product_id uuid)
|
|
4422
4438
|
RETURNS uuid
|
|
@@ -4434,6 +4450,7 @@ AS $function$
|
|
|
4434
4450
|
$function$
|
|
4435
4451
|
;
|
|
4436
4452
|
REVOKE ALL ON FUNCTION product_active_group_id(uuid) FROM PUBLIC;
|
|
4453
|
+
REVOKE ALL ON FUNCTION product_active_group_id(uuid) FROM anon;
|
|
4437
4454
|
GRANT EXECUTE ON FUNCTION product_active_group_id(uuid) TO service_role;
|
|
4438
4455
|
CREATE OR REPLACE FUNCTION public.product_id_from_ref(p_ref text)
|
|
4439
4456
|
RETURNS uuid
|
|
@@ -4449,6 +4466,7 @@ AS $function$
|
|
|
4449
4466
|
$function$
|
|
4450
4467
|
;
|
|
4451
4468
|
REVOKE ALL ON FUNCTION product_id_from_ref(text) FROM PUBLIC;
|
|
4469
|
+
REVOKE ALL ON FUNCTION product_id_from_ref(text) FROM anon;
|
|
4452
4470
|
GRANT EXECUTE ON FUNCTION product_id_from_ref(text) TO service_role;
|
|
4453
4471
|
CREATE OR REPLACE FUNCTION public.product_is_set(p_product_id uuid)
|
|
4454
4472
|
RETURNS boolean
|
|
@@ -4461,6 +4479,7 @@ AS $function$
|
|
|
4461
4479
|
$function$
|
|
4462
4480
|
;
|
|
4463
4481
|
REVOKE ALL ON FUNCTION product_is_set(uuid) FROM PUBLIC;
|
|
4482
|
+
REVOKE ALL ON FUNCTION product_is_set(uuid) FROM anon;
|
|
4464
4483
|
GRANT EXECUTE ON FUNCTION product_is_set(uuid) TO service_role;
|
|
4465
4484
|
CREATE OR REPLACE FUNCTION public.product_label(p_id uuid)
|
|
4466
4485
|
RETURNS text
|
|
@@ -4472,6 +4491,7 @@ AS $function$
|
|
|
4472
4491
|
$function$
|
|
4473
4492
|
;
|
|
4474
4493
|
REVOKE ALL ON FUNCTION product_label(uuid) FROM PUBLIC;
|
|
4494
|
+
REVOKE ALL ON FUNCTION product_label(uuid) FROM anon;
|
|
4475
4495
|
GRANT EXECUTE ON FUNCTION product_label(uuid) TO service_role;
|
|
4476
4496
|
CREATE OR REPLACE FUNCTION public.product_member_group_ids(p_product_id uuid)
|
|
4477
4497
|
RETURNS uuid[]
|
|
@@ -4485,6 +4505,7 @@ AS $function$
|
|
|
4485
4505
|
$function$
|
|
4486
4506
|
;
|
|
4487
4507
|
REVOKE ALL ON FUNCTION product_member_group_ids(uuid) FROM PUBLIC;
|
|
4508
|
+
REVOKE ALL ON FUNCTION product_member_group_ids(uuid) FROM anon;
|
|
4488
4509
|
GRANT EXECUTE ON FUNCTION product_member_group_ids(uuid) TO service_role;
|
|
4489
4510
|
CREATE OR REPLACE FUNCTION public.product_own_available(p_connection_id uuid, p_product_id uuid, OUT has_row boolean, OUT physical numeric, OUT reserved numeric, OUT available integer)
|
|
4490
4511
|
RETURNS record
|
|
@@ -4494,6 +4515,7 @@ CREATE OR REPLACE FUNCTION public.product_own_available(p_connection_id uuid, p_
|
|
|
4494
4515
|
AS $function$
|
|
4495
4516
|
DECLARE v_key text; v_p numeric; v_r numeric; v_hit boolean := false;
|
|
4496
4517
|
BEGIN
|
|
4518
|
+
PERFORM public.voorraad_vereis('ingelogd', 'product_own_available');
|
|
4497
4519
|
has_row := false; physical := 0; reserved := 0; available := 0;
|
|
4498
4520
|
SELECT COALESCE(NULLIF(btrim(COALESCE(p.floriday_trade_item_id,'')),''), NULLIF(btrim(COALESCE(p.trade_item_key,'')),''))
|
|
4499
4521
|
INTO v_key FROM public.products p WHERE p.id = p_product_id;
|
|
@@ -4507,6 +4529,7 @@ BEGIN
|
|
|
4507
4529
|
END $function$
|
|
4508
4530
|
;
|
|
4509
4531
|
REVOKE ALL ON FUNCTION product_own_available(uuid,uuid) FROM PUBLIC;
|
|
4532
|
+
REVOKE ALL ON FUNCTION product_own_available(uuid,uuid) FROM anon;
|
|
4510
4533
|
GRANT EXECUTE ON FUNCTION product_own_available(uuid,uuid) TO service_role;
|
|
4511
4534
|
CREATE OR REPLACE FUNCTION public.product_packings_derive(p_product_id uuid)
|
|
4512
4535
|
RETURNS void
|
|
@@ -4516,6 +4539,7 @@ CREATE OR REPLACE FUNCTION public.product_packings_derive(p_product_id uuid)
|
|
|
4516
4539
|
AS $function$
|
|
4517
4540
|
DECLARE r record; v_nullable boolean;
|
|
4518
4541
|
BEGIN
|
|
4542
|
+
PERFORM public.voorraad_vereis('ingelogd', 'product_packings_derive');
|
|
4519
4543
|
SELECT * INTO r FROM public.product_packings WHERE product_id = p_product_id AND is_primary LIMIT 1;
|
|
4520
4544
|
IF FOUND AND r.pieces_per_package > 0 AND r.packages_per_layer > 0 AND r.layers_per_load_carrier > 0 THEN
|
|
4521
4545
|
UPDATE public.products SET
|
|
@@ -4540,6 +4564,7 @@ BEGIN
|
|
|
4540
4564
|
END $function$
|
|
4541
4565
|
;
|
|
4542
4566
|
REVOKE ALL ON FUNCTION product_packings_derive(uuid) FROM PUBLIC;
|
|
4567
|
+
REVOKE ALL ON FUNCTION product_packings_derive(uuid) FROM anon;
|
|
4543
4568
|
GRANT EXECUTE ON FUNCTION product_packings_derive(uuid) TO service_role;
|
|
4544
4569
|
CREATE OR REPLACE FUNCTION public.product_packings_replace(p_product_id uuid, p_source text, p_packings jsonb)
|
|
4545
4570
|
RETURNS integer
|
|
@@ -4548,6 +4573,7 @@ CREATE OR REPLACE FUNCTION public.product_packings_replace(p_product_id uuid, p_
|
|
|
4548
4573
|
AS $function$
|
|
4549
4574
|
DECLARE n integer;
|
|
4550
4575
|
BEGIN
|
|
4576
|
+
PERFORM public.voorraad_vereis('ingelogd', 'product_packings_replace');
|
|
4551
4577
|
IF p_source NOT IN ('floriday','eigen') THEN RAISE EXCEPTION 'Onbekende verpakkingsbron %', p_source; END IF;
|
|
4552
4578
|
DELETE FROM public.product_packings WHERE product_id = p_product_id;
|
|
4553
4579
|
INSERT INTO public.product_packings(product_id, source, floriday_packing_id, vbn_package_code, custom_package_id,
|
|
@@ -4564,8 +4590,11 @@ BEGIN
|
|
|
4564
4590
|
END $function$
|
|
4565
4591
|
;
|
|
4566
4592
|
REVOKE ALL ON FUNCTION product_packings_replace(uuid,text,jsonb) FROM PUBLIC;
|
|
4567
|
-
|
|
4568
|
-
|
|
4593
|
+
REVOKE ALL ON FUNCTION product_packings_replace(uuid,text,jsonb) FROM anon;
|
|
4594
|
+
REVOKE EXECUTE ON FUNCTION product_packings_replace(uuid,text,jsonb) FROM PUBLIC;
|
|
4595
|
+
GRANT EXECUTE ON FUNCTION product_packings_replace(uuid,text,jsonb) TO authenticated;
|
|
4596
|
+
GRANT EXECUTE ON FUNCTION product_packings_replace(uuid,text,jsonb) TO service_role;
|
|
4597
|
+
REVOKE EXECUTE ON FUNCTION product_packings_replace(uuid,text,jsonb) FROM anon;
|
|
4569
4598
|
GRANT EXECUTE ON FUNCTION product_packings_replace(uuid,text,jsonb) TO authenticated;
|
|
4570
4599
|
GRANT EXECUTE ON FUNCTION product_packings_replace(uuid,text,jsonb) TO service_role;
|
|
4571
4600
|
CREATE OR REPLACE FUNCTION public.product_packings_sync_from_floriday(p_connection_id uuid, p_product_ids uuid[], p_only_existing boolean DEFAULT false)
|
|
@@ -4575,6 +4604,7 @@ CREATE OR REPLACE FUNCTION public.product_packings_sync_from_floriday(p_connecti
|
|
|
4575
4604
|
AS $function$
|
|
4576
4605
|
DECLARE r record; v_list jsonb; n_done int := 0; n_missing int := 0;
|
|
4577
4606
|
BEGIN
|
|
4607
|
+
PERFORM public.voorraad_vereis('ingelogd', 'product_packings_sync_from_floriday');
|
|
4578
4608
|
FOR r IN
|
|
4579
4609
|
SELECT p.id, c.data
|
|
4580
4610
|
FROM public.products p
|
|
@@ -4609,8 +4639,11 @@ BEGIN
|
|
|
4609
4639
|
END $function$
|
|
4610
4640
|
;
|
|
4611
4641
|
REVOKE ALL ON FUNCTION product_packings_sync_from_floriday(uuid,uuid[],boolean) FROM PUBLIC;
|
|
4612
|
-
|
|
4613
|
-
|
|
4642
|
+
REVOKE ALL ON FUNCTION product_packings_sync_from_floriday(uuid,uuid[],boolean) FROM anon;
|
|
4643
|
+
REVOKE EXECUTE ON FUNCTION product_packings_sync_from_floriday(uuid,uuid[],boolean) FROM PUBLIC;
|
|
4644
|
+
GRANT EXECUTE ON FUNCTION product_packings_sync_from_floriday(uuid,uuid[],boolean) TO authenticated;
|
|
4645
|
+
GRANT EXECUTE ON FUNCTION product_packings_sync_from_floriday(uuid,uuid[],boolean) TO service_role;
|
|
4646
|
+
REVOKE EXECUTE ON FUNCTION product_packings_sync_from_floriday(uuid,uuid[],boolean) FROM anon;
|
|
4614
4647
|
GRANT EXECUTE ON FUNCTION product_packings_sync_from_floriday(uuid,uuid[],boolean) TO authenticated;
|
|
4615
4648
|
GRANT EXECUTE ON FUNCTION product_packings_sync_from_floriday(uuid,uuid[],boolean) TO service_role;
|
|
4616
4649
|
CREATE OR REPLACE FUNCTION public.product_primary_pieces(p_product_id uuid)
|
|
@@ -4626,8 +4659,11 @@ AS $function$
|
|
|
4626
4659
|
$function$
|
|
4627
4660
|
;
|
|
4628
4661
|
REVOKE ALL ON FUNCTION product_primary_pieces(uuid) FROM PUBLIC;
|
|
4629
|
-
|
|
4630
|
-
|
|
4662
|
+
REVOKE ALL ON FUNCTION product_primary_pieces(uuid) FROM anon;
|
|
4663
|
+
REVOKE EXECUTE ON FUNCTION product_primary_pieces(uuid) FROM PUBLIC;
|
|
4664
|
+
GRANT EXECUTE ON FUNCTION product_primary_pieces(uuid) TO authenticated;
|
|
4665
|
+
GRANT EXECUTE ON FUNCTION product_primary_pieces(uuid) TO service_role;
|
|
4666
|
+
REVOKE EXECUTE ON FUNCTION product_primary_pieces(uuid) FROM anon;
|
|
4631
4667
|
GRANT EXECUTE ON FUNCTION product_primary_pieces(uuid) TO authenticated;
|
|
4632
4668
|
GRANT EXECUTE ON FUNCTION product_primary_pieces(uuid) TO service_role;
|
|
4633
4669
|
CREATE OR REPLACE FUNCTION public.product_set_depth_above(p_product_id uuid, p_path uuid[] DEFAULT '{}'::uuid[])
|
|
@@ -4638,6 +4674,7 @@ CREATE OR REPLACE FUNCTION public.product_set_depth_above(p_product_id uuid, p_p
|
|
|
4638
4674
|
AS $function$
|
|
4639
4675
|
DECLARE r record; d integer := 0; v integer;
|
|
4640
4676
|
BEGIN
|
|
4677
|
+
PERFORM public.voorraad_vereis('ingelogd', 'product_set_depth_above');
|
|
4641
4678
|
IF p_product_id = ANY(p_path) OR cardinality(p_path) > 10 THEN RETURN 99; END IF;
|
|
4642
4679
|
FOR r IN SELECT DISTINCT COALESCE(b.parent_product_id, public.product_id_from_ref(b.parent_trade_item_floriday_id)) AS p
|
|
4643
4680
|
FROM public.product_bom_items b
|
|
@@ -4651,6 +4688,7 @@ BEGIN
|
|
|
4651
4688
|
END $function$
|
|
4652
4689
|
;
|
|
4653
4690
|
REVOKE ALL ON FUNCTION product_set_depth_above(uuid,uuid[]) FROM PUBLIC;
|
|
4691
|
+
REVOKE ALL ON FUNCTION product_set_depth_above(uuid,uuid[]) FROM anon;
|
|
4654
4692
|
GRANT EXECUTE ON FUNCTION product_set_depth_above(uuid,uuid[]) TO service_role;
|
|
4655
4693
|
CREATE OR REPLACE FUNCTION public.product_set_depth_below(p_product_id uuid, p_path uuid[] DEFAULT '{}'::uuid[])
|
|
4656
4694
|
RETURNS integer
|
|
@@ -4660,6 +4698,7 @@ CREATE OR REPLACE FUNCTION public.product_set_depth_below(p_product_id uuid, p_p
|
|
|
4660
4698
|
AS $function$
|
|
4661
4699
|
DECLARE r record; d integer := 0; v integer;
|
|
4662
4700
|
BEGIN
|
|
4701
|
+
PERFORM public.voorraad_vereis('ingelogd', 'product_set_depth_below');
|
|
4663
4702
|
IF p_product_id = ANY(p_path) OR cardinality(p_path) > 10 THEN RETURN 99; END IF;
|
|
4664
4703
|
IF NOT public.product_is_set(p_product_id) THEN RETURN 0; END IF;
|
|
4665
4704
|
FOR r IN SELECT COALESCE(b.component_product_id, public.product_id_from_ref(b.component_trade_item_floriday_id)) AS c
|
|
@@ -4674,6 +4713,7 @@ BEGIN
|
|
|
4674
4713
|
END $function$
|
|
4675
4714
|
;
|
|
4676
4715
|
REVOKE ALL ON FUNCTION product_set_depth_below(uuid,uuid[]) FROM PUBLIC;
|
|
4716
|
+
REVOKE ALL ON FUNCTION product_set_depth_below(uuid,uuid[]) FROM anon;
|
|
4677
4717
|
GRANT EXECUTE ON FUNCTION product_set_depth_below(uuid,uuid[]) TO service_role;
|
|
4678
4718
|
CREATE OR REPLACE FUNCTION public.product_structure_ancestors(p_product_ids uuid[])
|
|
4679
4719
|
RETURNS SETOF uuid
|
|
@@ -4701,6 +4741,7 @@ AS $function$
|
|
|
4701
4741
|
$function$
|
|
4702
4742
|
;
|
|
4703
4743
|
REVOKE ALL ON FUNCTION product_structure_ancestors(uuid[]) FROM PUBLIC;
|
|
4744
|
+
REVOKE ALL ON FUNCTION product_structure_ancestors(uuid[]) FROM anon;
|
|
4704
4745
|
GRANT EXECUTE ON FUNCTION product_structure_ancestors(uuid[]) TO service_role;
|
|
4705
4746
|
CREATE OR REPLACE FUNCTION public.product_structure_max_depth()
|
|
4706
4747
|
RETURNS integer
|
|
@@ -4710,8 +4751,11 @@ CREATE OR REPLACE FUNCTION public.product_structure_max_depth()
|
|
|
4710
4751
|
AS $function$ SELECT 3 $function$
|
|
4711
4752
|
;
|
|
4712
4753
|
REVOKE ALL ON FUNCTION product_structure_max_depth() FROM PUBLIC;
|
|
4713
|
-
|
|
4714
|
-
|
|
4754
|
+
REVOKE ALL ON FUNCTION product_structure_max_depth() FROM anon;
|
|
4755
|
+
REVOKE EXECUTE ON FUNCTION product_structure_max_depth() FROM PUBLIC;
|
|
4756
|
+
GRANT EXECUTE ON FUNCTION product_structure_max_depth() TO authenticated;
|
|
4757
|
+
GRANT EXECUTE ON FUNCTION product_structure_max_depth() TO service_role;
|
|
4758
|
+
REVOKE EXECUTE ON FUNCTION product_structure_max_depth() FROM anon;
|
|
4715
4759
|
GRANT EXECUTE ON FUNCTION product_structure_max_depth() TO authenticated;
|
|
4716
4760
|
GRANT EXECUTE ON FUNCTION product_structure_max_depth() TO service_role;
|
|
4717
4761
|
CREATE OR REPLACE FUNCTION public.product_structure_path(p_from uuid, p_target uuid)
|
|
@@ -4739,6 +4783,7 @@ AS $function$
|
|
|
4739
4783
|
$function$
|
|
4740
4784
|
;
|
|
4741
4785
|
REVOKE ALL ON FUNCTION product_structure_path(uuid,uuid) FROM PUBLIC;
|
|
4786
|
+
REVOKE ALL ON FUNCTION product_structure_path(uuid,uuid) FROM anon;
|
|
4742
4787
|
GRANT EXECUTE ON FUNCTION product_structure_path(uuid,uuid) TO service_role;
|
|
4743
4788
|
CREATE OR REPLACE FUNCTION public.product_tray_stickers_touch()
|
|
4744
4789
|
RETURNS trigger
|
|
@@ -4748,8 +4793,11 @@ AS $function$
|
|
|
4748
4793
|
BEGIN NEW.updated_at = now(); RETURN NEW; END; $function$
|
|
4749
4794
|
;
|
|
4750
4795
|
REVOKE ALL ON FUNCTION product_tray_stickers_touch() FROM PUBLIC;
|
|
4751
|
-
|
|
4752
|
-
|
|
4796
|
+
REVOKE ALL ON FUNCTION product_tray_stickers_touch() FROM anon;
|
|
4797
|
+
REVOKE EXECUTE ON FUNCTION product_tray_stickers_touch() FROM PUBLIC;
|
|
4798
|
+
GRANT EXECUTE ON FUNCTION product_tray_stickers_touch() TO authenticated;
|
|
4799
|
+
GRANT EXECUTE ON FUNCTION product_tray_stickers_touch() TO service_role;
|
|
4800
|
+
REVOKE EXECUTE ON FUNCTION product_tray_stickers_touch() FROM anon;
|
|
4753
4801
|
GRANT EXECUTE ON FUNCTION product_tray_stickers_touch() TO authenticated;
|
|
4754
4802
|
GRANT EXECUTE ON FUNCTION product_tray_stickers_touch() TO service_role;
|
|
4755
4803
|
CREATE OR REPLACE FUNCTION public.product_type(p_product_id uuid)
|
|
@@ -4764,6 +4812,7 @@ AS $function$
|
|
|
4764
4812
|
$function$
|
|
4765
4813
|
;
|
|
4766
4814
|
REVOKE ALL ON FUNCTION product_type(uuid) FROM PUBLIC;
|
|
4815
|
+
REVOKE ALL ON FUNCTION product_type(uuid) FROM anon;
|
|
4767
4816
|
GRANT EXECUTE ON FUNCTION product_type(uuid) TO service_role;
|
|
4768
4817
|
CREATE OR REPLACE FUNCTION public.promote_trade_item_key(p_old text, p_new text)
|
|
4769
4818
|
RETURNS void
|
|
@@ -4773,6 +4822,7 @@ CREATE OR REPLACE FUNCTION public.promote_trade_item_key(p_old text, p_new text)
|
|
|
4773
4822
|
AS $function$
|
|
4774
4823
|
DECLARE r RECORD; v_existing_id uuid;
|
|
4775
4824
|
BEGIN
|
|
4825
|
+
PERFORM public.voorraad_vereis('ingelogd', 'promote_trade_item_key');
|
|
4776
4826
|
IF p_old IS NULL OR p_new IS NULL OR p_old = p_new THEN RETURN; END IF;
|
|
4777
4827
|
FOR r IN SELECT * FROM public.trade_item_stock WHERE trade_item_key = p_old FOR UPDATE LOOP
|
|
4778
4828
|
SELECT id INTO v_existing_id FROM public.trade_item_stock
|
|
@@ -4796,8 +4846,11 @@ BEGIN
|
|
|
4796
4846
|
END $function$
|
|
4797
4847
|
;
|
|
4798
4848
|
REVOKE ALL ON FUNCTION promote_trade_item_key(text,text) FROM PUBLIC;
|
|
4799
|
-
|
|
4800
|
-
|
|
4849
|
+
REVOKE ALL ON FUNCTION promote_trade_item_key(text,text) FROM anon;
|
|
4850
|
+
REVOKE EXECUTE ON FUNCTION promote_trade_item_key(text,text) FROM PUBLIC;
|
|
4851
|
+
GRANT EXECUTE ON FUNCTION promote_trade_item_key(text,text) TO authenticated;
|
|
4852
|
+
GRANT EXECUTE ON FUNCTION promote_trade_item_key(text,text) TO service_role;
|
|
4853
|
+
REVOKE EXECUTE ON FUNCTION promote_trade_item_key(text,text) FROM anon;
|
|
4801
4854
|
GRANT EXECUTE ON FUNCTION promote_trade_item_key(text,text) TO authenticated;
|
|
4802
4855
|
GRANT EXECUTE ON FUNCTION promote_trade_item_key(text,text) TO service_role;
|
|
4803
4856
|
CREATE OR REPLACE FUNCTION public.recompute_all_reserved_stock()
|
|
@@ -4813,6 +4866,7 @@ DECLARE
|
|
|
4813
4866
|
v_struct jsonb := '[]'::jsonb; v_struct_qty numeric := 0;
|
|
4814
4867
|
v_frozen_ids uuid[];
|
|
4815
4868
|
BEGIN
|
|
4869
|
+
PERFORM public.voorraad_vereis('ingelogd', 'recompute_all_reserved_stock');
|
|
4816
4870
|
IF current_setting('app.recomputing_reserved', true) = 'on' THEN RETURN; END IF;
|
|
4817
4871
|
PERFORM set_config('app.recomputing_reserved', 'on', true);
|
|
4818
4872
|
|
|
@@ -5003,8 +5057,11 @@ END;
|
|
|
5003
5057
|
$function$
|
|
5004
5058
|
;
|
|
5005
5059
|
REVOKE ALL ON FUNCTION recompute_all_reserved_stock() FROM PUBLIC;
|
|
5006
|
-
|
|
5007
|
-
|
|
5060
|
+
REVOKE ALL ON FUNCTION recompute_all_reserved_stock() FROM anon;
|
|
5061
|
+
REVOKE EXECUTE ON FUNCTION recompute_all_reserved_stock() FROM PUBLIC;
|
|
5062
|
+
GRANT EXECUTE ON FUNCTION recompute_all_reserved_stock() TO authenticated;
|
|
5063
|
+
GRANT EXECUTE ON FUNCTION recompute_all_reserved_stock() TO service_role;
|
|
5064
|
+
REVOKE EXECUTE ON FUNCTION recompute_all_reserved_stock() FROM anon;
|
|
5008
5065
|
GRANT EXECUTE ON FUNCTION recompute_all_reserved_stock() TO authenticated;
|
|
5009
5066
|
GRANT EXECUTE ON FUNCTION recompute_all_reserved_stock() TO service_role;
|
|
5010
5067
|
CREATE OR REPLACE FUNCTION public.recompute_order_status(p_order_id uuid)
|
|
@@ -5020,6 +5077,7 @@ DECLARE
|
|
|
5020
5077
|
v_total integer;
|
|
5021
5078
|
v_delivered integer;
|
|
5022
5079
|
BEGIN
|
|
5080
|
+
PERFORM public.voorraad_vereis('ingelogd', 'recompute_order_status');
|
|
5023
5081
|
SELECT o.status, o.order_number
|
|
5024
5082
|
INTO v_current, v_order_number
|
|
5025
5083
|
FROM public.orders o
|
|
@@ -5058,8 +5116,11 @@ END;
|
|
|
5058
5116
|
$function$
|
|
5059
5117
|
;
|
|
5060
5118
|
REVOKE ALL ON FUNCTION recompute_order_status(uuid) FROM PUBLIC;
|
|
5061
|
-
|
|
5062
|
-
|
|
5119
|
+
REVOKE ALL ON FUNCTION recompute_order_status(uuid) FROM anon;
|
|
5120
|
+
REVOKE EXECUTE ON FUNCTION recompute_order_status(uuid) FROM PUBLIC;
|
|
5121
|
+
GRANT EXECUTE ON FUNCTION recompute_order_status(uuid) TO authenticated;
|
|
5122
|
+
GRANT EXECUTE ON FUNCTION recompute_order_status(uuid) TO service_role;
|
|
5123
|
+
REVOKE EXECUTE ON FUNCTION recompute_order_status(uuid) FROM anon;
|
|
5063
5124
|
GRANT EXECUTE ON FUNCTION recompute_order_status(uuid) TO authenticated;
|
|
5064
5125
|
GRANT EXECUTE ON FUNCTION recompute_order_status(uuid) TO service_role;
|
|
5065
5126
|
CREATE OR REPLACE FUNCTION public.recompute_reserved_for_order(p_order_id uuid)
|
|
@@ -5070,6 +5131,7 @@ CREATE OR REPLACE FUNCTION public.recompute_reserved_for_order(p_order_id uuid)
|
|
|
5070
5131
|
AS $function$
|
|
5071
5132
|
DECLARE k text;
|
|
5072
5133
|
BEGIN
|
|
5134
|
+
PERFORM public.voorraad_vereis('ingelogd', 'recompute_reserved_for_order');
|
|
5073
5135
|
FOR k IN
|
|
5074
5136
|
SELECT DISTINCT p.trade_item_key
|
|
5075
5137
|
FROM logistics_active.order_items oi
|
|
@@ -5081,8 +5143,11 @@ BEGIN
|
|
|
5081
5143
|
END $function$
|
|
5082
5144
|
;
|
|
5083
5145
|
REVOKE ALL ON FUNCTION recompute_reserved_for_order(uuid) FROM PUBLIC;
|
|
5084
|
-
|
|
5085
|
-
|
|
5146
|
+
REVOKE ALL ON FUNCTION recompute_reserved_for_order(uuid) FROM anon;
|
|
5147
|
+
REVOKE EXECUTE ON FUNCTION recompute_reserved_for_order(uuid) FROM PUBLIC;
|
|
5148
|
+
GRANT EXECUTE ON FUNCTION recompute_reserved_for_order(uuid) TO authenticated;
|
|
5149
|
+
GRANT EXECUTE ON FUNCTION recompute_reserved_for_order(uuid) TO service_role;
|
|
5150
|
+
REVOKE EXECUTE ON FUNCTION recompute_reserved_for_order(uuid) FROM anon;
|
|
5086
5151
|
GRANT EXECUTE ON FUNCTION recompute_reserved_for_order(uuid) TO authenticated;
|
|
5087
5152
|
GRANT EXECUTE ON FUNCTION recompute_reserved_for_order(uuid) TO service_role;
|
|
5088
5153
|
CREATE OR REPLACE FUNCTION public.recompute_reserved_stock(p_trade_item_key text)
|
|
@@ -5098,6 +5163,7 @@ DECLARE
|
|
|
5098
5163
|
v_pid uuid;
|
|
5099
5164
|
v_leads boolean;
|
|
5100
5165
|
BEGIN
|
|
5166
|
+
PERFORM public.voorraad_vereis('ingelogd', 'recompute_reserved_stock');
|
|
5101
5167
|
IF p_trade_item_key IS NULL OR btrim(p_trade_item_key) = '' THEN RETURN; END IF;
|
|
5102
5168
|
IF current_setting('app.recomputing_reserved', true) = 'on' THEN RETURN; END IF;
|
|
5103
5169
|
|
|
@@ -5179,8 +5245,11 @@ END
|
|
|
5179
5245
|
$function$
|
|
5180
5246
|
;
|
|
5181
5247
|
REVOKE ALL ON FUNCTION recompute_reserved_stock(text) FROM PUBLIC;
|
|
5182
|
-
|
|
5183
|
-
|
|
5248
|
+
REVOKE ALL ON FUNCTION recompute_reserved_stock(text) FROM anon;
|
|
5249
|
+
REVOKE EXECUTE ON FUNCTION recompute_reserved_stock(text) FROM PUBLIC;
|
|
5250
|
+
GRANT EXECUTE ON FUNCTION recompute_reserved_stock(text) TO authenticated;
|
|
5251
|
+
GRANT EXECUTE ON FUNCTION recompute_reserved_stock(text) TO service_role;
|
|
5252
|
+
REVOKE EXECUTE ON FUNCTION recompute_reserved_stock(text) FROM anon;
|
|
5184
5253
|
GRANT EXECUTE ON FUNCTION recompute_reserved_stock(text) TO authenticated;
|
|
5185
5254
|
GRANT EXECUTE ON FUNCTION recompute_reserved_stock(text) TO service_role;
|
|
5186
5255
|
CREATE OR REPLACE FUNCTION public.requeue_skipped_stock_rows(p_status text, p_connection_id uuid, p_trade_item_id text DEFAULT NULL::text)
|
|
@@ -5191,6 +5260,7 @@ CREATE OR REPLACE FUNCTION public.requeue_skipped_stock_rows(p_status text, p_co
|
|
|
5191
5260
|
AS $function$
|
|
5192
5261
|
DECLARE r record; n integer := 0;
|
|
5193
5262
|
BEGIN
|
|
5263
|
+
PERFORM public.voorraad_vereis('ingelogd', 'requeue_skipped_stock_rows');
|
|
5194
5264
|
FOR r IN
|
|
5195
5265
|
SELECT DISTINCT ON (trade_item_id) id, trade_item_id
|
|
5196
5266
|
FROM public.floriday_continuous_stock_queue
|
|
@@ -5210,6 +5280,7 @@ BEGIN
|
|
|
5210
5280
|
END $function$
|
|
5211
5281
|
;
|
|
5212
5282
|
REVOKE ALL ON FUNCTION requeue_skipped_stock_rows(text,uuid,text) FROM PUBLIC;
|
|
5283
|
+
REVOKE ALL ON FUNCTION requeue_skipped_stock_rows(text,uuid,text) FROM anon;
|
|
5213
5284
|
GRANT EXECUTE ON FUNCTION requeue_skipped_stock_rows(text,uuid,text) TO service_role;
|
|
5214
5285
|
CREATE OR REPLACE FUNCTION public.reset_stalled_floriday_stock_queue(p_include_failed boolean DEFAULT true)
|
|
5215
5286
|
RETURNS integer
|
|
@@ -5221,6 +5292,7 @@ DECLARE
|
|
|
5221
5292
|
v_count integer := 0;
|
|
5222
5293
|
v_n integer;
|
|
5223
5294
|
BEGIN
|
|
5295
|
+
PERFORM public.voorraad_vereis('ingelogd', 'reset_stalled_floriday_stock_queue');
|
|
5224
5296
|
-- Geclaimd maar nooit afgerond (worker gecrasht): terug in de wachtrij.
|
|
5225
5297
|
UPDATE public.floriday_continuous_stock_queue
|
|
5226
5298
|
SET status = 'pending',
|
|
@@ -5261,6 +5333,7 @@ END;
|
|
|
5261
5333
|
$function$
|
|
5262
5334
|
;
|
|
5263
5335
|
REVOKE ALL ON FUNCTION reset_stalled_floriday_stock_queue(boolean) FROM PUBLIC;
|
|
5336
|
+
REVOKE ALL ON FUNCTION reset_stalled_floriday_stock_queue(boolean) FROM anon;
|
|
5264
5337
|
GRANT EXECUTE ON FUNCTION reset_stalled_floriday_stock_queue(boolean) TO authenticated;
|
|
5265
5338
|
GRANT EXECUTE ON FUNCTION reset_stalled_floriday_stock_queue(boolean) TO service_role;
|
|
5266
5339
|
CREATE OR REPLACE FUNCTION public.resolve_group_allocation(_product_group_id uuid, _needed integer)
|
|
@@ -5275,7 +5348,8 @@ DECLARE
|
|
|
5275
5348
|
take integer;
|
|
5276
5349
|
avail integer;
|
|
5277
5350
|
fallback_key text := NULL;
|
|
5278
|
-
BEGIN
|
|
5351
|
+
BEGIN
|
|
5352
|
+
PERFORM public.voorraad_vereis('ingelogd', 'resolve_group_allocation');
|
|
5279
5353
|
FOR r IN
|
|
5280
5354
|
SELECT public.resolve_group_member_stock_key(pgi.trade_item_id) AS stock_key,
|
|
5281
5355
|
COALESCE(ts.physical_stock, 0)::integer AS physical_stock,
|
|
@@ -5311,8 +5385,11 @@ END;
|
|
|
5311
5385
|
$function$
|
|
5312
5386
|
;
|
|
5313
5387
|
REVOKE ALL ON FUNCTION resolve_group_allocation(uuid,integer) FROM PUBLIC;
|
|
5314
|
-
|
|
5315
|
-
|
|
5388
|
+
REVOKE ALL ON FUNCTION resolve_group_allocation(uuid,integer) FROM anon;
|
|
5389
|
+
REVOKE EXECUTE ON FUNCTION resolve_group_allocation(uuid,integer) FROM PUBLIC;
|
|
5390
|
+
GRANT EXECUTE ON FUNCTION resolve_group_allocation(uuid,integer) TO authenticated;
|
|
5391
|
+
GRANT EXECUTE ON FUNCTION resolve_group_allocation(uuid,integer) TO service_role;
|
|
5392
|
+
REVOKE EXECUTE ON FUNCTION resolve_group_allocation(uuid,integer) FROM anon;
|
|
5316
5393
|
GRANT EXECUTE ON FUNCTION resolve_group_allocation(uuid,integer) TO authenticated;
|
|
5317
5394
|
GRANT EXECUTE ON FUNCTION resolve_group_allocation(uuid,integer) TO service_role;
|
|
5318
5395
|
CREATE OR REPLACE FUNCTION public.resolve_group_member_stock_key(p_trade_item_id text)
|
|
@@ -5358,7 +5435,8 @@ AS $function$
|
|
|
5358
5435
|
$function$
|
|
5359
5436
|
;
|
|
5360
5437
|
REVOKE ALL ON FUNCTION resolve_group_member_stock_key(text) FROM PUBLIC;
|
|
5361
|
-
|
|
5438
|
+
REVOKE ALL ON FUNCTION resolve_group_member_stock_key(text) FROM anon;
|
|
5439
|
+
REVOKE EXECUTE ON FUNCTION resolve_group_member_stock_key(text) FROM anon;
|
|
5362
5440
|
GRANT EXECUTE ON FUNCTION resolve_group_member_stock_key(text) TO authenticated;
|
|
5363
5441
|
GRANT EXECUTE ON FUNCTION resolve_group_member_stock_key(text) TO service_role;
|
|
5364
5442
|
CREATE OR REPLACE FUNCTION public.resolve_product_id_for_item(p_product_name text)
|
|
@@ -5369,6 +5447,7 @@ CREATE OR REPLACE FUNCTION public.resolve_product_id_for_item(p_product_name tex
|
|
|
5369
5447
|
AS $function$
|
|
5370
5448
|
DECLARE v_id uuid;
|
|
5371
5449
|
BEGIN
|
|
5450
|
+
PERFORM public.voorraad_vereis('ingelogd', 'resolve_product_id_for_item');
|
|
5372
5451
|
IF p_product_name IS NULL OR btrim(p_product_name) = '' THEN RETURN NULL; END IF;
|
|
5373
5452
|
SELECT id INTO v_id FROM public.products
|
|
5374
5453
|
WHERE lower(btrim(product)) = lower(btrim(p_product_name))
|
|
@@ -5377,8 +5456,11 @@ BEGIN
|
|
|
5377
5456
|
END $function$
|
|
5378
5457
|
;
|
|
5379
5458
|
REVOKE ALL ON FUNCTION resolve_product_id_for_item(text) FROM PUBLIC;
|
|
5380
|
-
|
|
5381
|
-
|
|
5459
|
+
REVOKE ALL ON FUNCTION resolve_product_id_for_item(text) FROM anon;
|
|
5460
|
+
REVOKE EXECUTE ON FUNCTION resolve_product_id_for_item(text) FROM PUBLIC;
|
|
5461
|
+
GRANT EXECUTE ON FUNCTION resolve_product_id_for_item(text) TO authenticated;
|
|
5462
|
+
GRANT EXECUTE ON FUNCTION resolve_product_id_for_item(text) TO service_role;
|
|
5463
|
+
REVOKE EXECUTE ON FUNCTION resolve_product_id_for_item(text) FROM anon;
|
|
5382
5464
|
GRANT EXECUTE ON FUNCTION resolve_product_id_for_item(text) TO authenticated;
|
|
5383
5465
|
GRANT EXECUTE ON FUNCTION resolve_product_id_for_item(text) TO service_role;
|
|
5384
5466
|
CREATE OR REPLACE FUNCTION public.resolve_stock_trade_item_key(p_product_id uuid)
|
|
@@ -5401,8 +5483,11 @@ AS $function$
|
|
|
5401
5483
|
$function$
|
|
5402
5484
|
;
|
|
5403
5485
|
REVOKE ALL ON FUNCTION resolve_stock_trade_item_key(uuid) FROM PUBLIC;
|
|
5404
|
-
|
|
5405
|
-
|
|
5486
|
+
REVOKE ALL ON FUNCTION resolve_stock_trade_item_key(uuid) FROM anon;
|
|
5487
|
+
REVOKE EXECUTE ON FUNCTION resolve_stock_trade_item_key(uuid) FROM PUBLIC;
|
|
5488
|
+
GRANT EXECUTE ON FUNCTION resolve_stock_trade_item_key(uuid) TO authenticated;
|
|
5489
|
+
GRANT EXECUTE ON FUNCTION resolve_stock_trade_item_key(uuid) TO service_role;
|
|
5490
|
+
REVOKE EXECUTE ON FUNCTION resolve_stock_trade_item_key(uuid) FROM anon;
|
|
5406
5491
|
GRANT EXECUTE ON FUNCTION resolve_stock_trade_item_key(uuid) TO authenticated;
|
|
5407
5492
|
GRANT EXECUTE ON FUNCTION resolve_stock_trade_item_key(uuid) TO service_role;
|
|
5408
5493
|
CREATE OR REPLACE FUNCTION public.reverse_production(p_parent_key text, p_quantity numeric, p_user_id uuid DEFAULT NULL::uuid, p_connection_id uuid DEFAULT NULL::uuid, p_reason text DEFAULT NULL::text)
|
|
@@ -5424,7 +5509,8 @@ DECLARE
|
|
|
5424
5509
|
v_uid uuid := COALESCE(p_user_id, auth.uid());
|
|
5425
5510
|
v_reversed jsonb := '[]'::jsonb;
|
|
5426
5511
|
v_batches_processed int := 0;
|
|
5427
|
-
BEGIN
|
|
5512
|
+
BEGIN
|
|
5513
|
+
PERFORM public.voorraad_vereis('ingelogd', 'reverse_production');
|
|
5428
5514
|
IF v_remaining <= 0 OR p_parent_key IS NULL THEN
|
|
5429
5515
|
RETURN jsonb_build_object('ok', true, 'reversed', v_reversed);
|
|
5430
5516
|
END IF;
|
|
@@ -5533,6 +5619,7 @@ END;
|
|
|
5533
5619
|
$function$
|
|
5534
5620
|
;
|
|
5535
5621
|
REVOKE ALL ON FUNCTION reverse_production(text,numeric,uuid,uuid,text) FROM PUBLIC;
|
|
5622
|
+
REVOKE ALL ON FUNCTION reverse_production(text,numeric,uuid,uuid,text) FROM anon;
|
|
5536
5623
|
GRANT EXECUTE ON FUNCTION reverse_production(text,numeric,uuid,uuid,text) TO service_role;
|
|
5537
5624
|
CREATE OR REPLACE FUNCTION public.run_floriday_base_supply_process()
|
|
5538
5625
|
RETURNS void
|
|
@@ -5541,6 +5628,7 @@ CREATE OR REPLACE FUNCTION public.run_floriday_base_supply_process()
|
|
|
5541
5628
|
SET search_path TO 'public'
|
|
5542
5629
|
AS $function$
|
|
5543
5630
|
BEGIN
|
|
5631
|
+
PERFORM public.voorraad_vereis('server', 'run_floriday_base_supply_process');
|
|
5544
5632
|
IF NOT EXISTS (SELECT 1 FROM floriday_continuous_stock_queue q
|
|
5545
5633
|
WHERE q.status IN ('needs_base_supply','creating_base_supply') LIMIT 1) THEN
|
|
5546
5634
|
PERFORM cron.unschedule(j.jobid) FROM cron.job j WHERE j.jobname = 'floriday-base-supply-retry';
|
|
@@ -5558,6 +5646,7 @@ BEGIN
|
|
|
5558
5646
|
END $function$
|
|
5559
5647
|
;
|
|
5560
5648
|
REVOKE ALL ON FUNCTION run_floriday_base_supply_process() FROM PUBLIC;
|
|
5649
|
+
REVOKE ALL ON FUNCTION run_floriday_base_supply_process() FROM anon;
|
|
5561
5650
|
GRANT EXECUTE ON FUNCTION run_floriday_base_supply_process() TO service_role;
|
|
5562
5651
|
CREATE OR REPLACE FUNCTION public.run_floriday_continuous_stock_sync()
|
|
5563
5652
|
RETURNS void
|
|
@@ -5566,6 +5655,7 @@ CREATE OR REPLACE FUNCTION public.run_floriday_continuous_stock_sync()
|
|
|
5566
5655
|
SET search_path TO 'public'
|
|
5567
5656
|
AS $function$
|
|
5568
5657
|
BEGIN
|
|
5658
|
+
PERFORM public.voorraad_vereis('server', 'run_floriday_continuous_stock_sync');
|
|
5569
5659
|
IF public.voorraad_hook_on('continuous_stock') AND EXISTS (
|
|
5570
5660
|
SELECT 1 FROM floriday_continuous_stock_queue WHERE status = 'pending'
|
|
5571
5661
|
AND created_at < now() - interval '5 minutes' LIMIT 1) THEN
|
|
@@ -5577,8 +5667,11 @@ BEGIN
|
|
|
5577
5667
|
END $function$
|
|
5578
5668
|
;
|
|
5579
5669
|
REVOKE ALL ON FUNCTION run_floriday_continuous_stock_sync() FROM PUBLIC;
|
|
5580
|
-
|
|
5581
|
-
|
|
5670
|
+
REVOKE ALL ON FUNCTION run_floriday_continuous_stock_sync() FROM anon;
|
|
5671
|
+
REVOKE EXECUTE ON FUNCTION run_floriday_continuous_stock_sync() FROM PUBLIC;
|
|
5672
|
+
GRANT EXECUTE ON FUNCTION run_floriday_continuous_stock_sync() TO authenticated;
|
|
5673
|
+
GRANT EXECUTE ON FUNCTION run_floriday_continuous_stock_sync() TO service_role;
|
|
5674
|
+
REVOKE EXECUTE ON FUNCTION run_floriday_continuous_stock_sync() FROM anon;
|
|
5582
5675
|
GRANT EXECUTE ON FUNCTION run_floriday_continuous_stock_sync() TO authenticated;
|
|
5583
5676
|
GRANT EXECUTE ON FUNCTION run_floriday_continuous_stock_sync() TO service_role;
|
|
5584
5677
|
CREATE OR REPLACE FUNCTION public.run_floriday_follow()
|
|
@@ -5588,12 +5681,14 @@ CREATE OR REPLACE FUNCTION public.run_floriday_follow()
|
|
|
5588
5681
|
SET search_path TO 'public'
|
|
5589
5682
|
AS $function$
|
|
5590
5683
|
BEGIN
|
|
5684
|
+
PERFORM public.voorraad_vereis('server', 'run_floriday_follow');
|
|
5591
5685
|
IF NOT public.voorraad_hook_on('follow_floriday') THEN RETURN; END IF;
|
|
5592
5686
|
IF NOT EXISTS (SELECT 1 FROM public.floriday_inventory_settings WHERE erp_leading = false LIMIT 1) THEN RETURN; END IF;
|
|
5593
5687
|
PERFORM public.voorraad_hook_post('/api/public/hooks/floriday-follow', 55000);
|
|
5594
5688
|
END $function$
|
|
5595
5689
|
;
|
|
5596
5690
|
REVOKE ALL ON FUNCTION run_floriday_follow() FROM PUBLIC;
|
|
5691
|
+
REVOKE ALL ON FUNCTION run_floriday_follow() FROM anon;
|
|
5597
5692
|
GRANT EXECUTE ON FUNCTION run_floriday_follow() TO service_role;
|
|
5598
5693
|
CREATE OR REPLACE FUNCTION public.run_floriday_stock_queue_process()
|
|
5599
5694
|
RETURNS void
|
|
@@ -5605,6 +5700,7 @@ DECLARE
|
|
|
5605
5700
|
v_base_url text;
|
|
5606
5701
|
v_apikey text;
|
|
5607
5702
|
BEGIN
|
|
5703
|
+
PERFORM public.voorraad_vereis('server', 'run_floriday_stock_queue_process');
|
|
5608
5704
|
SELECT value INTO v_base_url FROM public.module_runtime_config WHERE key = 'stock_queue_processor_base_url';
|
|
5609
5705
|
SELECT value INTO v_apikey FROM public.module_runtime_config WHERE key = 'voorraad_hook_apikey';
|
|
5610
5706
|
|
|
@@ -5621,6 +5717,7 @@ END;
|
|
|
5621
5717
|
$function$
|
|
5622
5718
|
;
|
|
5623
5719
|
REVOKE ALL ON FUNCTION run_floriday_stock_queue_process() FROM PUBLIC;
|
|
5720
|
+
REVOKE ALL ON FUNCTION run_floriday_stock_queue_process() FROM anon;
|
|
5624
5721
|
GRANT EXECUTE ON FUNCTION run_floriday_stock_queue_process() TO service_role;
|
|
5625
5722
|
CREATE OR REPLACE FUNCTION public.run_floriday_stock_reconcile()
|
|
5626
5723
|
RETURNS void
|
|
@@ -5629,11 +5726,13 @@ CREATE OR REPLACE FUNCTION public.run_floriday_stock_reconcile()
|
|
|
5629
5726
|
SET search_path TO 'public'
|
|
5630
5727
|
AS $function$
|
|
5631
5728
|
BEGIN
|
|
5729
|
+
PERFORM public.voorraad_vereis('server', 'run_floriday_stock_reconcile');
|
|
5632
5730
|
IF NOT public.voorraad_hook_on('stock_reconcile') THEN RETURN; END IF;
|
|
5633
5731
|
PERFORM public.voorraad_hook_post('/api/public/hooks/floriday-stock-reconcile', 55000);
|
|
5634
5732
|
END $function$
|
|
5635
5733
|
;
|
|
5636
5734
|
REVOKE ALL ON FUNCTION run_floriday_stock_reconcile() FROM PUBLIC;
|
|
5735
|
+
REVOKE ALL ON FUNCTION run_floriday_stock_reconcile() FROM anon;
|
|
5637
5736
|
GRANT EXECUTE ON FUNCTION run_floriday_stock_reconcile() TO service_role;
|
|
5638
5737
|
CREATE OR REPLACE FUNCTION public.run_logistics_tasks_dispatch()
|
|
5639
5738
|
RETURNS void
|
|
@@ -5642,6 +5741,7 @@ CREATE OR REPLACE FUNCTION public.run_logistics_tasks_dispatch()
|
|
|
5642
5741
|
SET search_path TO 'public'
|
|
5643
5742
|
AS $function$
|
|
5644
5743
|
BEGIN
|
|
5744
|
+
PERFORM public.voorraad_vereis('ingelogd', 'run_logistics_tasks_dispatch');
|
|
5645
5745
|
IF NOT public.voorraad_hook_on('logistics_tasks') THEN RETURN; END IF;
|
|
5646
5746
|
IF NOT EXISTS (SELECT 1 FROM logistics_tasks t WHERE t.owner_module = 'voorraad'
|
|
5647
5747
|
AND ((t.status IN ('planned','claimed') AND (t.next_attempt_at IS NULL OR t.next_attempt_at <= now()))
|
|
@@ -5652,8 +5752,11 @@ BEGIN
|
|
|
5652
5752
|
END $function$
|
|
5653
5753
|
;
|
|
5654
5754
|
REVOKE ALL ON FUNCTION run_logistics_tasks_dispatch() FROM PUBLIC;
|
|
5655
|
-
|
|
5656
|
-
|
|
5755
|
+
REVOKE ALL ON FUNCTION run_logistics_tasks_dispatch() FROM anon;
|
|
5756
|
+
REVOKE EXECUTE ON FUNCTION run_logistics_tasks_dispatch() FROM PUBLIC;
|
|
5757
|
+
GRANT EXECUTE ON FUNCTION run_logistics_tasks_dispatch() TO authenticated;
|
|
5758
|
+
GRANT EXECUTE ON FUNCTION run_logistics_tasks_dispatch() TO service_role;
|
|
5759
|
+
REVOKE EXECUTE ON FUNCTION run_logistics_tasks_dispatch() FROM anon;
|
|
5657
5760
|
GRANT EXECUTE ON FUNCTION run_logistics_tasks_dispatch() TO authenticated;
|
|
5658
5761
|
GRANT EXECUTE ON FUNCTION run_logistics_tasks_dispatch() TO service_role;
|
|
5659
5762
|
CREATE OR REPLACE FUNCTION public.self_heal_floriday_links()
|
|
@@ -5663,7 +5766,8 @@ CREATE OR REPLACE FUNCTION public.self_heal_floriday_links()
|
|
|
5663
5766
|
SET search_path TO 'public'
|
|
5664
5767
|
AS $function$
|
|
5665
5768
|
DECLARE v_updated integer := 0; v_tmp integer;
|
|
5666
|
-
BEGIN
|
|
5769
|
+
BEGIN
|
|
5770
|
+
PERFORM public.voorraad_vereis('server', 'self_heal_floriday_links');
|
|
5667
5771
|
WITH upd AS (
|
|
5668
5772
|
UPDATE public.products p
|
|
5669
5773
|
SET floriday_trade_item_id = p.id::text,
|
|
@@ -5713,8 +5817,11 @@ BEGIN
|
|
|
5713
5817
|
END $function$
|
|
5714
5818
|
;
|
|
5715
5819
|
REVOKE ALL ON FUNCTION self_heal_floriday_links() FROM PUBLIC;
|
|
5716
|
-
|
|
5717
|
-
|
|
5820
|
+
REVOKE ALL ON FUNCTION self_heal_floriday_links() FROM anon;
|
|
5821
|
+
REVOKE EXECUTE ON FUNCTION self_heal_floriday_links() FROM PUBLIC;
|
|
5822
|
+
GRANT EXECUTE ON FUNCTION self_heal_floriday_links() TO authenticated;
|
|
5823
|
+
GRANT EXECUTE ON FUNCTION self_heal_floriday_links() TO service_role;
|
|
5824
|
+
REVOKE EXECUTE ON FUNCTION self_heal_floriday_links() FROM anon;
|
|
5718
5825
|
GRANT EXECUTE ON FUNCTION self_heal_floriday_links() TO authenticated;
|
|
5719
5826
|
GRANT EXECUTE ON FUNCTION self_heal_floriday_links() TO service_role;
|
|
5720
5827
|
CREATE OR REPLACE FUNCTION public.set_module_runtime_config_updated_at()
|
|
@@ -5729,8 +5836,11 @@ END;
|
|
|
5729
5836
|
$function$
|
|
5730
5837
|
;
|
|
5731
5838
|
REVOKE ALL ON FUNCTION set_module_runtime_config_updated_at() FROM PUBLIC;
|
|
5732
|
-
|
|
5733
|
-
|
|
5839
|
+
REVOKE ALL ON FUNCTION set_module_runtime_config_updated_at() FROM anon;
|
|
5840
|
+
REVOKE EXECUTE ON FUNCTION set_module_runtime_config_updated_at() FROM PUBLIC;
|
|
5841
|
+
GRANT EXECUTE ON FUNCTION set_module_runtime_config_updated_at() TO authenticated;
|
|
5842
|
+
GRANT EXECUTE ON FUNCTION set_module_runtime_config_updated_at() TO service_role;
|
|
5843
|
+
REVOKE EXECUTE ON FUNCTION set_module_runtime_config_updated_at() FROM anon;
|
|
5734
5844
|
GRANT EXECUTE ON FUNCTION set_module_runtime_config_updated_at() TO authenticated;
|
|
5735
5845
|
GRANT EXECUTE ON FUNCTION set_module_runtime_config_updated_at() TO service_role;
|
|
5736
5846
|
CREATE OR REPLACE FUNCTION public.set_product_bom_tenant()
|
|
@@ -5748,8 +5858,11 @@ END;
|
|
|
5748
5858
|
$function$
|
|
5749
5859
|
;
|
|
5750
5860
|
REVOKE ALL ON FUNCTION set_product_bom_tenant() FROM PUBLIC;
|
|
5751
|
-
|
|
5752
|
-
|
|
5861
|
+
REVOKE ALL ON FUNCTION set_product_bom_tenant() FROM anon;
|
|
5862
|
+
REVOKE EXECUTE ON FUNCTION set_product_bom_tenant() FROM PUBLIC;
|
|
5863
|
+
GRANT EXECUTE ON FUNCTION set_product_bom_tenant() TO authenticated;
|
|
5864
|
+
GRANT EXECUTE ON FUNCTION set_product_bom_tenant() TO service_role;
|
|
5865
|
+
REVOKE EXECUTE ON FUNCTION set_product_bom_tenant() FROM anon;
|
|
5753
5866
|
GRANT EXECUTE ON FUNCTION set_product_bom_tenant() TO authenticated;
|
|
5754
5867
|
GRANT EXECUTE ON FUNCTION set_product_bom_tenant() TO service_role;
|
|
5755
5868
|
CREATE OR REPLACE FUNCTION public.set_product_stock(p_product_id uuid, p_physical_stock numeric, p_minimum_stock numeric DEFAULT 0, p_incoming_stock numeric DEFAULT 0, p_notes text DEFAULT NULL::text)
|
|
@@ -5762,6 +5875,7 @@ AS $function$
|
|
|
5762
5875
|
DECLARE
|
|
5763
5876
|
v_user_id uuid := auth.uid(); v_connection_id uuid; v_key text; v_row_key text; v_product_key text; v_floriday_key text;
|
|
5764
5877
|
BEGIN
|
|
5878
|
+
PERFORM public.voorraad_vereis('ingelogd', 'set_product_stock');
|
|
5765
5879
|
IF v_user_id IS NULL THEN RAISE EXCEPTION 'Niet ingelogd' USING ERRCODE = '42501'; END IF;
|
|
5766
5880
|
IF p_physical_stock IS NULL THEN RAISE EXCEPTION 'Vul een voorraadaantal in'; END IF;
|
|
5767
5881
|
IF p_physical_stock < 0 OR p_minimum_stock < 0 OR p_incoming_stock < 0 THEN
|
|
@@ -5797,6 +5911,7 @@ BEGIN
|
|
|
5797
5911
|
END; $function$
|
|
5798
5912
|
;
|
|
5799
5913
|
REVOKE ALL ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text) FROM PUBLIC;
|
|
5914
|
+
REVOKE ALL ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text) FROM anon;
|
|
5800
5915
|
GRANT EXECUTE ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text) TO authenticated;
|
|
5801
5916
|
GRANT EXECUTE ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text) TO service_role;
|
|
5802
5917
|
CREATE OR REPLACE FUNCTION public.set_product_stock(p_product_id uuid, p_physical_stock numeric, p_minimum_stock numeric DEFAULT 0, p_incoming_stock numeric DEFAULT 0, p_notes text DEFAULT NULL::text, p_change_source text DEFAULT NULL::text)
|
|
@@ -5809,6 +5924,7 @@ AS $function$
|
|
|
5809
5924
|
DECLARE
|
|
5810
5925
|
v_user_id uuid := auth.uid(); v_connection_id uuid; v_key text; v_row_key text; v_product_key text; v_floriday_key text; v_source text;
|
|
5811
5926
|
BEGIN
|
|
5927
|
+
PERFORM public.voorraad_vereis('ingelogd', 'set_product_stock');
|
|
5812
5928
|
IF v_user_id IS NULL THEN RAISE EXCEPTION 'Niet ingelogd' USING ERRCODE = '42501'; END IF;
|
|
5813
5929
|
IF p_physical_stock IS NULL THEN RAISE EXCEPTION 'Vul een voorraadaantal in'; END IF;
|
|
5814
5930
|
IF p_physical_stock < 0 OR p_minimum_stock < 0 OR p_incoming_stock < 0 THEN
|
|
@@ -5854,8 +5970,11 @@ BEGIN
|
|
|
5854
5970
|
END; $function$
|
|
5855
5971
|
;
|
|
5856
5972
|
REVOKE ALL ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text,text) FROM PUBLIC;
|
|
5857
|
-
|
|
5858
|
-
|
|
5973
|
+
REVOKE ALL ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text,text) FROM anon;
|
|
5974
|
+
REVOKE EXECUTE ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text,text) FROM PUBLIC;
|
|
5975
|
+
GRANT EXECUTE ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text,text) TO authenticated;
|
|
5976
|
+
GRANT EXECUTE ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text,text) TO service_role;
|
|
5977
|
+
REVOKE EXECUTE ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text,text) FROM anon;
|
|
5859
5978
|
GRANT EXECUTE ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text,text) TO authenticated;
|
|
5860
5979
|
GRANT EXECUTE ON FUNCTION set_product_stock(uuid,numeric,numeric,numeric,text,text) TO service_role;
|
|
5861
5980
|
CREATE OR REPLACE FUNCTION public.set_updated_at_order_fust_bookings()
|
|
@@ -5866,8 +5985,11 @@ AS $function$
|
|
|
5866
5985
|
BEGIN NEW.updated_at = now(); RETURN NEW; END; $function$
|
|
5867
5986
|
;
|
|
5868
5987
|
REVOKE ALL ON FUNCTION set_updated_at_order_fust_bookings() FROM PUBLIC;
|
|
5869
|
-
|
|
5870
|
-
|
|
5988
|
+
REVOKE ALL ON FUNCTION set_updated_at_order_fust_bookings() FROM anon;
|
|
5989
|
+
REVOKE EXECUTE ON FUNCTION set_updated_at_order_fust_bookings() FROM PUBLIC;
|
|
5990
|
+
GRANT EXECUTE ON FUNCTION set_updated_at_order_fust_bookings() TO authenticated;
|
|
5991
|
+
GRANT EXECUTE ON FUNCTION set_updated_at_order_fust_bookings() TO service_role;
|
|
5992
|
+
REVOKE EXECUTE ON FUNCTION set_updated_at_order_fust_bookings() FROM anon;
|
|
5871
5993
|
GRANT EXECUTE ON FUNCTION set_updated_at_order_fust_bookings() TO authenticated;
|
|
5872
5994
|
GRANT EXECUTE ON FUNCTION set_updated_at_order_fust_bookings() TO service_role;
|
|
5873
5995
|
CREATE OR REPLACE FUNCTION public.stock_import_cleanup()
|
|
@@ -5878,6 +6000,7 @@ CREATE OR REPLACE FUNCTION public.stock_import_cleanup()
|
|
|
5878
6000
|
AS $function$
|
|
5879
6001
|
DECLARE v_days int; n int := 0;
|
|
5880
6002
|
BEGIN
|
|
6003
|
+
PERFORM public.voorraad_vereis('ingelogd', 'stock_import_cleanup');
|
|
5881
6004
|
SELECT import_retention_days INTO v_days FROM public.inventory_recompute_limits WHERE id;
|
|
5882
6005
|
DELETE FROM public.stock_import_rows d
|
|
5883
6006
|
WHERE d.id IN (SELECT ir.id FROM public.stock_import_rows ir JOIN public.stock_import_runs r ON r.id = ir.run_id
|
|
@@ -5895,6 +6018,7 @@ EXCEPTION WHEN others THEN
|
|
|
5895
6018
|
END $function$
|
|
5896
6019
|
;
|
|
5897
6020
|
REVOKE ALL ON FUNCTION stock_import_cleanup() FROM PUBLIC;
|
|
6021
|
+
REVOKE ALL ON FUNCTION stock_import_cleanup() FROM anon;
|
|
5898
6022
|
GRANT EXECUTE ON FUNCTION stock_import_cleanup() TO service_role;
|
|
5899
6023
|
CREATE OR REPLACE FUNCTION public.stock_import_create(p_connection_id uuid, p_filename text, p_file_hash text, p_rows jsonb, p_force boolean DEFAULT false)
|
|
5900
6024
|
RETURNS jsonb
|
|
@@ -5905,6 +6029,7 @@ AS $function$
|
|
|
5905
6029
|
DECLARE v_uid uuid := auth.uid(); v_ctx record; v_conn uuid; v_user uuid; l record; n int; v_run uuid; v_act record; v_dup record;
|
|
5906
6030
|
v_cs int; v_ncs int; v_chunks int;
|
|
5907
6031
|
BEGIN
|
|
6032
|
+
PERFORM public.voorraad_vereis('ingelogd', 'stock_import_create');
|
|
5908
6033
|
IF v_uid IS NULL AND COALESCE(auth.role(),'') <> 'service_role' THEN RAISE EXCEPTION 'Niet ingelogd' USING ERRCODE = '42501'; END IF;
|
|
5909
6034
|
IF NOT public.voorraad_can_write() THEN RETURN jsonb_build_object('ok', false, 'code', 'NO_WRITE_ROLE', 'message', 'Je hebt geen rechten om voorraad te importeren. Vraag een beheerder om een schrijfrol.'); END IF;
|
|
5910
6035
|
SELECT * INTO v_ctx FROM public.get_active_floriday_context();
|
|
@@ -5973,6 +6098,7 @@ EXCEPTION WHEN unique_violation THEN
|
|
|
5973
6098
|
END $function$
|
|
5974
6099
|
;
|
|
5975
6100
|
REVOKE ALL ON FUNCTION stock_import_create(uuid,text,text,jsonb,boolean) FROM PUBLIC;
|
|
6101
|
+
REVOKE ALL ON FUNCTION stock_import_create(uuid,text,text,jsonb,boolean) FROM anon;
|
|
5976
6102
|
GRANT EXECUTE ON FUNCTION stock_import_create(uuid,text,text,jsonb,boolean) TO authenticated;
|
|
5977
6103
|
GRANT EXECUTE ON FUNCTION stock_import_create(uuid,text,text,jsonb,boolean) TO service_role;
|
|
5978
6104
|
CREATE OR REPLACE FUNCTION public.stock_import_process_chunk(p_run_id uuid, p_chunk_no integer)
|
|
@@ -5984,6 +6110,7 @@ AS $function$
|
|
|
5984
6110
|
DECLARE v_run record; v_chunk record; v_ctx record; r record; v_pid uuid; v_key text; s record; v_t0 timestamptz := clock_timestamp();
|
|
5985
6111
|
np int; nm int; ni int; v_fid text; n_ok int := 0; n_err int := 0; v_done int;
|
|
5986
6112
|
BEGIN
|
|
6113
|
+
PERFORM public.voorraad_vereis('ingelogd', 'stock_import_process_chunk');
|
|
5987
6114
|
SELECT * INTO v_run FROM public.stock_import_runs WHERE id = p_run_id FOR UPDATE;
|
|
5988
6115
|
IF v_run.id IS NULL THEN RAISE EXCEPTION 'Import niet gevonden'; END IF;
|
|
5989
6116
|
IF NOT public._stock_import_caller(v_run.user_id) THEN RAISE EXCEPTION 'Geen toegang tot deze import' USING ERRCODE = '42501'; END IF;
|
|
@@ -6064,6 +6191,7 @@ BEGIN
|
|
|
6064
6191
|
END $function$
|
|
6065
6192
|
;
|
|
6066
6193
|
REVOKE ALL ON FUNCTION stock_import_process_chunk(uuid,integer) FROM PUBLIC;
|
|
6194
|
+
REVOKE ALL ON FUNCTION stock_import_process_chunk(uuid,integer) FROM anon;
|
|
6067
6195
|
GRANT EXECUTE ON FUNCTION stock_import_process_chunk(uuid,integer) TO authenticated;
|
|
6068
6196
|
GRANT EXECUTE ON FUNCTION stock_import_process_chunk(uuid,integer) TO service_role;
|
|
6069
6197
|
CREATE OR REPLACE FUNCTION public.stock_import_stop(p_run_id uuid)
|
|
@@ -6074,6 +6202,7 @@ CREATE OR REPLACE FUNCTION public.stock_import_stop(p_run_id uuid)
|
|
|
6074
6202
|
AS $function$
|
|
6075
6203
|
DECLARE v_run record;
|
|
6076
6204
|
BEGIN
|
|
6205
|
+
PERFORM public.voorraad_vereis('ingelogd', 'stock_import_stop');
|
|
6077
6206
|
SELECT * INTO v_run FROM public.stock_import_runs WHERE id = p_run_id FOR UPDATE;
|
|
6078
6207
|
IF v_run.id IS NULL THEN RAISE EXCEPTION 'Import niet gevonden'; END IF;
|
|
6079
6208
|
IF NOT public._stock_import_caller(v_run.user_id) THEN RAISE EXCEPTION 'Geen toegang tot deze import' USING ERRCODE = '42501'; END IF;
|
|
@@ -6082,6 +6211,7 @@ BEGIN
|
|
|
6082
6211
|
END $function$
|
|
6083
6212
|
;
|
|
6084
6213
|
REVOKE ALL ON FUNCTION stock_import_stop(uuid) FROM PUBLIC;
|
|
6214
|
+
REVOKE ALL ON FUNCTION stock_import_stop(uuid) FROM anon;
|
|
6085
6215
|
GRANT EXECUTE ON FUNCTION stock_import_stop(uuid) TO authenticated;
|
|
6086
6216
|
GRANT EXECUTE ON FUNCTION stock_import_stop(uuid) TO service_role;
|
|
6087
6217
|
CREATE OR REPLACE FUNCTION public.stock_import_undo_chunk(p_run_id uuid, p_chunk_no integer)
|
|
@@ -6092,6 +6222,7 @@ CREATE OR REPLACE FUNCTION public.stock_import_undo_chunk(p_run_id uuid, p_chunk
|
|
|
6092
6222
|
AS $function$
|
|
6093
6223
|
DECLARE v_run record; v_chunk record; r record; s record; tp int; tm int; ti int; v_note text; n_back int := 0; n_skip int := 0; v_left int;
|
|
6094
6224
|
BEGIN
|
|
6225
|
+
PERFORM public.voorraad_vereis('ingelogd', 'stock_import_undo_chunk');
|
|
6095
6226
|
SELECT * INTO v_run FROM public.stock_import_runs WHERE id = p_run_id FOR UPDATE;
|
|
6096
6227
|
IF v_run.id IS NULL THEN RAISE EXCEPTION 'Import niet gevonden'; END IF;
|
|
6097
6228
|
IF NOT public._stock_import_caller(v_run.user_id) THEN RAISE EXCEPTION 'Geen toegang tot deze import' USING ERRCODE = '42501'; END IF;
|
|
@@ -6154,6 +6285,7 @@ BEGIN
|
|
|
6154
6285
|
END $function$
|
|
6155
6286
|
;
|
|
6156
6287
|
REVOKE ALL ON FUNCTION stock_import_undo_chunk(uuid,integer) FROM PUBLIC;
|
|
6288
|
+
REVOKE ALL ON FUNCTION stock_import_undo_chunk(uuid,integer) FROM anon;
|
|
6157
6289
|
GRANT EXECUTE ON FUNCTION stock_import_undo_chunk(uuid,integer) TO authenticated;
|
|
6158
6290
|
GRANT EXECUTE ON FUNCTION stock_import_undo_chunk(uuid,integer) TO service_role;
|
|
6159
6291
|
CREATE OR REPLACE FUNCTION public.sync_order_item_fusten(_order_item_id uuid)
|
|
@@ -6177,6 +6309,7 @@ DECLARE
|
|
|
6177
6309
|
v_row record;
|
|
6178
6310
|
v_user uuid;
|
|
6179
6311
|
BEGIN
|
|
6312
|
+
PERFORM public.voorraad_vereis('ingelogd', 'sync_order_item_fusten');
|
|
6180
6313
|
SELECT oi.*, o.order_number INTO v_item
|
|
6181
6314
|
FROM logistics_active.order_items oi
|
|
6182
6315
|
LEFT JOIN public.orders o ON o.id = oi.order_id
|
|
@@ -6286,6 +6419,7 @@ END;
|
|
|
6286
6419
|
$function$
|
|
6287
6420
|
;
|
|
6288
6421
|
REVOKE ALL ON FUNCTION sync_order_item_fusten(uuid) FROM PUBLIC;
|
|
6422
|
+
REVOKE ALL ON FUNCTION sync_order_item_fusten(uuid) FROM anon;
|
|
6289
6423
|
GRANT EXECUTE ON FUNCTION sync_order_item_fusten(uuid) TO authenticated;
|
|
6290
6424
|
GRANT EXECUTE ON FUNCTION sync_order_item_fusten(uuid) TO service_role;
|
|
6291
6425
|
CREATE OR REPLACE FUNCTION public.sync_products_quantity_from_stock()
|
|
@@ -6335,8 +6469,11 @@ END;
|
|
|
6335
6469
|
$function$
|
|
6336
6470
|
;
|
|
6337
6471
|
REVOKE ALL ON FUNCTION sync_products_quantity_from_stock() FROM PUBLIC;
|
|
6338
|
-
|
|
6339
|
-
|
|
6472
|
+
REVOKE ALL ON FUNCTION sync_products_quantity_from_stock() FROM anon;
|
|
6473
|
+
REVOKE EXECUTE ON FUNCTION sync_products_quantity_from_stock() FROM PUBLIC;
|
|
6474
|
+
GRANT EXECUTE ON FUNCTION sync_products_quantity_from_stock() TO authenticated;
|
|
6475
|
+
GRANT EXECUTE ON FUNCTION sync_products_quantity_from_stock() TO service_role;
|
|
6476
|
+
REVOKE EXECUTE ON FUNCTION sync_products_quantity_from_stock() FROM anon;
|
|
6340
6477
|
GRANT EXECUTE ON FUNCTION sync_products_quantity_from_stock() TO authenticated;
|
|
6341
6478
|
GRANT EXECUTE ON FUNCTION sync_products_quantity_from_stock() TO service_role;
|
|
6342
6479
|
CREATE OR REPLACE FUNCTION public.touch_fust_types_updated_at()
|
|
@@ -6351,8 +6488,11 @@ END;
|
|
|
6351
6488
|
$function$
|
|
6352
6489
|
;
|
|
6353
6490
|
REVOKE ALL ON FUNCTION touch_fust_types_updated_at() FROM PUBLIC;
|
|
6354
|
-
|
|
6355
|
-
|
|
6491
|
+
REVOKE ALL ON FUNCTION touch_fust_types_updated_at() FROM anon;
|
|
6492
|
+
REVOKE EXECUTE ON FUNCTION touch_fust_types_updated_at() FROM PUBLIC;
|
|
6493
|
+
GRANT EXECUTE ON FUNCTION touch_fust_types_updated_at() TO authenticated;
|
|
6494
|
+
GRANT EXECUTE ON FUNCTION touch_fust_types_updated_at() TO service_role;
|
|
6495
|
+
REVOKE EXECUTE ON FUNCTION touch_fust_types_updated_at() FROM anon;
|
|
6356
6496
|
GRANT EXECUTE ON FUNCTION touch_fust_types_updated_at() TO authenticated;
|
|
6357
6497
|
GRANT EXECUTE ON FUNCTION touch_fust_types_updated_at() TO service_role;
|
|
6358
6498
|
CREATE OR REPLACE FUNCTION public.trade_item_drafts_readonly()
|
|
@@ -6365,8 +6505,11 @@ END;
|
|
|
6365
6505
|
$function$
|
|
6366
6506
|
;
|
|
6367
6507
|
REVOKE ALL ON FUNCTION trade_item_drafts_readonly() FROM PUBLIC;
|
|
6368
|
-
|
|
6369
|
-
|
|
6508
|
+
REVOKE ALL ON FUNCTION trade_item_drafts_readonly() FROM anon;
|
|
6509
|
+
REVOKE EXECUTE ON FUNCTION trade_item_drafts_readonly() FROM PUBLIC;
|
|
6510
|
+
GRANT EXECUTE ON FUNCTION trade_item_drafts_readonly() TO authenticated;
|
|
6511
|
+
GRANT EXECUTE ON FUNCTION trade_item_drafts_readonly() TO service_role;
|
|
6512
|
+
REVOKE EXECUTE ON FUNCTION trade_item_drafts_readonly() FROM anon;
|
|
6370
6513
|
GRANT EXECUTE ON FUNCTION trade_item_drafts_readonly() TO authenticated;
|
|
6371
6514
|
GRANT EXECUTE ON FUNCTION trade_item_drafts_readonly() TO service_role;
|
|
6372
6515
|
CREATE OR REPLACE FUNCTION public.trade_item_prices_touch_updated_at()
|
|
@@ -6381,8 +6524,11 @@ END;
|
|
|
6381
6524
|
$function$
|
|
6382
6525
|
;
|
|
6383
6526
|
REVOKE ALL ON FUNCTION trade_item_prices_touch_updated_at() FROM PUBLIC;
|
|
6384
|
-
|
|
6385
|
-
|
|
6527
|
+
REVOKE ALL ON FUNCTION trade_item_prices_touch_updated_at() FROM anon;
|
|
6528
|
+
REVOKE EXECUTE ON FUNCTION trade_item_prices_touch_updated_at() FROM PUBLIC;
|
|
6529
|
+
GRANT EXECUTE ON FUNCTION trade_item_prices_touch_updated_at() TO authenticated;
|
|
6530
|
+
GRANT EXECUTE ON FUNCTION trade_item_prices_touch_updated_at() TO service_role;
|
|
6531
|
+
REVOKE EXECUTE ON FUNCTION trade_item_prices_touch_updated_at() FROM anon;
|
|
6386
6532
|
GRANT EXECUTE ON FUNCTION trade_item_prices_touch_updated_at() TO authenticated;
|
|
6387
6533
|
GRANT EXECUTE ON FUNCTION trade_item_prices_touch_updated_at() TO service_role;
|
|
6388
6534
|
CREATE OR REPLACE FUNCTION public.trade_item_stock_duplicates()
|
|
@@ -6405,8 +6551,11 @@ AS $function$
|
|
|
6405
6551
|
$function$
|
|
6406
6552
|
;
|
|
6407
6553
|
REVOKE ALL ON FUNCTION trade_item_stock_duplicates() FROM PUBLIC;
|
|
6408
|
-
|
|
6409
|
-
|
|
6554
|
+
REVOKE ALL ON FUNCTION trade_item_stock_duplicates() FROM anon;
|
|
6555
|
+
REVOKE EXECUTE ON FUNCTION trade_item_stock_duplicates() FROM PUBLIC;
|
|
6556
|
+
GRANT EXECUTE ON FUNCTION trade_item_stock_duplicates() TO authenticated;
|
|
6557
|
+
GRANT EXECUTE ON FUNCTION trade_item_stock_duplicates() TO service_role;
|
|
6558
|
+
REVOKE EXECUTE ON FUNCTION trade_item_stock_duplicates() FROM anon;
|
|
6410
6559
|
GRANT EXECUTE ON FUNCTION trade_item_stock_duplicates() TO authenticated;
|
|
6411
6560
|
GRANT EXECUTE ON FUNCTION trade_item_stock_duplicates() TO service_role;
|
|
6412
6561
|
CREATE OR REPLACE FUNCTION public.trg_cart_numbers_sync_order_status_fn()
|
|
@@ -6436,8 +6585,11 @@ END;
|
|
|
6436
6585
|
$function$
|
|
6437
6586
|
;
|
|
6438
6587
|
REVOKE ALL ON FUNCTION trg_cart_numbers_sync_order_status_fn() FROM PUBLIC;
|
|
6439
|
-
|
|
6440
|
-
|
|
6588
|
+
REVOKE ALL ON FUNCTION trg_cart_numbers_sync_order_status_fn() FROM anon;
|
|
6589
|
+
REVOKE EXECUTE ON FUNCTION trg_cart_numbers_sync_order_status_fn() FROM PUBLIC;
|
|
6590
|
+
GRANT EXECUTE ON FUNCTION trg_cart_numbers_sync_order_status_fn() TO authenticated;
|
|
6591
|
+
GRANT EXECUTE ON FUNCTION trg_cart_numbers_sync_order_status_fn() TO service_role;
|
|
6592
|
+
REVOKE EXECUTE ON FUNCTION trg_cart_numbers_sync_order_status_fn() FROM anon;
|
|
6441
6593
|
GRANT EXECUTE ON FUNCTION trg_cart_numbers_sync_order_status_fn() TO authenticated;
|
|
6442
6594
|
GRANT EXECUTE ON FUNCTION trg_cart_numbers_sync_order_status_fn() TO service_role;
|
|
6443
6595
|
CREATE OR REPLACE FUNCTION public.trg_cart_session_consume_fn()
|
|
@@ -6479,8 +6631,11 @@ BEGIN
|
|
|
6479
6631
|
END $function$
|
|
6480
6632
|
;
|
|
6481
6633
|
REVOKE ALL ON FUNCTION trg_cart_session_consume_fn() FROM PUBLIC;
|
|
6482
|
-
|
|
6483
|
-
|
|
6634
|
+
REVOKE ALL ON FUNCTION trg_cart_session_consume_fn() FROM anon;
|
|
6635
|
+
REVOKE EXECUTE ON FUNCTION trg_cart_session_consume_fn() FROM PUBLIC;
|
|
6636
|
+
GRANT EXECUTE ON FUNCTION trg_cart_session_consume_fn() TO authenticated;
|
|
6637
|
+
GRANT EXECUTE ON FUNCTION trg_cart_session_consume_fn() TO service_role;
|
|
6638
|
+
REVOKE EXECUTE ON FUNCTION trg_cart_session_consume_fn() FROM anon;
|
|
6484
6639
|
GRANT EXECUTE ON FUNCTION trg_cart_session_consume_fn() TO authenticated;
|
|
6485
6640
|
GRANT EXECUTE ON FUNCTION trg_cart_session_consume_fn() TO service_role;
|
|
6486
6641
|
CREATE OR REPLACE FUNCTION public.trg_check_product_structure()
|
|
@@ -6518,6 +6673,7 @@ BEGIN
|
|
|
6518
6673
|
END $function$
|
|
6519
6674
|
;
|
|
6520
6675
|
REVOKE ALL ON FUNCTION trg_check_product_structure() FROM PUBLIC;
|
|
6676
|
+
REVOKE ALL ON FUNCTION trg_check_product_structure() FROM anon;
|
|
6521
6677
|
GRANT EXECUTE ON FUNCTION trg_check_product_structure() TO service_role;
|
|
6522
6678
|
CREATE OR REPLACE FUNCTION public.trg_floriday_cache_relink_fn()
|
|
6523
6679
|
RETURNS trigger
|
|
@@ -6532,8 +6688,11 @@ END;
|
|
|
6532
6688
|
$function$
|
|
6533
6689
|
;
|
|
6534
6690
|
REVOKE ALL ON FUNCTION trg_floriday_cache_relink_fn() FROM PUBLIC;
|
|
6535
|
-
|
|
6536
|
-
|
|
6691
|
+
REVOKE ALL ON FUNCTION trg_floriday_cache_relink_fn() FROM anon;
|
|
6692
|
+
REVOKE EXECUTE ON FUNCTION trg_floriday_cache_relink_fn() FROM PUBLIC;
|
|
6693
|
+
GRANT EXECUTE ON FUNCTION trg_floriday_cache_relink_fn() TO authenticated;
|
|
6694
|
+
GRANT EXECUTE ON FUNCTION trg_floriday_cache_relink_fn() TO service_role;
|
|
6695
|
+
REVOKE EXECUTE ON FUNCTION trg_floriday_cache_relink_fn() FROM anon;
|
|
6537
6696
|
GRANT EXECUTE ON FUNCTION trg_floriday_cache_relink_fn() TO authenticated;
|
|
6538
6697
|
GRANT EXECUTE ON FUNCTION trg_floriday_cache_relink_fn() TO service_role;
|
|
6539
6698
|
CREATE OR REPLACE FUNCTION public.trg_floriday_trade_items_autolink_fn()
|
|
@@ -6564,8 +6723,11 @@ BEGIN
|
|
|
6564
6723
|
END $function$
|
|
6565
6724
|
;
|
|
6566
6725
|
REVOKE ALL ON FUNCTION trg_floriday_trade_items_autolink_fn() FROM PUBLIC;
|
|
6567
|
-
|
|
6568
|
-
|
|
6726
|
+
REVOKE ALL ON FUNCTION trg_floriday_trade_items_autolink_fn() FROM anon;
|
|
6727
|
+
REVOKE EXECUTE ON FUNCTION trg_floriday_trade_items_autolink_fn() FROM PUBLIC;
|
|
6728
|
+
GRANT EXECUTE ON FUNCTION trg_floriday_trade_items_autolink_fn() TO authenticated;
|
|
6729
|
+
GRANT EXECUTE ON FUNCTION trg_floriday_trade_items_autolink_fn() TO service_role;
|
|
6730
|
+
REVOKE EXECUTE ON FUNCTION trg_floriday_trade_items_autolink_fn() FROM anon;
|
|
6569
6731
|
GRANT EXECUTE ON FUNCTION trg_floriday_trade_items_autolink_fn() TO authenticated;
|
|
6570
6732
|
GRANT EXECUTE ON FUNCTION trg_floriday_trade_items_autolink_fn() TO service_role;
|
|
6571
6733
|
CREATE OR REPLACE FUNCTION public.trg_order_items_autolink_fn()
|
|
@@ -6584,8 +6746,11 @@ BEGIN
|
|
|
6584
6746
|
END $function$
|
|
6585
6747
|
;
|
|
6586
6748
|
REVOKE ALL ON FUNCTION trg_order_items_autolink_fn() FROM PUBLIC;
|
|
6587
|
-
|
|
6588
|
-
|
|
6749
|
+
REVOKE ALL ON FUNCTION trg_order_items_autolink_fn() FROM anon;
|
|
6750
|
+
REVOKE EXECUTE ON FUNCTION trg_order_items_autolink_fn() FROM PUBLIC;
|
|
6751
|
+
GRANT EXECUTE ON FUNCTION trg_order_items_autolink_fn() TO authenticated;
|
|
6752
|
+
GRANT EXECUTE ON FUNCTION trg_order_items_autolink_fn() TO service_role;
|
|
6753
|
+
REVOKE EXECUTE ON FUNCTION trg_order_items_autolink_fn() FROM anon;
|
|
6589
6754
|
GRANT EXECUTE ON FUNCTION trg_order_items_autolink_fn() TO authenticated;
|
|
6590
6755
|
GRANT EXECUTE ON FUNCTION trg_order_items_autolink_fn() TO service_role;
|
|
6591
6756
|
CREATE OR REPLACE FUNCTION public.trg_order_items_fusten()
|
|
@@ -6606,6 +6771,7 @@ END;
|
|
|
6606
6771
|
$function$
|
|
6607
6772
|
;
|
|
6608
6773
|
REVOKE ALL ON FUNCTION trg_order_items_fusten() FROM PUBLIC;
|
|
6774
|
+
REVOKE ALL ON FUNCTION trg_order_items_fusten() FROM anon;
|
|
6609
6775
|
GRANT EXECUTE ON FUNCTION trg_order_items_fusten() TO service_role;
|
|
6610
6776
|
CREATE OR REPLACE FUNCTION public.trg_order_items_reserve_fn()
|
|
6611
6777
|
RETURNS trigger
|
|
@@ -6642,8 +6808,11 @@ BEGIN
|
|
|
6642
6808
|
END $function$
|
|
6643
6809
|
;
|
|
6644
6810
|
REVOKE ALL ON FUNCTION trg_order_items_reserve_fn() FROM PUBLIC;
|
|
6645
|
-
|
|
6646
|
-
|
|
6811
|
+
REVOKE ALL ON FUNCTION trg_order_items_reserve_fn() FROM anon;
|
|
6812
|
+
REVOKE EXECUTE ON FUNCTION trg_order_items_reserve_fn() FROM PUBLIC;
|
|
6813
|
+
GRANT EXECUTE ON FUNCTION trg_order_items_reserve_fn() TO authenticated;
|
|
6814
|
+
GRANT EXECUTE ON FUNCTION trg_order_items_reserve_fn() TO service_role;
|
|
6815
|
+
REVOKE EXECUTE ON FUNCTION trg_order_items_reserve_fn() FROM anon;
|
|
6647
6816
|
GRANT EXECUTE ON FUNCTION trg_order_items_reserve_fn() TO authenticated;
|
|
6648
6817
|
GRANT EXECUTE ON FUNCTION trg_order_items_reserve_fn() TO service_role;
|
|
6649
6818
|
CREATE OR REPLACE FUNCTION public.trg_orders_cancel_release_fn()
|
|
@@ -6667,8 +6836,11 @@ BEGIN
|
|
|
6667
6836
|
END $function$
|
|
6668
6837
|
;
|
|
6669
6838
|
REVOKE ALL ON FUNCTION trg_orders_cancel_release_fn() FROM PUBLIC;
|
|
6670
|
-
|
|
6671
|
-
|
|
6839
|
+
REVOKE ALL ON FUNCTION trg_orders_cancel_release_fn() FROM anon;
|
|
6840
|
+
REVOKE EXECUTE ON FUNCTION trg_orders_cancel_release_fn() FROM PUBLIC;
|
|
6841
|
+
GRANT EXECUTE ON FUNCTION trg_orders_cancel_release_fn() TO authenticated;
|
|
6842
|
+
GRANT EXECUTE ON FUNCTION trg_orders_cancel_release_fn() TO service_role;
|
|
6843
|
+
REVOKE EXECUTE ON FUNCTION trg_orders_cancel_release_fn() FROM anon;
|
|
6672
6844
|
GRANT EXECUTE ON FUNCTION trg_orders_cancel_release_fn() TO authenticated;
|
|
6673
6845
|
GRANT EXECUTE ON FUNCTION trg_orders_cancel_release_fn() TO service_role;
|
|
6674
6846
|
CREATE OR REPLACE FUNCTION public.trg_orders_consume_on_complete_fn()
|
|
@@ -6710,8 +6882,11 @@ BEGIN
|
|
|
6710
6882
|
END $function$
|
|
6711
6883
|
;
|
|
6712
6884
|
REVOKE ALL ON FUNCTION trg_orders_consume_on_complete_fn() FROM PUBLIC;
|
|
6713
|
-
|
|
6714
|
-
|
|
6885
|
+
REVOKE ALL ON FUNCTION trg_orders_consume_on_complete_fn() FROM anon;
|
|
6886
|
+
REVOKE EXECUTE ON FUNCTION trg_orders_consume_on_complete_fn() FROM PUBLIC;
|
|
6887
|
+
GRANT EXECUTE ON FUNCTION trg_orders_consume_on_complete_fn() TO authenticated;
|
|
6888
|
+
GRANT EXECUTE ON FUNCTION trg_orders_consume_on_complete_fn() TO service_role;
|
|
6889
|
+
REVOKE EXECUTE ON FUNCTION trg_orders_consume_on_complete_fn() FROM anon;
|
|
6715
6890
|
GRANT EXECUTE ON FUNCTION trg_orders_consume_on_complete_fn() TO authenticated;
|
|
6716
6891
|
GRANT EXECUTE ON FUNCTION trg_orders_consume_on_complete_fn() TO service_role;
|
|
6717
6892
|
CREATE OR REPLACE FUNCTION public.trg_orders_default_phase_fn()
|
|
@@ -6727,8 +6902,11 @@ BEGIN
|
|
|
6727
6902
|
END; $function$
|
|
6728
6903
|
;
|
|
6729
6904
|
REVOKE ALL ON FUNCTION trg_orders_default_phase_fn() FROM PUBLIC;
|
|
6730
|
-
|
|
6731
|
-
|
|
6905
|
+
REVOKE ALL ON FUNCTION trg_orders_default_phase_fn() FROM anon;
|
|
6906
|
+
REVOKE EXECUTE ON FUNCTION trg_orders_default_phase_fn() FROM PUBLIC;
|
|
6907
|
+
GRANT EXECUTE ON FUNCTION trg_orders_default_phase_fn() TO authenticated;
|
|
6908
|
+
GRANT EXECUTE ON FUNCTION trg_orders_default_phase_fn() TO service_role;
|
|
6909
|
+
REVOKE EXECUTE ON FUNCTION trg_orders_default_phase_fn() FROM anon;
|
|
6732
6910
|
GRANT EXECUTE ON FUNCTION trg_orders_default_phase_fn() TO authenticated;
|
|
6733
6911
|
GRANT EXECUTE ON FUNCTION trg_orders_default_phase_fn() TO service_role;
|
|
6734
6912
|
CREATE OR REPLACE FUNCTION public.trg_orders_external_fulfilled_fn()
|
|
@@ -6751,6 +6929,7 @@ BEGIN
|
|
|
6751
6929
|
END $function$
|
|
6752
6930
|
;
|
|
6753
6931
|
REVOKE ALL ON FUNCTION trg_orders_external_fulfilled_fn() FROM PUBLIC;
|
|
6932
|
+
REVOKE ALL ON FUNCTION trg_orders_external_fulfilled_fn() FROM anon;
|
|
6754
6933
|
GRANT EXECUTE ON FUNCTION trg_orders_external_fulfilled_fn() TO service_role;
|
|
6755
6934
|
CREATE OR REPLACE FUNCTION public.trg_orders_recompute_reserved_fn()
|
|
6756
6935
|
RETURNS trigger
|
|
@@ -6768,8 +6947,11 @@ BEGIN
|
|
|
6768
6947
|
END $function$
|
|
6769
6948
|
;
|
|
6770
6949
|
REVOKE ALL ON FUNCTION trg_orders_recompute_reserved_fn() FROM PUBLIC;
|
|
6771
|
-
|
|
6772
|
-
|
|
6950
|
+
REVOKE ALL ON FUNCTION trg_orders_recompute_reserved_fn() FROM anon;
|
|
6951
|
+
REVOKE EXECUTE ON FUNCTION trg_orders_recompute_reserved_fn() FROM PUBLIC;
|
|
6952
|
+
GRANT EXECUTE ON FUNCTION trg_orders_recompute_reserved_fn() TO authenticated;
|
|
6953
|
+
GRANT EXECUTE ON FUNCTION trg_orders_recompute_reserved_fn() TO service_role;
|
|
6954
|
+
REVOKE EXECUTE ON FUNCTION trg_orders_recompute_reserved_fn() FROM anon;
|
|
6773
6955
|
GRANT EXECUTE ON FUNCTION trg_orders_recompute_reserved_fn() TO authenticated;
|
|
6774
6956
|
GRANT EXECUTE ON FUNCTION trg_orders_recompute_reserved_fn() TO service_role;
|
|
6775
6957
|
CREATE OR REPLACE FUNCTION public.trg_pgi_assign_sort_order()
|
|
@@ -6788,6 +6970,7 @@ BEGIN
|
|
|
6788
6970
|
END $function$
|
|
6789
6971
|
;
|
|
6790
6972
|
REVOKE ALL ON FUNCTION trg_pgi_assign_sort_order() FROM PUBLIC;
|
|
6973
|
+
REVOKE ALL ON FUNCTION trg_pgi_assign_sort_order() FROM anon;
|
|
6791
6974
|
GRANT EXECUTE ON FUNCTION trg_pgi_assign_sort_order() TO service_role;
|
|
6792
6975
|
CREATE OR REPLACE FUNCTION public.trg_pgi_order_taken_check()
|
|
6793
6976
|
RETURNS trigger
|
|
@@ -6813,6 +6996,7 @@ BEGIN
|
|
|
6813
6996
|
END $function$
|
|
6814
6997
|
;
|
|
6815
6998
|
REVOKE ALL ON FUNCTION trg_pgi_order_taken_check() FROM PUBLIC;
|
|
6999
|
+
REVOKE ALL ON FUNCTION trg_pgi_order_taken_check() FROM anon;
|
|
6816
7000
|
GRANT EXECUTE ON FUNCTION trg_pgi_order_taken_check() TO service_role;
|
|
6817
7001
|
CREATE OR REPLACE FUNCTION public.trg_process_recompute_on_commit()
|
|
6818
7002
|
RETURNS trigger
|
|
@@ -6847,6 +7031,7 @@ BEGIN
|
|
|
6847
7031
|
END $function$
|
|
6848
7032
|
;
|
|
6849
7033
|
REVOKE ALL ON FUNCTION trg_process_recompute_on_commit() FROM PUBLIC;
|
|
7034
|
+
REVOKE ALL ON FUNCTION trg_process_recompute_on_commit() FROM anon;
|
|
6850
7035
|
GRANT EXECUTE ON FUNCTION trg_process_recompute_on_commit() TO service_role;
|
|
6851
7036
|
CREATE OR REPLACE FUNCTION public.trg_product_packings_derive_fn()
|
|
6852
7037
|
RETURNS trigger
|
|
@@ -6863,6 +7048,7 @@ BEGIN
|
|
|
6863
7048
|
END $function$
|
|
6864
7049
|
;
|
|
6865
7050
|
REVOKE ALL ON FUNCTION trg_product_packings_derive_fn() FROM PUBLIC;
|
|
7051
|
+
REVOKE ALL ON FUNCTION trg_product_packings_derive_fn() FROM anon;
|
|
6866
7052
|
GRANT EXECUTE ON FUNCTION trg_product_packings_derive_fn() TO service_role;
|
|
6867
7053
|
CREATE OR REPLACE FUNCTION public.trg_products_autolink_fn()
|
|
6868
7054
|
RETURNS trigger
|
|
@@ -6878,8 +7064,11 @@ BEGIN
|
|
|
6878
7064
|
END $function$
|
|
6879
7065
|
;
|
|
6880
7066
|
REVOKE ALL ON FUNCTION trg_products_autolink_fn() FROM PUBLIC;
|
|
6881
|
-
|
|
6882
|
-
|
|
7067
|
+
REVOKE ALL ON FUNCTION trg_products_autolink_fn() FROM anon;
|
|
7068
|
+
REVOKE EXECUTE ON FUNCTION trg_products_autolink_fn() FROM PUBLIC;
|
|
7069
|
+
GRANT EXECUTE ON FUNCTION trg_products_autolink_fn() TO authenticated;
|
|
7070
|
+
GRANT EXECUTE ON FUNCTION trg_products_autolink_fn() TO service_role;
|
|
7071
|
+
REVOKE EXECUTE ON FUNCTION trg_products_autolink_fn() FROM anon;
|
|
6883
7072
|
GRANT EXECUTE ON FUNCTION trg_products_autolink_fn() TO authenticated;
|
|
6884
7073
|
GRANT EXECUTE ON FUNCTION trg_products_autolink_fn() TO service_role;
|
|
6885
7074
|
CREATE OR REPLACE FUNCTION public.trg_products_floriday_link_enqueue()
|
|
@@ -6925,6 +7114,7 @@ BEGIN
|
|
|
6925
7114
|
END $function$
|
|
6926
7115
|
;
|
|
6927
7116
|
REVOKE ALL ON FUNCTION trg_products_floriday_link_enqueue() FROM PUBLIC;
|
|
7117
|
+
REVOKE ALL ON FUNCTION trg_products_floriday_link_enqueue() FROM anon;
|
|
6928
7118
|
GRANT EXECUTE ON FUNCTION trg_products_floriday_link_enqueue() TO service_role;
|
|
6929
7119
|
CREATE OR REPLACE FUNCTION public.trg_products_seed_stock_fn()
|
|
6930
7120
|
RETURNS trigger
|
|
@@ -6940,8 +7130,11 @@ BEGIN
|
|
|
6940
7130
|
END $function$
|
|
6941
7131
|
;
|
|
6942
7132
|
REVOKE ALL ON FUNCTION trg_products_seed_stock_fn() FROM PUBLIC;
|
|
6943
|
-
|
|
6944
|
-
|
|
7133
|
+
REVOKE ALL ON FUNCTION trg_products_seed_stock_fn() FROM anon;
|
|
7134
|
+
REVOKE EXECUTE ON FUNCTION trg_products_seed_stock_fn() FROM PUBLIC;
|
|
7135
|
+
GRANT EXECUTE ON FUNCTION trg_products_seed_stock_fn() TO authenticated;
|
|
7136
|
+
GRANT EXECUTE ON FUNCTION trg_products_seed_stock_fn() TO service_role;
|
|
7137
|
+
REVOKE EXECUTE ON FUNCTION trg_products_seed_stock_fn() FROM anon;
|
|
6945
7138
|
GRANT EXECUTE ON FUNCTION trg_products_seed_stock_fn() TO authenticated;
|
|
6946
7139
|
GRANT EXECUTE ON FUNCTION trg_products_seed_stock_fn() TO service_role;
|
|
6947
7140
|
CREATE OR REPLACE FUNCTION public.trg_requeue_no_warehouse_cache()
|
|
@@ -6959,6 +7152,7 @@ BEGIN
|
|
|
6959
7152
|
END $function$
|
|
6960
7153
|
;
|
|
6961
7154
|
REVOKE ALL ON FUNCTION trg_requeue_no_warehouse_cache() FROM PUBLIC;
|
|
7155
|
+
REVOKE ALL ON FUNCTION trg_requeue_no_warehouse_cache() FROM anon;
|
|
6962
7156
|
GRANT EXECUTE ON FUNCTION trg_requeue_no_warehouse_cache() TO service_role;
|
|
6963
7157
|
CREATE OR REPLACE FUNCTION public.trg_requeue_no_warehouse_connection()
|
|
6964
7158
|
RETURNS trigger
|
|
@@ -6974,6 +7168,7 @@ BEGIN
|
|
|
6974
7168
|
END $function$
|
|
6975
7169
|
;
|
|
6976
7170
|
REVOKE ALL ON FUNCTION trg_requeue_no_warehouse_connection() FROM PUBLIC;
|
|
7171
|
+
REVOKE ALL ON FUNCTION trg_requeue_no_warehouse_connection() FROM anon;
|
|
6977
7172
|
GRANT EXECUTE ON FUNCTION trg_requeue_no_warehouse_connection() TO service_role;
|
|
6978
7173
|
CREATE OR REPLACE FUNCTION public.trg_requeue_no_warehouse_item_pref()
|
|
6979
7174
|
RETURNS trigger
|
|
@@ -6989,6 +7184,7 @@ BEGIN
|
|
|
6989
7184
|
END $function$
|
|
6990
7185
|
;
|
|
6991
7186
|
REVOKE ALL ON FUNCTION trg_requeue_no_warehouse_item_pref() FROM PUBLIC;
|
|
7187
|
+
REVOKE ALL ON FUNCTION trg_requeue_no_warehouse_item_pref() FROM anon;
|
|
6992
7188
|
GRANT EXECUTE ON FUNCTION trg_requeue_no_warehouse_item_pref() TO service_role;
|
|
6993
7189
|
CREATE OR REPLACE FUNCTION public.trg_requeue_skipped_no_price()
|
|
6994
7190
|
RETURNS trigger
|
|
@@ -7028,6 +7224,7 @@ EXCEPTION WHEN OTHERS THEN
|
|
|
7028
7224
|
END $function$
|
|
7029
7225
|
;
|
|
7030
7226
|
REVOKE ALL ON FUNCTION trg_requeue_skipped_no_price() FROM PUBLIC;
|
|
7227
|
+
REVOKE ALL ON FUNCTION trg_requeue_skipped_no_price() FROM anon;
|
|
7031
7228
|
GRANT EXECUTE ON FUNCTION trg_requeue_skipped_no_price() TO service_role;
|
|
7032
7229
|
CREATE OR REPLACE FUNCTION public.trg_stock_structure_recompute_ins()
|
|
7033
7230
|
RETURNS trigger
|
|
@@ -7048,6 +7245,7 @@ BEGIN
|
|
|
7048
7245
|
END $function$
|
|
7049
7246
|
;
|
|
7050
7247
|
REVOKE ALL ON FUNCTION trg_stock_structure_recompute_ins() FROM PUBLIC;
|
|
7248
|
+
REVOKE ALL ON FUNCTION trg_stock_structure_recompute_ins() FROM anon;
|
|
7051
7249
|
GRANT EXECUTE ON FUNCTION trg_stock_structure_recompute_ins() TO service_role;
|
|
7052
7250
|
CREATE OR REPLACE FUNCTION public.trg_stock_structure_recompute_upd()
|
|
7053
7251
|
RETURNS trigger
|
|
@@ -7071,6 +7269,7 @@ BEGIN
|
|
|
7071
7269
|
END $function$
|
|
7072
7270
|
;
|
|
7073
7271
|
REVOKE ALL ON FUNCTION trg_stock_structure_recompute_upd() FROM PUBLIC;
|
|
7272
|
+
REVOKE ALL ON FUNCTION trg_stock_structure_recompute_upd() FROM anon;
|
|
7074
7273
|
GRANT EXECUTE ON FUNCTION trg_stock_structure_recompute_upd() TO service_role;
|
|
7075
7274
|
CREATE OR REPLACE FUNCTION public.trg_structure_change_recompute()
|
|
7076
7275
|
RETURNS trigger
|
|
@@ -7106,6 +7305,7 @@ BEGIN
|
|
|
7106
7305
|
END $function$
|
|
7107
7306
|
;
|
|
7108
7307
|
REVOKE ALL ON FUNCTION trg_structure_change_recompute() FROM PUBLIC;
|
|
7308
|
+
REVOKE ALL ON FUNCTION trg_structure_change_recompute() FROM anon;
|
|
7109
7309
|
GRANT EXECUTE ON FUNCTION trg_structure_change_recompute() TO service_role;
|
|
7110
7310
|
CREATE OR REPLACE FUNCTION public.trg_trade_item_drafts_autolink_fn()
|
|
7111
7311
|
RETURNS trigger
|
|
@@ -7137,8 +7337,11 @@ BEGIN
|
|
|
7137
7337
|
END $function$
|
|
7138
7338
|
;
|
|
7139
7339
|
REVOKE ALL ON FUNCTION trg_trade_item_drafts_autolink_fn() FROM PUBLIC;
|
|
7140
|
-
|
|
7141
|
-
|
|
7340
|
+
REVOKE ALL ON FUNCTION trg_trade_item_drafts_autolink_fn() FROM anon;
|
|
7341
|
+
REVOKE EXECUTE ON FUNCTION trg_trade_item_drafts_autolink_fn() FROM PUBLIC;
|
|
7342
|
+
GRANT EXECUTE ON FUNCTION trg_trade_item_drafts_autolink_fn() TO authenticated;
|
|
7343
|
+
GRANT EXECUTE ON FUNCTION trg_trade_item_drafts_autolink_fn() TO service_role;
|
|
7344
|
+
REVOKE EXECUTE ON FUNCTION trg_trade_item_drafts_autolink_fn() FROM anon;
|
|
7142
7345
|
GRANT EXECUTE ON FUNCTION trg_trade_item_drafts_autolink_fn() TO authenticated;
|
|
7143
7346
|
GRANT EXECUTE ON FUNCTION trg_trade_item_drafts_autolink_fn() TO service_role;
|
|
7144
7347
|
CREATE OR REPLACE FUNCTION public.trg_trade_item_stock_auto_bom()
|
|
@@ -7210,6 +7413,7 @@ END;
|
|
|
7210
7413
|
$function$
|
|
7211
7414
|
;
|
|
7212
7415
|
REVOKE ALL ON FUNCTION trg_trade_item_stock_auto_bom() FROM PUBLIC;
|
|
7416
|
+
REVOKE ALL ON FUNCTION trg_trade_item_stock_auto_bom() FROM anon;
|
|
7213
7417
|
GRANT EXECUTE ON FUNCTION trg_trade_item_stock_auto_bom() TO service_role;
|
|
7214
7418
|
CREATE OR REPLACE FUNCTION public.trg_trade_item_stock_auto_bom_reverse()
|
|
7215
7419
|
RETURNS trigger
|
|
@@ -7282,6 +7486,7 @@ END;
|
|
|
7282
7486
|
$function$
|
|
7283
7487
|
;
|
|
7284
7488
|
REVOKE ALL ON FUNCTION trg_trade_item_stock_auto_bom_reverse() FROM PUBLIC;
|
|
7489
|
+
REVOKE ALL ON FUNCTION trg_trade_item_stock_auto_bom_reverse() FROM anon;
|
|
7285
7490
|
GRANT EXECUTE ON FUNCTION trg_trade_item_stock_auto_bom_reverse() TO service_role;
|
|
7286
7491
|
CREATE OR REPLACE FUNCTION public.trg_trade_item_stock_log_change()
|
|
7287
7492
|
RETURNS trigger
|
|
@@ -7355,6 +7560,7 @@ EXCEPTION WHEN others THEN
|
|
|
7355
7560
|
END $function$
|
|
7356
7561
|
;
|
|
7357
7562
|
REVOKE ALL ON FUNCTION trg_trade_item_stock_log_change() FROM PUBLIC;
|
|
7563
|
+
REVOKE ALL ON FUNCTION trg_trade_item_stock_log_change() FROM anon;
|
|
7358
7564
|
GRANT EXECUTE ON FUNCTION trg_trade_item_stock_log_change() TO service_role;
|
|
7359
7565
|
CREATE OR REPLACE FUNCTION public.trg_trade_item_stock_reserve_fn()
|
|
7360
7566
|
RETURNS trigger
|
|
@@ -7368,8 +7574,11 @@ BEGIN
|
|
|
7368
7574
|
END $function$
|
|
7369
7575
|
;
|
|
7370
7576
|
REVOKE ALL ON FUNCTION trg_trade_item_stock_reserve_fn() FROM PUBLIC;
|
|
7371
|
-
|
|
7372
|
-
|
|
7577
|
+
REVOKE ALL ON FUNCTION trg_trade_item_stock_reserve_fn() FROM anon;
|
|
7578
|
+
REVOKE EXECUTE ON FUNCTION trg_trade_item_stock_reserve_fn() FROM PUBLIC;
|
|
7579
|
+
GRANT EXECUTE ON FUNCTION trg_trade_item_stock_reserve_fn() TO authenticated;
|
|
7580
|
+
GRANT EXECUTE ON FUNCTION trg_trade_item_stock_reserve_fn() TO service_role;
|
|
7581
|
+
REVOKE EXECUTE ON FUNCTION trg_trade_item_stock_reserve_fn() FROM anon;
|
|
7373
7582
|
GRANT EXECUTE ON FUNCTION trg_trade_item_stock_reserve_fn() TO authenticated;
|
|
7374
7583
|
GRANT EXECUTE ON FUNCTION trg_trade_item_stock_reserve_fn() TO service_role;
|
|
7375
7584
|
CREATE OR REPLACE FUNCTION public.trg_trade_item_stock_zero_watch()
|
|
@@ -7422,6 +7631,7 @@ BEGIN
|
|
|
7422
7631
|
END $function$
|
|
7423
7632
|
;
|
|
7424
7633
|
REVOKE ALL ON FUNCTION trg_trade_item_stock_zero_watch() FROM PUBLIC;
|
|
7634
|
+
REVOKE ALL ON FUNCTION trg_trade_item_stock_zero_watch() FROM anon;
|
|
7425
7635
|
GRANT EXECUTE ON FUNCTION trg_trade_item_stock_zero_watch() TO service_role;
|
|
7426
7636
|
CREATE OR REPLACE FUNCTION public.trg_trade_items_cache_autolink_fn()
|
|
7427
7637
|
RETURNS trigger
|
|
@@ -7451,8 +7661,11 @@ BEGIN
|
|
|
7451
7661
|
END $function$
|
|
7452
7662
|
;
|
|
7453
7663
|
REVOKE ALL ON FUNCTION trg_trade_items_cache_autolink_fn() FROM PUBLIC;
|
|
7454
|
-
|
|
7455
|
-
|
|
7664
|
+
REVOKE ALL ON FUNCTION trg_trade_items_cache_autolink_fn() FROM anon;
|
|
7665
|
+
REVOKE EXECUTE ON FUNCTION trg_trade_items_cache_autolink_fn() FROM PUBLIC;
|
|
7666
|
+
GRANT EXECUTE ON FUNCTION trg_trade_items_cache_autolink_fn() TO authenticated;
|
|
7667
|
+
GRANT EXECUTE ON FUNCTION trg_trade_items_cache_autolink_fn() TO service_role;
|
|
7668
|
+
REVOKE EXECUTE ON FUNCTION trg_trade_items_cache_autolink_fn() FROM anon;
|
|
7456
7669
|
GRANT EXECUTE ON FUNCTION trg_trade_items_cache_autolink_fn() TO authenticated;
|
|
7457
7670
|
GRANT EXECUTE ON FUNCTION trg_trade_items_cache_autolink_fn() TO service_role;
|
|
7458
7671
|
CREATE OR REPLACE FUNCTION public.update_updated_at_column()
|
|
@@ -7462,7 +7675,8 @@ CREATE OR REPLACE FUNCTION public.update_updated_at_column()
|
|
|
7462
7675
|
AS $function$ BEGIN NEW.updated_at = now(); RETURN NEW; END; $function$
|
|
7463
7676
|
;
|
|
7464
7677
|
REVOKE ALL ON FUNCTION update_updated_at_column() FROM PUBLIC;
|
|
7465
|
-
|
|
7678
|
+
REVOKE ALL ON FUNCTION update_updated_at_column() FROM anon;
|
|
7679
|
+
REVOKE EXECUTE ON FUNCTION update_updated_at_column() FROM anon;
|
|
7466
7680
|
GRANT EXECUTE ON FUNCTION update_updated_at_column() TO authenticated;
|
|
7467
7681
|
GRANT EXECUTE ON FUNCTION update_updated_at_column() TO service_role;
|
|
7468
7682
|
CREATE OR REPLACE FUNCTION public.voorraad_alert_floriday_not_updated(p_key text, p_qty numeric, p_order_id uuid, p_order_item_id uuid)
|
|
@@ -7473,6 +7687,7 @@ CREATE OR REPLACE FUNCTION public.voorraad_alert_floriday_not_updated(p_key text
|
|
|
7473
7687
|
AS $function$
|
|
7474
7688
|
DECLARE v_code text; v_name text; v_nr text; v_tx bigint := -(txid_current() + 1125899906842624);
|
|
7475
7689
|
BEGIN
|
|
7690
|
+
PERFORM public.voorraad_vereis('ingelogd', 'voorraad_alert_floriday_not_updated');
|
|
7476
7691
|
SELECT p.article_number, p.product INTO v_code, v_name FROM public.products p
|
|
7477
7692
|
WHERE lower(p.floriday_trade_item_id) = lower(p_key) OR p.trade_item_key = p_key OR 'product:' || p.id::text = p_key OR p.id::text = p_key
|
|
7478
7693
|
LIMIT 1;
|
|
@@ -7488,6 +7703,7 @@ EXCEPTION WHEN others THEN RAISE WARNING '[floriday-not-updated-alert] %', SQLER
|
|
|
7488
7703
|
END $function$
|
|
7489
7704
|
;
|
|
7490
7705
|
REVOKE ALL ON FUNCTION voorraad_alert_floriday_not_updated(text,numeric,uuid,uuid) FROM PUBLIC;
|
|
7706
|
+
REVOKE ALL ON FUNCTION voorraad_alert_floriday_not_updated(text,numeric,uuid,uuid) FROM anon;
|
|
7491
7707
|
GRANT EXECUTE ON FUNCTION voorraad_alert_floriday_not_updated(text,numeric,uuid,uuid) TO service_role;
|
|
7492
7708
|
CREATE OR REPLACE FUNCTION public.voorraad_can_write()
|
|
7493
7709
|
RETURNS boolean
|
|
@@ -7505,6 +7721,7 @@ AS $function$
|
|
|
7505
7721
|
$function$
|
|
7506
7722
|
;
|
|
7507
7723
|
REVOKE ALL ON FUNCTION voorraad_can_write() FROM PUBLIC;
|
|
7724
|
+
REVOKE ALL ON FUNCTION voorraad_can_write() FROM anon;
|
|
7508
7725
|
GRANT EXECUTE ON FUNCTION voorraad_can_write() TO authenticated;
|
|
7509
7726
|
GRANT EXECUTE ON FUNCTION voorraad_can_write() TO service_role;
|
|
7510
7727
|
CREATE OR REPLACE FUNCTION public.voorraad_cleanup_old_rows()
|
|
@@ -7518,6 +7735,7 @@ declare
|
|
|
7518
7735
|
v_dead int := 0;
|
|
7519
7736
|
v_sent int := 0;
|
|
7520
7737
|
begin
|
|
7738
|
+
PERFORM public.voorraad_vereis('server', 'voorraad_cleanup_old_rows');
|
|
7521
7739
|
delete from public.floriday_continuous_stock_queue
|
|
7522
7740
|
where status = 'superseded'
|
|
7523
7741
|
and created_at < now() - interval '2 days';
|
|
@@ -7542,6 +7760,7 @@ end;
|
|
|
7542
7760
|
$function$
|
|
7543
7761
|
;
|
|
7544
7762
|
REVOKE ALL ON FUNCTION voorraad_cleanup_old_rows() FROM PUBLIC;
|
|
7763
|
+
REVOKE ALL ON FUNCTION voorraad_cleanup_old_rows() FROM anon;
|
|
7545
7764
|
GRANT EXECUTE ON FUNCTION voorraad_cleanup_old_rows() TO service_role;
|
|
7546
7765
|
CREATE OR REPLACE FUNCTION public.voorraad_consume_external_fulfilled(p_order_id uuid, p_ids text[], p_source text)
|
|
7547
7766
|
RETURNS integer
|
|
@@ -7551,6 +7770,7 @@ CREATE OR REPLACE FUNCTION public.voorraad_consume_external_fulfilled(p_order_id
|
|
|
7551
7770
|
AS $function$
|
|
7552
7771
|
DECLARE oi record; n integer := 0; v_norm text := public.normalize_order_source(COALESCE(p_source,'HO'));
|
|
7553
7772
|
BEGIN
|
|
7773
|
+
PERFORM public.voorraad_vereis('ingelogd', 'voorraad_consume_external_fulfilled');
|
|
7554
7774
|
IF p_order_id IS NULL OR COALESCE(array_length(p_ids,1),0) = 0 THEN RETURN 0; END IF;
|
|
7555
7775
|
FOR oi IN SELECT id, source_line_key, quantity FROM logistics_active.order_items WHERE order_id = p_order_id LOOP
|
|
7556
7776
|
IF oi.source_line_key IS NOT NULL AND oi.source_line_key = ANY(p_ids) THEN
|
|
@@ -7568,7 +7788,184 @@ BEGIN
|
|
|
7568
7788
|
END $function$
|
|
7569
7789
|
;
|
|
7570
7790
|
REVOKE ALL ON FUNCTION voorraad_consume_external_fulfilled(uuid,text[],text) FROM PUBLIC;
|
|
7791
|
+
REVOKE ALL ON FUNCTION voorraad_consume_external_fulfilled(uuid,text[],text) FROM anon;
|
|
7571
7792
|
GRANT EXECUTE ON FUNCTION voorraad_consume_external_fulfilled(uuid,text[],text) TO service_role;
|
|
7793
|
+
CREATE OR REPLACE FUNCTION public.voorraad_correctie_1098(p_uitvoeren boolean DEFAULT false)
|
|
7794
|
+
RETURNS jsonb
|
|
7795
|
+
LANGUAGE plpgsql
|
|
7796
|
+
SECURITY DEFINER
|
|
7797
|
+
SET search_path TO 'public'
|
|
7798
|
+
AS $function$
|
|
7799
|
+
DECLARE
|
|
7800
|
+
v_cache_n bigint; v_cache_h text; v_queue_n bigint; v_queue_h text;
|
|
7801
|
+
v_hash_ok boolean := NULL;
|
|
7802
|
+
v_ins int := 0; v_upd int := 0; v_art int := 0; v_meld int := 0; v_prod int := 0;
|
|
7803
|
+
v_ex_ins jsonb := '[]'; v_ex_upd jsonb := '[]'; v_ex_art jsonb := '[]'; v_ex_meld jsonb := '[]';
|
|
7804
|
+
v_door text; r record; e record; v_res jsonb;
|
|
7805
|
+
BEGIN
|
|
7806
|
+
IF NOT public.voorraad_is_server() THEN
|
|
7807
|
+
RAISE EXCEPTION 'Alleen de server mag deze correctie uitvoeren' USING ERRCODE = '42501';
|
|
7808
|
+
END IF;
|
|
7809
|
+
PERFORM set_config('stock.change_source', 'CORRECTIE_1098', true);
|
|
7810
|
+
v_door := COALESCE(auth.uid()::text, 'systeem:' || session_user::text);
|
|
7811
|
+
|
|
7812
|
+
IF p_uitvoeren THEN
|
|
7813
|
+
SELECT count(*), md5(coalesce(string_agg(t::text, '|' ORDER BY t::text), '')) INTO v_cache_n, v_cache_h FROM public.floriday_trade_items_cache t;
|
|
7814
|
+
SELECT count(*), md5(coalesce(string_agg(q::text, '|' ORDER BY q::text), '')) INTO v_queue_n, v_queue_h FROM public.floriday_continuous_stock_queue q;
|
|
7815
|
+
END IF;
|
|
7816
|
+
|
|
7817
|
+
FOR r IN
|
|
7818
|
+
SELECT p.id, p.article_number, p.plants_per_crate, p.crates_per_layer, p.layers_per_cart,
|
|
7819
|
+
c.connection_id, c.data->'packingConfigurations' AS cfg
|
|
7820
|
+
FROM public.products p
|
|
7821
|
+
JOIN public.floriday_trade_items_cache c
|
|
7822
|
+
ON c.floriday_id = NULLIF(btrim(p.floriday_trade_item_id), '')
|
|
7823
|
+
AND COALESCE(c.is_deleted, false) = false
|
|
7824
|
+
ORDER BY p.id
|
|
7825
|
+
LOOP
|
|
7826
|
+
v_prod := v_prod + 1;
|
|
7827
|
+
-- Twijfel = overslaan en melden. Sleutel per verpakking: Floriday-id, of zonder id het volgnummer in Floriday (product_id + volgnr).
|
|
7828
|
+
IF jsonb_typeof(r.cfg) IS DISTINCT FROM 'array' OR jsonb_array_length(r.cfg) = 0 THEN
|
|
7829
|
+
v_meld := v_meld + 1; IF jsonb_array_length(v_ex_meld) < 5 THEN v_ex_meld := v_ex_meld || jsonb_build_object('product_id', r.id, 'artikelcode', r.article_number, 'reden', 'geen verpakkingen in Floriday'); END IF; CONTINUE;
|
|
7830
|
+
END IF;
|
|
7831
|
+
IF (SELECT count(*) FROM public.floriday_trade_items_cache c2 WHERE c2.floriday_id = (SELECT NULLIF(btrim(floriday_trade_item_id),'') FROM public.products WHERE id = r.id) AND COALESCE(c2.is_deleted,false) = false) > 1 THEN
|
|
7832
|
+
v_meld := v_meld + 1; IF jsonb_array_length(v_ex_meld) < 5 THEN v_ex_meld := v_ex_meld || jsonb_build_object('product_id', r.id, 'artikelcode', r.article_number, 'reden', 'in meer dan één koppeling'); END IF; CONTINUE;
|
|
7833
|
+
END IF;
|
|
7834
|
+
IF (SELECT count(*) FROM jsonb_array_elements(r.cfg) x WHERE COALESCE((x->>'primary')::boolean, false)) <> 1 THEN
|
|
7835
|
+
v_meld := v_meld + 1; IF jsonb_array_length(v_ex_meld) < 5 THEN v_ex_meld := v_ex_meld || jsonb_build_object('product_id', r.id, 'artikelcode', r.article_number, 'reden', 'niet precies één primaire'); END IF; CONTINUE;
|
|
7836
|
+
END IF;
|
|
7837
|
+
IF EXISTS (SELECT 1 FROM jsonb_array_elements(r.cfg) x
|
|
7838
|
+
WHERE COALESCE(x->>'piecesPerPackage','') !~ '^[1-9][0-9]*$'
|
|
7839
|
+
OR COALESCE(x->>'packagesPerLayer','') !~ '^[1-9][0-9]*$'
|
|
7840
|
+
OR COALESCE(x->>'layersPerLoadCarrier','') !~ '^[1-9][0-9]*$'
|
|
7841
|
+
OR (x#>>'{package,vbnPackageCode}' IS NOT NULL AND x#>>'{package,vbnPackageCode}' !~ '^[0-9]+$'))
|
|
7842
|
+
OR (SELECT count(DISTINCT COALESCE(NULLIF(x->>'packingConfigurationId',''), NULLIF(x->>'id',''), '#' || o)) FROM jsonb_array_elements(r.cfg) WITH ORDINALITY t(x, o)) <> jsonb_array_length(r.cfg) THEN
|
|
7843
|
+
v_meld := v_meld + 1; IF jsonb_array_length(v_ex_meld) < 5 THEN v_ex_meld := v_ex_meld || jsonb_build_object('product_id', r.id, 'artikelcode', r.article_number, 'reden', 'veld ontbreekt of ongeldig'); END IF; CONTINUE;
|
|
7844
|
+
END IF;
|
|
7845
|
+
IF EXISTS (SELECT 1 FROM public.product_packings pp WHERE pp.product_id = r.id
|
|
7846
|
+
AND COALESCE(pp.floriday_packing_id, '#' || pp.sort_order) NOT IN
|
|
7847
|
+
(SELECT COALESCE(NULLIF(x->>'packingConfigurationId',''), NULLIF(x->>'id',''), '#' || o) FROM jsonb_array_elements(r.cfg) WITH ORDINALITY t(x, o)))
|
|
7848
|
+
OR EXISTS (SELECT 1 FROM public.product_packings pp WHERE pp.product_id = r.id
|
|
7849
|
+
GROUP BY COALESCE(pp.floriday_packing_id, '#' || pp.sort_order) HAVING count(*) > 1) THEN
|
|
7850
|
+
v_meld := v_meld + 1; IF jsonb_array_length(v_ex_meld) < 5 THEN v_ex_meld := v_ex_meld || jsonb_build_object('product_id', r.id, 'artikelcode', r.article_number, 'reden', 'lokale verpakking niet in Floriday (blijft staan)'); END IF; CONTINUE;
|
|
7851
|
+
END IF;
|
|
7852
|
+
|
|
7853
|
+
SELECT x INTO e FROM jsonb_array_elements(r.cfg) x WHERE COALESCE((x->>'primary')::boolean, false);
|
|
7854
|
+
IF (r.plants_per_crate, r.crates_per_layer, r.layers_per_cart) IS DISTINCT FROM
|
|
7855
|
+
((e.x->>'piecesPerPackage')::int, (e.x->>'packagesPerLayer')::int, (e.x->>'layersPerLoadCarrier')::int) THEN
|
|
7856
|
+
v_art := v_art + 1;
|
|
7857
|
+
IF jsonb_array_length(v_ex_art) < 5 THEN
|
|
7858
|
+
v_ex_art := v_ex_art || jsonb_build_object('product_id', r.id, 'artikelcode', r.article_number,
|
|
7859
|
+
'oud', concat_ws('/', r.plants_per_crate, r.crates_per_layer, r.layers_per_cart),
|
|
7860
|
+
'nieuw', concat_ws('/', e.x->>'piecesPerPackage', e.x->>'packagesPerLayer', e.x->>'layersPerLoadCarrier'));
|
|
7861
|
+
END IF;
|
|
7862
|
+
END IF;
|
|
7863
|
+
|
|
7864
|
+
FOR e IN
|
|
7865
|
+
SELECT n.*, pp.id AS pp_id, to_jsonb(pp) AS pp_row
|
|
7866
|
+
FROM (
|
|
7867
|
+
SELECT o AS sort_order,
|
|
7868
|
+
NULLIF(COALESCE(NULLIF(x->>'packingConfigurationId',''), x->>'id'), '') AS fpid,
|
|
7869
|
+
COALESCE(NULLIF(x->>'packingConfigurationId',''), NULLIF(x->>'id',''), '#' || o) AS k,
|
|
7870
|
+
(x#>>'{package,vbnPackageCode}')::int AS vbn,
|
|
7871
|
+
x#>>'{package,customPackageId}' AS cpid,
|
|
7872
|
+
(SELECT f.id FROM public.fust_types f WHERE f.connection_id IS NULL AND f.vbn_code IS NOT NULL
|
|
7873
|
+
AND f.vbn_code::text = x#>>'{package,vbnPackageCode}' ORDER BY f.id LIMIT 1) AS fust,
|
|
7874
|
+
x->>'loadCarrier' AS lc,
|
|
7875
|
+
(x->>'piecesPerPackage')::int AS pcs,
|
|
7876
|
+
(x->>'packagesPerLayer')::int AS ppl,
|
|
7877
|
+
(x->>'layersPerLoadCarrier')::int AS lay,
|
|
7878
|
+
COALESCE((x->>'primary')::boolean, false) AS prim,
|
|
7879
|
+
COALESCE(ARRAY(SELECT jsonb_array_elements_text(CASE WHEN jsonb_typeof(x->'allowedCustomerOrganizationIds') = 'array' THEN x->'allowedCustomerOrganizationIds' ELSE '[]'::jsonb END)), '{}'::text[]) AS cust
|
|
7880
|
+
FROM jsonb_array_elements(r.cfg) WITH ORDINALITY t(x, o)
|
|
7881
|
+
) n
|
|
7882
|
+
LEFT JOIN public.product_packings pp ON pp.product_id = r.id AND COALESCE(pp.floriday_packing_id, '#' || pp.sort_order) = n.k
|
|
7883
|
+
ORDER BY n.prim, n.sort_order
|
|
7884
|
+
LOOP
|
|
7885
|
+
IF e.pp_id IS NULL THEN
|
|
7886
|
+
v_ins := v_ins + 1;
|
|
7887
|
+
IF jsonb_array_length(v_ex_ins) < 5 THEN
|
|
7888
|
+
v_ex_ins := v_ex_ins || jsonb_build_object('product_id', r.id, 'artikelcode', r.article_number, 'floriday_packing_id', e.fpid, 'volgnr', e.sort_order,
|
|
7889
|
+
'nieuw', concat_ws('/', e.pcs, e.ppl, e.lay) || CASE WHEN e.prim THEN ' (primair)' ELSE '' END);
|
|
7890
|
+
END IF;
|
|
7891
|
+
IF p_uitvoeren THEN
|
|
7892
|
+
INSERT INTO public.product_packings(product_id, source, floriday_packing_id, vbn_package_code, custom_package_id, fust_type_id,
|
|
7893
|
+
load_carrier, pieces_per_package, packages_per_layer, layers_per_load_carrier, is_primary, customer_organization_ids, sort_order)
|
|
7894
|
+
VALUES (r.id, 'floriday', e.fpid, e.vbn, e.cpid, e.fust, e.lc, e.pcs, e.ppl, e.lay, e.prim, e.cust, e.sort_order);
|
|
7895
|
+
END IF;
|
|
7896
|
+
ELSIF (e.pp_row->>'source', (e.pp_row->>'vbn_package_code')::int, e.pp_row->>'custom_package_id', (e.pp_row->>'fust_type_id')::uuid,
|
|
7897
|
+
e.pp_row->>'load_carrier', (e.pp_row->>'pieces_per_package')::int, (e.pp_row->>'packages_per_layer')::int,
|
|
7898
|
+
(e.pp_row->>'layers_per_load_carrier')::int, (e.pp_row->>'is_primary')::boolean,
|
|
7899
|
+
ARRAY(SELECT jsonb_array_elements_text(e.pp_row->'customer_organization_ids')), (e.pp_row->>'sort_order')::int)
|
|
7900
|
+
IS DISTINCT FROM ('floriday', e.vbn, e.cpid, e.fust, e.lc, e.pcs, e.ppl, e.lay, e.prim, e.cust, e.sort_order::int) THEN
|
|
7901
|
+
v_upd := v_upd + 1;
|
|
7902
|
+
IF jsonb_array_length(v_ex_upd) < 5 THEN
|
|
7903
|
+
v_ex_upd := v_ex_upd || jsonb_build_object('id', e.pp_id, 'product_id', r.id, 'artikelcode', r.article_number,
|
|
7904
|
+
'oud', concat_ws('/', e.pp_row->>'pieces_per_package', e.pp_row->>'packages_per_layer', e.pp_row->>'layers_per_load_carrier'),
|
|
7905
|
+
'nieuw', concat_ws('/', e.pcs, e.ppl, e.lay));
|
|
7906
|
+
END IF;
|
|
7907
|
+
IF p_uitvoeren THEN
|
|
7908
|
+
UPDATE public.product_packings SET source = 'floriday', vbn_package_code = e.vbn, custom_package_id = e.cpid,
|
|
7909
|
+
fust_type_id = e.fust, load_carrier = e.lc, pieces_per_package = e.pcs, packages_per_layer = e.ppl,
|
|
7910
|
+
layers_per_load_carrier = e.lay, is_primary = e.prim, customer_organization_ids = e.cust,
|
|
7911
|
+
sort_order = e.sort_order, updated_at = now()
|
|
7912
|
+
WHERE id = e.pp_id;
|
|
7913
|
+
END IF;
|
|
7914
|
+
END IF;
|
|
7915
|
+
END LOOP;
|
|
7916
|
+
END LOOP;
|
|
7917
|
+
|
|
7918
|
+
IF p_uitvoeren THEN
|
|
7919
|
+
v_hash_ok := v_cache_n = (SELECT count(*) FROM public.floriday_trade_items_cache)
|
|
7920
|
+
AND v_cache_h = (SELECT md5(coalesce(string_agg(t::text, '|' ORDER BY t::text), '')) FROM public.floriday_trade_items_cache t)
|
|
7921
|
+
AND v_queue_n = (SELECT count(*) FROM public.floriday_continuous_stock_queue)
|
|
7922
|
+
AND v_queue_h = (SELECT md5(coalesce(string_agg(q::text, '|' ORDER BY q::text), '')) FROM public.floriday_continuous_stock_queue q);
|
|
7923
|
+
IF NOT v_hash_ok THEN
|
|
7924
|
+
RAISE EXCEPTION 'Floriday-kopie of wachtrij is gewijzigd; alles teruggedraaid' USING ERRCODE = 'P0001';
|
|
7925
|
+
END IF;
|
|
7926
|
+
END IF;
|
|
7927
|
+
|
|
7928
|
+
v_res := jsonb_build_object(
|
|
7929
|
+
'uitgevoerd', p_uitvoeren,
|
|
7930
|
+
'artikelen_bekeken', v_prod,
|
|
7931
|
+
'toevoegen', jsonb_build_object('aantal', v_ins, 'voorbeelden', v_ex_ins),
|
|
7932
|
+
'bijwerken', jsonb_build_object('aantal', v_upd, 'voorbeelden', v_ex_upd),
|
|
7933
|
+
'artikelvelden', jsonb_build_object('aantal', v_art, 'voorbeelden', v_ex_art),
|
|
7934
|
+
'meldingen', jsonb_build_object('aantal', v_meld, 'voorbeelden', v_ex_meld),
|
|
7935
|
+
'floriday_kopie_en_wachtrij_ongewijzigd', v_hash_ok);
|
|
7936
|
+
INSERT INTO public.voorraad_correcties(correctie, uitgevoerd_door, proef, aantallen, hash_ok)
|
|
7937
|
+
VALUES ('1098', v_door, NOT p_uitvoeren, v_res - '{toevoegen,bijwerken,artikelvelden,meldingen}'::text[]
|
|
7938
|
+
|| jsonb_build_object('toevoegen', v_ins, 'bijwerken', v_upd, 'artikelvelden', v_art, 'meldingen', v_meld), v_hash_ok);
|
|
7939
|
+
RETURN v_res;
|
|
7940
|
+
END $function$
|
|
7941
|
+
;
|
|
7942
|
+
REVOKE ALL ON FUNCTION voorraad_correctie_1098(boolean) FROM PUBLIC;
|
|
7943
|
+
REVOKE ALL ON FUNCTION voorraad_correctie_1098(boolean) FROM anon;
|
|
7944
|
+
GRANT EXECUTE ON FUNCTION voorraad_correctie_1098(boolean) TO authenticated;
|
|
7945
|
+
GRANT EXECUTE ON FUNCTION voorraad_correctie_1098(boolean) TO service_role;
|
|
7946
|
+
CREATE OR REPLACE FUNCTION public.voorraad_correctie_status(p_correctie text DEFAULT '1098'::text)
|
|
7947
|
+
RETURNS jsonb
|
|
7948
|
+
LANGUAGE plpgsql
|
|
7949
|
+
STABLE SECURITY DEFINER
|
|
7950
|
+
SET search_path TO 'public'
|
|
7951
|
+
AS $function$
|
|
7952
|
+
DECLARE r record;
|
|
7953
|
+
BEGIN
|
|
7954
|
+
IF NOT (public.voorraad_is_server() OR auth.uid() IS NOT NULL) THEN
|
|
7955
|
+
RAISE EXCEPTION 'Niet ingelogd' USING ERRCODE = '42501';
|
|
7956
|
+
END IF;
|
|
7957
|
+
SELECT * INTO r FROM public.voorraad_correcties
|
|
7958
|
+
WHERE correctie = p_correctie AND NOT proef AND hash_ok IS TRUE
|
|
7959
|
+
ORDER BY uitgevoerd_op DESC LIMIT 1;
|
|
7960
|
+
IF NOT FOUND THEN RETURN jsonb_build_object('correctie', p_correctie, 'uitgevoerd', false); END IF;
|
|
7961
|
+
RETURN jsonb_build_object('correctie', p_correctie, 'uitgevoerd', true, 'laatst_op', r.uitgevoerd_op,
|
|
7962
|
+
'door', r.uitgevoerd_door, 'aantallen', r.aantallen);
|
|
7963
|
+
END $function$
|
|
7964
|
+
;
|
|
7965
|
+
REVOKE ALL ON FUNCTION voorraad_correctie_status(text) FROM PUBLIC;
|
|
7966
|
+
REVOKE ALL ON FUNCTION voorraad_correctie_status(text) FROM anon;
|
|
7967
|
+
GRANT EXECUTE ON FUNCTION voorraad_correctie_status(text) TO authenticated;
|
|
7968
|
+
GRANT EXECUTE ON FUNCTION voorraad_correctie_status(text) TO service_role;
|
|
7572
7969
|
CREATE OR REPLACE FUNCTION public.voorraad_external_fulfilled_ids(p_cf jsonb)
|
|
7573
7970
|
RETURNS text[]
|
|
7574
7971
|
LANGUAGE sql
|
|
@@ -7581,8 +7978,11 @@ AS $function$
|
|
|
7581
7978
|
$function$
|
|
7582
7979
|
;
|
|
7583
7980
|
REVOKE ALL ON FUNCTION voorraad_external_fulfilled_ids(jsonb) FROM PUBLIC;
|
|
7584
|
-
|
|
7585
|
-
|
|
7981
|
+
REVOKE ALL ON FUNCTION voorraad_external_fulfilled_ids(jsonb) FROM anon;
|
|
7982
|
+
REVOKE EXECUTE ON FUNCTION voorraad_external_fulfilled_ids(jsonb) FROM PUBLIC;
|
|
7983
|
+
GRANT EXECUTE ON FUNCTION voorraad_external_fulfilled_ids(jsonb) TO authenticated;
|
|
7984
|
+
GRANT EXECUTE ON FUNCTION voorraad_external_fulfilled_ids(jsonb) TO service_role;
|
|
7985
|
+
REVOKE EXECUTE ON FUNCTION voorraad_external_fulfilled_ids(jsonb) FROM anon;
|
|
7586
7986
|
GRANT EXECUTE ON FUNCTION voorraad_external_fulfilled_ids(jsonb) TO authenticated;
|
|
7587
7987
|
GRANT EXECUTE ON FUNCTION voorraad_external_fulfilled_ids(jsonb) TO service_role;
|
|
7588
7988
|
CREATE OR REPLACE FUNCTION public.voorraad_floriday_leads_key(p_key text)
|
|
@@ -7601,6 +8001,7 @@ AS $function$
|
|
|
7601
8001
|
$function$
|
|
7602
8002
|
;
|
|
7603
8003
|
REVOKE ALL ON FUNCTION voorraad_floriday_leads_key(text) FROM PUBLIC;
|
|
8004
|
+
REVOKE ALL ON FUNCTION voorraad_floriday_leads_key(text) FROM anon;
|
|
7604
8005
|
GRANT EXECUTE ON FUNCTION voorraad_floriday_leads_key(text) TO service_role;
|
|
7605
8006
|
CREATE OR REPLACE FUNCTION public.voorraad_hook_base_url()
|
|
7606
8007
|
RETURNS text
|
|
@@ -7610,6 +8011,7 @@ CREATE OR REPLACE FUNCTION public.voorraad_hook_base_url()
|
|
|
7610
8011
|
AS $function$
|
|
7611
8012
|
DECLARE v_target text; v_shell text; v_old text; v_probe text; v_last text; v_status int;
|
|
7612
8013
|
BEGIN
|
|
8014
|
+
PERFORM public.voorraad_vereis('server', 'voorraad_hook_base_url');
|
|
7613
8015
|
SELECT value INTO v_target FROM module_runtime_config WHERE key = 'voorraad_hook_target';
|
|
7614
8016
|
SELECT NULLIF(rtrim(value,'/'),'') INTO v_shell FROM module_runtime_config WHERE key = 'shell_base_url';
|
|
7615
8017
|
SELECT NULLIF(rtrim(value,'/'),'') INTO v_old FROM module_runtime_config WHERE key = 'voorraad_base_url';
|
|
@@ -7640,6 +8042,7 @@ BEGIN
|
|
|
7640
8042
|
END $function$
|
|
7641
8043
|
;
|
|
7642
8044
|
REVOKE ALL ON FUNCTION voorraad_hook_base_url() FROM PUBLIC;
|
|
8045
|
+
REVOKE ALL ON FUNCTION voorraad_hook_base_url() FROM anon;
|
|
7643
8046
|
GRANT EXECUTE ON FUNCTION voorraad_hook_base_url() TO service_role;
|
|
7644
8047
|
CREATE OR REPLACE FUNCTION public.voorraad_hook_on(p_name text)
|
|
7645
8048
|
RETURNS boolean
|
|
@@ -7653,6 +8056,7 @@ AS $function$
|
|
|
7653
8056
|
$function$
|
|
7654
8057
|
;
|
|
7655
8058
|
REVOKE ALL ON FUNCTION voorraad_hook_on(text) FROM PUBLIC;
|
|
8059
|
+
REVOKE ALL ON FUNCTION voorraad_hook_on(text) FROM anon;
|
|
7656
8060
|
GRANT EXECUTE ON FUNCTION voorraad_hook_on(text) TO service_role;
|
|
7657
8061
|
CREATE OR REPLACE FUNCTION public.voorraad_hook_post(p_path text, p_timeout integer DEFAULT 5000)
|
|
7658
8062
|
RETURNS void
|
|
@@ -7662,6 +8066,7 @@ CREATE OR REPLACE FUNCTION public.voorraad_hook_post(p_path text, p_timeout inte
|
|
|
7662
8066
|
AS $function$
|
|
7663
8067
|
DECLARE v_base text; v_key text;
|
|
7664
8068
|
BEGIN
|
|
8069
|
+
PERFORM public.voorraad_vereis('server', 'voorraad_hook_post');
|
|
7665
8070
|
v_base := public.voorraad_hook_base_url();
|
|
7666
8071
|
SELECT value INTO v_key FROM module_runtime_config WHERE key = 'voorraad_hook_apikey';
|
|
7667
8072
|
IF COALESCE(v_base,'') = '' OR COALESCE(v_key,'') = '' THEN
|
|
@@ -7674,6 +8079,7 @@ BEGIN
|
|
|
7674
8079
|
END $function$
|
|
7675
8080
|
;
|
|
7676
8081
|
REVOKE ALL ON FUNCTION voorraad_hook_post(text,integer) FROM PUBLIC;
|
|
8082
|
+
REVOKE ALL ON FUNCTION voorraad_hook_post(text,integer) FROM anon;
|
|
7677
8083
|
GRANT EXECUTE ON FUNCTION voorraad_hook_post(text,integer) TO service_role;
|
|
7678
8084
|
CREATE OR REPLACE FUNCTION public.voorraad_hook_switch_jobs()
|
|
7679
8085
|
RETURNS trigger
|
|
@@ -7706,7 +8112,76 @@ EXCEPTION WHEN OTHERS THEN
|
|
|
7706
8112
|
END $function$
|
|
7707
8113
|
;
|
|
7708
8114
|
REVOKE ALL ON FUNCTION voorraad_hook_switch_jobs() FROM PUBLIC;
|
|
8115
|
+
REVOKE ALL ON FUNCTION voorraad_hook_switch_jobs() FROM anon;
|
|
7709
8116
|
GRANT EXECUTE ON FUNCTION voorraad_hook_switch_jobs() TO service_role;
|
|
8117
|
+
CREATE OR REPLACE FUNCTION public.voorraad_install_check()
|
|
8118
|
+
RETURNS jsonb
|
|
8119
|
+
LANGUAGE plpgsql
|
|
8120
|
+
STABLE SECURITY DEFINER
|
|
8121
|
+
SET search_path TO 'public'
|
|
8122
|
+
AS $function$
|
|
8123
|
+
DECLARE v_f text[] := ARRAY['_floriday_queue_cleanup_batch','_migrate_rewrite_stock_key','_stock_import_caller','apply_fust_stock_mutation','apply_stock_consumption','apply_stock_reservation','autolink_product_to_floriday','backfill_open_order_reservations','calculate_floriday_desired_stock','calculate_structure_available','canonicalize_trade_item_stock_key','check_product_structure','claim_floriday_base_supply','claim_floriday_stock_queue','cleanup_floriday_stock_queue','cleanup_voorraad_module_history','complete_floriday_base_supply','complete_floriday_stock_queue','complete_floriday_stock_queue_outcome','consume_bom_for_production','consume_order_item','drain_inventory_recompute_queue','enqueue_floriday_continuous_stock','enqueue_floriday_continuous_stock_after_warehouse_preference','enqueue_structure_recompute','ensure_inventory_recompute_drain','ensure_trade_item_stock_row','ensure_trade_item_stock_row_key','fcsq_block_disabled','fcsq_fallback_supersede','fcsq_wake_base_supply','find_trade_item_key','floriday_adopt_connection','floriday_autoheal_connections','floriday_capture_stock_snapshot','floriday_cleanup_stock_queue_v2','floriday_compact_stock_snapshots','floriday_default_owner','floriday_desired_stock_regression_check','floriday_ensure_inventory_settings','floriday_erp_leading_preview','floriday_fill_publish_horizon','floriday_follow_apply','floriday_ingest_sales_orders','floriday_leading_summary','floriday_make_erp_leading','floriday_norm_offer_forms','floriday_orphan_settings_count','floriday_publish_horizon_weeks','floriday_queue_erp_guard','floriday_queue_first_positive','floriday_recompute_inventory','floriday_relink_products','floriday_requeue_dead_letters','floriday_settings_change_recompute','floriday_settings_change_recompute_stmt','floriday_stock_change_recompute','floriday_stock_queue_supersede','floriday_takeover_apply','floriday_takeover_fetch_state','floriday_takeover_store_forms','floriday_takeover_undo','fust_negative_stock_report','fust_types_duplicate_guard','get_active_floriday_context','get_group_allocation_keys','get_group_head_key','get_product_stock','get_product_structure_totals','get_product_structure_totals_batch','inventory_inline_budget_ok','merge_products','normalize_order_source','process_inventory_recompute_queue','produce_designed_product','product_active_group_id','product_id_from_ref','product_is_set','product_label','product_member_group_ids','product_own_available','product_packings_derive','product_packings_replace','product_packings_sync_from_floriday','product_primary_pieces','product_set_depth_above','product_set_depth_below','product_structure_ancestors','product_structure_max_depth','product_structure_path','product_tray_stickers_touch','product_type','promote_trade_item_key','recompute_all_reserved_stock','recompute_order_status','recompute_reserved_for_order','recompute_reserved_stock','requeue_skipped_stock_rows','reset_stalled_floriday_stock_queue','resolve_group_allocation','resolve_group_member_stock_key','resolve_product_id_for_item','resolve_stock_trade_item_key','reverse_production','run_floriday_base_supply_process','run_floriday_continuous_stock_sync','run_floriday_follow','run_floriday_stock_queue_process','run_floriday_stock_reconcile','run_logistics_tasks_dispatch','self_heal_floriday_links','set_module_runtime_config_updated_at','set_product_bom_tenant','set_product_stock','set_updated_at_order_fust_bookings','stock_import_cleanup','stock_import_create','stock_import_process_chunk','stock_import_stop','stock_import_undo_chunk','sync_order_item_fusten','sync_products_quantity_from_stock','touch_fust_types_updated_at','trade_item_drafts_readonly','trade_item_prices_touch_updated_at','trade_item_stock_duplicates','trg_cart_numbers_sync_order_status_fn','trg_cart_session_consume_fn','trg_check_product_structure','trg_floriday_cache_relink_fn','trg_floriday_trade_items_autolink_fn','trg_order_items_autolink_fn','trg_order_items_fusten','trg_order_items_reserve_fn','trg_orders_cancel_release_fn','trg_orders_consume_on_complete_fn','trg_orders_default_phase_fn','trg_orders_external_fulfilled_fn','trg_orders_recompute_reserved_fn','trg_pgi_assign_sort_order','trg_pgi_order_taken_check','trg_process_recompute_on_commit','trg_product_packings_derive_fn','trg_products_autolink_fn','trg_products_floriday_link_enqueue','trg_products_seed_stock_fn','trg_requeue_no_warehouse_cache','trg_requeue_no_warehouse_connection','trg_requeue_no_warehouse_item_pref','trg_requeue_skipped_no_price','trg_stock_structure_recompute_ins','trg_stock_structure_recompute_upd','trg_structure_change_recompute','trg_trade_item_drafts_autolink_fn','trg_trade_item_stock_auto_bom','trg_trade_item_stock_auto_bom_reverse','trg_trade_item_stock_log_change','trg_trade_item_stock_reserve_fn','trg_trade_item_stock_zero_watch','trg_trade_items_cache_autolink_fn','update_updated_at_column','voorraad_alert_floriday_not_updated','voorraad_can_write','voorraad_cleanup_old_rows','voorraad_consume_external_fulfilled','voorraad_correctie_1098','voorraad_correctie_status','voorraad_external_fulfilled_ids','voorraad_floriday_leads_key','voorraad_hook_base_url','voorraad_hook_on','voorraad_hook_post','voorraad_hook_switch_jobs','voorraad_install_check','voorraad_is_server','voorraad_mark_floriday_sold_before_switch','voorraad_production_enabled','voorraad_schema_ddl','voorraad_touch_updated_at','voorraad_vereis','voorraad_week_is_past'];
|
|
8124
|
+
v_t text[] := ARRAY['aa_fcsq_erp_leading_guard@floriday_continuous_stock_queue','aa_fis_norm_offer_forms@floriday_inventory_settings','aa_pgi_assign_sort_order@product_group_items','fcsq_block_disabled@floriday_continuous_stock_queue','fcsq_wake_base_supply_ins@floriday_continuous_stock_queue','fcsq_wake_base_supply_upd@floriday_continuous_stock_queue','fust_stock_mutations_apply@fust_stock_mutations','fust_types_duplicate_guard@fust_types','fust_types_touch@fust_types','product_packings_derive_trg@product_packings','product_packings_updated_at@product_packings','set_product_bom_tenant_trigger@product_bom_items','trade_item_prices_set_updated_at@trade_item_prices','trg_cart_numbers_sync_order_status@cart_numbers','trg_cart_session_consume@cart_control_sessions','trg_check_product_structure@product_bom_items','trg_check_product_structure@product_group_items','trg_check_product_structure@product_groups','trg_fcs_queue_updated_at@floriday_continuous_stock_queue','trg_fcsq_fallback_supersede@floriday_continuous_stock_queue','trg_fcsq_supersede@floriday_continuous_stock_queue','trg_floriday_cache_relink@floriday_trade_items_cache','trg_floriday_ensure_inventory_settings@products','trg_floriday_gate_stock_queue@floriday_continuous_stock_queue','trg_floriday_settings_change_recompute_ins@floriday_inventory_settings','trg_floriday_settings_change_recompute_upd@floriday_inventory_settings','trg_floriday_stock_change_recompute@trade_item_stock','trg_floriday_takeover_runs_updated_at@floriday_takeover_runs','trg_floriday_trade_items_autolink@floriday_trade_items_cache','trg_fust_types_requeue_blocked@fust_types','trg_module_runtime_config_updated_at@module_runtime_config','trg_order_fust_bookings_updated_at@order_fust_bookings','trg_order_items_autolink@order_items','trg_order_items_fusten_aiud@order_items','trg_order_items_reserve@order_items','trg_orders_cancel_release@orders','trg_orders_consume_on_complete@orders','trg_orders_default_phase@orders','trg_orders_external_fulfilled@orders','trg_orders_recompute_reserved@orders','trg_prevent_duplicate_product_draft@trade_item_drafts','trg_product_tray_stickers_touch@product_tray_stickers','trg_products_autolink@products','trg_products_floriday_link_enqueue@products','trg_products_seed_stock@products','trg_requeue_no_warehouse_cache@floriday_trade_items_cache','trg_requeue_no_warehouse_connection@floriday_connections','trg_requeue_no_warehouse_item_pref@trade_item_warehouse_preferences','trg_requeue_skipped_no_price@products','trg_stock_mutation_alert@stock_mutation_log','trg_stock_structure_recompute_ins@trade_item_stock','trg_stock_structure_recompute_upd@trade_item_stock','trg_structure_change_recompute@product_bom_items','trg_structure_change_recompute@product_group_items','trg_structure_change_recompute@product_groups','trg_sync_layer_stock_from_trade_stock@trade_item_stock','trg_sync_products_quantity_from_stock_del@trade_item_stock','trg_sync_products_quantity_from_stock_iu@trade_item_stock','trg_trade_item_drafts_autolink@trade_item_drafts','trg_trade_item_drafts_readonly@trade_item_drafts','trg_trade_item_stock_canonical_key@trade_item_stock','trg_trade_item_stock_publish@trade_item_stock','trg_trade_item_stock_reserve@trade_item_stock','trg_trade_item_stock_updated_at@trade_item_stock','trg_trade_item_stock_zero_watch@trade_item_stock','trg_trade_item_supply_lines_touch@trade_item_supply_lines','trg_trade_item_warehouse_preference_enqueue_stock@trade_item_warehouse_preferences','trg_trade_items_cache_autolink@floriday_trade_items_cache','trg_voorraad_buffer_state_updated_at@voorraad_buffer_state','trg_voorraad_event_log_updated_at@voorraad_logistics_event_log','update_trade_item_drafts_updated_at@trade_item_drafts','update_trade_item_warehouse_preferences_updated_at@trade_item_warehouse_preferences','update_voorraad_custom_fields_updated_at@voorraad_custom_fields','update_voorraad_publish_jobs_updated_at@voorraad_publish_jobs','update_voorraad_publish_learnings_updated_at@voorraad_publish_learnings','update_voorraad_publish_steps_updated_at@voorraad_publish_steps','voorraad_hook_switch_jobs@module_runtime_config','zz_fcsq_first_positive@floriday_continuous_stock_queue'];
|
|
8125
|
+
v_p text[] := ARRAY['Authenticated can add learnings@voorraad_publish_learnings','Authenticated can delete voorraad custom fields@voorraad_custom_fields','Authenticated can insert vbn required characteristics@floriday_vbn_required_characteristics','Authenticated can insert voorraad custom fields@voorraad_custom_fields','Authenticated can read continuous stock cache@floriday_continuous_stock_cache','Authenticated can read learnings@voorraad_publish_learnings','Authenticated can read vbn required characteristics@floriday_vbn_required_characteristics','Authenticated can read voorraad custom fields@voorraad_custom_fields','Authenticated can update learnings@voorraad_publish_learnings','Authenticated can update vbn required characteristics@floriday_vbn_required_characteristics','Authenticated can update voorraad custom fields@voorraad_custom_fields','Authenticated delete trade_item_warehouse_preferences@trade_item_warehouse_preferences','Authenticated insert trade_item_warehouse_preferences@trade_item_warehouse_preferences','Authenticated select trade_item_warehouse_preferences@trade_item_warehouse_preferences','Authenticated update trade_item_warehouse_preferences@trade_item_warehouse_preferences','Eigen momentopnamen lezen@inventory_stock_snapshots','Eigen voorraadinstellingen beheren@floriday_inventory_settings','Eigenaar leest importporties@stock_import_chunks','Eigenaar leest importregels@stock_import_rows','Fust mutations delete@fust_stock_mutations','Fust mutations insert@fust_stock_mutations','Fust mutations read@fust_stock_mutations','Fust mutations update@fust_stock_mutations','Fust types delete@fust_types','Fust types insert@fust_types','Fust types read@fust_types','Fust types update@fust_types','Ingelogde gebruikers kunnen bufferstatus lezen@voorraad_buffer_state','Ingelogde gebruikers kunnen de eventlog lezen@voorraad_logistics_event_log','Ingelogde gebruikers kunnen fustboekingen lezen@order_fust_bookings','Ingelogde gebruikers lezen drempels@inventory_recompute_limits','Ingelogde gebruikers lezen opruimlogboek@structure_cleanup_log','Ingelogde gebruikers lezen opruimruns@floriday_queue_cleanup_runs','Ingelogden beheren traystickers@product_tray_stickers','Ingelogden lezen herberekenwachtrij@inventory_recompute_queue','Ingelogden lezen voorraadmeldingen@stock_integrity_alerts','Ingelogden markeren voorraadmeldingen als gezien@stock_integrity_alerts','Own queue rows select@floriday_continuous_stock_queue','Owner delete trade_item_drafts@trade_item_drafts','Owner insert trade_item_drafts@trade_item_drafts','Owner select trade_item_drafts@trade_item_drafts','Owner update trade_item_drafts@trade_item_drafts','Signed-in users read reconcile runs@floriday_reconcile_runs','Stock delete@trade_item_stock','Stock insert@trade_item_stock','Stock read@trade_item_stock','Stock update@trade_item_stock','Synchronisatieposities lezen@floriday_sync_cursors','Users can insert own publish attempts@voorraad_publish_attempts','Users can read own publish attempts@voorraad_publish_attempts','Users can read own stock mutations@stock_mutation_log','Users manage own import runs@stock_import_runs','Users manage own supply lines@trade_item_supply_lines','Users manage own trade item prices@trade_item_prices','Users manage their own publish jobs@voorraad_publish_jobs','Users manage their own publish steps@voorraad_publish_steps','Verwerkte orders lezen@floriday_sales_order_ingest','Voorraadschrijvers lezen overnameregels@floriday_takeover_items','Voorraadschrijvers lezen overnames@floriday_takeover_runs','authenticated can insert merge log@product_merge_log','authenticated can read merge log@product_merge_log','service role only@voorraad_media_upload_failures','product_packings_read@product_packings','product_packings_write@product_packings'];
|
|
8126
|
+
v_open text[] := ARRAY['voorraad_is_server','voorraad_vereis'];
|
|
8127
|
+
v_func jsonb; v_trig jsonb; v_pol jsonb;
|
|
8128
|
+
BEGIN
|
|
8129
|
+
IF NOT public.voorraad_is_server() THEN
|
|
8130
|
+
RAISE EXCEPTION 'Alleen de server mag de installatiecontrole uitvoeren' USING ERRCODE = '42501';
|
|
8131
|
+
END IF;
|
|
8132
|
+
SELECT jsonb_agg(x ORDER BY x->>'functie', x->>'argumenten') INTO v_func FROM (
|
|
8133
|
+
SELECT jsonb_build_object('functie', n.f, 'argumenten', pg_get_function_identity_arguments(p.oid), 'aanwezig', p.oid IS NOT NULL,
|
|
8134
|
+
'soort', CASE WHEN p.oid IS NULL THEN NULL WHEN pg_get_function_result(p.oid) = 'trigger' THEN 'trigger'
|
|
8135
|
+
WHEN p.provolatile = 'i' THEN 'rekenhulp' WHEN l.lanname = 'sql' THEN 'sql' ELSE 'plpgsql' END,
|
|
8136
|
+
'interne_controle', CASE WHEN p.oid IS NULL THEN NULL
|
|
8137
|
+
WHEN n.f = ANY(v_open) THEN false
|
|
8138
|
+
ELSE p.prosrc ~* 'voorraad_vereis\(|voorraad_is_server\(|42501|auth\.uid\(\)|auth\.role\(\)|voorraad_can_write\(|_stock_import_caller\(' END,
|
|
8139
|
+
'controle_niveau', substring(p.prosrc from 'voorraad_vereis\(''([a-z]+)'''),
|
|
8140
|
+
'anon_uitvoerrecht', CASE WHEN p.oid IS NULL THEN NULL ELSE has_function_privilege('anon', p.oid, 'EXECUTE') END,
|
|
8141
|
+
'authenticated_uitvoerrecht', CASE WHEN p.oid IS NULL THEN NULL ELSE has_function_privilege('authenticated', p.oid, 'EXECUTE') END) x
|
|
8142
|
+
FROM unnest(v_f) n(f)
|
|
8143
|
+
LEFT JOIN pg_proc p ON p.proname = n.f AND p.pronamespace = 'public'::regnamespace
|
|
8144
|
+
LEFT JOIN pg_language l ON l.oid = p.prolang) s;
|
|
8145
|
+
SELECT jsonb_agg(jsonb_build_object('trigger', split_part(t, '@', 1), 'tabel', split_part(t, '@', 2),
|
|
8146
|
+
'aanwezig', EXISTS (SELECT 1 FROM pg_trigger g WHERE NOT g.tgisinternal AND g.tgname = split_part(t, '@', 1)
|
|
8147
|
+
AND g.tgrelid = to_regclass('public.' || split_part(t, '@', 2)))) ORDER BY t) INTO v_trig FROM unnest(v_t) t;
|
|
8148
|
+
SELECT jsonb_agg(jsonb_build_object('policy', split_part(t, '@', 1), 'tabel', split_part(t, '@', 2),
|
|
8149
|
+
'aanwezig', EXISTS (SELECT 1 FROM pg_policies x WHERE x.schemaname = 'public' AND x.policyname = split_part(t, '@', 1)
|
|
8150
|
+
AND x.tablename = split_part(t, '@', 2))) ORDER BY t) INTO v_pol FROM unnest(v_p) t;
|
|
8151
|
+
RETURN jsonb_build_object(
|
|
8152
|
+
'samenvatting', jsonb_build_object(
|
|
8153
|
+
'functies', jsonb_array_length(v_func),
|
|
8154
|
+
'functies_ontbrekend', (SELECT count(*) FROM jsonb_array_elements(v_func) e WHERE NOT (e->>'aanwezig')::boolean),
|
|
8155
|
+
'functies_zonder_controle_plpgsql', (SELECT count(*) FROM jsonb_array_elements(v_func) e WHERE e->>'soort' = 'plpgsql' AND NOT COALESCE((e->>'interne_controle')::boolean, false)),
|
|
8156
|
+
'triggers_ontbrekend', (SELECT count(*) FROM jsonb_array_elements(v_trig) e WHERE NOT (e->>'aanwezig')::boolean),
|
|
8157
|
+
'policies_ontbrekend', (SELECT count(*) FROM jsonb_array_elements(v_pol) e WHERE NOT (e->>'aanwezig')::boolean),
|
|
8158
|
+
'bewust_open', 'geen pickscherm/scanner-functies zonder inlog in Voorraad'),
|
|
8159
|
+
'correctie_1098', public.voorraad_correctie_status('1098'),
|
|
8160
|
+
'functies', v_func, 'triggers', v_trig, 'policies', v_pol);
|
|
8161
|
+
END $function$
|
|
8162
|
+
;
|
|
8163
|
+
REVOKE ALL ON FUNCTION voorraad_install_check() FROM PUBLIC;
|
|
8164
|
+
REVOKE ALL ON FUNCTION voorraad_install_check() FROM anon;
|
|
8165
|
+
GRANT EXECUTE ON FUNCTION voorraad_install_check() TO authenticated;
|
|
8166
|
+
GRANT EXECUTE ON FUNCTION voorraad_install_check() TO service_role;
|
|
8167
|
+
CREATE OR REPLACE FUNCTION public.voorraad_is_server()
|
|
8168
|
+
RETURNS boolean
|
|
8169
|
+
LANGUAGE sql
|
|
8170
|
+
STABLE
|
|
8171
|
+
SET search_path TO 'public'
|
|
8172
|
+
AS $function$
|
|
8173
|
+
SELECT COALESCE(NULLIF(current_setting('request.jwt.claims', true), '')::jsonb ->> 'role', '') = 'service_role'
|
|
8174
|
+
OR session_user::text <> 'authenticator'
|
|
8175
|
+
$function$
|
|
8176
|
+
;
|
|
8177
|
+
REVOKE ALL ON FUNCTION voorraad_is_server() FROM PUBLIC;
|
|
8178
|
+
REVOKE ALL ON FUNCTION voorraad_is_server() FROM anon;
|
|
8179
|
+
REVOKE EXECUTE ON FUNCTION voorraad_is_server() FROM PUBLIC;
|
|
8180
|
+
GRANT EXECUTE ON FUNCTION voorraad_is_server() TO authenticated;
|
|
8181
|
+
GRANT EXECUTE ON FUNCTION voorraad_is_server() TO service_role;
|
|
8182
|
+
GRANT EXECUTE ON FUNCTION voorraad_is_server() TO anon;
|
|
8183
|
+
GRANT EXECUTE ON FUNCTION voorraad_is_server() TO authenticated;
|
|
8184
|
+
GRANT EXECUTE ON FUNCTION voorraad_is_server() TO service_role;
|
|
7710
8185
|
CREATE OR REPLACE FUNCTION public.voorraad_mark_floriday_sold_before_switch(p_product_id uuid)
|
|
7711
8186
|
RETURNS integer
|
|
7712
8187
|
LANGUAGE plpgsql
|
|
@@ -7715,6 +8190,7 @@ CREATE OR REPLACE FUNCTION public.voorraad_mark_floriday_sold_before_switch(p_pr
|
|
|
7715
8190
|
AS $function$
|
|
7716
8191
|
DECLARE r record; n int := 0; v_key text;
|
|
7717
8192
|
BEGIN
|
|
8193
|
+
PERFORM public.voorraad_vereis('ingelogd', 'voorraad_mark_floriday_sold_before_switch');
|
|
7718
8194
|
SELECT COALESCE(NULLIF(btrim(p.floriday_trade_item_id),''), p.trade_item_key, 'product:'||p.id::text) INTO v_key
|
|
7719
8195
|
FROM public.products p WHERE p.id = p_product_id;
|
|
7720
8196
|
FOR r IN
|
|
@@ -7735,6 +8211,7 @@ BEGIN
|
|
|
7735
8211
|
END $function$
|
|
7736
8212
|
;
|
|
7737
8213
|
REVOKE ALL ON FUNCTION voorraad_mark_floriday_sold_before_switch(uuid) FROM PUBLIC;
|
|
8214
|
+
REVOKE ALL ON FUNCTION voorraad_mark_floriday_sold_before_switch(uuid) FROM anon;
|
|
7738
8215
|
GRANT EXECUTE ON FUNCTION voorraad_mark_floriday_sold_before_switch(uuid) TO service_role;
|
|
7739
8216
|
CREATE OR REPLACE FUNCTION public.voorraad_production_enabled()
|
|
7740
8217
|
RETURNS boolean
|
|
@@ -7746,8 +8223,11 @@ AS $function$
|
|
|
7746
8223
|
$function$
|
|
7747
8224
|
;
|
|
7748
8225
|
REVOKE ALL ON FUNCTION voorraad_production_enabled() FROM PUBLIC;
|
|
7749
|
-
|
|
7750
|
-
|
|
8226
|
+
REVOKE ALL ON FUNCTION voorraad_production_enabled() FROM anon;
|
|
8227
|
+
REVOKE EXECUTE ON FUNCTION voorraad_production_enabled() FROM PUBLIC;
|
|
8228
|
+
GRANT EXECUTE ON FUNCTION voorraad_production_enabled() TO authenticated;
|
|
8229
|
+
GRANT EXECUTE ON FUNCTION voorraad_production_enabled() TO service_role;
|
|
8230
|
+
REVOKE EXECUTE ON FUNCTION voorraad_production_enabled() FROM anon;
|
|
7751
8231
|
GRANT EXECUTE ON FUNCTION voorraad_production_enabled() TO authenticated;
|
|
7752
8232
|
GRANT EXECUTE ON FUNCTION voorraad_production_enabled() TO service_role;
|
|
7753
8233
|
CREATE OR REPLACE FUNCTION public.voorraad_schema_ddl(p_tables text[], p_functions text[])
|
|
@@ -7758,6 +8238,7 @@ CREATE OR REPLACE FUNCTION public.voorraad_schema_ddl(p_tables text[], p_functio
|
|
|
7758
8238
|
AS $function$
|
|
7759
8239
|
DECLARE o text := ''; r record; q text; g text;
|
|
7760
8240
|
BEGIN
|
|
8241
|
+
PERFORM public.voorraad_vereis('server', 'voorraad_schema_ddl');
|
|
7761
8242
|
-- reeksen
|
|
7762
8243
|
FOR r IN SELECT DISTINCT substring(pg_get_expr(d.adbin, d.adrelid) from 'nextval\(''(?:public\.)?([^'']+)''') AS s
|
|
7763
8244
|
FROM pg_attrdef d JOIN pg_class c ON c.oid = d.adrelid JOIN pg_namespace n ON n.oid = c.relnamespace
|
|
@@ -7850,6 +8331,7 @@ BEGIN
|
|
|
7850
8331
|
END $function$
|
|
7851
8332
|
;
|
|
7852
8333
|
REVOKE ALL ON FUNCTION voorraad_schema_ddl(text[],text[]) FROM PUBLIC;
|
|
8334
|
+
REVOKE ALL ON FUNCTION voorraad_schema_ddl(text[],text[]) FROM anon;
|
|
7853
8335
|
GRANT EXECUTE ON FUNCTION voorraad_schema_ddl(text[],text[]) TO service_role;
|
|
7854
8336
|
CREATE OR REPLACE FUNCTION public.voorraad_touch_updated_at()
|
|
7855
8337
|
RETURNS trigger
|
|
@@ -7863,10 +8345,39 @@ END;
|
|
|
7863
8345
|
$function$
|
|
7864
8346
|
;
|
|
7865
8347
|
REVOKE ALL ON FUNCTION voorraad_touch_updated_at() FROM PUBLIC;
|
|
7866
|
-
|
|
7867
|
-
|
|
8348
|
+
REVOKE ALL ON FUNCTION voorraad_touch_updated_at() FROM anon;
|
|
8349
|
+
REVOKE EXECUTE ON FUNCTION voorraad_touch_updated_at() FROM PUBLIC;
|
|
8350
|
+
GRANT EXECUTE ON FUNCTION voorraad_touch_updated_at() TO authenticated;
|
|
8351
|
+
GRANT EXECUTE ON FUNCTION voorraad_touch_updated_at() TO service_role;
|
|
8352
|
+
REVOKE EXECUTE ON FUNCTION voorraad_touch_updated_at() FROM anon;
|
|
7868
8353
|
GRANT EXECUTE ON FUNCTION voorraad_touch_updated_at() TO authenticated;
|
|
7869
8354
|
GRANT EXECUTE ON FUNCTION voorraad_touch_updated_at() TO service_role;
|
|
8355
|
+
CREATE OR REPLACE FUNCTION public.voorraad_vereis(p_niveau text, p_functie text)
|
|
8356
|
+
RETURNS void
|
|
8357
|
+
LANGUAGE plpgsql
|
|
8358
|
+
STABLE
|
|
8359
|
+
SET search_path TO 'public'
|
|
8360
|
+
AS $function$
|
|
8361
|
+
BEGIN
|
|
8362
|
+
-- Server (service_role of directe databaseverbinding) mag altijd.
|
|
8363
|
+
IF public.voorraad_is_server() THEN RETURN; END IF;
|
|
8364
|
+
-- Keten: binnen een trigger, of aangeroepen door een andere functie (de bovenste aanroep noemt deze functie niet).
|
|
8365
|
+
IF pg_trigger_depth() > 0 THEN RETURN; END IF;
|
|
8366
|
+
IF COALESCE(current_query(), '') !~* ('\m' || p_functie || '\M') THEN RETURN; END IF;
|
|
8367
|
+
IF p_niveau = 'ingelogd' AND auth.uid() IS NOT NULL THEN RETURN; END IF;
|
|
8368
|
+
RAISE EXCEPTION 'Geen toegang tot %: %', p_functie,
|
|
8369
|
+
CASE WHEN p_niveau = 'server' THEN 'alleen de server mag deze functie aanroepen' ELSE 'log eerst in' END
|
|
8370
|
+
USING ERRCODE = '42501';
|
|
8371
|
+
END $function$
|
|
8372
|
+
;
|
|
8373
|
+
REVOKE ALL ON FUNCTION voorraad_vereis(text,text) FROM PUBLIC;
|
|
8374
|
+
REVOKE ALL ON FUNCTION voorraad_vereis(text,text) FROM anon;
|
|
8375
|
+
REVOKE EXECUTE ON FUNCTION voorraad_vereis(text,text) FROM PUBLIC;
|
|
8376
|
+
GRANT EXECUTE ON FUNCTION voorraad_vereis(text,text) TO authenticated;
|
|
8377
|
+
GRANT EXECUTE ON FUNCTION voorraad_vereis(text,text) TO service_role;
|
|
8378
|
+
GRANT EXECUTE ON FUNCTION voorraad_vereis(text,text) TO anon;
|
|
8379
|
+
GRANT EXECUTE ON FUNCTION voorraad_vereis(text,text) TO authenticated;
|
|
8380
|
+
GRANT EXECUTE ON FUNCTION voorraad_vereis(text,text) TO service_role;
|
|
7870
8381
|
CREATE OR REPLACE FUNCTION public.voorraad_week_is_past(p_year integer, p_week integer)
|
|
7871
8382
|
RETURNS boolean
|
|
7872
8383
|
LANGUAGE sql
|
|
@@ -7880,6 +8391,7 @@ AS $function$
|
|
|
7880
8391
|
$function$
|
|
7881
8392
|
;
|
|
7882
8393
|
REVOKE ALL ON FUNCTION voorraad_week_is_past(integer,integer) FROM PUBLIC;
|
|
8394
|
+
REVOKE ALL ON FUNCTION voorraad_week_is_past(integer,integer) FROM anon;
|
|
7883
8395
|
GRANT EXECUTE ON FUNCTION voorraad_week_is_past(integer,integer) TO authenticated;
|
|
7884
8396
|
GRANT EXECUTE ON FUNCTION voorraad_week_is_past(integer,integer) TO service_role;
|
|
7885
8397
|
|
|
@@ -7915,6 +8427,7 @@ DO $c$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'trade_i
|
|
|
7915
8427
|
DO $c$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'trade_item_supply_lines_pkey' AND conrelid = 'public.trade_item_supply_lines'::regclass) THEN ALTER TABLE public.trade_item_supply_lines ADD CONSTRAINT trade_item_supply_lines_pkey PRIMARY KEY (id); END IF; END $c$;
|
|
7916
8428
|
DO $c$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'trade_item_warehouse_preferences_pkey' AND conrelid = 'public.trade_item_warehouse_preferences'::regclass) THEN ALTER TABLE public.trade_item_warehouse_preferences ADD CONSTRAINT trade_item_warehouse_preferences_pkey PRIMARY KEY (id); END IF; END $c$;
|
|
7917
8429
|
DO $c$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'voorraad_buffer_state_pkey' AND conrelid = 'public.voorraad_buffer_state'::regclass) THEN ALTER TABLE public.voorraad_buffer_state ADD CONSTRAINT voorraad_buffer_state_pkey PRIMARY KEY (buffer_id); END IF; END $c$;
|
|
8430
|
+
DO $c$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'voorraad_correcties_pkey' AND conrelid = 'public.voorraad_correcties'::regclass) THEN ALTER TABLE public.voorraad_correcties ADD CONSTRAINT voorraad_correcties_pkey PRIMARY KEY (id); END IF; END $c$;
|
|
7918
8431
|
DO $c$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'voorraad_custom_fields_pkey' AND conrelid = 'public.voorraad_custom_fields'::regclass) THEN ALTER TABLE public.voorraad_custom_fields ADD CONSTRAINT voorraad_custom_fields_pkey PRIMARY KEY (id); END IF; END $c$;
|
|
7919
8432
|
DO $c$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'voorraad_logistics_event_log_pkey' AND conrelid = 'public.voorraad_logistics_event_log'::regclass) THEN ALTER TABLE public.voorraad_logistics_event_log ADD CONSTRAINT voorraad_logistics_event_log_pkey PRIMARY KEY (event_id); END IF; END $c$;
|
|
7920
8433
|
DO $c$ BEGIN IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'voorraad_media_upload_failures_pkey' AND conrelid = 'public.voorraad_media_upload_failures'::regclass) THEN ALTER TABLE public.voorraad_media_upload_failures ADD CONSTRAINT voorraad_media_upload_failures_pkey PRIMARY KEY (id); END IF; END $c$;
|
|
@@ -8035,155 +8548,157 @@ CREATE UNIQUE INDEX IF NOT EXISTS ux_stock_log_consumption_done ON public.stock_
|
|
|
8035
8548
|
|
|
8036
8549
|
-- toegang
|
|
8037
8550
|
ALTER TABLE public.floriday_continuous_stock_cache ENABLE ROW LEVEL SECURITY;
|
|
8038
|
-
|
|
8551
|
+
REVOKE ALL ON public.floriday_continuous_stock_cache FROM anon;
|
|
8039
8552
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_continuous_stock_cache TO authenticated;
|
|
8040
8553
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_continuous_stock_cache TO service_role;
|
|
8041
8554
|
ALTER TABLE public.floriday_continuous_stock_queue ENABLE ROW LEVEL SECURITY;
|
|
8042
|
-
|
|
8555
|
+
REVOKE ALL ON public.floriday_continuous_stock_queue FROM anon;
|
|
8043
8556
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_continuous_stock_queue TO authenticated;
|
|
8044
8557
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_continuous_stock_queue TO service_role;
|
|
8045
8558
|
ALTER TABLE public.floriday_inventory_settings ENABLE ROW LEVEL SECURITY;
|
|
8046
|
-
|
|
8559
|
+
REVOKE ALL ON public.floriday_inventory_settings FROM anon;
|
|
8047
8560
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_inventory_settings TO authenticated;
|
|
8048
8561
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_inventory_settings TO service_role;
|
|
8049
8562
|
ALTER TABLE public.floriday_queue_cleanup_runs ENABLE ROW LEVEL SECURITY;
|
|
8050
|
-
|
|
8563
|
+
REVOKE ALL ON public.floriday_queue_cleanup_runs FROM anon;
|
|
8051
8564
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_queue_cleanup_runs TO authenticated;
|
|
8052
8565
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_queue_cleanup_runs TO service_role;
|
|
8053
8566
|
ALTER TABLE public.floriday_reconcile_runs ENABLE ROW LEVEL SECURITY;
|
|
8054
|
-
|
|
8567
|
+
REVOKE ALL ON public.floriday_reconcile_runs FROM anon;
|
|
8055
8568
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_reconcile_runs TO authenticated;
|
|
8056
8569
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_reconcile_runs TO service_role;
|
|
8057
8570
|
ALTER TABLE public.floriday_sales_order_ingest ENABLE ROW LEVEL SECURITY;
|
|
8058
|
-
|
|
8571
|
+
REVOKE ALL ON public.floriday_sales_order_ingest FROM anon;
|
|
8059
8572
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_sales_order_ingest TO authenticated;
|
|
8060
8573
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_sales_order_ingest TO service_role;
|
|
8061
8574
|
ALTER TABLE public.floriday_sync_cursors ENABLE ROW LEVEL SECURITY;
|
|
8062
|
-
|
|
8575
|
+
REVOKE ALL ON public.floriday_sync_cursors FROM anon;
|
|
8063
8576
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_sync_cursors TO authenticated;
|
|
8064
8577
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_sync_cursors TO service_role;
|
|
8065
8578
|
ALTER TABLE public.floriday_takeover_items ENABLE ROW LEVEL SECURITY;
|
|
8066
|
-
|
|
8579
|
+
REVOKE ALL ON public.floriday_takeover_items FROM anon;
|
|
8067
8580
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_takeover_items TO authenticated;
|
|
8068
8581
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_takeover_items TO service_role;
|
|
8069
8582
|
ALTER TABLE public.floriday_takeover_runs ENABLE ROW LEVEL SECURITY;
|
|
8070
|
-
|
|
8583
|
+
REVOKE ALL ON public.floriday_takeover_runs FROM anon;
|
|
8071
8584
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_takeover_runs TO authenticated;
|
|
8072
8585
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_takeover_runs TO service_role;
|
|
8073
8586
|
ALTER TABLE public.floriday_vbn_required_characteristics ENABLE ROW LEVEL SECURITY;
|
|
8074
|
-
|
|
8587
|
+
REVOKE ALL ON public.floriday_vbn_required_characteristics FROM anon;
|
|
8075
8588
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_vbn_required_characteristics TO authenticated;
|
|
8076
8589
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.floriday_vbn_required_characteristics TO service_role;
|
|
8077
8590
|
ALTER TABLE public.fust_stock_mutations ENABLE ROW LEVEL SECURITY;
|
|
8078
|
-
|
|
8591
|
+
REVOKE ALL ON public.fust_stock_mutations FROM anon;
|
|
8079
8592
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.fust_stock_mutations TO authenticated;
|
|
8080
8593
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.fust_stock_mutations TO service_role;
|
|
8081
8594
|
ALTER TABLE public.fust_types ENABLE ROW LEVEL SECURITY;
|
|
8082
|
-
|
|
8595
|
+
REVOKE ALL ON public.fust_types FROM anon;
|
|
8083
8596
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.fust_types TO authenticated;
|
|
8084
8597
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.fust_types TO service_role;
|
|
8085
8598
|
ALTER TABLE public.inventory_recompute_limits ENABLE ROW LEVEL SECURITY;
|
|
8086
|
-
|
|
8599
|
+
REVOKE ALL ON public.inventory_recompute_limits FROM anon;
|
|
8087
8600
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.inventory_recompute_limits TO authenticated;
|
|
8088
8601
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.inventory_recompute_limits TO service_role;
|
|
8089
8602
|
ALTER TABLE public.inventory_recompute_queue ENABLE ROW LEVEL SECURITY;
|
|
8090
|
-
|
|
8603
|
+
REVOKE ALL ON public.inventory_recompute_queue FROM anon;
|
|
8091
8604
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.inventory_recompute_queue TO authenticated;
|
|
8092
8605
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.inventory_recompute_queue TO service_role;
|
|
8093
8606
|
ALTER TABLE public.inventory_stock_snapshots ENABLE ROW LEVEL SECURITY;
|
|
8094
|
-
|
|
8607
|
+
REVOKE ALL ON public.inventory_stock_snapshots FROM anon;
|
|
8095
8608
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.inventory_stock_snapshots TO authenticated;
|
|
8096
8609
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.inventory_stock_snapshots TO service_role;
|
|
8097
8610
|
ALTER TABLE public.order_fust_bookings ENABLE ROW LEVEL SECURITY;
|
|
8098
|
-
|
|
8611
|
+
REVOKE ALL ON public.order_fust_bookings FROM anon;
|
|
8099
8612
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.order_fust_bookings TO authenticated;
|
|
8100
8613
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.order_fust_bookings TO service_role;
|
|
8101
8614
|
ALTER TABLE public.product_merge_log ENABLE ROW LEVEL SECURITY;
|
|
8102
|
-
|
|
8615
|
+
REVOKE ALL ON public.product_merge_log FROM anon;
|
|
8103
8616
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.product_merge_log TO authenticated;
|
|
8104
8617
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.product_merge_log TO service_role;
|
|
8105
8618
|
ALTER TABLE public.product_packings ENABLE ROW LEVEL SECURITY;
|
|
8106
|
-
|
|
8619
|
+
REVOKE ALL ON public.product_packings FROM anon;
|
|
8107
8620
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.product_packings TO authenticated;
|
|
8108
8621
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.product_packings TO service_role;
|
|
8109
8622
|
ALTER TABLE public.product_tray_stickers ENABLE ROW LEVEL SECURITY;
|
|
8110
|
-
|
|
8623
|
+
REVOKE ALL ON public.product_tray_stickers FROM anon;
|
|
8111
8624
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.product_tray_stickers TO authenticated;
|
|
8112
8625
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.product_tray_stickers TO service_role;
|
|
8113
8626
|
ALTER TABLE public.stock_import_chunks ENABLE ROW LEVEL SECURITY;
|
|
8114
|
-
|
|
8627
|
+
REVOKE ALL ON public.stock_import_chunks FROM anon;
|
|
8115
8628
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_import_chunks TO authenticated;
|
|
8116
8629
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_import_chunks TO service_role;
|
|
8117
8630
|
ALTER TABLE public.stock_import_rows ENABLE ROW LEVEL SECURITY;
|
|
8118
|
-
|
|
8631
|
+
REVOKE ALL ON public.stock_import_rows FROM anon;
|
|
8119
8632
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_import_rows TO authenticated;
|
|
8120
8633
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_import_rows TO service_role;
|
|
8121
8634
|
ALTER TABLE public.stock_import_runs ENABLE ROW LEVEL SECURITY;
|
|
8122
|
-
|
|
8635
|
+
REVOKE ALL ON public.stock_import_runs FROM anon;
|
|
8123
8636
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_import_runs TO authenticated;
|
|
8124
8637
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_import_runs TO service_role;
|
|
8125
8638
|
ALTER TABLE public.stock_integrity_alerts ENABLE ROW LEVEL SECURITY;
|
|
8126
|
-
|
|
8639
|
+
REVOKE ALL ON public.stock_integrity_alerts FROM anon;
|
|
8127
8640
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_integrity_alerts TO authenticated;
|
|
8128
8641
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_integrity_alerts TO service_role;
|
|
8129
8642
|
ALTER TABLE public.stock_mutation_log ENABLE ROW LEVEL SECURITY;
|
|
8130
|
-
|
|
8643
|
+
REVOKE ALL ON public.stock_mutation_log FROM anon;
|
|
8131
8644
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_mutation_log TO authenticated;
|
|
8132
8645
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.stock_mutation_log TO service_role;
|
|
8133
8646
|
ALTER TABLE public.structure_cleanup_log ENABLE ROW LEVEL SECURITY;
|
|
8134
|
-
|
|
8647
|
+
REVOKE ALL ON public.structure_cleanup_log FROM anon;
|
|
8135
8648
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.structure_cleanup_log TO authenticated;
|
|
8136
8649
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.structure_cleanup_log TO service_role;
|
|
8137
8650
|
ALTER TABLE public.trade_item_drafts ENABLE ROW LEVEL SECURITY;
|
|
8138
|
-
|
|
8651
|
+
REVOKE ALL ON public.trade_item_drafts FROM anon;
|
|
8139
8652
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_drafts TO authenticated;
|
|
8140
8653
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_drafts TO service_role;
|
|
8141
8654
|
ALTER TABLE public.trade_item_prices ENABLE ROW LEVEL SECURITY;
|
|
8142
|
-
|
|
8655
|
+
REVOKE ALL ON public.trade_item_prices FROM anon;
|
|
8143
8656
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_prices TO authenticated;
|
|
8144
8657
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_prices TO service_role;
|
|
8145
8658
|
ALTER TABLE public.trade_item_stock ENABLE ROW LEVEL SECURITY;
|
|
8146
|
-
|
|
8659
|
+
REVOKE ALL ON public.trade_item_stock FROM anon;
|
|
8147
8660
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_stock TO authenticated;
|
|
8148
8661
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_stock TO service_role;
|
|
8149
8662
|
ALTER TABLE public.trade_item_supply_lines ENABLE ROW LEVEL SECURITY;
|
|
8150
|
-
|
|
8663
|
+
REVOKE ALL ON public.trade_item_supply_lines FROM anon;
|
|
8151
8664
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_supply_lines TO authenticated;
|
|
8152
8665
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_supply_lines TO service_role;
|
|
8153
8666
|
ALTER TABLE public.trade_item_warehouse_preferences ENABLE ROW LEVEL SECURITY;
|
|
8154
|
-
|
|
8667
|
+
REVOKE ALL ON public.trade_item_warehouse_preferences FROM anon;
|
|
8155
8668
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_warehouse_preferences TO authenticated;
|
|
8156
8669
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.trade_item_warehouse_preferences TO service_role;
|
|
8157
8670
|
ALTER TABLE public.voorraad_buffer_state ENABLE ROW LEVEL SECURITY;
|
|
8158
|
-
|
|
8671
|
+
REVOKE ALL ON public.voorraad_buffer_state FROM anon;
|
|
8159
8672
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_buffer_state TO authenticated;
|
|
8160
8673
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_buffer_state TO service_role;
|
|
8674
|
+
ALTER TABLE public.voorraad_correcties ENABLE ROW LEVEL SECURITY;
|
|
8675
|
+
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_correcties TO service_role;
|
|
8161
8676
|
ALTER TABLE public.voorraad_custom_fields ENABLE ROW LEVEL SECURITY;
|
|
8162
|
-
|
|
8677
|
+
REVOKE ALL ON public.voorraad_custom_fields FROM anon;
|
|
8163
8678
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_custom_fields TO authenticated;
|
|
8164
8679
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_custom_fields TO service_role;
|
|
8165
8680
|
ALTER TABLE public.voorraad_logistics_event_log ENABLE ROW LEVEL SECURITY;
|
|
8166
|
-
|
|
8681
|
+
REVOKE ALL ON public.voorraad_logistics_event_log FROM anon;
|
|
8167
8682
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_logistics_event_log TO authenticated;
|
|
8168
8683
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_logistics_event_log TO service_role;
|
|
8169
8684
|
ALTER TABLE public.voorraad_media_upload_failures ENABLE ROW LEVEL SECURITY;
|
|
8170
|
-
|
|
8685
|
+
REVOKE ALL ON public.voorraad_media_upload_failures FROM anon;
|
|
8171
8686
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_media_upload_failures TO authenticated;
|
|
8172
8687
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_media_upload_failures TO service_role;
|
|
8173
8688
|
ALTER TABLE public.voorraad_publish_attempts ENABLE ROW LEVEL SECURITY;
|
|
8174
|
-
|
|
8689
|
+
REVOKE ALL ON public.voorraad_publish_attempts FROM anon;
|
|
8175
8690
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_publish_attempts TO authenticated;
|
|
8176
8691
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_publish_attempts TO service_role;
|
|
8177
8692
|
ALTER TABLE public.voorraad_publish_jobs ENABLE ROW LEVEL SECURITY;
|
|
8178
|
-
|
|
8693
|
+
REVOKE ALL ON public.voorraad_publish_jobs FROM anon;
|
|
8179
8694
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_publish_jobs TO authenticated;
|
|
8180
8695
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_publish_jobs TO service_role;
|
|
8181
8696
|
ALTER TABLE public.voorraad_publish_learnings ENABLE ROW LEVEL SECURITY;
|
|
8182
|
-
|
|
8697
|
+
REVOKE ALL ON public.voorraad_publish_learnings FROM anon;
|
|
8183
8698
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_publish_learnings TO authenticated;
|
|
8184
8699
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_publish_learnings TO service_role;
|
|
8185
8700
|
ALTER TABLE public.voorraad_publish_steps ENABLE ROW LEVEL SECURITY;
|
|
8186
|
-
|
|
8701
|
+
REVOKE ALL ON public.voorraad_publish_steps FROM anon;
|
|
8187
8702
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_publish_steps TO authenticated;
|
|
8188
8703
|
GRANT DELETE, INSERT, REFERENCES, SELECT, TRIGGER, TRUNCATE, UPDATE ON public.voorraad_publish_steps TO service_role;
|
|
8189
8704
|
DROP POLICY IF EXISTS "Authenticated can read continuous stock cache" ON public.floriday_continuous_stock_cache;
|