29 lines
2.4 KiB
Markdown
29 lines
2.4 KiB
Markdown
# `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 | граничный случай | фильтр без совпадений | пустая таблица |
|