Примеры использования формул в бонусных правилах

В этой статье рассмотрим примеры составления формул, которые можно использовать в бонусных правилах.

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

1 Пример

Это простой пример. От общей суммы заказ-наряда рассчитывается 7 % как бонусы. Если клиент является юридическим лицом, то ему не начисляются бонусы. Приводим формулу,  которую необходимо вписать в поле От документа.

this.Customer.AgentFaceType = 0 ? OverallCostTotal * 0.07 : 0

2 Пример

В этом примере количество бонусов рассчитывается от всей суммы заказ-наряда. Если у клиента нет бонусной карты, то бонусы ему не начисляются. Прцент начисления бонусов зависит от оборота клиента. Приводим формулу,  которую необходимо вписать в поле От документа.

this.OverallCostTotal * (
this.Customer.Barcodes.Count = 0 ? 0 :
this.OverallCostTotal < 10000 ? 0.02 :
this.OverallCostTotal < 20000 ? 0.03 : 0.05)

3 Пример

Это пример условия, которое можно вставить в бонусное правило. В этом условии проверяется имя рекомендателя, которое внесено в карточку клиента. Например, если у покупателя рекомендателем является Дубль ГИС, то этому покупателю начисляется 10% от суммы заказ-наряда в качестве бонусов.

this.OverallCostTotal * ( this.Assignment.Customer.CounterAgents.Filter("AgentRelationType = 40", "this")[0].Contractor.Name like "%Дубль%" ? 0.1 :  0.07)

4 Пример

Это пример бонусного правила для документа Продажа. Приводим формулу,  которую необходимо вписать в поле От строк документа. В этом условии бонусы не начисляются, если сумма продажи меньше 5000 или товар из группы товаров АКБ.
this.Sale.TotalMoney <= 5000 ? 0 : (Product.ProductGroup.Name like "%АКБ%" ? 0 : CustomPrice * MeasureQuantity * 0.1)

5 Пример

В этом примере в качестве бонуса начисляется 7 %  от суммы платежа к заказ-наряду, причем если покупателем является клиент по умолчанию , который настраивается в текущем офисе, или тип заказ-наряда Гарантийный, то по этому правилу бонусы не начисляются.

ceil(PaidAmount * 0.07) *
(CurrentSite().DefaultCustomer.Name = Customer.Name ? 0 : 1) * (AssignmentType = 2 ? 0 : 1)

6 Пример

Это пример формулы для бонусного правила, которое применяется к Заказ-наряду.  При составлении формулы надо было учитывать следующие условия: на ряд услуг бонусы не начисляются, от строк с  услугами  и строк с товарами должны были начисляться разные проценты как бонусы, также процент бонусов должен изменяться в зависимости от оборота покупателя. Если у клиента стоит пометка VIP, то для  клиента процент отчисления в качестве бонусов не должен был зависеть от оборота клиента. И бонусы должны были рассчитываться в долях от платежа к заказ-наряду.

typeof(this) == "AssignmentServiceUsage" &&
(Service.AbstractService.Name = "Шиномонтаж" ||
Service.AbstractService.Name = "Кузовной ремонт" ||
Service.AbstractService.Name = "Услуги сторонних организаций" ||
Service.AbstractService.Name = "Развал" ||
Service.AbstractService.Name = "Мойка") ? 0 :
(this.Assignment.Customer.Turnover > 130000 || this.Assignment.Customer.GetCustomProperty("Mark")= "VIP" ?
(typeof(this) == "AssignmentProductItem"?
0.11 * CustomPrice * MeasureQuantity
: 0.04 * CustomEstimationCost * Quantity)
:(this.Assignment.Customer.Turnover > 45000 ?
(typeof(this) == "AssignmentProductItem"
? 0.08 * CustomPrice * MeasureQuantity
: 0.03 * CustomEstimationCost * Quantity)
:(this.Assignment.Customer.Turnover >= 0 ?
(typeof(this) == "AssignmentProductItem"
? 0.05 * CustomPrice * MeasureQuantity
: 0.02 * CustomEstimationCost * Quantity):0)))
/this.Assignment.OverallCostTotal * this.Assignment.PaidAmount