Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форумы общения пользователей продуктов АТОЛ _ Frontol для Win32 — предприятия торговли _ Откладываение/Восстановление чеков

Автор: zenik 16.11.2018, 17:55

Есть желание видеть в выгрузке запись при откладывании и восстановлении чека. Поясню: есть у меня отчет - чековая лента. формируется в беке по данным с выгрузки. При откладывании чек "неожиданно" заканчивается и начинается другой. Потом в другом месте закрывается один чек и после него сразу еще одно закрытие. Выглядит "немного странно" и требует дополнительных комментариев со стороны программиста.
Поясню 2:
В некоторых подразделениях (удаленных) было разрешено закрывать смену при наличии отложенного чека. Когда вся эта эпопея с егаисом началась... народу сложно было сориентироваться - откладывали все подряд. А еще при этом 2 ФР на кассе, по одному сумма прошла, по другому нет... Разрыв шаблонов. По выгрузке ничерта не поймешь куда деньги ушли...
так что если вдруг будет желание сделать хорошо для пользователей - сделайте пжлста.

Автор: АТОЛ: Средних Владимир 16.11.2018, 21:49

Как вы себе это представляете?
Опишите, пожалуйста

Автор: zenik 17.11.2018, 16:27

Цитата(АТОЛ: Средних Владимир @ 16.11.2018, 21:49) *
Как вы себе это представляете?
Опишите, пожалуйста

№ транзакции = 53 - откладывание чека
№ транзакции = 54 - восстановление чека.
Заполняется по подобию транзакций 55, 56
В выгрузке выглядит примерно так:
Цитата
1;27.09.2018;9:11:24;42;18;104976;100686;;;;1;223;0;833;0;223;2;;;223,9;0;0;1;0;;18/833/104976;23;0;;;;;;;;0;0;;;;;;
2;27.09.2018;9:11:25;11;18;104976;100686;263932;;223,9;1;223;0;833;223;223;2;;;223,9;0;0;1;0;;18/833/104976;23;0;;;;0;;;0;;;;;0;;;;
3;27.09.2018;9:11:25;16;18;104976;100686;263932;;;1;0;0;833;223;223;2;;;0;0;0;1;0;;18/833/104976;23;0;;;;0;;;;;;;;;;;;
4;27.09.2018;9:11:25;14;18;104976;100686;263932;;1;1;0;0;833;223;223;2;;;0;;0;1;0;;18/833/104976;23;0;;;;;;;;;;;;;;;;
5;27.09.2018;9:11:26;53;18;104976;100686;;;0;1;223;0;833;0;223;2;0;;223,9;0;0;1;0;;18/833/104976;23;0;;;;;;;0;27.09.2018 9:11:26;0;0;;;;;;
6;27.09.2018;9:30:58;42;18;104977;100686;;;;1;36;0;833;0;36;2;;;36,9;0;0;1;0;;18/833/104977;23;0;;;;;;;;0;0;;;;;;
7;27.09.2018;9:30:59;11;18;104977;100686;128162;;36,9;1;36;0;833;36;36;2;;4607087361374;36,9;0;0;1;0
;;18/833/104977;23;0;;;;0;;;0;;;;;0;;;;
8;27.09.2018;9:30:59;16;18;104977;100686;128162;;;1;0;0;833;36;36;2;;4607087361374;0;0;0;1;0;;18/833/104977;23;0;;;;0;;;;;;;;;;;;
9;27.09.2018;9:30:59;14;18;104977;100686;128162;;1;1;0;0;833;36;36;2;;;0;;0;1;0;;18/833/104977;23;0;;;;;;;;;;;;;;;;
10;27.09.2018;9:31:20;40;18;104977;100686;;1;0;36;36;0;833;0;0;2;;1;;0;0;1;;;18/833/104977;23;;0;;;;;;;;
11;27.09.2018;9:31:20;43;18;104977;100686;;1;0;36;36;0;833;0;0;2;;1;;0;0;1;;;18/833/104977;23;;0;;;;;;;;
12;27.09.2018;9:31:20;49;18;104977;100686;;;0;;36;0;833;0;36;2;;;36,9;;0;1;0;;18/833/104977;23;0;;;;;;;;;;;;;;;;
13;27.09.2018;9:31:20;45;18;104977;100686;;;0;0;36;0;833;0;;2;;;0;;0;1;0;3817567458;5543/19174/102;23;0;;;;;;0;0 - Ошибок нет,0 - Ошибок нет,0 - Ошибок нет;;;;;;;;;
14;27.09.2018;9:31:20;55;18;104977;100686;;;0;1;36;0;833;0;36;2;0;;36,9;0;0;1;0;;18/833/104977;23;0;;;;;;;0;27.09.2018 9:30:58;0;0;;;;;;
15;27.09.2018;9:41:27;54;18;104976;100686;;;0;1;223;0;833;0;223;2;0;;223,9;0;0;1;0;;18/833/104976;23;0;;;;;;;0;27.09.2018 9:41:27;0;0;;;;;;
16;27.09.2018;9:41:29;40;18;104976;100686;;1;0;250;250;0;833;0;0;2;;1;;0;0;1;;;18/833/104976;23;;0;;;;;;;;
17;27.09.2018;9:41:29;43;18;104976;100686;;1;0;250;250;0;833;0;0;2;;1;;0;0;1;;;18/833/104976;23;;0;;;;;;;;
18;27.09.2018;9:41:29;40;18;104976;100686;;1;0;-27;-27;0;833;0;0;2;;1;;0;0;1;;;18/833/104976;23;;0;;;;;;;;
19;27.09.2018;9:41:29;43;18;104976;100686;;1;0;-27;-27;0;833;0;0;2;;1;;0;0;1;;;18/833/104976;23;;0;;;;;;;;
20;27.09.2018;9:41:29;49;18;104976;100686;;;0;;223;0;833;0;223;2;;;223,9;;0;1;0;;18/833/104976;23;0;;;;;;;;;;;;;;;;
21;27.09.2018;9:41:29;45;18;104976;100686;;;0;0;223;0;833;0;;2;;;0;;0;1;0;2652905247;5542/19173/102;23;0;;;;;;0;0 - Ошибок нет,0 - Ошибок нет,0 - Ошибок нет;;;;;;;;;
22;27.09.2018;9:41:29;55;18;104976;100686;;;0;1;223;0;833;0;223;2;0;;223,9;0;0;1;0;;18/833/104976;23;0;;;;;;;0;27.09.2018 9:11:23;0;0;;;;;;


Вроде не сложная доработка должна быть dry.gif

Автор: АТОЛ: Средних Владимир 18.11.2018, 2:10

Простите, я наверно слегка туповат.
Не могли бы вы словами сформулировать, что и как записывается в транзакцию?
Если чек три раз откладывался и восстанавливался - как быть?

Автор: zenik 18.11.2018, 16:51

Цитата(АТОЛ: Средних Владимир @ 18.11.2018, 2:10) *
Простите, я наверно слегка туповат.
Не могли бы вы словами сформулировать, что и как записывается в транзакцию?
Если чек три раз откладывался и восстанавливался - как быть?

Я исходниками фронтола не владею, мне сложно судить про внутреннюю кухню, но думаю у нас есть как минимум 2 варианта реализации. К примеру у нас есть операция "отмена чека" - она пишется в транзакции. И есть операция "восстановления отмененного чека". Оменять и восстанавливать я могу тоже хоть 3, хоть 4 раза. Фронтола под рукой сейчас нет и как там рисуются транзакции - посмотреть не могу. Но как то работает wink.gif (интуитивно предполагаю, что 56 транзакция меняется на 55 и всего делов). Но это не наш путь - ибо это не тру.

Второй путь - запись каждой операции откладывания/восстановления. 3 раза - так 3 раза.

К примеру:
Покупатель подошел с 1 товаром - пробили - 11 транзакция
Вспомнил что забыл что то - Отложили чек - 53 транзакция, пробили товары по другому чеку.
Восстановили отложенный = 54 транзакция, добавили товар - 11 транзакция. Перешли в расчет, а этот деятель еще и кошелек в машине забыл - отложили = 53....
Вернулся - еще пакет попросил... 54,11,41,43,45,49,55...
Суммы записываем по факту на момент отложили/восстановили. Важно знать, что чек меняет состояние dry.gif
Думаю как то так...

Автор: АТОЛ: Средних Владимир 19.11.2018, 6:58

А потом вы как это использовать будете?
Я - не представляю пока.

Автор: zenik 19.11.2018, 11:23

Цитата(АТОЛ: Средних Владимир @ 19.11.2018, 6:58) *
А потом вы как это использовать будете?

Открыли в городе магазин в котором есть все. ну пришел мужик.
- Есть у вас перчатки?
- Да есть. Вам какие?
- Коричневые.
- А вы их с чем носить будете?
- С пальто.
- А вы принесите нам пальто, что бы лучше цвет подобрать.
Тут другой мужик подходит и говорит:
- Не слушайте вы их, я уже и жопу показывал и унитаз приносил, а туалетную бумагу так и не купил...

Так вот, к чему это я... Есть у меня отчет... Чековая лента. Красивый. Давайте скрин покажу: https://yadi.sk/i/at1qVgtCXJe6aA
вот... идет чек, а после него хуяк... и новый чек. информации о расчете в чеке нет. Информации об отмене чека - тоже нет. Спрашивают у меня - "вас ис дас?". Я себе не доверяю - ищу косяк... мало ли - не догрузились транзакции. Просто чек отложили. А была бы там транзакция - я бы написал: "чек отложен". Красным цветом бы написал.
Листаем чековую ленту дальше: https://yadi.sk/i/s2AmsiSgHpG4OA и опять меня зовут... и опять страшивают - "ватс а фак?" А была бы там транзакция - я бы написал - чек восстановлен. Синим бы цветом написал... Да синий тут подойдет.

А еще вот какая история у меня случилась: звонят с удаленки и жалуются что отчет о продажах не совпадает по сумме с бумажкой с кассы. Начинаем рыть. Тут маленькое отступление - все выгрузки я записываю в БД MSSQL... по полям все разделено, каждая транзакцию в новую запись... поэтому могу следать так: (номера полей совпадают с номерами полей во фронтол)
Код
DECLARE @CashID SMALLINT
DECLARE @DT DATETIME

-- Параметры
SET @CashID = 15                -- Номер кассы
SET @DT = '20181029 00:00:00'    -- Дата

DECLARE @BEGIN DATETIME
DECLARE @END DATETIME

SET @BEGIN = dbo.BeginDay(@DT)
SET @END = dbo.EndDay(@DT)

DECLARE @@R TABLE (R23 SMALLINT, R4 SMALLINT, R17 SMALLINT, R10 REAL, R11 REAL, R12 REAL, R16 REAL)

INSERT INTO
    @@R
SELECT
    R23, R4, R17, SUM(R10) AS R10, SUM(R11) AS R11, SUM(R12) AS R12, SUM(R16) AS R16
FROM
    Report
WHERE
    R5 = @CashID AND DT BETWEEN @BEGIN AND @END
GROUP BY
    R23, R4, R17

INSERT INTO
    @@R
SELECT
    R2.R23, 0, R2.R4, R1.R10 + R2.R10, R1.R11 + R2.R11, R1.R12 + R2.R12, R1.R16 + R2.R16
FROM
    @@R AS R1
    LEFT JOIN
        @@R AS R2
            ON R1.R23 = R2.R23
            AND R2.R4 = 12
            AND R1.R17 = R2.R17
WHERE
    R1.R4 = 11
    AND R2.R23 IS NOT NULL

SELECT
    R.*, D.Name
FROM
    @@R AS R
LEFT JOIN
    dbo.DescriptTransaction AS D
        ON D.ID = R.R4
WHERE
    R.R4 NOT IN (40, 42, 55, 62, 120)
ORDER BY
    R4, R23, R17

Говоря простым языком: вижу накопленные суммы по каждой транзакции, в разрезе групп печати. (дополнительная запись нужна для вычитания 11 и 12 транзакции, что бы руками не считать суммы. сервис для ленивых.) И тут я вижу, что по 11 транзакции сумма не совпадает ни с 43 ни с 49 транзакцией... Но в 11 транзакции я вижу "ожидаемую суммы". так, ну я же себе не доверяю в первую очередь... поэтому проверяем непрерывность выгрузки. выгрузка непрерывна. еще раз запрашиваю выгрузку с кассы - результат не меняется. Делаю вывод что поломалась база и прошу прислать мне базу. Мне присылают базу и в базе я нахожу отложенный чек, закрытый по одной группе печати и не закрытый по другой. Времени потрачено дох... много... А вот была бы у меня транзакция - она была бы видна. и вывод о том, что чек отложен можно было сделать сразу. Эта история случилась не потому, что я такой тупой и не могу сразу это понять. Просто у меня на магазинах нельзя закрыть смену с отложенным чеком... и за мой не малый опыт работы - такого со мной не случалось и понять это быстро у меня не хватило опыта.

Теперь я про отложенные чеки помню... точнее должен помнить. А вот если в выгрузке будет информация, то мне не надо будет про это помнить... и освободившееся место можно будет наполнить более приятными воспоминаниями.

Что еще? А как я себе это представляю: откладывается чек - в транзакции делается запись, к примеру, с номером 53. Почему 53? Она не занята... и она логически встает в ряд с 55 и 56 транзакцией. Восстанавливаем чек - записываем транзакцию 54. Откладываем - 53. Восстанавливаем - 54. Откладываем - 53... Восстанавливаем... Но это уже на уровне бреда конечно. в "штатном режиме" обычно чек откладывается 1 раз. Важная информация в транзакции: дата, время, смена, номер чека, кассир... (это потом можно соединить с началом чека SQL запросом) 10, 11, 12, 16 поля - по вкусу, но было бы неплохо, если там будет информация.

В режиме он-лайн (да у меня читается оперативная сводка, и чековую ленту можно видеть тут же), 42 транзакцию можно соединить с 55 или 56... или получить хрен... ну то есть null в случае отложенного чека, но это будет предположение. А программа которая показывает аналитику не должна делать никаких предположений.

Автор: zenik 19.11.2018, 14:54

Цитата(zenik @ 19.11.2018, 11:23) *
В режиме он-лайн (да у меня читается оперативная сводка, и чековую ленту можно видеть тут же), 42 транзакцию можно соединить с 55 или 56... или получить хрен... ну то есть null в случае отложенного чека, но это будет предположение.

В опер-сводку не пишутся отложенные чеки
Но это не отменяет пожелание касательно других вариантов применения. dry.gif

Автор: АТОЛ: Средних Владимир 19.11.2018, 15:34

Вообще-то, у документа есть статус.
См. руководство Интегратора

Цитата
18.44. Document/Документы
...
12 State Integer
Состояние документа:
 0 – открыт;
 1 – закрыт;
 2 – отменён;
 3 – отложен;
 4 – зарезервирован.

Автор: АТОЛ: Царюков Роман 19.11.2018, 15:39

Цитата(АТОЛ: Средних Владимир @ 19.11.2018, 15:34) *
Вообще-то, у документа есть статус.
См. руководство Интегратора

Так это БД фронтола )

Автор: zenik 19.11.2018, 15:42

Цитата(АТОЛ: Средних Владимир @ 19.11.2018, 15:34) *
Вообще-то, у документа есть статус.
См. руководство Интегратора

У вас там либо школа специальная? "как правильно отвечать на форуме" blink.gif

Автор: Сергей Гуревич 13.3.2019, 11:30

АПну тему. Нужна транзакция для откладывания/восстановления

Автор: POUL 13.3.2019, 13:11

Цитата(zenik @ 19.11.2018, 15:42) *
У вас там либо школа специальная? "как правильно отвечать на форуме" blink.gif


Роман там директор smile.gif

Автор: АТОЛ: Средних Владимир 13.3.2019, 13:11

И...?
Что вы с ней будете делать, опишите.

Вот у вас в выгрузке закрытый чек, который один раз откладывали.
Или два раза откладывали.
И...?

Автор: zenik 13.3.2019, 13:28

Цитата(АТОЛ: Средних Владимир @ 13.3.2019, 13:11) *
И...?
Что вы с ней будете делать, опишите.

Вот у вас в выгрузке закрытый чек, который один раз откладывали.
Или два раза откладывали.
И...?

Мы будем знать ЗАКРЫЛИ отложенный чек или нет. Я уже приводил примеры - выше написано зачем, но от вас только одно"я тупой - я не понимаю".
Вот идут транзакции по чеку... 11,16,14,17... а потом идут такие же только уже от другого чека... внезапно... Вот вы как программист который выгружает данные поставьте себя на место программиста который загружает данные и попытайтесь понять, как вы будете ОДНОЗНАЧНО трактовать ситуацию, когда внезапно в середине чека идет другой чек. Откуда он взялся?

Автор: АТОЛ: Средних Владимир 13.3.2019, 13:48

Если у вас в выгрузке такие данные, значит в БД испорчены данные.

В выгрузку НЕ ПОПАДАЕТ НИ ОДИН незакрытый чек.
Если чек попал в выгрузку - значит он считается закрытым.

Автор: zenik 13.3.2019, 13:59

Цитата(АТОЛ: Средних Владимир @ 13.3.2019, 13:48) *
Если у вас в выгрузке такие данные, значит в БД испорчены данные.

В выгрузку НЕ ПОПАДАЕТ НИ ОДИН незакрытый чек.
Если чек попал в выгрузку - значит он считается закрытым.

Я приводил пример, когда 2 ГП, по одной чек закрыли по другой нет. Зетка с кассы говорит одну сумму, выгрузка другую. Касса от меня за 150 км... доступа у меня к ней нет. Есть только выгрузка. Вот сидишь, смотришь на выгрузку и думаешь - либо там базе 3.14-здец либо там еще что. dry.gif

Да, я понимаю теперь, почему вы этого не сделаете... Что даже в этом случае - я все равно не увижу этот чек и транзакций по нему...

Автор: POUL 13.3.2019, 14:35

расскажите лучше подробнее о проблеме

Автор: zenik 13.3.2019, 14:50

Цитата(POUL @ 13.3.2019, 14:35) *
расскажите лучше подробнее о проблеме

Да не издевайтесь вы надо мной. Если лениво читать сначала - хули толку что я буду по 3 раза писать blink.gif
Первое пожелание было, что бы в отчет можно было выводить чек последовательно. В принципе решается собиранием чека от момента закрытия.
Второе - когда при закрытии чека по 2-м ГП на одном ФР закрытие проходило на втором нет. Чек не будет выгружен совсем. Поэтому не будет и транзакции со сторно, даже если бы они были.
Тема исчерпана, можно закрыть.

Автор: Сергей Гуревич 13.3.2019, 18:43

Ну я бы совсем не закрывал тему. Нам например нужно знать количество отложенных для того что бы контролировать продавцов. Заведки будут знать сколько отложенных и разбираться в причинах. Просто механизмом откладывания часто злоупотребляют. Запрет закрытия смены если есть отложенные, тоже не подходит. Не очень охота итшникам 23:00 в субботу разбираться с чеками.

Автор: АТОЛ: Царюков Роман 13.3.2019, 19:13

Вот прям если ток количество и если прям оч надо, то считайте их и пишите в глобальную переменную

Автор: zenik 13.3.2019, 21:15

Цитата(Сергей Гуревич @ 13.3.2019, 18:43) *
Нам например нужно знать количество отложенных для того что бы контролировать продавцов.

Чек который отложен и не закрыт - не будет выгружен. Про что и разговор. Так что будет там транзакция или нет - вы ее все равно не увидите... Это тогда надо и делать выгрузку отложенных чеков, что будет ломать сам механизм выгрузки, так как не в каждой товароучетке будет учтено наличие отложенных чеков... Вот и вся песня.

Автор: АТОЛ: Царюков Роман 13.3.2019, 21:26

Цитата(zenik @ 13.3.2019, 21:15) *
Чек который отложен и не закрыт - не будет выгружен. Про что и разговор. Так что будет там транзакция или нет - вы ее все равно не увидите... Это тогда надо и делать выгрузку отложенных чеков, что будет ломать сам механизм выгрузки, так как не в каждой товароучетке будет учтено наличие отложенных чеков... Вот и вся песня.

Тут другая песня нужна - про количество и расстрел кассиров

Автор: алексас 6.8.2019, 12:58

Прям вот понадобилось видеть количество и на какие позиции отложили чеки.

Вот в настройках фронтола есть 118 галочек что делать при закрытии смены.
А можно 119 галочку - "Выгрузить отложенные чеки."

А туда выгружаем как есть (как предусмотрено обычной выгрузкой) тогда и не придётся ломать механизм выгрузки. Только имя файла будет другим (). Наши товароучётки будут сами сортировать откуда брать товарные отчёты, а откуда брать остальное...

Очень надобно...

Автор: zenik 6.8.2019, 14:06

Цитата(алексас @ 6.8.2019, 12:58) *
Очень надобно...

Если вы пытаетесь на отложенные чеки возложить какой то бизнес-процесс, то не надо этого делать, оно совсем не для этого.

Автор: алексас 6.8.2019, 23:20

Цитата(zenik @ 6.8.2019, 14:06) *
Если вы пытаетесь на отложенные чеки возложить какой то бизнес-процесс, то не надо этого делать, оно совсем не для этого.



Да какой нафиг бизнес процесс. Хочется возложить административный процесс. Контроль со стороны администратора системы.
про егаис наверное слыхали. Дык вот некоторые ошибки приводят к остановке кассы. И есть только один вариант не копить очередь, пока кассир позвонит, оператор проверит и т д. Чек не закрывается при ошибке того-же доброекучево егаис. Попробуйте закрыть чек при продаже тогоже алкоголя который проведён по карте, деньги списались, а оператор забыла подтвердить накладную в егаис (можно не подтверждать в регламентный срок). Дык вот есть один вариант - отлоджить чек. и дальше с ним разбираться. сейчас фронтол предлагает этот процесс пустить на самотёк. Вы-ж поймите что у кассира нет возможности сразу выявить проблему. Этот рычаг есть только у администратора системы. Фронтол же всётаки не счёты. Это-ж инструмент, програмно-аппаратный комплекс который может нам помочь, как администраторам. Но помогите и Вы нам контролить что делают наши директора, продавцы, операторы. Этож не сильно затруднительно сделать выгрузку ещё и по отложенным чекам. Ведь не сильно сложно. Тем более мы-ж не бесплатно просим. Заранее спасибо!

Помогите вытаскивать эту информацию относительно отложенных чеков.

ps Часто продавцы не виноваты что им приходится показывать обходные пути. Они и знать не знали. Но когда приходится удалённо подключаться и всё одно сбрасывать чеки, рано или поздно приходится им показывать как обойти. Этож не правильно.

Автор: АТОЛ: Царюков Роман 7.8.2019, 7:34

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

Автор: zenik 7.8.2019, 9:55

Цитата(алексас @ 6.8.2019, 23:20) *
Попробуйте закрыть чек при продаже тогоже алкоголя который проведён по карте, деньги списались, а оператор забыла подтвердить накладную в егаис (можно не подтверждать в регламентный срок). Дык вот есть один вариант - отлоджить чек. и дальше с ним разбираться.

blink.gif Нормальный подход. А покупатель что должен при этом делать? Тоже ждать, когда придет "умелец дел административных"?
Отменить платеж, предложить другую бутылку, которую подтвердили в егаисе... Не надо решать проблемы учета за счет отложенных чеков.

Автор: АТОЛ: Средних Владимир 7.8.2019, 10:07

Цитата(алексас @ 6.8.2019, 23:20) *
Помогите вытаскивать эту информацию относительно отложенных чеков.

В настоящий момент что-то такое можно организовать через печать отчета (см. Системные справочники\Прочее\Отчеты)
отчет можно сохранить в файл (смотрите использование функции ExportReport)
и отправить его (к примеру, банально CreateOleObject() + запуск утилиты которая отправит в сетевую папку /почту/FTP)

Автор: lmlg1 23.5.2022, 14:30

Цитата(АТОЛ: Средних Владимир @ 7.8.2019, 10:07) *
В настоящий момент что-то такое можно организовать через печать отчета (см. Системные справочники\Прочее\Отчеты)
отчет можно сохранить в файл (смотрите использование функции ExportReport)
и отправить его (к примеру, банально CreateOleObject() + запуск утилиты которая отправит в сетевую папку /почту/FTP)

Здравствуйте, итого прошло 3года, появилась какая нибудь возможность выгружать, запрашивать список отложенных чеков и кассы для административного контроля без дописываний?

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)