Package ru.bitel.bgbilling.plugins.cashcheck.server

# 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`