Форум по программам и оборудованию > > >

Как сделать, чтобы скидка по штрихкоду срабатывала 2-3 раза в день

18.10.2019 21:43


13.08.2015 13:14
Tiger
 
А можно на примере показать, как отобрать карты которые повторяются в оперативных чеках более 2-3 раз, и запрос на блокировку этих карт.
13.08.2015 14:29
Павел Сосновских
 
еще раз, карты какие? клиентские/дисконтные/загружаемые из супермага?
13.08.2015 17:12
Tiger
 
Цитата:
Павел Сосновских еще раз, карты какие? клиентские/дисконтные/загружаемые из супермага?
Загружаемые из супермага с установленным процентом скидки!
13.08.2015 19:25
Tiger
 
Цитата:
Tiger А можно на примере показать, как отобрать карты которые повторяются в оперативных чеках более 2-3 раз, и запрос на блокировку этих карт.
Отобрать карты, повторяющиеся в чеках более одного раза получилось

select CODE, count(*) from SMOnlineDiscCard GROUP BY CODE HAVING count(*)>2;
13.08.2015 19:45
Tiger
 
Цитата:
Tiger Отобрать карты, повторяющиеся в чеках более одного раза получилось

select CODE, count(*) from SMOnlineDiscCard GROUP BY CODE HAVING count(*)>2;
C блокировкой тоже разобрался

update SMDiscPers SET STOPPED=1 WHERE CODE='номер карты';
commit;


Вопрос как теперь объединить два запроса, чтобы отобранные карты блокировать?
13.08.2015 20:31
Tiger
 
Цитата:
Tiger Отобрать карты, повторяющиеся в чеках более одного раза получилось

select CODE, count(*) from SMOnlineDiscCard GROUP BY CODE HAVING count(*)>2;
Цитата:
Tiger C блокировкой тоже разобрался

update SMDiscPers SET STOPPED=1 WHERE CODE='номер карты';
commit;


Вопрос как теперь объединить два запроса, чтобы отобранные карты блокировать?
Думаю так:

UPDATE SMDiscPers SET STOPPED=0 WHERE CODE IN (SELECT CODE from SMOnlineDiscCard GROUP BY CODE HAVING count(*)>2)

Поправьте если не прав!
13.08.2015 20:33
Tiger
 
Цитата:
Tiger Думаю так:

UPDATE SMDiscPers SET STOPPED=0 WHERE CODE IN (SELECT CODE from SMOnlineDiscCard GROUP BY CODE HAVING count(*)>2)

Поправьте если не прав!
STOPPED=1, чтобы заблочить!
13.08.2015 21:25
konst
 
Можно еще добавить условие
AND stopped = 0
Чтобы лишний раз не дергать уже заблокированные.
А для разблокировки если есть история то по ней, если нет можно создать доп таблицу - при выполнении первого запроса на блокировку параллельно писать номер карты туда.
26.08.2015 15:17
Tiger
 
В продолжении темы.

Запрет организовал! Теперь хочется сделать отчет, в качестве конечных данных нужно видеть:

ФИО карта общая сумма покупки и сумма скидки по карте

Данные хочу тянуть их mysql УКМ4. Помогите найти таблицы, в которых храниться нужная мне информация?
26.08.2015 19:34
Павел Сосновских
 
а в супермаге не получится?
там же есть какие-то отчеты по дисконтным картам
плюс можно в бизнес-анализе что-то такое накрутить...чеки со спецификацией

если все же в укме, то:
- trm_in_disc_std2perscard - card_code, name, discount_type - сами карты
- trm_out_receipt_discounts - card_code, discount_type, amount - скидки по чекам
- trm_out_receipt_header, trm_out_receipt_foter, trm_out_receipt_subtotal - заголовки, подвалы, подитоги чеков

надо все связать, отфильтровать видимо по времени, нормальности завершения чека,...

ФИО - trm_in_disc_std2perscard.name
карта - trm_in_disc_std2perscard.card_code
сумма покупки - trm_out_receipt_subtotal.amount/clear_amount - со всеми скидками/без скидок
сумма скидки по карте - trm_out_receipt_discounts.amount

надо еще посмотреть, что в суммах именно надо(где со скидками, где без, со всеми скидками, в т.ч. округлением или только со скидками по картам)

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