Class CashcheckServiceImpl
java.lang.Object
ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
ru.bitel.bgbilling.kernel.container.service.server.AbstractService
ru.bitel.bgbilling.plugins.cashcheck.server.CashcheckServiceImpl
- All Implemented Interfaces:
CashcheckService
public class CashcheckServiceImpl
extends ru.bitel.bgbilling.kernel.container.service.server.AbstractService
implements CashcheckService
-
Field Summary
Fields inherited from class ru.bitel.bgbilling.kernel.container.service.server.AbstractService
context, moduleId, NO_SELECT, userId -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionvoidbindPrinter(int registratorId, String password) Привязка принтера к пользователю.voidbuzzer()Гудок.voidАннулирование чека.voidcheckManualPrint(int checkMode, int paymentType) Предварительная (перед printCheck, returnCheckCharge) проверка возможности напечатать чек указанного типа, плюс так же как те методы кидает BGPrinterNotloggedMessageException и можно сразу рисовать логин.voidПродолжение печати (например после отсутствия бумаги итд итп)intdeleteNewCheck(int checkMode, List<Integer> logIds) Удаление new-чеков из лога.voidОтчёт по сменам.название текущего принтера в человеческом виде, либо надпись типа "не залогинен" итдСтатус устройства.voidhelloPrinter(int registratorId, String password) Привет.voidinit()logTable(Set<Integer> cids, int printerId, int checkType, Boolean erroredType, String posMapping, Period period, Page page) Получение лога уже напечатанных чеков (и платежей и возвратов).logTableOnlyId(Set<Integer> cids, int printerId, int checkType, Boolean erroredType, String posMapping, Period period) Аналог метода "получение лога уже напечатанных платажей" но возвращает все id (log-id, не payment-id!)voidopenDay()Открытие смены.Все маппинги когда-либо используемые в логах, для фильтра, например.printCheck(List<Integer> paymentIds, BigDecimal clientsumma) Печать чека.printCheckBatchAuto(List<Integer> paymentIds) Метод аналогичный printCheck но запускается только из очереди.printCheckErrorAsIs(List<Integer> logIds) Будет ВЗЯТО СТАРОЕ СОДЕРЖИМОЕ и отправлено на перепечать несколько чеков, напечатанных с ошибками.printCheckErrorDyncode(List<Integer> logIds) Будут ЗАНОВО ПРОГНАНЫ ЧЕРЕЗ ДИН.КОД и отправлены на перепечать несколько чеков, напечатанных с ошибками Возьмётся только id платежа и выполнится вся процедура печати сначала для каждого платежа/чека.voidqueueTable(Period period, Page page, int printerId, int checkType) Список очереди нераспечатанных (и платежей и возвратов).Возвращает список регистраторов. доп.атрибут registratorId.voidПовтор последнего документаreturnCheckCharge(int chargeId) Возврат продажи, привязанный к создаваему расходу, по аналогии с обычным чеком на приход.voidrunAdvancePayments(LocalDate month, List<Integer> contractsIds) Запуск задачи зачётов авансов вручнуюsendPureCommand(String hexdump) Выполнение любой бинарной команды.voidXReport()voidZReport()Methods inherited from class ru.bitel.bgbilling.kernel.container.service.server.AbstractService
getChargeTypeDirectory, getConnection, getConnectionSet, getContract, getModuleSetup, getPaymentTypeDirectory, getReserveTypeDirectory, getServiceDirectory, getSetup, getSlaveConnection, getTrashConnection, getUserConfig, getUserInfoDirectory, resetModuleSetup, tryCall, tryReturnMethods inherited from class ru.bitel.bgbilling.kernel.base.server.logger.BGLogger
error, error, error, getLogger, logError, logError, warn
-
Constructor Details
-
CashcheckServiceImpl
public CashcheckServiceImpl()
-
-
Method Details
-
init
@PostConstruct public void init() -
bindPrinter
public void bindPrinter(int registratorId, String password) throws ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceПривязка принтера к пользователю. Сохраняет для юзера номер регистратора и пароль. Пробует просто снять статус регистратора с этим паролем. Если всё прошло как нельзя лучше - данные сохраняются, иначе в любом случае все данные о залогинивании, увы, стираются. Принимает регистратор, который мы хотим привязать к себе и его пароль:- Specified by:
bindPrinterin interfaceCashcheckService- Parameters:
registratorId- ид регистратора, или 0 если надо сделать разлогин.password- пароль принтера.- Throws:
ru.bitel.bgbilling.common.BGException
-
buzzer
public void buzzer() throws ru.bitel.bgbilling.common.BGExceptionDescription copied from interface:CashcheckServiceГудок.- Specified by:
buzzerin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
cancelCheck
public void cancelCheck() throws ru.bitel.bgbilling.common.BGExceptionDescription copied from interface:CashcheckServiceАннулирование чека.- Specified by:
cancelCheckin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
continuePrint
public void continuePrint() throws ru.bitel.bgbilling.common.BGExceptionDescription copied from interface:CashcheckServiceПродолжение печати (например после отсутствия бумаги итд итп)- Specified by:
continuePrintin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
divReport
public void divReport() throws ru.bitel.bgbilling.common.BGExceptionDescription copied from interface:CashcheckServiceОтчёт по сменам. Нефискальный.- Specified by:
divReportin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
openDay
public void openDay() throws ru.bitel.bgbilling.common.BGExceptionDescription copied from interface:CashcheckServiceОткрытие смены.- Specified by:
openDayin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
getCurrentPrinter
Description copied from interface:CashcheckServiceназвание текущего принтера в человеческом виде, либо надпись типа "не залогинен" итд- Specified by:
getCurrentPrinterin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
getRegistratorStatus
Description copied from interface:CashcheckServiceСтатус устройства.- Specified by:
getRegistratorStatusin interfaceCashcheckService- Returns:
- строка статуса разбитая по линиям итд.
- Throws:
ru.bitel.bgbilling.common.BGException
-
helloPrinter
public void helloPrinter(int registratorId, String password) throws ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceПривет. Проверяется наличие принтера и пробуется туда приветствие напечатать. Никаких действий по запоминанию логина после логина не производится. Регистратор, который мы хотим проверить и его пароль:- Specified by:
helloPrinterin interfaceCashcheckService- Parameters:
registratorId-password- пароль (если не задан, то пытаемся взять куда залогинены. это если в клиенте уже вошли на этот момент)- Throws:
ru.bitel.bgbilling.common.BGException
-
printCheck
public PrintCheckData printCheck(List<Integer> paymentIds, BigDecimal clientsumma) throws ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceПечать чека. Вызывается аж из трёх сейчас мест - из очереди, из списка платежей в контракте, и из диалога добавления прихода, при условии, что стоит галочка. Сейчас для всех этих трёх способов разницы тут нет - везде передаётся только ИД платежа, возможно, несколько (несколько можно напечатать из всех трёх мест: при печати из лога, из таблицы платежей и по галке, если стоит распределение платежей). Также сумма от клиента используется. Внутри уже проверяется возможность печати итд.- Specified by:
printCheckin interfaceCashcheckService- Parameters:
paymentIds- несколько ИД платежей.clientsumma- сумма от клиента.- Throws:
ru.bitel.bgbilling.common.BGException
-
printText
- Specified by:
printTextin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
queueTable
public Result<Payment> queueTable(Period period, Page page, int printerId, int checkType) throws ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceСписок очереди нераспечатанных (и платежей и возвратов).- Specified by:
queueTablein interfaceCashcheckService- Parameters:
period- периодpage- пагинацияprinterId- регистратор для которого получить (0, -1 -- возмётся "текущий" как раньше)checkType- 0 - чеки платежей, 1 - чеки возврата- Returns:
- доп.атрибуты registratorBindedName, registratorId, fiscalStart.
- Throws:
ru.bitel.bgbilling.common.BGException
-
registratorList
Description copied from interface:CashcheckServiceВозвращает список регистраторов. доп.атрибут registratorId. Возвращаются только не-hidden устройства.- Specified by:
registratorListin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
repeatCheck
public void repeatCheck() throws ru.bitel.bgbilling.common.BGExceptionDescription copied from interface:CashcheckServiceПовтор последнего документа- Specified by:
repeatCheckin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
returnCheckCharge
public PrintCheckData returnCheckCharge(int chargeId) throws BGPrinterNotloggedMessageException, ru.bitel.bgbilling.common.BGMessageException, ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceВозврат продажи, привязанный к создаваему расходу, по аналогии с обычным чеком на приход.- Specified by:
returnCheckChargein interfaceCashcheckService- Parameters:
chargeId- ид расхода- Returns:
- сдача(?)
- Throws:
BGPrinterNotloggedMessageExceptionru.bitel.bgbilling.common.BGMessageExceptionru.bitel.bgbilling.common.BGException
-
sendPureCommand
Description copied from interface:CashcheckServiceВыполнение любой бинарной команды.- Specified by:
sendPureCommandin interfaceCashcheckService- Parameters:
hexdump- дамп в виде hex.- Returns:
- ответ от железки
- Throws:
ru.bitel.bgbilling.common.BGException
-
XReport
public void XReport() throws ru.bitel.bgbilling.common.BGException- Specified by:
XReportin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
ZReport
public void ZReport() throws ru.bitel.bgbilling.common.BGException- Specified by:
ZReportin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
logTable
public Result<Payment> logTable(Set<Integer> cids, int printerId, int checkType, Boolean erroredType, String posMapping, Period period, Page page) throws ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceПолучение лога уже напечатанных чеков (и платежей и возвратов). "Залогиненный" принтер не учитывается.- Specified by:
logTablein interfaceCashcheckService- Parameters:
cids- фильтр по договорам, если null или пустой - то по всемprinterId- фильтр по ККМ, или 0, если по всемcheckType- 0 - чеки платежей, 1 - чеки возвратаerroredType- null - все чеки, true - только с ошибками, false - только без ошибокposMapping- фильтр по маппингу, null - все, строка - только с указанным маппингомperiod- периодpage- пагинация- Returns:
- список платежей в виде Result. Список не null всегда.
- Throws:
ru.bitel.bgbilling.common.BGException
-
logTableOnlyId
public List<Integer> logTableOnlyId(Set<Integer> cids, int printerId, int checkType, Boolean erroredType, String posMapping, Period period) throws ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceАналог метода "получение лога уже напечатанных платажей" но возвращает все id (log-id, не payment-id!) соответствующие (не учитывая пагинацию, конечно)- Specified by:
logTableOnlyIdin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
printCheckBatchAuto
public String printCheckBatchAuto(List<Integer> paymentIds) throws ru.bitel.bgbilling.common.BGMessageException, ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceМетод аналогичный printCheck но запускается только из очереди. Проверяется что режим auto. По-нормальному auto там не должны оставаться (а попадать в лог с ошибкой), метод на всякий случай для допечати тех которые внесли для фискализации позже, например. В итоге запускается таск в планировщике. manual печатаются методом ручным. delay печатаются своей задачей, она эти платежи в очереди подцепит в штатном режиме.- Specified by:
printCheckBatchAutoin interfaceCashcheckService- Parameters:
paymentIds- список платежей.- Returns:
- какое-то сообщение.
- Throws:
ru.bitel.bgbilling.common.BGMessageExceptionru.bitel.bgbilling.common.BGException
-
printCheckErrorDyncode
public String printCheckErrorDyncode(List<Integer> logIds) throws ru.bitel.bgbilling.common.BGMessageException, ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceБудут ЗАНОВО ПРОГНАНЫ ЧЕРЕЗ ДИН.КОД и отправлены на перепечать несколько чеков, напечатанных с ошибками Возьмётся только id платежа и выполнится вся процедура печати сначала для каждого платежа/чека. Каждый будет напечатан на соответствующем по настройкам фискализаторе. После обработки записи останутся в логе с успехом или ошибкой (новой или той же). Чеки должны быть привязаны к платежу. Печатаются асинхронно в планировщике.- Specified by:
printCheckErrorDyncodein interfaceCashcheckService- Parameters:
logIds- список log_id записей лога (не ид платежей!). и лог на платежи обязательно, не на возвраты (это разные таблицы).- Returns:
- какое-то сообщение.
- Throws:
ru.bitel.bgbilling.common.BGMessageExceptionru.bitel.bgbilling.common.BGException
-
printCheckErrorAsIs
public String printCheckErrorAsIs(List<Integer> logIds) throws ru.bitel.bgbilling.common.BGMessageException, ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceБудет ВЗЯТО СТАРОЕ СОДЕРЖИМОЕ и отправлено на перепечать несколько чеков, напечатанных с ошибками. ДИН.КОД ВЫПОЛНЯТЬСЯ НЕ БУДЕТ, возьмётся \"как есть\" содержимое чека сформированное ранее, и заново отправится в фискализатор. Каждый будет напечатан на том же самом фискализаторе, который сохранён в логе. После обработки записи останутся в логе с успехом или ошибкой (новой или той же). Чеки могут быть не привязаны к платежу (удалён или не было привязано). Печатаются асинхронно в планировщике.- Specified by:
printCheckErrorAsIsin interfaceCashcheckService- Parameters:
logIds- список log_id записей лога (не ид платежей!). и лог на платежи обязательно, не на возвраты (это разные таблицы).- Returns:
- какое-то сообщение.
- Throws:
ru.bitel.bgbilling.common.BGMessageExceptionru.bitel.bgbilling.common.BGException
-
posMappingList
Description copied from interface:CashcheckServiceВсе маппинги когда-либо используемые в логах, для фильтра, например.- Specified by:
posMappingListin interfaceCashcheckService- Throws:
ru.bitel.bgbilling.common.BGException
-
runAdvancePayments
public void runAdvancePayments(LocalDate month, List<Integer> contractsIds) throws ru.bitel.bgbilling.common.BGMessageException, ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceЗапуск задачи зачётов авансов вручную- Specified by:
runAdvancePaymentsin interfaceCashcheckService- Parameters:
month- месяцcontractsIds- (опционально) договоры для обработки (если null/пустое - все)- Throws:
ru.bitel.bgbilling.common.BGMessageExceptionru.bitel.bgbilling.common.BGException
-
checkManualPrint
public void checkManualPrint(int checkMode, int paymentType) throws BGPrinterNotloggedMessageException, ru.bitel.bgbilling.common.BGMessageException, ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceПредварительная (перед printCheck, returnCheckCharge) проверка возможности напечатать чек указанного типа, плюс так же как те методы кидает BGPrinterNotloggedMessageException и можно сразу рисовать логин. Предварительная проверка спасает от большинства случаев когда хотели добавит платёж + чек, но чек потом не напечатался, а т.к. мы печатаем постфактум, то получается что добавлен платёж а чека нет, надо идти в очередь и вручную делать (чего оператор может не смочь) а если косяк с маппингом то вообще нигде не будет инфы про чек.- Specified by:
checkManualPrintin interfaceCashcheckService- Parameters:
checkMode- аналогично как в редакторе платежей/расходов, например: 0 - чек платежа/покупок, 1 - чеки возвратов/продажpaymentType- тип платежа/расхода соответственно с которым собрались печатать.- Throws:
BGPrinterNotloggedMessageExceptionru.bitel.bgbilling.common.BGMessageExceptionru.bitel.bgbilling.common.BGException
-
deleteNewCheck
public int deleteNewCheck(int checkMode, List<Integer> logIds) throws ru.bitel.bgbilling.common.BGMessageException, ru.bitel.bgbilling.common.BGException Description copied from interface:CashcheckServiceУдаление new-чеков из лога. Уже напечатанные удалять нельзя.- Specified by:
deleteNewCheckin interfaceCashcheckService- Parameters:
checkMode- 0 - чек платежа/покупок, 1 - чеки возвратов/продажlogIds- список log_id записей лога (не ид платежей!). лог на платежи и на возвраты это разные таблицы, определяется как раз параметром checkMode.- Returns:
- кол-во удалённых
- Throws:
ru.bitel.bgbilling.common.BGMessageExceptionru.bitel.bgbilling.common.BGException
-