Форум OlegON > Программы и оборудование для автоматизации торговли > Системы автоматизации торговли > Супермаг Плюс (Супермаг 2000)

Ограничение покупок по дисконтной карте : Супермаг Плюс (Супермаг 2000)

22.11.2024 20:18


23.11.2012 14:21
давно была задача считать накопление в течении месяца и если сумма покупок по карте больше 5000, карта блокировалась и начинала работать со следующего месяца. скрипт запускался каждую ночь:
(cardtype=5 - тип карты, 5000 - сумма покупок)
Цитата:
update supermag.smdiscpers set lastchange=sysdate, validtill=sysdate where code in
((SELECT b.code
FROM
SUPERMAG.SMDISCPERS B,
SUPERMAG.smactivityclient H,
SUPERMAG.SMCLIENTINFO F
WHERE
(cardtype=5) AND
(B.CLIENT = F.ID (+)) AND
(B.CODE = H.CODE) and
(h.createdat>=(trunc(sysdate,'MM'))) and
(h.createdat<(last_day(sysdate)))
and (b.validtill>=sysdate)
GROUP BY
B.CODE
having SUM(H.sumsale)>=5000));
commit;

insert into smpostqueue(enqtime,enqseq,target,objtype,objid,paramint,paramstr,transflags,virtpack,commentary) select sysdate,rownum,null,'DC', code , null, null, 0,null, null from smdiscpers where to_char(lastchange,'DDMMYYYY')=to_char(sysdate,'DDMMYYYY');
commit;

exit;
а этот запускался 1 числа месяца:
Цитата:
update supermag.smdiscpers set lastchange=sysdate, validtill=last_day(sysdate)+1 where cardtype=5;
commit;
insert into smpostqueue(enqtime,enqseq,target,objtype,objid,paramint,paramstr,transflags,virtpack,commentary) select sysdate,rownum,null,'DC', code , null, null, 0,null, null from smdiscpers where to_char(lastchange,'DDMMYYYY')=to_char(sysdate,'DDMMYYYY');
commit;


exit;
небольшим допиливанием можно сделать перенос карты из одной группы в другую (например, если у карт с разными процентами скидок, разные ограничения на группы)
Часовой пояс GMT +3, время: 20:18.

Форум на базе vBulletin®
Copyright © Jelsoft Enterprises Ltd.
В случае заимствования информации гипертекстовая индексируемая ссылка на Форум обязательна.