34 lines
2.3 KiB
Markdown
34 lines
2.3 KiB
Markdown
# `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 |
|