Настройка акций в Кассире
Материал из wiki.standart-n.ru
Версия от 15:45, 19 февраля 2016; Aleksnick (обсуждение | вклад)
Содержание
Начало
В ТМС -305 "После добавления позиции в чек" создаем скрипт. Начало скрипта будет таким:
uses Graphics, Controls, Forms, Dialogs, StdCtrls, ComCtrls, ExtCtrls, ibquery, DB, ChequeList, FR, ScriptRes, Barcode,ZKassa, StrUtils, Windows, Classes, IBDataBase, SysUtils, DateUtils, chequelist; var iq: tibquery; dsc, part_id: integer; discount: float; begin Try iq := tibquery.create(nil); iq.transaction := CreateRT(CurrDB); iq.transaction.starttransaction; iq.active := False;
Примеры акций
Далее пишем скрипты акций.
Пример №1
- скидка 20% на группу "Акция"
- акция действует с 31.07.2015 по 23.08.2015
if ((date() >= StrToDate('31.07.2015')) and (date() <= StrToDate('23.08.2015'))) Then Begin part_id := ChequeList.ActivePID; //запросик к базе iq.sql.text := 'select abs(price) as price, abs(quant) as quant from vw_doc_detail_active where UPPER(mmbsh) containing ''АКЦИЯ'' and doc_id='+inttostr(ChequeList.Active.ID)+' and part_id = '+inttostr(part_id) ; iq.active := True; //забираем данные if not(iq.Eof) then begin dsc := -0.20; ChequeList.Active.P_Index:= ChequeList.Active.IndexByPartID(part_id); ChequeList.Active.P_SetDiscount(abs(iq.FieldByName('price').AsFloat*iq.FieldByName('quant').AsFloat)*dsc); end; end;
Пример №2
- скидка 10% на группу "Акция"
- акция действует с 24.08.2015 по 24.09.2015
//Акция с 24.08.2015 по 24.09.2015 на товары группы Акция скидка //заявка в УР 483165 //if ((date() >= StrToDate('24.08.2015')) and (date() <= StrToDate('24.09.2015'))) Then //заявка в УР 491368 Begin part_id := ChequeList.ActivePID; //запросик к базе iq.sql.text := 'select abs(price) as price, abs(quant) as quant from vw_doc_detail_active where UPPER(mmbsh) containing АКЦИЯ and doc_id='+inttostr(ChequeList.Active.ID)+' and part_id = '+inttostr(part_id) ; iq.active := True; //забираем данные if not(iq.Eof) then begin dsc := -0.10; ChequeList.Active.P_Index:= ChequeList.Active.IndexByPartID(part_id); ChequeList.Active.P_SetDiscount(abs(iq.FieldByName('price').AsFloat*iq.FieldByName('quant').AsFloat)*dsc); end; end;
Конец
Весь сркипт заканчивается так:
finally iq.active := False; iq.transaction.free; iq.free; end; end;