CREATE OR REPLACE FUNCTION integration.get_available_applications_api(id text)
RETURNS text
LANGUAGE plpgsql
AS $function$
DECLARE
row_data jsonb;
applications text[];
result_json json;
v_id int;
-- Новые переменные для УНВ
v_apps jsonb;
v_unv_data jsonb;
v_unv_available boolean;
BEGIN
v_id := (id::json ->> 'id')::int;
-- Сохраняем всю существующую логику доступности заявлений
v_apps := ourpension.f_get_available_applications(v_id, true)::jsonb;
-- Получаем доступные для УНВ договоры и периоды
v_unv_data :=
integration.get_unv_available_contracts_api(
jsonb_build_object('id', v_id)::text
)::jsonb;
v_unv_available :=
jsonb_array_length(
COALESCE(v_unv_data -> 'contracts', '[]'::jsonb)
) > 0;
-- Добавляем к прежнему ответу только два новых поля
v_apps :=
v_apps || jsonb_build_object(
'unv', v_unv_available,
'unv_comment',
CASE
WHEN v_unv_available THEN ''
ELSE 'нет доступных договоров и налоговых периодов для упрощённого налогового вычета'
END
);
RETURN v_apps::text;
/*
select row_to_json(t)
into row_data
from ourpension.f_get_avialable_application(v_id) t;
select array(
select key
from jsonb_each_text(row_data)
where value = 'true'
--and key in ('pp', 'rv', 'np_spv')
)
into applications;
return array_to_json(applications)::text;
*/
END;
$function$;