Виды скидок в программе АРМ Касса:
-
При сканировании товара делается автоматическая скидка по схеме, указанной для товара в поле shemaSkidki в stDoc. Схема извлекается из disSum. Максимальный % скидки при этом контролируется либо по таблице stDoc, либо tovary в зависимости от настроек программы.
-
Если в процессе сканирования товара схема скидки не указана, проверяется таблица disSum на существование схемы скидки по группе товара. Если товар относится к этой группе и схема действительна, у этого товара запоминается текущий % или сумма скидки.
-
В процессе отбора действующей скидки учитываются следующие параметры:
-
период по датам
-
день недели
-
период по сумме
-
делитель на 2, 3, 4 и т.д. для скидок на количество кратно упаковке
-
строка поиска в названии товара
-
Рассчитывается автоматическая скидка ((idCard = 0) AND (fromKolvo < 0.001)) в disSum. Если схема найдена, то % или сумма скидки запоминаются как скидка уже не на позицию, а на чек.
-
Скидка по ДК: Чек уже сформирован и добавление позиций далее невозможно.
-
Скидка по ДК с произвольными параметрами из таблицы discard (процентная или рублевая скидки с контролем максимального %, накопительная, клубная и т.д.)
-
Если у ДК в discard поле shemaSk > 0, то параметры этой карты берутся из disSum по полю idShemaSk (и isPodarok = 0). У строк, относящихся к ДК нужно заполнять поле idCard, чтобы эти записи не включались в расчет автоматической скидки.
-
Автоматическая скидка при сканировании ДК (в disSum должна быть схема с №777888999)
-
Скидка на третью позицию с сортировкой по цене по специальной ДК, указанной в настройках программы.
-
Суперскидка – это карта, которая может быть считана после ДК, она добавляет % скидки к уже сделанной скидке.
-
Скидка на товар по таблице штрихкодов из dkBarcodes. После добавления товара в чек можно сосканировать штрихкод скидки. Если префикс соответствует, то начиная с 3-го символа до конца строки вычленяется код скидки. Этот код проверяется по таблице dkBarcodes (номер, диапазон дат, разрешено или нет). Если действует, то определяется % скидки, соответствующий этому коду, и устанавливается в качестве скидки на товар. Ограничения:
-
нельзя добавить 2 одинаковых кода скидки в чек
-
если у товара уже есть скидка, то новая скидка не будет рассчитана
-
нельзя применить эту скидку при зарегистрированной оплате по безналу или сертификату
-
нельзя применить эту скидку после скидки по дисконтной карте
-
товары, по которым уже была сделана эта скидка, не включаются в расчёт скидки по дисконтным картам
-
Скидка на товар процентная.
-
Скидка на товар суммовая (преобразуется в процентную на товар).
-
Скидка на чек процентная.
-
Скидка на чек суммовая (преобразуется в процентную с распределением по товарам).
Порядок расчета скидок
-
Скидка на товар по схеме. При добавлении товара в чек, если у товара указана схема скидки, производятся вычисления со следующими условиями: из таблицы disSum отбирается строка (строки), у которой схема скидки та, которая установлена у товара. Если у товара схема скидки = 0, но группа товара (поле groupTov) проставлена (поле не пустое), будет осуществлен поиск по disSum схемы скидки для указанной группы по полю в disSum groupTov.
Если условия в этой схеме удовлетворяются
-
количество (количество сравнивается с общим количеством этой позиции в чеке)
-
цена от и до
-
дата от и до
-
время от и до
-
день недели (если 0 то по всем, если не 0, то учитывается от и до)
Процент или сумма скидки по этому товару записывается в содержимое чека по-позиционно, т.е. эта скидка не привязана к общей скидке на чек. По каждому товару в чеке сохраняется текущая цена товара с учетом скидки.
Если у схемы скидки поле delitel > 1 (2,3,4 и т.д.), то такая схема скидки будет действовать по достижению определенного количества по этой позиции (это скидка по количеству). Например, если делитель = 2, то будут просуммированы все количества этого товара в чеке, и если количество делится без остатка на 2, то скидка на эту позицию будет действовать. Такая скидка позволяет реализовать скидку на упаковку (например при делителе 6 будет скидка на каждую 6, 12-ю и далее штуку.)
Скидка на товар хранится в виде числа % скидки или суммы скидки и кода схемы скидки. Округляются эти числа до 2-х знаков. В чеке этот вид скидки будет обозначаться как скидка после регистрации каждого товара. Если поиск происходит по группе, то поле idShemaSk все равно должно быть заполнено в disSum, т.к. оно сохраняется у позиции в чеке и необходимо для расчета скидки при увеличении и уменьшении количества в чеке (кнопки + и -).
-
Автоматическая скидка. Из таблицы disSum отбирается строка (строки), у которых idCard = 0 , fromKolvo < 0.001 и groupTov =Null . (Таким образом, скидки с проставленным idCard относятся только к дисконтным картам, и не влияют на расчет автоматической скидки. Если fromKolvo >= 0.001, то это скидка на количество товара и код этой схемы устанавливается у товара, расчет производится по п.1.) При наличии таких строк анализируются условия:
-
суммы от и до (берется сумма всего чека)
-
даты от и до
-
время от и до
-
недели (если 0 то по всем, если не 0, то учитывается от и до)
По первой схеме, которая удовлетворит условиям, производится отбор % скидки или суммы скидки в зависимости от того, что было установлено в схеме скидки.
Рассчитываются по каждому товару в чеке текущая скидка с учетом максимального % скидки и округления. По каждому товару в чеке сохраняется текущая цена товара с учетом скидки. Общая величина рассчитанной скидки за минусом позиционных скидок сохраняется как рублевая скидка на чек.
-
Автоматическая скидка при сканировании ДК (СкидкаАвтоДК). Если в таблице disSum есть схема с номером 777888999, то делается скидка по этой схеме перед тем, как будет рассчитана скидка по ДК. Условие отбора: (idCard = 777888999) AND (fromKolvo < 0.001)
-
Скидка по дисконтной карте. После определения номера карты производится отбор из таблицы disSum строк со схемой скидки, которая указана в параметрах дисконтной карты. Если такая схема существует, то % скидки или сумма будут взяты из схемы скидок. Условие отбора (idShemaSk из disSum =shemaSk из discard AND (isPodarok = 0)). Если схемы скидок у ДК нет, то % или сумма будут взяты из параметров ДК
Порядок расчета:
а) анализируется порог скидки. Если сумма по чеку > порога, расчет продолжается
б) анализируется параметр добавления скидки. Если по чеку уже существовала % скидка, то она будет добавлена к % по ДК, если же эта настройка не указана, то в качестве % скидки будет взят % из параметров ДК (в том числе и со схемы). Если уже сделанная скидка по чеку больше % из параметров ДК, то в качестве % ДК принимается сделанная скидка. Если ДК является суперскидкой, то % скидки по ней добавляется к уже сделанной скидке. Если в настройках у ДК (checkPrSkTov в discard) указано, что нужно контролировать максимальный % скидки, то проверяется настройка в кассе SuperSkPoMaxCmdPrSk (по умолчанию 1) на вкладке Скидки. Если 0, то максимальный % скидки берется из поля maxPrSkidki в stDoc. Если 1, то из поля maxCmdPrSkidki в tovary.
в) производится расчет скидки по чеку. Суммируются 4 вида скидок: скидка по % на чек (рассчитывается по-позиционно с учетом ограничений), скидка по руб. на чек, скидка по товарам, по которым указана скидка %, скидка по товарам, по которым указана скидка руб. Если в момент расчета существовали позиционные процентные скидки, то при скидке по ДК они пересчитываются в позиционные рублевые (для дальнейшего пробития по ФР и отсутствию проблемы с округлением). Если в настройках скидок указано округление до 1 рубля, то округляется цена товара, а не сумма и не скидка. При расчете суммы количество округляется до 4-х знаков. Если при расчете суммы по чеку будет обнаружено расхождение с ФР, то перед закрытием чека будет предпринята попытка выровнять сумму регистрации путем пробития товара “округление”.
4. Скидки, сделанные вручную
а) рублевые или процентные на позицию товара
б) рублевые или процентные на чек.
Автоматические скидки могут комбинироваться с ручными, но после расчета скидки по ДК другие виды скидок запрещены (так как производится перерасчет из позиционных в общую скидку на чек и может произойти пересуммирование).
В настройках программы можно запретить добавление товара после скидки по ДК. Если не запрещено, то скидка будет распространяться только на товары, зарегистрированные до момента скидки. Повторного перерасчета скидки не производится.
5. Скидка на 3-ю позицию
Это скидка по специальной дисконтной карте. Товары сортируются по цене в порядке убывания. Если цена товара и код отличаются от предыдущих, то на одну штуку из 3-й позиции делается скидка. Сумма скидки добавляется к суммовой скидке на чек, а величина скидки пропорционально распределяется на 3 товара из группы.
|