Class CashCheckUtils

java.lang.Object
ru.bitel.bgbilling.plugins.cashcheck.server.CashCheckUtils

public class CashCheckUtils
extends java.lang.Object
Всякие методы-хелперы, которые можно использовать в скриптах для автоматизации печати чеков итд.
  • Nested Class Summary

    Nested Classes
    Modifier and Type Class Description
    static class  CashCheckUtils.HttpReply  
  • Constructor Summary

    Constructors
    Constructor Description
    CashCheckUtils()  
  • Method Summary

    Modifier and Type Method Description
    static CashCheckUtils.HttpReply doHttpRequest​(java.lang.String method, java.lang.String url, java.lang.String body, java.util.Map<java.lang.String,​java.lang.String> requestProperties, int timeout, org.apache.logging.log4j.Logger logger)
    http-запрос
    static java.util.List<java.lang.Integer> getAllPaytypes​(java.lang.Integer registratorId)
    Все замапленные типы платежей.
    static java.lang.String getCashierInn​(java.sql.Connection con, int userId)
    Возвращает ИНН юзера-кассира по ид.
    static java.lang.String getCashierName​(java.sql.Connection con, int userId)
    Возвращает имя юзера-кассира по ид.
    static ru.bitel.bgbilling.plugins.cashcheck.server.CheckMaker getCheckMaker​(Setup setup, java.sql.Connection con, java.sql.Connection conSlave, Payment payment, Printer printer)
    Общий код получения дин.код через маппинги - платежа (если есть), принтера (если есть), общий.
    static java.util.List<Contract> getContractsWithBalance​(java.sql.Connection con, java.time.LocalDate month)
    все договоры имеющие любое движение балансов в месяце указанной даты
    static java.lang.String getEmailCustomer​(java.sql.Connection con, int cid)
    Получает email из "контактов" у сущности "клиент" договора.
    static java.lang.String getEmailParam​(java.sql.Connection con, int cid, int pid)
    Возвращает значение email или телефона по cid и pid Поддерживает и mail-параметр и phone-параметр (если несколько мыл/телефонов, то вернётся первый) и текстовый параметр.
    static Printer getPrinter​(int kkmNum)
    Из настроек плагина получаем принтер по его номеру в конфиге.
    static Printer getPrinter​(java.lang.String address, int port)
    Deprecated.
    address + port это свойство connector=address:port в конфиге фискализатора.
    static java.util.List<Payment> getQueue​(java.sql.Connection con, java.util.Date fromDate, java.util.Date toDate, java.lang.Integer registratorId)
    Получение очереди платежей.
    static void openDay​(Printer printer, int kkmPass)
    Печатает отчёт об открытии дня, как это делает серверная часть плагина.
    static void printCheck​(Check check, Printer printer, int kkmPass, java.sql.Connection con, int paymentId)  
    static void printCheck​(Check check, Printer printer, int kkmPass, java.sql.Connection con, int paymentId, java.lang.String posMapping, int contractId)
    Deprecated.
    добавить в конец параметров: ,null удалить в 8.1+
    static void printCheck​(Check check, Printer printer, int kkmPass, java.sql.Connection con, int paymentId, java.lang.String posMapping, int contractId, java.lang.Integer logId)
    Печатает чек с указанными настройками, как это делает серверная часть плагина.
    static void printCheckCharge​(Check check, Printer printer, int kkmPass, java.sql.Connection con, int chargeId)
    в коде не используется, автоплатежей расходов нету, можно в данный момент использовать в скриптах
    static void printCheckCharge​(Check check, Printer printer, int kkmPass, java.sql.Connection con, int chargeId, java.lang.String posMapping, int contractId)
    Печатает чек возврата с указанными настройками, как это делает серверная часть плагина.
    static void printCheckVirtual​(Check check, Printer printer, java.sql.Connection con, int paymentId, java.lang.String posMapping, int contractId)
    Виртуально печатает чек с указанными настройками.
    static void runCheckMakerAddPayment​(PrinterManager.PaymentPrintMode printMode, Setup setup, java.sql.Connection con, java.sql.Connection conSlave, Payment payment, Check check, Printer printer)  
    static void runCheckMakeraddPaymentAuto​(Setup setup, java.sql.Connection con, java.sql.Connection conSlave, Payment payment, Check check, Printer printer)
    Формирование чека через прописанный в плагине динкод, т.е. вызов метода CheckMaker.addPaymentAuto.
    static void runCheckMakeraddPaymentAutoDelay​(Setup setup, java.sql.Connection con, java.sql.Connection conSlave, Payment payment, Check check, Printer printer)  
    static void runCheckMakerAddPaymentRefund​(Setup setup, java.sql.Connection con, java.sql.Connection conSlave, Payment payment, Check check, Printer printer)
    аналог runCheckMakerAddPayment, но для формирования чека возврата. printMode нету, т.к. сейчас только ручной режим
    static void sendMailsAutoprint​(java.lang.String keysuffix, java.lang.String subject, java.lang.String body)
    Отправка сообщения на аларм.
    static void sleepBatch()
    спит настроенно кол-во времени в задачах последовательных печатей чеков
    static void ZReport​(Printer printer, int kkmPass)
    Печатает z-отчёт, как это делает серверная часть плагина.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Constructor Details

    • CashCheckUtils

      public CashCheckUtils()
  • Method Details

    • getPrinter

      public static Printer getPrinter​(int kkmNum) throws ru.bitel.bgbilling.common.BGException
      Из настроек плагина получаем принтер по его номеру в конфиге.
      Parameters:
      kkmNum - номер принтера в конфиге плагина.
      Throws:
      ru.bitel.bgbilling.common.BGException - если такого не найдено принтера.
    • getPrinter

      @Deprecated public static Printer getPrinter​(java.lang.String address, int port)
      Deprecated.
      address + port это свойство connector=address:port в конфиге фискализатора.
      Конструкция принтера по адресу и порту.
    • printCheck

      public static void printCheck​(Check check, Printer printer, int kkmPass, java.sql.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, java.sql.Connection con, int paymentId, java.lang.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, java.sql.Connection con, int paymentId, java.lang.String posMapping, int contractId, java.lang.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, java.sql.Connection con, int paymentId, java.lang.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, java.sql.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, java.sql.Connection con, int chargeId, java.lang.String posMapping, int contractId) throws ru.bitel.bgbilling.common.BGException
      Печатает чек возврата с указанными настройками, как это делает серверная часть плагина. Печатает на расход. Сохраняет в лог возвратов запись о напечатанном чеке. в коде не используется, автоплатежей расходов нету, можно в данный момент использовать в скриптах Если была ошибка - то выходит с BGException и пишет в лог ошибок печати(!).
      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
    • sendMailsAutoprint

      public static void sendMailsAutoprint​(java.lang.String keysuffix, java.lang.String subject, java.lang.String body)
      Отправка сообщения на аларм.
    • runCheckMakeraddPaymentAuto

      public static void runCheckMakeraddPaymentAuto​(Setup setup, java.sql.Connection con, java.sql.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, java.sql.Connection con, java.sql.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, java.sql.Connection con, java.sql.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, java.sql.Connection con, java.sql.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, java.sql.Connection con, java.sql.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 java.util.List<Payment> getQueue​(java.sql.Connection con, java.util.Date fromDate, java.util.Date toDate, java.lang.Integer registratorId) throws ru.bitel.bgbilling.common.BGException
      Получение очереди платежей.
      Parameters:
      con - коннекшен
      fromDate - дата начала включительно, может быть null
      toDate - дата конца включительно, может быть null
      registratorId - конкретный принтер, может быть null
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getAllPaytypes

      public static java.util.List<java.lang.Integer> getAllPaytypes​(java.lang.Integer registratorId)
      Все замапленные типы платежей.
      Parameters:
      registratorId - фильтр по номеру ккт, если null то все типы
      Returns:
      список ид типов платежей, не null
    • getEmailParam

      public static java.lang.String getEmailParam​(java.sql.Connection con, int cid, int pid) throws ru.bitel.bgbilling.common.BGException
      Возвращает значение email или телефона по cid и pid Поддерживает и mail-параметр и phone-параметр (если несколько мыл/телефонов, то вернётся первый) и текстовый параметр. Текстовый возвращается как есть, телефон - строкой без плюсика, мыло - отрезается имя/скобки.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getEmailCustomer

      public static java.lang.String getEmailCustomer​(java.sql.Connection con, int cid) throws ru.bitel.bgbilling.common.BGException
      Получает email из "контактов" у сущности "клиент" договора. Если несколько, то первый, если нет клиента или контакта - вернёт null. Какой из них "первый" в общем случае неочевидно, так что "первый" следует трактовать как "случайный".
      Throws:
      ru.bitel.bgbilling.common.BGException
    • doHttpRequest

      public static CashCheckUtils.HttpReply doHttpRequest​(java.lang.String method, java.lang.String url, java.lang.String body, java.util.Map<java.lang.String,​java.lang.String> requestProperties, int timeout, org.apache.logging.log4j.Logger logger) throws ru.bitel.bgbilling.common.BGException
      http-запрос
      Parameters:
      method -
      url -
      body - тело или null для гет-запрос например
      requestProperties -
      timeout - таймаут в миллисекундах - и setConnectTimeout и setReadTimeout.
      logger -
      Returns:
      объект HttpReply с кодом и телом
      Throws:
      ru.bitel.bgbilling.common.BGException - если что-то не так
    • getCashierName

      public static java.lang.String getCashierName​(java.sql.Connection con, int userId) throws ru.bitel.bgbilling.common.BGException
      Возвращает имя юзера-кассира по ид. Сначала пытается взять настройку "cashcheck.name" из конфига юзера (можно перекрыть). Если не найдено, то будет null.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getCashierInn

      public static java.lang.String getCashierInn​(java.sql.Connection con, int userId) throws ru.bitel.bgbilling.common.BGException
      Возвращает ИНН юзера-кассира по ид. Пытается взять настройку "cashcheck.inn" из конфига юзера. Если не найдено, то будет null.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • sleepBatch

      public static void sleepBatch() throws java.lang.InterruptedException
      спит настроенно кол-во времени в задачах последовательных печатей чеков
      Throws:
      java.lang.InterruptedException
    • getContractsWithBalance

      public static java.util.List<Contract> getContractsWithBalance​(java.sql.Connection con, java.time.LocalDate month) throws ru.bitel.bgbilling.common.BGException
      все договоры имеющие любое движение балансов в месяце указанной даты
      Throws:
      ru.bitel.bgbilling.common.BGException