37 lines
767 B
PL/PgSQL
37 lines
767 B
PL/PgSQL
-- jedno volání: předchozí režim, fn_set_mode, nový režim, site.code
|
|
|
|
create or replace function ems.fn_set_mode_with_context(
|
|
p_site_id int,
|
|
p_mode_code text,
|
|
p_activated_by text default 'system',
|
|
p_valid_until timestamptz default null,
|
|
p_notes text default null
|
|
)
|
|
returns jsonb
|
|
language plpgsql
|
|
as $fn$
|
|
declare
|
|
v_prev text;
|
|
v_out text;
|
|
v_code text;
|
|
begin
|
|
select mode_code into v_prev
|
|
from ems.site_operating_mode
|
|
where site_id = p_site_id;
|
|
|
|
v_out := ems.fn_set_mode(
|
|
p_site_id, p_mode_code, p_activated_by, p_valid_until, p_notes
|
|
);
|
|
|
|
select s.code into v_code
|
|
from ems.site s
|
|
where s.id = p_site_id;
|
|
|
|
return jsonb_build_object(
|
|
'previous_mode', v_prev,
|
|
'new_mode', v_out,
|
|
'site_code', v_code
|
|
);
|
|
end;
|
|
$fn$;
|