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

public abstract class CheckMaker extends Object
Интерфейс (на самом деле абстрактный класс) для динамического кода - формирование чека, чека возврата.
  • Constructor Details

    • CheckMaker

      public CheckMaker()
  • Method Details

    • init

      public void init(Setup setup, Connection con, Connection conSlave) throws ru.bitel.bgbilling.common.BGException
      Инициализация. Перегружать не обязательно.
      Parameters:
      setup - сетап серверный.
      con - коннекшен.
      conSlave - слейв-коннекшен.
      Throws:
      ru.bitel.bgbilling.common.BGException - бросается при ошибке.
    • addPayment

      public abstract void addPayment(Payment payment, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException
      Добавление позиции в чек. Для формирования вида каждой позиции в чеке - добавление каментов может каких итд итп. Перегружать обязательно.
      Parameters:
      payment - объект паймент (расширеный, используемый в плагине CashCheck).
      check - чек, который надо сформировать в этом методе.
      printer - текущий принтер, на который собираемся печатать.
      Throws:
      ru.bitel.bgbilling.common.BGException - бросается при ошибке.
    • endCreate

      public void endCreate(Set<Integer> cids, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException
      Завершение формирование чека, подвал чека. Для формирования вида подвала чека - можно там что-то написать или просто или в зависимости от условий из чека. Перегружать не обязательно.
      Parameters:
      cids - один или несколько контрактИд. Несколько разных может быть, если договоры платежей в одном чеке зависимые друг от друга.
      check - чек, который надо сформировать в этом методе.
      printer - текущий принтер, на который собираемся печатать.
      Throws:
      ru.bitel.bgbilling.common.BGException - бросается при ошибке.
    • addPaymentRefund

      public abstract void addPaymentRefund(Payment payment, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException
      Добавление позиции в чек возврата платежа. В отличие от платёжного чека обычно нельзя печатать строки итд, потому должно быть там просто один addPayment внутри и установка доп.атрибутов (налоги, адрес покупателя итд). Перегружать обязательно.
      Parameters:
      payment - объект паймент (расширеный, используемый в плагине CashCheck, но там на самом деле все ид и типы для РАСХОДА из биллинга).
      check - чек, который надо сформировать в этом методе.
      printer - текущий принтер, на который собираемся печатать.
      Throws:
      ru.bitel.bgbilling.common.BGException - бросается при ошибке.
    • endCreateRefund

      public void endCreateRefund(int contractId, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException
      Завершение формирование чека возврата, подвал чека возврата. Возможно, для каких-то целей. Перегружать не обязательно.
      Parameters:
      check - чек, который надо сформировать в этом методе.
      printer - текущий принтер, на который собираемся печатать.
      cid - один контрактИд. Несколько разных в отличие от чека платежного быть не может.
      Throws:
      ru.bitel.bgbilling.common.BGException - бросается при ошибке.
    • addPaymentAuto

      public void addPaymentAuto(Payment payment, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException
      Добавление позиции в чек, используемой при автопечати платежей. Для формирования вида каждой позиции в чеке, скорее всего речь про настройку одной позиции и доп.атрибуты чека. В отличие от методов штатной функциональности вызывается один раз для каждого кассового чека (т.к. в чек попадает всегда один платёж биллинга) так что подразумевает в себе логику и addPayment и endCreate. Перегружать при необходимости пользования функциональностью autoprint.*.
      Parameters:
      payment - объект паймент (расширеный, используемый в плагине CashCheck).
      check - чек, который надо сформировать в этом методе.
      printer - текущий принтер, на который собираемся печатать.
      Throws:
      ru.bitel.bgbilling.common.BGException - бросается при ошибке.
    • addPaymentAutoDelay

      public void addPaymentAutoDelay(Payment payment, Check check, Printer printer) throws ru.bitel.bgbilling.common.BGException
      Добавление позиции в чек, используемой при delay-автопечати платежей.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • makeCheckZA

      public boolean makeCheckZA(Contract contract, Check check, Printer printer, LocalDate dateMonth) throws ru.bitel.bgbilling.common.BGException
      НЕ ИСПОЛЬЗОВАТЬ. старая схема с печатью зачётов авансов на каждый договор отдельно. будет удалена в будущих версиях.
      Throws:
      ru.bitel.bgbilling.common.BGException
    • makeCheckAdvancePayments

      public void makeCheckAdvancePayments(LocalDate dateMonth, List<Integer> contractsIds, CheckMaker.CheckCallback check) throws ru.bitel.bgbilling.common.BGException
      Код для формирования чека зачёта аванса. Двухступенчатая схема, в конце месяца общие чеки на договор. Этот метод вызывается в таске однократно, внутри надо сделать любой процесс - можно печатать чек на каждый договор, можно скопить и напечатать по одному на принтер итд. Именно потому схема с колбеком - на печать отдаётся любое кол-во чеков (просто вернуть "списком" не очень удобно по ряду причин: может быть десятки тысяч чеков, неизвестно как распределять их по принтерам, а каждый чек часто на разные принтеры надо итд итп) Внутри надо сформировать чек, сделать принтер, сделать switchPrinter на нужный согласно алгоритму фискализации и передать всё это в колбек, где вызывающий код будет генерить очередной чек. НЕ должно делаться что-то внутри деструктивного, обновления итд, только формирование Check и вызов колбеков т.к. вызов метода может делаться кодом плагина в произвольные моменты.
      Parameters:
      dateMonth - за какой месяц было запущено печатать закрытия авансов
      contractsIds - если не null, то предполагается что надо учитывать и делать только для этих договоров, можно не реализовывать конечно, если например "один чек" или что-то типа того, т.е. в зависимости от схемы (передаётся при ручном запуске когда указывается набор договоров)
      check - колбек, который надо дёрнуть когда готов очередной чек.
      Throws:
      ru.bitel.bgbilling.common.BGException - бросается при ошибке, процесс будет остановлен, очевидно дальше чеки не будут печататься (вызов этого метода дин.кода однократный же) и задача пойдёт на завершение.