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

30 lines
2.0 KiB
Markdown
Raw 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_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» |