v_notification_id uuid;
v_notification_body jsonb;
-- Готовим уведомление по созданному шаблону.
-- UUID сохраняется и будет одинаковым при повторных попытках отправки.
v_notification_id := gen_random_uuid();
SELECT jsonb_build_object(
'type', p.type_code,
'caption', p.title,
'text', p.body,
'link', p.link,
'duration_days', p.duration_days,
'person_code', i.code_1c,
'uuid', v_notification_id
)
INTO v_notification_body
FROM integration.dict_360_to_lkk_notification_patterns p
JOIN ourpension.individual i
ON i.id = v_client_id
WHERE p.id = 15
AND p.type_code = 12;
IF v_notification_body IS NULL THEN
RAISE EXCEPTION USING
ERRCODE = 'XX000',
MESSAGE = 'Не найден шаблон уведомления УНВ или клиент';
END IF;
IF NULLIF(
TRIM(v_notification_body ->> 'person_code'),
''
) IS NULL THEN
RAISE EXCEPTION USING
ERRCODE = 'XX000',
MESSAGE = 'Для уведомления ЛКК у клиента не заполнен code_1c';
END IF;
-- Сохраняем задание в одной транзакции с заявлением.
INSERT INTO report.unv_notification_queue (
id,
request_id,
body
)
VALUES (
v_notification_id,
v_request_id,
v_notification_body
);