Перейти к основному содержимому

Выражения (expressions)

Используется в:

  • Фильтры категорий файлового хранилища
  • Фильтры печатных форм
  • Фильтрах коллекций в FormBuilder
  • Выражения в FormBuilder

Синтаксис у них одинаковый, но контекст(набор доступных переменных для работы) отличается

Полезные ссылки

Синтаксис выражений(используемая библиотека)
Булева алгебра логики — таблица истинности ( конъюнкция ) и логические операции
Булева алгебра (wiki)

Доступные переменные (не влияют на скорость загрузки)

scopeНа какой странице находимся. Варианты: **client, loanApp, contract, depositContract, shareContract**
clientId
loanAppId
contractId
depositContractId
shareContractId

Переменные с ленивой загрузкой (влияют на скорость загрузки)

loanApp Все свойства из модели, а так-же:
  • loanApp.depositorsQty (замедляет загрузку)
  • loanApp.coborrowersQty
  • loanApp.collateralQty
Считают уникальные записи. Пример 1: 3 залога, 2 из них записаны на 1 клиента, в итоге будет 2 залогодателья. Пример 2: клиенты в loanApp.coborrowers технически могут повторяться, а loanApp.coborrowersQty вернет кол-во уникальных записей
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']Форма будет недоступна на клиенте и заявке