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

inventCountInCheckByOption – Количество позиций в чеке с указанной опцией 

inventCountInCheckByOption(options) – функция сработает, если количество позиций с указанными опциями равно (<,>, <=, >=, !=) выбранному значению.

Параметры функции:

  • options – опции товара.
Пример
создать условие cf.inventCountInCheckByOption([u"num"]) == 2
Скидка с данным условием сработает, если количество позиций в чеке с опцией "num" равно 2. Количество товара в позиции не учитывается. 

При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

inventCountInCheckWithAllOptions – Количество позиций в чеке со всеми указанными опциями 

inventCountInCheckWithAllOptions(options,withPartOfKit) – функция сработает, если количество позиций с указанными опциями равна (<,>, <=, >=, !=) выбранному значению.

Параметры функции:

  • option – опции товара;
  • withPartOfKit – параметр для учета товаров, являющихся частью комплекта (набора), при подсчете количества позиций с опцией.  

Функция проверяет выполнение заданного условия, скидка предоставляется на все позиции в чеке, включая позиции, входящие в комплект. При значении параметра withPartOfKit = True функция при подсчете количества позиций товара с опцией учитывает позиции, которые включены в набор. 

Пример
cf.inventCountInCheckWithAllOptions([u"num"],True) == 3 
Скидка с данным условием сработает, если количество позиций в чеке с опцией "num" равно 3. При подсчете количества позиций учитываются позиции с товарами, входящими в набор.
При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

inventCountInCheckByCode – Количество позиций в чеке с указанным кодом

inventCountInCheckByCode(code) – функция сработает, если количество позиций в чеке  с указанным кодом равно (<,>, <=, >=, !=) выбранному значению.

Параметры функции:

  • code – код товара.
Пример
cf.inventCountInCheckByCode([u"102"]) == 2 
Скидка с данным условием сработает, если количество всех позиций в чеке с кодом 102 будет равно 2.
При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

inventCountInCheckByBcode – Количество позиций в чеке с указанным штрих-кодом

inventCountInCheckByBcode(bcode) – функция сработает, если количество позиций в чеке с указанным штрих- кодом равно (<,>, <=, >=, !=) выбранному значению.

Параметры функции:

  • bcode – штрих-код товара.
Пример
cf.inventCountInCheckByBcode([u"4607032142362"]) == 2
Скидка с данным условием сработает, если количество всех позиций в чеке со штрих-кодом "4607032142362" будет равно 2.
При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

inventCountInCheckByCatalog – Количество позиций в чеке с указанным каталогом

inventCountInCheckByCatalog(catalog, withPartOfKit) – функция сработает, если количество позиций в чеке с указанным каталогом равно (<,>, <=, >=, !=) выбранному значению.

Параметры функции:

  • catalog – код каталога;
  • withPartOfKit – параметр для учета товаров, являющихся частью комплекта (набора), при подсчете количества позиций с опцией. При значении параметра withPartOfKit= True функция при подсчете количества позиций товара с опцией учитывает позиции, которые включены в набор. 
Пример
cf.inventCountInCheckByCatalog([u"num"],True) == 1 
Скидка с таким условием сработает, если количество позиций в чеке с каталогом "num" равно 1. При подсчете количества позиций учитываются позиции с товарами, входящими в набор.
При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

inventCountInCheckWithAllCatalogs – Количество позиций в чеке со всеми указанными каталогами

inventCountInCheckWithAllCatalogs(catalog, withPartOfKit)функция сработает, если количество позиций в чеке со всеми указанными каталогами равно (<,>, <=, >=, !=) выбранному значению.

Параметры функции:

  • catalog – код каталога;
  • withPartOfKitпараметр для учета товаров, являющихся частью комплекта (набора), при подсчете количества позиций с опцией. При значении параметра withPartOfKit = True функция при подсчете количества позиций товара с опцией учитывает позиции, которые включены в набор. 
Пример
cf.inventCountInCheckWithAllCatalogs([u"num1",u"num2"],True) == 2 
Скидка с данным условием сработает, если количество позиций в чеке, которые входят в оба каталога ("num1" и "num2") равно 2. При подсчете количества позиций учитываются позиции с товарами, входящими в набор.
При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

inventCountInCheck – Количество позиций в чеке

inventCountInCheck – функция сработает, если количество позиций в чеке  равна (<,>, <=, >=, !=) выбранному значению.  

Пример
cf.inventCountInCheck() == 3
Скидка с таким условием сработает, если количество позиций в чеке равно 3.
При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

inventCountInCheckByGroup – Количество позиций с указанными группами

inventCountInCheckByGroup(group, withPartOfKit)функция сработает, если количество позиций с указанной группой в чеке  равно (<,>, <=, >=, !=) выбранному значению.

Параметры функции:

  • group – код группы;
  • withPartOfKitпараметр для учета товаров, являющихся частью комплекта (набора), при подсчете количества позиций с опцией. При значении параметра withPartOfKit = True функция при подсчете количества позиций товара с опцией учитывает позиции, которые включены в набор. 
Пример
cf.inventCountInCheckByGroup([u"1000"],True) == 1
Скидка с данным условием сработает, если количество позиций с группой 1000 равно 1. При подсчете количества позиций учитываются позиции с товарами, входящими в набор. 
При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

hasBackInSalePosition – Наличие позиции "возврат в чеке продажи" в чеке

hasBackInSalePosition – функция сработает, если в чеке имеется позиция "возврат в чеке продажи".  
Пример
not cf.hasBackInSalePosition()
Скидка с таким условием сработает, если в чеке нет позиции "возврат в чеке продажи".
При задании акции необходимо учитывать, что воздействие функции применяется к позициям с товарами, входящими в набор.

proportionalDiscount – Пропорциональная скидка

proportionalDiscount(sum, conditions) – функция сработает, если в чеке есть позиции, подходящие по условию.

Параметры функции:

  • sum – сумма скидки, которая будет равномерно распределена между позициями;
  • conditions – условия. Можно применять условия для позиций, либо использовать значение 'True', тогда сумма скидки будет распределена между всеми позициями чека.
object['posnum'] in cf.proportionalDiscount(5, 'object["code"] == u"10" and abs(object["sumi"] - object["sumb"] < 0.005)')
Скидка с таким условием сработает на все товары в чеке с кодом 10, если к ним не применились другие скидочные воздействия.

Функция cf.proportionalDiscount применяется только совместно с расчетной функцией rf.proportionalDiscount.

Приоритет акций должен быть задан таким образом, чтобы пропорциональная скидка отрабатывала в последнюю очередь.

inventQuantInCheckByPriceMore – Количество позиций с ценой больше заданной

inventQuantInCheckByPriceMore(price) – функция возвращает количество позиций в чеке с ценой больше указанной.

Параметры функции:

  • price – цена, от которой  будет вестись подсчет позиций.
cf.inventQuantInCheckByPriceMore(100.50) >= 2 
Скидка с таким условием сработает, если количество позиций с ценой больше 100.50 в чеке больше или равно 2. 
  • No labels