Подбор группы модификаций ТС

Прикладной сервис Версия: 0.1 draft

Подбор группы модификаций ТС: базовая группа по виду ТС и топливу и мягкое уточнение по распознанным марке, модели и остатку наименования.

⟨/⟩ Исходник

1. Назначение

Процедура собирает группу модификаций, применимых к конкретному ТС: сначала базовую группу по виду ТС и топливу, затем мягкое уточнение по распознанным в наименовании марке, модели и остатку.

Вызывающие:

В окне подбора используется та же базовая группа и та же композиция уточнения, но результат — значения полей маски, а не сохранённая группа: установка маски остаётся поведением экрана и описана в спеке окна.

Процедура не сохраняет группу, не меняет статус подбора, способ подбора и рассчитанные нормы.

2. Базовая группа

Вход — вид ТС и вид топлива ТС (Транспортное средство), справочник — Марка, модель и модификация ТС.

  1. Отбираются все модификации этого вида ТС, у которых установлена норма. Какое поле справочника считается нормой — открытый вопрос OQ_BaseNorm; процедура использует готовый признак «норма установлена» и не решает его сама.
  2. Вид топлива — мягкое условие. Если среди отобранных есть модификации с пустым видом топлива или совпадающие с основным видом топлива ТС, остаются только они. Если таких нет — группа остаётся по виду ТС.
  3. Пустая группа — валидный результат: у вида ТС и топлива нет модификаций с нормой.

Базовая группа — общий вход и для подбора группы при приёме данных АИС, и для маски окна подбора: маска начинает «Отфильтрованные» с неё, даже когда подбор не выполнялся (способ «эксперт»).

Базовая группа — также вход эталонной нормы \(H_эт\); определение и формула — секция fuel.reference_norm Методика расчёта расхода топлива.

3. Композиция уточнения

Из базовой группы:

  1. DetectBrandIn по «Марка и модель базы ТС»; если марка найдена — группа сужается по марке;
  2. DetectModel по полученной группе; если модель найдена — группа сужается по модели, а остаток наименования не применяется;
  3. иначе BuildNameRemainder — остаток наименования используется как подстрока для фильтра по полному наименованию модификации.

Распознавание — Распознавание марки и модели ТС.

Каждый шаг мягкий: если отбор по распознанному значению даёт пустую группу, значение игнорируется, группа остаётся прежней. Жёстких условий в подборе группы нет — строгие условия появляются только в маске, когда их задаёт пользователь.

4. Результат

Группа модификаций — набор строк справочника после базовой группы и мягких уточнений, либо пустая группа. Пустая группа не означает ошибку процедуры: это факт «для этого ТС подходящих модификаций с нормой нет», который вызывающие интерпретируют по-своему (статус подбора, сообщение в окне, способ подбора).

Связанные артефакты

Документы