Class CashCheckUtils

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

public class CashCheckUtils extends Object
Всякие методы-хелперы, которые можно использовать в скриптах для автоматизации печати чеков и т.д.
  • 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 - если такого не найдено принтера.
    • 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

      public static void sendAlarm(String keysuffix, int kkt, String subject, String text, Throwable ex)
      Отправка сообщения через штатные алармы. Для каждого можно задать суффикс, также алармы разделяются по ккт ещё одним суффиксом (учитывая что алармы можно отключать по префиксам - можно отключить для всех ккт сразу или только для одного). Если kkt <= 0, то не добавляется
    • sendMailsAutoprint

      @Deprecated public static void sendMailsAutoprint(String keysuffix, String subject, String body)
      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 - дата начала включительно, может быть null
      toDate - дата конца включительно, может быть null
      registratorId - конкретный принтер, может быть null
      Returns:
      Throws:
      ru.bitel.bgbilling.common.BGException
    • getAllPaytypes

      public static List<Integer> getAllPaytypes(Integer registratorId)
      Все замапленные типы платежей.
      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.BGException
      http(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

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

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