05.03.2024 13:26
Добрый день.

Админ переустановил кассу и начались проблемы с балансом на картах клиентов. С начала месяца, после начисления баланса всем клиентам, первый чек проходит у всех в штатном режиме, и баланс нормальный: первоначальный минус сумма чека. А на последующих чеках отображается остаток на карте такой: реальный остаточный баланс минус сумма всех предыдущих чеков с начала месяца. Помогите информацией пожалуйста, как на кассе производится расчет баланса?
05.03.2024 15:12
Цитата:
stark как на кассе производится расчет баланса?
Зависит от настроек счета - режим синхронизации сервера с кассой - репликацией или запросом к серверу.
Были расхождения на счете "репликацией", осталась запись примерно такого вида:
Цитата:
На сервере для проблемных счетов обеспечить trm_in_offline_account.balance = local_auth_account_journal.balance и реплицировать trm_in_offline_account или ее домен с сервера вниз.
05.03.2024 15:56
Кто уже пробивал чеки, у них local_auth_account_journal.balance <> trm_in_offline_account.balance. Но на начала месяца были равны.
В таблице trm_in_offline_account по тем клиентам что я смотрел все синхронно.

Если кассу отключить от сети, то считает баланс правильно. Была покупка на 1,8 руб. и баланс показал 998,2 (первоначальный был 1000).
Как только подключили к сети, баланс уже 996,4 руб.

Предыстория такая: Файл базы на кассе был аннулирован, не знаю каким образом, но размер его был ноль. Естественно касса не запускалась.
Мы с админом чтобы не переустанавливать кассу, решили заменить файл базы старым файлом, когда то скопированным с этой кассы.
Касса заработала, НО, чеки на сервер не попали. В итоге кассу таки переустановили, на сервере я в табличку local_auth_account_journal добавил записи
для правильного отображения баланса. Но теперь вот такая проблема с балансом на кассе. Понимаю теперь что не надо было так делать, но что уж.
05.03.2024 17:25
Есть еще табличка trm_offline_account_local_transaction.
В норме для оффлайн-счетов она временно хранит операции счета, сервер переносит их в trm_in_offline_account и удаляет с кассы.
Если по какой-то причине trm_offline_account_local_transaction не чистится, то как раз получится "задвоение" списания - уменьшится баланс и касса дополнительно вычтет локальные операции.
05.03.2024 17:29
Таки записей в этой табличке много
05.03.2024 17:47
Можно после закрытия смены почистить эту табличку на кассе?
05.03.2024 17:55
Значение имеют записи с deleted=0
Если их много, ищите ошибки в логе сервера/кассы.
05.03.2024 17:58
Цитата:
stark Можно после закрытия смены почистить эту табличку на кассе
Наверно можно, у меня проблемы с ней были лет 5 назад при обновлении, вроде очищал.
07.03.2024 11:07
Цитата:
vdm Есть еще табличка trm_offline_account_local_transaction.
В норме для оффлайн-счетов она временно хранит операции счета, сервер переносит их в trm_in_offline_account и удаляет с кассы.
Если по какой-то причине trm_offline_account_local_transaction не чистится, то как раз получится "задвоение" списания - уменьшится баланс и касса дополнительно вычтет локальные операции.
Да, дело в этой таблице. Но не понятно почему не очищается, в логах ничего подозрительного не нашел.
В trm_in_offline_account данные что на кассе, что на сервере корректные. На кассе не корректные данные в trm_out_aoo.balance_before и trm_out_aoo.balance_after из за того что
trm_offline_account_local_transaction не чистится. А на сервере trm_out_aoo.balance_before и trm_out_aoo.balance_after корректные и trm_offline_account_local_transaction пустая.

В trm_offline_account_local_transaction.deleted на кассе записал 1. И на сервере было несколько записей старых trm_offline_account_local_transaction.deleted = 0, тоже пометил 1.
Думал в этом дело, но на кассе все равно записи не удаляются.
07.03.2024 11:11
https://storage.olegon.ru/supermag/u...4-03-05.log.7z
(0.03Мб)

Вот к примеру файл лога за смену
Часовой пояс GMT +3, время: 15:35.

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