+7 499 990-10-21

ДЭНСИ: КАССА без принтера

Re: ДЭНСИ: КАССА бес принтера

Сообщение af5gor » 31 окт 2014, 10:17

Бродяга_Джон писал(а):
Alexander писал(а):
Бродяга_Джон писал(а):если верно помню то 40 и 41 транзакция поле №9, код вида оплаты

Поле №10 - код вида оплаты (1 - нал, 2 - безнал)
В таблице transaction это колонка payment_type

сорри, я для формата Атол вписал

Прочитав это сообщения, я предположил, что заполняемость таблицы transaction зависит от выбранного формата. Действительно это так?
Ранее я предполагал, что формат влияет только на формирование файла выгрузки.
af5gor
 
Постов: 54
Зарегистрирован: 24 сен 2014, 22:44

Re: ДЭНСИ: КАССА бес принтера

Сообщение Alexander » 31 окт 2014, 11:34

af5gor писал(а):Прочитав это сообщения, я предположил, что заполняемость таблицы transaction зависит от выбранного формата. Действительно это так?

Нет, конечно.
Настройка формата влияет только в момент формирования файла выгрузки.
В терминах колонок таблиц это payment_type в transaction, в терминах файла отчета - "Поле №X" в заданном формате выгрузки.
Alexander
 
Постов: 4992
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: ДЭНСИ: КАССА бес принтера

Сообщение af5gor » 31 окт 2014, 14:15

С учётом последней полученной информации запрос должен быть таким:

Код: Выделить всё
SELECT 
   /* Внесение */
   sum(case when tr_type=50 then value_1 end ) as sum_in,
   sum(case when tr_type=50 then 1 end) as count_in,
   /* Выплаты */
   sum(case when tr_type=51  then value_1 end ) as sum_out,
   sum(case when tr_type=51 then 1 end) as count_out,
   /* Продажи налом*/
   sum(case when tr_type=55 AND check_type=0 AND payment_type=1 then value_1 end ) as sum_Sales,
   sum(case when tr_type=55 AND check_type=0 AND payment_type=1 then 1 end) as count_Sales,
   /* Продажи безналом*/
   sum(case when tr_type=55 AND check_type = 0 AND payment_type=2 then value_1 end ) as sum_Sales_bank,
   sum(case when tr_type=55 AND check_type = 0 AND payment_type=2 then 1 end) as count_Sales_bank,
   /* Возвраты наличкой */
   sum(case when tr_type=55 AND check_type = 1 then value_1 end ) as sum_Refund,
   sum(case when tr_type=55 AND check_type = 1 then 1 end) as count_refund,   
   /* Наличка в кассе на конец смена = временно для отладки*/
   sum(case when tr_type=50 then value_1 end ) -
sum(case when tr_type=51  then value_1 end ) +
   sum(case when tr_type=55 AND check_type = 0 then value_1 end ) - sum(case when tr_type=55 AND check_type = 1 then value_1 end ) as Cash
  FROM transaction tr   
   WHERE n_session=номер_последней_сессии


Остались несколько вопросов:
1. Я использую тип транзакции 55, а не 40 или 41 для подсчета налички упавшей в кассу. Это правильно?
2. Сумма нала или безнала из поля value_1 правильно?
3. Могу я рассчитывать на помощь в проверке SELECTа?
af5gor
 
Постов: 54
Зарегистрирован: 24 сен 2014, 22:44

Re: ДЭНСИ: КАССА бес принтера

Сообщение Alexander » 31 окт 2014, 14:42

1. В 55 транзакции поле payment_type не заполняется (чек может быть закрыт несколькими типами оплаты, поэтому в 55 транзакции это поле не имеет смысла).
2. В транзакции 40 поле value_1 - это сумма, полученная от клиента, а value_2 - сумма сдачи. Т.е. сумма оплаты по данному чеку данным типом оплаты равна (value_1 - value_2). Например, чек на сумму 150 руб., клиент дал 500 руб., сдача 350 руб. В этом случае в транзакции 40 value_1 = 500, value_2 = 350, сумма оплаты по чеку = value_1 - value_2 = 150 руб.
В транзакции 41 (оплата без сдачи) поле value_1 равно сумме чека.
3. Да. Проще всего SELECT проверить при использовании ФР - распечатать Z-отчет и сверить счетчики в нём с результатами запроса.
Alexander
 
Постов: 4992
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: ДЭНСИ: КАССА бес принтера

Сообщение af5gor » 14 ноя 2014, 16:14

Итог работы - файл LibreOffice Calc с макросом. Создает отчет по кассе и товарам.

Конструктивная критика приветствуется.
af5gor
 
Постов: 54
Зарегистрирован: 24 сен 2014, 22:44

Re: ДЭНСИ: КАССА бес принтера

Сообщение af5gor » 28 ноя 2014, 17:44

Подскажите пожалуйста чем отличается
n_check - номер чека от n_doc - номер документа?
af5gor
 
Постов: 54
Зарегистрирован: 24 сен 2014, 22:44

Re: ДЭНСИ: КАССА бес принтера

Сообщение Alexander » 28 ноя 2014, 18:30

На разных моделях ФР по-разному.
Но как правило номер чека - сквозной номер вне зависимости от типа чека (продажа/возврат), а номер документа зависит от типа чека.
Однако некоторые модели ФР двойной тип нумерации не поддерживают, а у других сквозной номер может включать еще и различные отчеты (X,Z и т.п.)
Alexander
 
Постов: 4992
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: ДЭНСИ: КАССА бес принтера

Сообщение af5gor » 06 дек 2014, 22:02

Нашел ошибку в своём скрипте. Оказалось, что если была отмена чека, то товар из отмененного чека попадает в отчет о продажах. С суммами при этом всё ОК.

Пример транзакций:
Код: Выделить всё
2553;11;"2014-12-04 17:25:26";1;0;3;47;712;711;0;"2255";;;0;"";90.000;1.000;;"";;;"";;90.000;;"";"Клеёнка хоз. голубая в клетку"
2554;56;"2014-12-04 17:25:26";1;0;3;47;712;711;0;"";;;;"";0.000;90.000;;"";;;"";;0.000;;"";""
2555;11;"2014-12-04 17:29:59";1;0;3;47;712;711;0;"2256";;;0;"";90.000;1.700;;"";;;"";;153.000;;"";"Клеёнка сиреневая"
2556;11;"2014-12-04 17:29:59";1;0;3;47;712;711;0;"2255";;;0;"";90.000;1.500;;"";;;"";;135.000;;"";"Клеёнка хоз. голубая в клетку"
2557;41;"2014-12-04 17:29:59";1;0;3;47;712;711;0;"";;;1;"";288.000;0.000;;"";;;"";;;;"";""
2558;55;"2014-12-04 17:29:59";1;0;3;47;712;711;0;"";;;;"";288.000;288.000;;"";;;"";;0.000;;"";""


:?: По какому признаку можно фильтровать записи из отмененного чека?
af5gor
 
Постов: 54
Зарегистрирован: 24 сен 2014, 22:44

Re: ДЭНСИ: КАССА бес принтера

Сообщение Alexander » 08 дек 2014, 13:32

Какого-то специального признака принадлежности к отмененному чеку у транзакций регистрации продаж нет. Только тип транзакции закрытия чека меняется с 55 на 56.
Насколько я помню, для построения встроенных программных отчетов используется SQL-конструкция
Код: Выделить всё
select ... where tr_date_time NOT IN (select tr_date_time from transaction where tr_type = 56)
Только вместо запроса по всей таблице transaction используется вьюшка, содержащая транзакции только за текущую смену.
Alexander
 
Постов: 4992
Зарегистрирован: 16 авг 2009, 23:34
Откуда: Техподдержка ГК ДЭНСИ

Re: ДЭНСИ: КАССА бес принтера

Сообщение af5gor » 09 дек 2014, 09:42

Alexander писал(а):Какого-то специального признака принадлежности к отмененному чеку у транзакций регистрации продаж нет. Только тип транзакции закрытия чека меняется с 55 на 56.
Насколько я помню, для построения встроенных программных отчетов используется SQL-конструкция
Код: Выделить всё
select ... where tr_date_time NOT IN (select tr_date_time from transaction where tr_type = 56)
Только вместо запроса по всей таблице transaction используется вьюшка, содержащая транзакции только за текущую смену.

Спасибо, Alexander!
Просто пару уточнений.
1.Вьюшка transaction_with_closed_check_by_last_session?
2.Получается что в момент транзакции типа 55 или 56 во всех ранее сделанных транзакциях 11 и 12 устанавливается одинаковый таймстамп?
af5gor
 
Постов: 54
Зарегистрирован: 24 сен 2014, 22:44

Пред.След.

Вернуться в Техподдержка

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21


cron

Кто сейчас на конференции

Сейчас посетителей на конференции: 21, из них зарегистрированных: 0, скрытых: 0 и гостей: 21 (основано на активности пользователей за последние 5 минут)
Больше всего посетителей (180) здесь было 29 апр 2024, 13:15

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21