Class CashCheckUtils
java.lang.Object
ru.bitel.bgbilling.plugins.cashcheck.server.CashCheckUtils
Всякие методы-хелперы, которые можно использовать в скриптах для автоматизации печати чеков и т.д.
-
Nested Class Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionstatic CashCheckUtils.HttpReply
doHttpRequest
(String method, String url, String body, Map<String, String> requestProperties, int timeout, org.apache.logging.log4j.Logger logger) http(s)-запрос, ответ и запрос подразумеваются в utf-8.getAllPaytypes
(Integer registratorId) Все замапленные типы платежей.static String
getCashierInn
(Connection con, int userId) Возвращает ИНН юзера-кассира по ид.static String
getCashierName
(Connection con, int userId) Возвращает имя юзера-кассира по ид.static ru.bitel.bgbilling.plugins.cashcheck.server.CheckMaker
getCheckMaker
(Setup setup, Connection con, Connection conSlave, Payment payment, Printer printer) Общий код получения дин.код через маппинги - платежа (если есть), принтера (если есть), общий.getContractsWithBalance
(Connection con, LocalDate month) все договоры имеющие любое движение балансов в месяце указанной датыstatic String
getCustomerAddressFromWeb
(Connection con, int contractId, int... mids) Возвращается email/телефон из ContractModuleConfigDao (то что вводится в полях в ЛК перед платежом, например).static String
getEmailCustomer
(Connection con, int cid) Получает email из "контактов" у сущности "клиент" договора.static String
getEmailParam
(Connection con, int contractId, int parameterId) Возвращает значение email или телефона из параметра договора по contractId и parameterId Поддерживает и mail-параметр и phone-параметр (если несколько мыл/телефонов, то вернётся первый) и текстовый параметр.static Printer
getPrinter
(int kkmNum) Из настроек плагина получаем принтер по его номеру в конфиге.getQueue
(Connection con, Date fromDate, Date toDate, Integer registratorId) Получение очереди платежей.static void
Печатает отчёт об открытии дня, как это делает серверная часть плагина.static void
printCheck
(Check check, Printer printer, int kkmPass, Connection con, int paymentId) static void
printCheck
(Check check, Printer printer, int kkmPass, Connection con, int paymentId, String posMapping, int contractId) Deprecated.добавить в конец параметров: ,null удалить в 8.1+static void
printCheck
(Check check, Printer printer, int kkmPass, Connection con, int paymentId, String posMapping, int contractId, Integer logId) Печатает чек с указанными настройками, как это делает серверная часть плагина.static void
printCheckCharge
(Check check, Printer printer, int kkmPass, Connection con, int chargeId) в коде не используется, автоплатежей расходов нету, можно в данный момент использовать в скриптахstatic void
printCheckCharge
(Check check, Printer printer, int kkmPass, Connection con, int chargeId, String posMapping, int contractId, Integer logId) Печатает чек возврата с указанными настройками, как это делает серверная часть плагина.static void
printCheckVirtual
(Check check, Printer printer, Connection con, int paymentId, String posMapping, int contractId) Виртуально печатает чек с указанными настройками.static void
runCheckMakerAddPayment
(PrinterManager.PaymentPrintMode printMode, Setup setup, Connection con, Connection conSlave, Payment payment, Check check, Printer printer) static void
runCheckMakeraddPaymentAuto
(Setup setup, Connection con, Connection conSlave, Payment payment, Check check, Printer printer) Формирование чека через прописанный в плагине динкод, т.е. вызов метода CheckMaker.addPaymentAuto.static void
runCheckMakeraddPaymentAutoDelay
(Setup setup, Connection con, Connection conSlave, Payment payment, Check check, Printer printer) static void
runCheckMakerAddPaymentRefund
(Setup setup, Connection con, Connection conSlave, Payment payment, Check check, Printer printer) аналог runCheckMakerAddPayment, но для формирования чека возврата. printMode нету, т.к. сейчас только ручной режимstatic void
Отправка сообщения через штатные алармы.static void
sendMailsAutoprint
(String keysuffix, String subject, String body) Deprecated.use sendAlarmstatic void
спит настроенно кол-во времени в задачах последовательных печатей чековstatic void
Печатает z-отчёт, как это делает серверная часть плагина.
-
Constructor Details
-
CashCheckUtils
public CashCheckUtils()
-
-
Method Details
-
getPrinter
Из настроек плагина получаем принтер по его номеру в конфиге.- Parameters:
kkmNum
- номер принтера в конфиге плагина.- Throws:
ru.bitel.bgbilling.common.BGException
- если такого не найдено принтера.
-
printCheck
public static void printCheck(Check check, Printer printer, int kkmPass, Connection con, int paymentId) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
printCheck
@Deprecated public static void printCheck(Check check, Printer printer, int kkmPass, Connection con, int paymentId, String posMapping, int contractId) throws ru.bitel.bgbilling.common.BGException Deprecated.добавить в конец параметров: ,null удалить в 8.1+- Throws:
ru.bitel.bgbilling.common.BGException
-
printCheck
public static void printCheck(Check check, Printer printer, int kkmPass, Connection con, int paymentId, String posMapping, int contractId, Integer logId) throws ru.bitel.bgbilling.common.BGException Печатает чек с указанными настройками, как это делает серверная часть плагина. Сохраняет в лог запись о напечатанном чеке. Если была ошибка - то выходит с BGException и пишет в лог ошибок печати(!).- Parameters:
logId
- Если задан logId не-null то это значит печатается уже чек на готовый запись в логе, перепечатывается, логироваться будет именно туда и результат и ошибка. иначе запись добавится непременно новая.- Throws:
ru.bitel.bgbilling.common.BGException
-
printCheckVirtual
public static void printCheckVirtual(Check check, Printer printer, Connection con, int paymentId, String posMapping, int contractId) throws ru.bitel.bgbilling.common.BGException Виртуально печатает чек с указанными настройками. Т.е. сохраняет его в лог как "новый" чтобы потом задача подхватила и напечатала. Для асинхронного формирования кучи чеков с последующей печатью неспеша (если скрипт печатал бы их два дня с риском что он упадёт и непонятно что ещё надо допечатать). Сохраняет в лог запись о "напечатанном" чеке с отметкой что новый (в виде фейковой "ошибки"). Ошибок печати быть не должно, т.к. печати реальной не происходит, только сохранение в БД.- Throws:
ru.bitel.bgbilling.common.BGException
-
printCheckCharge
public static void printCheckCharge(Check check, Printer printer, int kkmPass, Connection con, int chargeId) throws ru.bitel.bgbilling.common.BGException в коде не используется, автоплатежей расходов нету, можно в данный момент использовать в скриптах- Throws:
ru.bitel.bgbilling.common.BGException
-
printCheckCharge
public static void printCheckCharge(Check check, Printer printer, int kkmPass, Connection con, int chargeId, String posMapping, int contractId, Integer logId) throws ru.bitel.bgbilling.common.BGException Печатает чек возврата с указанными настройками, как это делает серверная часть плагина. Печатает на расход. Сохраняет в лог возвратов запись о напечатанном чеке. в коде не используется, автоплатежей расходов нету, можно в данный момент использовать в скриптах Если была ошибка - то выходит с BGException и пишет в лог ошибок печати(!).- Parameters:
logId
- Если задан logId не-null то это значит печатается уже чек на готовый запись в логе, перепечатывается, логироваться будет именно туда и результат и ошибка. иначе запись добавится непременно новая. (для расходов для общности как для платежей)- Throws:
ru.bitel.bgbilling.common.BGException
-
ZReport
public static void ZReport(Printer printer, int kkmPass) throws ru.bitel.bgbilling.common.BGException Печатает z-отчёт, как это делает серверная часть плагина. Если была ошибка - то выходит с BGException.- Throws:
ru.bitel.bgbilling.common.BGException
-
openDay
public static void openDay(Printer printer, int kkmPass) throws ru.bitel.bgbilling.common.BGException Печатает отчёт об открытии дня, как это делает серверная часть плагина. Если была ошибка - то выходит с BGException.- Throws:
ru.bitel.bgbilling.common.BGException
-
sendAlarm
Отправка сообщения через штатные алармы. Для каждого можно задать суффикс, также алармы разделяются по ккт ещё одним суффиксом (учитывая что алармы можно отключать по префиксам - можно отключить для всех ккт сразу или только для одного). Если kkt <= 0, то не добавляется -
sendMailsAutoprint
Deprecated.use sendAlarm -
runCheckMakeraddPaymentAuto
public static void runCheckMakeraddPaymentAuto(Setup setup, Connection con, Connection conSlave, Payment payment, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException Формирование чека через прописанный в плагине динкод, т.е. вызов метода CheckMaker.addPaymentAuto.- Throws:
ru.bitel.bgbilling.common.BGException
- если неправильно настроено, дин.код не реализован итд. Ну или если CheckMaker.addPaymentAuto ошибку вернул.
-
runCheckMakeraddPaymentAutoDelay
public static void runCheckMakeraddPaymentAutoDelay(Setup setup, Connection con, Connection conSlave, Payment payment, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
getCheckMaker
public static ru.bitel.bgbilling.plugins.cashcheck.server.CheckMaker getCheckMaker(Setup setup, Connection con, Connection conSlave, Payment payment, Printer printer) throws ru.bitel.bgbilling.common.BGException Общий код получения дин.код через маппинги - платежа (если есть), принтера (если есть), общий. Создаёт класс и вызывает ему init.- Throws:
ru.bitel.bgbilling.common.BGException
-
runCheckMakerAddPayment
public static void runCheckMakerAddPayment(PrinterManager.PaymentPrintMode printMode, Setup setup, Connection con, Connection conSlave, Payment payment, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException - Throws:
ru.bitel.bgbilling.common.BGException
-
runCheckMakerAddPaymentRefund
public static void runCheckMakerAddPaymentRefund(Setup setup, Connection con, Connection conSlave, Payment payment, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException аналог runCheckMakerAddPayment, но для формирования чека возврата. printMode нету, т.к. сейчас только ручной режим- Throws:
ru.bitel.bgbilling.common.BGException
-
getQueue
public static List<Payment> getQueue(Connection con, Date fromDate, Date toDate, Integer registratorId) throws ru.bitel.bgbilling.common.BGException Получение очереди платежей.- Parameters:
con
- коннекшенfromDate
- дата начала включительно, может быть nulltoDate
- дата конца включительно, может быть nullregistratorId
- конкретный принтер, может быть null- Returns:
- Throws:
ru.bitel.bgbilling.common.BGException
-
getAllPaytypes
Все замапленные типы платежей.- Parameters:
registratorId
- фильтр по номеру ккт, если null то все типы- Returns:
- список ид типов платежей, не null
-
getEmailParam
public static String getEmailParam(Connection con, int contractId, int parameterId) throws ru.bitel.bgbilling.common.BGException Возвращает значение email или телефона из параметра договора по contractId и parameterId Поддерживает и mail-параметр и phone-параметр (если несколько мыл/телефонов, то вернётся первый) и текстовый параметр. Параметры нормализуются по возможности (и неправильные мыло/телефоны не должны вернуться). Если ничего нет, вернёт null.- Throws:
ru.bitel.bgbilling.common.BGException
-
getEmailCustomer
public static String getEmailCustomer(Connection con, int cid) throws ru.bitel.bgbilling.common.BGException Получает email из "контактов" у сущности "клиент" договора. Если несколько, то первый, если нет клиента или контакта - вернёт null. Какой из них "первый" в общем случае неочевидно, так что "первый" следует трактовать как "случайный". Мыло нормализуются по возможности (и неправильное не должно вернуться).- Throws:
ru.bitel.bgbilling.common.BGException
-
getCustomerAddressFromWeb
public static String getCustomerAddressFromWeb(Connection con, int contractId, int... mids) throws ru.bitel.bgbilling.common.BGException Возвращается email/телефон из ContractModuleConfigDao (то что вводится в полях в ЛК перед платежом, например). Можно указать несколько mid модулей (в ряде случаев модули хранят эти параметры отдельно), будет смотреться также общий для mid=0. Значения нормализуются по возможности (и неправильные мыло/телефоны не должны вернуться). Преимущественно вернётся email.- Throws:
ru.bitel.bgbilling.common.BGException
-
doHttpRequest
public static CashCheckUtils.HttpReply doHttpRequest(String method, String url, String body, Map<String, String> requestProperties, int timeout, org.apache.logging.log4j.Logger logger) throws ru.bitel.bgbilling.common.BGExceptionhttp(s)-запрос, ответ и запрос подразумеваются в utf-8.- Parameters:
method
-url
-body
- тело или null для гет-запрос напримерrequestProperties
-timeout
- таймаут в миллисекундах - и setConnectTimeout и setReadTimeout.logger
-- Returns:
- объект HttpReply с http-кодом и телом (код int, тело всегда не null)
- Throws:
ru.bitel.bgbilling.common.BGException
- если что-то не так
-
getCashierName
public static String getCashierName(Connection con, int userId) throws ru.bitel.bgbilling.common.BGException Возвращает имя юзера-кассира по ид. Сначала пытается взять настройку "cashcheck.name" из конфига юзера (можно перекрыть). Если не найдено, то будет null.- Throws:
ru.bitel.bgbilling.common.BGException
-
getCashierInn
public static String getCashierInn(Connection con, int userId) throws ru.bitel.bgbilling.common.BGException Возвращает ИНН юзера-кассира по ид. Пытается взять настройку "cashcheck.inn" из конфига юзера. Если не найдено, то будет null.- Throws:
ru.bitel.bgbilling.common.BGException
-
sleepBatch
спит настроенно кол-во времени в задачах последовательных печатей чеков- Throws:
InterruptedException
-
getContractsWithBalance
public static List<Contract> getContractsWithBalance(Connection con, LocalDate month) throws ru.bitel.bgbilling.common.BGException все договоры имеющие любое движение балансов в месяце указанной даты- Throws:
ru.bitel.bgbilling.common.BGException
-