# `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 |