MT.Checks/DB/chk/func_specs/chk_check_insert.md

2.3 KiB
Raw Blame History

chk.chk_check_insert

Создание новой проверки организаций.

Параметр Тип Обяз. Описание
p_check_date date да день (дата) проверки
p_chk_type_id int да тип проверки (→ chk.chk_type.id)
p_chk_status_id int да статус проверки (→ chk.chk_status.id)
p_smev_message_id text нет идентификатор сообщения СМЭВ
p_rr_organization_id text нет идентификатор организации РР
p_params text нет параметры проверки (JSON); передаётся как text, каст в jsonb внутри (db-m-5)
p_parent_check_id int нет родительская проверка (→ chk.chk_check.id)

Возвращает int — id созданной проверки.

Логика/особенности

  • Обязательные параметры проверяются в начале функции: NULL → RAISE EXCEPTION (db-m-4).
  • p_params — некорректный JSON → исключение приведения типа.

Тесты

Тип Условие Ожидаемый результат
1 основной сценарий все поля заполнены (фикстура TEST-) id > 0; поля записи совпадают с параметрами
2 граничный случай только обязательные параметры запись создана; необязательные поля NULL
3 граничный случай p_params — валидный JSON в записи params = переданный JSON
4 исключение NULL p_check_date исключение «не задан p_check_date»
5 исключение NULL p_chk_type_id исключение «не задан p_chk_type_id»
6 исключение NULL p_chk_status_id исключение «не задан p_chk_status_id»
7 исключение несуществующий p_chk_type_id исключение FOREIGN KEY
8 исключение p_params — не JSON ('не-json') исключение приведения jsonb