Class CheckMaker
java.lang.Object
ru.bitel.bgbilling.plugins.cashcheck.server.CheckMaker
Интерфейс (на самом деле абстрактный класс) для динамического кода - формирование чека, чека возврата.
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic interfaceКолбек который надо дёргать из makeCheckAdvancePayments, когда готов очередной чек -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionabstract voidaddPayment(Payment payment, Check check, Printer printer) Добавление позиции в чек.voidaddPaymentAuto(Payment payment, Check check, Printer printer) Добавление позиции в чек, используемой при автопечати платежей.voidaddPaymentAutoDelay(Payment payment, Check check, Printer printer) Добавление позиции в чек, используемой при delay-автопечати платежей.abstract voidaddPaymentRefund(Payment payment, Check check, Printer printer) Добавление позиции в чек возврата платежа.voidЗавершение формирование чека, подвал чека.voidendCreateRefund(int contractId, Check check, Printer printer) Завершение формирование чека возврата, подвал чека возврата.voidinit(Setup setup, Connection con, Connection conSlave) Инициализация.voidmakeCheckAdvancePayments(LocalDate dateMonth, List<Integer> contractsIds, CheckMaker.CheckCallback check) Код для формирования чека зачёта аванса.booleanmakeCheckZA(Contract contract, Check check, Printer printer, LocalDate dateMonth) НЕ ИСПОЛЬЗОВАТЬ.
-
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- бросается при ошибке, процесс будет остановлен, очевидно дальше чеки не будут печататься (вызов этого метода дин.кода однократный же) и задача пойдёт на завершение.
-