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