Выражения (expressions)
Используется в:
- Фильтры категорий файлового хранилища
- Фильтры печатных форм
- Фильтрах коллекций в FormBuilder
- Выражения в FormBuilder
Синтаксис у них одинаковый, но контекст(набор доступных переменных для работы) отличается
Полезные ссылки
Синтаксис выражений(используемая библиотека)
Булева алгебра логики — таблица истинности ( конъюнкция ) и логические операции
Булева алгебра (wiki)
Доступные переменные (не влияют на скорость загрузки)
scope | На какой странице находимся. Варианты: **client, loanApp, contract, depositContract, shareContract** |
clientId | |
loanAppId | |
contractId | |
depositContractId | |
shareContractId |
Переменные с ленивой загрузкой (влияют на скорость загрузки)
loanApp Все свойства из модели, а так-же:
|
contract |
Стараться использовать свойства из как можно меньшего кол-ва объектов, тк каждый запрос увеличивает время загрузки
Примеры
Выражение | Что происходит |
---|---|
loanApp.collateralQty > 5 && loanApp.loanAmount >= 500 || contract.forIssue == true | (Кол-во уникальных залогов > 5 И Сумма займа больше либо равна 500) ИЛИ (Контракт к выдаче) |
loanApp.coborrowers.count() > 5 | Кол-во созаемщиков > 5 |
loanApp.coborrowersQty > 5 | Кол-во уникальных созаемщиков больше 5. Технически созаемщики в коллекции могут повторяться |
loanApp.hasCollateralTypes([1,2,3,4]) | Заявка имеет залог из списка типов |
false | Всегда будет скрыта |
scope == 'client' | Форма будет доступна только на клиенте |
scope in ['client', 'loanApp'] | Форма будет доступна только на клиенте и заявке |
scope not in ['client', 'loanApp'] | Форма будет недоступна на клиенте и заявке |