x
1
-- File: trig_i_u_syst_settings.eex.sql
2
-- Location: musebms/database/components/system/mscmp_syst_settings/ms_syst/api_views/syst_settings/trig_i_u_syst_settings.eex.sql
3
-- Project: Muse Systems Business Management System
4
--
5
-- Copyright © Lima Buttgereit Holdings LLC d/b/a Muse Systems
6
-- This file may include content copyrighted and licensed from third parties.
7
--
8
-- See the LICENSE file in the project root for license terms and conditions.
9
-- See the NOTICE file in the project root for copyright ownership information.
10
--
11
-- muse.information@musesystems.com :: https://muse.systems
12
13
BEGIN
14
15
IF old.syst_defined AND new.internal_name != old.internal_name THEN
16
RAISE EXCEPTION
17
USING
18
MESSAGE = 'The requested data update included changes to fields disallowed ' ||
19
'by the business rules of the API View.',
20
DETAIL = ms_syst_priv.get_exception_details(
21
p_proc_schema => 'ms_syst'
22
,p_proc_name => 'trig_i_u_syst_settings'
23
,p_exception_name => 'invalid_api_view_call'
24
,p_errcode => 'PM008'
25
,p_param_data => to_jsonb(new)
26
,p_context_data =>
27
jsonb_build_object(
28
'tg_op', tg_op
29
,'tg_when', tg_when
30
,'tg_schema', tg_table_schema
31
,'tg_table_name', tg_table_name)),
32
ERRCODE = 'PM008',
33
SCHEMA = tg_table_schema,
34
TABLE = tg_table_name;
35
END IF;
36
37
UPDATE ms_syst_data.syst_settings SET
38
internal_name = new.internal_name
39
, display_name = new.display_name
40
, user_description = new.user_description
41
, setting_flag = new.setting_flag
42
, setting_integer = new.setting_integer
43
, setting_integer_range = new.setting_integer_range
44
, setting_decimal = new.setting_decimal
45
, setting_decimal_range = new.setting_decimal_range
46
, setting_interval = new.setting_interval
47
, setting_date = new.setting_date
48
, setting_date_range = new.setting_date_range
49
, setting_time = new.setting_time
50
, setting_timestamp = new.setting_timestamp
51
, setting_timestamp_range = new.setting_timestamp_range
52
, setting_json = new.setting_json
53
, setting_text = new.setting_text
54
, setting_uuid = new.setting_uuid
55
, setting_blob = new.setting_blob
56
WHERE id = new.id
57
RETURNING * INTO new;
58
59
RETURN new;
60
61
END;