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

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

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

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

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


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

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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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

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


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

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

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

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


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

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

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

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

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


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

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

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


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

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

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

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

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) – функция возвращает количество позиций в чеке с ценой больше указанной.

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

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