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

29 lines
2.4 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_select`
Выборка проверок с необязательными фильтрами (NULL параметра = фильтр не применяется).
| Параметр | Тип | Обяз. | Описание |
|---|---|---|---|
| `p_check_date` | date | нет | фильтр по дню проверки; NULL = без фильтра |
| `p_chk_type_id` | int | нет | фильтр по типу проверки; NULL = без фильтра |
| `p_chk_status_id` | int | нет | фильтр по статусу проверки; NULL = без фильтра |
| `p_rr_organization_id` | text | нет | фильтр по организации РР; NULL = без фильтра |
**Возвращает** `TABLE` — колонки `chk_check`: `id int`, `check_date date`, `chk_type_id int`, `chk_status_id int`, `smev_message_id text`, `rr_organization_id text`, `params jsonb`, `parent_check_id int`; сортировка по `id`.
## Логика/особенности
- Фильтры реализованы шаблоном `(p_x IS NULL OR t.x = p_x)` (db-func-7); фильтры — на корневом объекте (db-s-8).
## Тесты
| № | Тип | Условие | Ожидаемый результат |
|---|---|---|---|
| 1 | основной сценарий | фикстура `TEST-` (3 проверки: разные дата/тип/статус/организация); все фильтры NULL | 3 строки фикстуры + существующие; все колонки заполнены |
| 2 | основной сценарий | фильтр по `p_check_date` (дата двух фикстур) | только проверки с этой датой |
| 3 | основной сценарий | фильтр по `p_chk_type_id` | только проверки этого типа |
| 4 | основной сценарий | фильтр по `p_chk_status_id` | только проверки этого статуса |
| 5 | основной сценарий | фильтр по `p_rr_organization_id` | только проверки этой организации |
| 6 | основной сценарий | комбинированный фильтр (дата + статус) | только строки, удовлетворяющие обоим условиям |
| 7 | граничный случай | фильтр без совпадений | пустая таблица |