30 lines
2.0 KiB
Markdown
30 lines
2.0 KiB
Markdown
# `chk.chk_check_update`
|
||
|
||
Полное обновление проверки по `id` (read-modify-write, db-m-8).
|
||
|
||
| Параметр | Тип | Обяз. | Описание |
|
||
|---|---|---|---|
|
||
| `p_id` | int | да | идентификатор проверки |
|
||
| `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 | да | идентификатор сообщения СМЭВ (может быть NULL-значением) |
|
||
| `p_rr_organization_id` | text | да | идентификатор организации РР (может быть NULL-значением) |
|
||
| `p_params` | text | да | параметры проверки (JSON, `text` → `jsonb` внутри, db-m-5) |
|
||
| `p_parent_check_id` | int | да | родительская проверка (может быть NULL-значением) |
|
||
|
||
**Возвращает** `int` — число строк, найденных по `id` и записанных (db-m-3).
|
||
|
||
## Логика/особенности
|
||
|
||
- Все поля пишутся безусловно: без `COALESCE` и `IS DISTINCT FROM` (db-m-8); NULL-семантики «не менять» нет.
|
||
- NULL `p_id` → `RAISE EXCEPTION` (db-m-4). Несуществующий `id` — не ошибка: возврат 0.
|
||
|
||
## Тесты
|
||
|
||
| № | Тип | Условие | Ожидаемый результат |
|
||
|---|---|---|---|
|
||
| 1 | основной сценарий | существующая проверка (фикстура `TEST-`); все поля новые | возврат 1; все поля записи = новым значениям |
|
||
| 2 | граничный случай | несуществующий `p_id` | возврат 0; записи не изменились |
|
||
| 3 | исключение | NULL `p_id` | исключение «не задан p_id» |
|