[ОТВЕТИТЬ]
17.05.2012 12:19
litlemil
 
Здравствуйте! Товарищи форумчане.

Возникла необходимость писать запросы для получения вывода по типу выгрузки укм2
Накалякал маленький запросец под формат cashsail

use ukmclient1;
set names utf8;
select 31 as Shopindex,
t1.pos as CashNumber,
t1.shift_open as Znumber,
t1.local_number CheckNumber,
t2.position as ID,
t1.date,
t2.itemas CardArticul,
t2.quantity,
t2.price as PriceRub,
t2.min_price as PriceCur,
t2.total as TotalRub

from `trm_out_receipt_header` t1
right join `trm_out_receipt_item` t2 on t1.id=t2.id
where t1.date like '2012-05-05%'
order by `t1`.`pos`, `t1`.`local_number`, `t2`.`position`;

но t1.local_number по каким то причинам не соответствует CheckNumber, хотя при выборке похож на номера чеков...

помогите кто чем может...
17.05.2012 12:23
Mtirt
 
поменяй строчку:
Код:
right join `trm_out_receipt_item` t2 on t1.id=t2.receipt_header
17.05.2012 12:25
Mtirt
 
И еще туда же надо добавить
Код:
and t1.cash_id=t2.cash_id
17.05.2012 16:43
litlemil
 
Люди подскажите может у кого уже есть сам запрос по выбитым чекам, без учета стронированых позиций, по факту то что продано , а то на ощупь как то долго ковыряться...

Добавлено через 5 минут 7 секунд
или может у кого есть описание таблиц и значений, на супермажном вики такой информации не нашел...
17.05.2012 17:53
akonev
 
Цитата:
litlemil ...
или может у кого есть описание таблиц и значений, на супермажном вики такой информации не нашел...
посмотри фтп С+ описания конвертеров стандартного экспорта, там в основном выгружаются те же данные, в такие же таблицы, как внутри хранятся. этого хватит, чтобы разобрать хидеры-айтемы-футеры
17.05.2012 18:11
litlemil
 
Цитата:
Andrew_Konev посмотри фтп С+ описания конвертеров стандартного экспорта, там в основном выгружаются те же данные, в такие же таблицы, как внутри хранятся. этого хватит, чтобы разобрать хидеры-айтемы-футеры
если честно то там нет ничего полезного формат выгрузки и его структуры я знаю, но вот то как пишет в свои таблицы укм, нифига не понятно, одни только shift_open shift_close shift_payment, как я понял там должна храниться информация по закрытым сменам инкасациям, но то какая она там меня медленно убивает, какие суммы откуда и куда, кристалл в этом отношении просто золотце, документирован и интуитивно понятен по названиям таблиц и столбцов... полную выборку на выгрузку написать за 1 день влегкую...
а тут это просто пи..... какой-то.
18.05.2012 04:29
akonev
 
это ты отмахнулся или проверил, что ничего полезного???

ты не поверишь, но структура укм4 тоже становится вполне интуитивной, когда основную идею уловишь и особенности именования.

структура хранения данных более-менее нормализована

данные входящие на кассу (ТеРМинал) - trm_in (товары, штрихкоды, налоги, кассиры, и т.п.)

данные возвращаемые кассой - trm_out (смены, чеки, платежи,...)

товар - item, штрихкод - var, смена - shift, чек - receipt

смена отдельно открывается, отдельно закрывается в разных таблицах. закрытие ссылается на запись открытия смены

с чеком та же история: отдельно заголовок, товарные строки, "подвал" с результатом чека (расчет, аннуляция, выключение питания,..), платежи по чеку. строки, платежи и подвал ссылаются на заголовок. заголовок чека ссылается на открытие смены.

собрать всю эту фигню воедино - задачка для второкурсника после семестрового курса баз данных.

а теперь открой "Конвертер УКМ4 Стандартный экспорт.pdf" и глядя в него скажи: какие конкретно нужные тебе данные ты не можешь вытянуть?

на всякий случай заранее: шифт_пэймент для тебя полезной информации не несет. там денежные средства на конец смены в разбивке по кассирам.
18.05.2012 15:33
litlemil
 
ой спасибо, я уже и сам без документации разобрался... извращение то еще )))
таблицы укм2 более понятны, почему не взять пример с него, добавить несколько своих колонок и не надо было бы изобретать велосипед...
знаешь, на счет второкурсника я не в курсе у меня это на 1-м было, но есть балбесы которые и после пятого ничего не знают...

Добавлено через 7 минут 35 секунд
мне интересно как бы вы выборку сделали из таблиц по типу
idhu uid io oi sa ad
и прочей белиберды ???

Добавлено через 5 минут 20 секунд
и еще в догонку, когда разработчики что-то разрабатывают пусть то структура бд. или конфиги то они ее комментируют хотя бы минимально...

это большое отличие между разработчиками free source и proprietary, это в мозгах...
18.05.2012 16:36
akonev
 
это всё можно было бы комментировать, но... кому от этого будет польза?

если не жалко - поделись запросом. когда-то кто-то сэкономит полдня и улучшит твою карму искренней благодарностью.
18.05.2012 17:32
Mtirt
 
Кстати в хранилище лежит описание структуры.
Вот, например, структура сервера:
или вот:
30.05.2012 12:08
Павел Сосновских
 
я как-то писал "костыль", чтоб подарки выгружать для версии, где они еще не умели выгружаться
для дописывания в cashsail там был такой запрос
если что можно наверное его подправить
только 3 момента: это было для конвертера "стандартный CSV";
(чтобы потом подарки отличались от пробитых позиций) к номеру позиции прибавляется 5(в чеке 3 позиции и 2 подарка, значит, будут позиции 1,2,3,9,10);
4 первых поля (№места хранения, №кассы, №Z-отчета, №чека) в запросе не участвуют

select
(select max(ri.position)+1+IF(max(ri.position) = @b0_c, @rn := @rn + 1, @rn := 1 + LEAST(0, @b0_c := max(ri.position)))
from trm_out_receipt_item ri, (SELECT @rn := 1, @b0_c := '_') AS xx where ri.cash_id = rh.cash_id
and ri.receipt_header = rh.id) + 5 as id,
date_format(rh.date,'%d/%m/%Y') as date,
date_format(rh.date,'%k%i') as time,
rdg.item as cardarticul,
'NOSIZE' as cardsize,
'1.000' as quantity,
'0.00' as pricerub,
'0.00' as pricecur,
'0.00' as totalrub,
'0.00' as totalcur,
0 as department,
l.user_id as casher,
rh.stock_id as usingindex,
'1' as _replace,
'100' as credcardindex,
0 as disccliindex,
ifnull(rl.receipt_link_header,0) as linked
from trm_out_shift_open so
inner join trm_out_receipt_header rh on so.cash_id=rh.cash_id and so.id=rh.shift_open
inner join trm_out_receipt_discounts rd on rh.cash_id=rd.cash_id and rh.id=rd.receipt_header
inner join trm_out_receipt_discount_gifts rdg on rd.cash_id=rdg.cash_id and rd.id=rdg.receipt_discount
inner join trm_out_login l on rh.cash_id=l.cash_id and rh.login=l.id
left join trm_out_receipt_link rl on rh.cash_id=rl.cash_id and rh.id=rl.id
where rdg.item is not null
and rh.pos = ...
and so.number = ...
and rh.local_number = ...;
Опции темы


Часовой пояс GMT +3, время: 05:43.

 

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