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

34 lines
2.3 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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