18.12.2012 13:50
Приветствую!
Возник такой вопрос, есть сеть магазинов с бонусными картами, при просмотре выписки счетов одного из клиентов, видно (см. вложение) что бонусы списались за оплату покупки, но в верхней сроке указан привязанный чек, а в нижней нет.
Есть вопросы:
1. Из какой таблицы формируется выписка?
2. Можно ли каким либо запросом установить в каком таки чеке было списание этих бонусов?
сам для проверки осилил вот такой вот запрос
Код:
SELECT crd.start_card_code
  --   , rh.`date`
     , sum(
       CASE
       WHEN rh.type = 0 AND rd.discount_type = 9 THEN
         rp.amount
       WHEN rh.type = 4 AND rd.discount_type = 9 THEN
         -rp.amount
       ELSE
         0
       END) AS amount
     , sum(
       CASE
       WHEN rd.discount_type = 9 AND rh.type = 0 THEN
         rd.account_amount
       WHEN rd.discount_type = 11 AND rh.type = 4 THEN
         -rd.amount
       ELSE
         0
       END) AS prihod
     , sum(
       CASE
       WHEN rd.discount_type = 11 AND rh.type = 0 THEN
         rd.amount
       WHEN rd.discount_type = 9 AND rh.type = 4 THEN
         -rd.account_amount
       ELSE
         0
       END) AS rashod
-- , sum(rd.account_amount)
FROM
  trm_out_receipt_header rh
LEFT OUTER JOIN trm_out_receipt_payment rp
ON rh.cash_id = rp.cash_id AND rh.id = rp.receipt_header
INNER JOIN trm_in_pos pos
ON rh.cash_id = pos.cash_id
INNER JOIN trm_in_store store
ON pos.store_id = store.store_id
LEFT OUTER JOIN trm_out_receipt_discounts rd
ON rh.cash_id = rd.cash_id AND rh.id = rd.receipt_header
LEFT OUTER JOIN trm_in_clients clt
ON rh.client = clt.id AND clt.global_id = 0
LEFT OUTER JOIN trm_in_cards crd
ON crd.id = rh.card AND crd.global_id = 0
WHERE
  rh.`date` < '2012-12-12'
  AND (rp.type = 0
  OR rp.type IS NULL)
  AND crd.start_card_code = '0000001653489'
GROUP BY
  crd.start_card_code
-- , rh.`date`
ORDER BY
  rh.date
он в общем считает верно, но вот такие суммы без привязанных чеков из него выпадают.
Миниатюры
Нажмите на изображение для увеличения
Название: sample.png
Просмотров: 657
Размер:	3.8 Кб
ID:	1504  
18.12.2012 14:39
у меня такая же проблема... CrazyWolf, списывается-то 2 раза (((
18.12.2012 15:03
Цитата:
Dim у меня такая же проблема... CrazyWolf, списывается-то 2 раза (((
У меня такая катавасия в 3 случаях из 26 оплат бонусами по одной мз карт. В остальных по этой карте - все в порядке.

UPD. Может кассиры чего мутят?
18.12.2012 15:19
Цитата:
Dim а как?
Вот ктож его знает. Я пробовал найти транзакцию в таблице local_auth_account_journal, но там ее нет вообще, знать бы с каких таблиц формируется эта выписка. Я с MySQL столкнулся буквально месяц назад, есть ли у него средства для "вытаскивания" текста запросов?
19.12.2012 02:08
local_auth_account_journal - это правильно, по ней и надо выписку смотреть
в случае, если cash_id и source_id заполнены одновременно,
то это ид кассы и ид чека соответственно(счет клиента может меняться не только чеком)

только вот вопрос/догадка к вам обоим - расходуются у вас бонусы как?
как скидка? как оплата? или и так и так одновременно?
если как оплата бонус используется - ваше право, но я бы так не делал
(по бухгалтерии замучаетесь), то кроме local_auth_account_journal
еще надо смотреть trm_out_receipt_payment

запросы вытаскиваются(насколько знаю) только в момент выполнения этих запросов
командой "show full processlist", т.е. надо сидеть и мониторить
выполнить эту команду два раза с интервалом в секунду даст разный результат
на работающем серваке
19.12.2012 08:29
у нас бонусы расходуются как скидка, по нажатию на кнопку кассиром
19.12.2012 09:57
Ну насчет запросов - есть же лог.
В my.ini
log=query.log
И mysql рестартовать. Файл будет в каталоге БД.
Если нужна только жизнедеятельность веба - сервис УКМ остановите, много лишнего уберете.
Еще многие функции работы со счетами вынесены в хранимые процедуры базы данных, там код может быть полезно посмотреть.
24.12.2012 11:37
неужели никто с такой проблемой не сталкивался? что делать-то?
25.12.2012 08:33
CrazyWolf, а ты как из ситуации выкручиваешься?
Часовой пояс GMT +3, время: 17:06.

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