Дерево страниц

Сравнение версий

Ключ

  • Эта строка добавлена.
  • Эта строка удалена.
  • Изменено форматирование.

Для формирование формирования вида чеков, задания фискальных атрибутов и прочих параметров используется динамический код. Чтобы использовать динамический код для формирования вида чека, в В конфигурацию плагина прописывается следующий (или любой другой подходящий) нужный класс:

Блок кода
languageruby
linenumbersfalse
# динамический класс для формирования вида чека
checkbuilder=ru.bitel.bgbilling.cashcheck.SimpleCheck

Есть возможность задать отдельный класс для отдельного ККТ или для отдельного маппинга по типу. Это может потребоваться для теста нового шаблона. Или для удобства, если фискализаторы совсем разные (например, локальный и онлайн-служба) - вместо проверки по ККТ внутри шаблона просто используются разные шаблоны.

Блок кода
languageruby
linenumbersfalse
# динамический класс для отдельного ККТ
fr.1.checkbuilder=ru.bitel.bgbilling.cashcheck.CheckKKT1
# динамический класс для отдельного типа платежа
pt.666.checkbuilder=ru.bitel.bgbilling.cashcheck.CheckTestType666

В таком случае порядок выбора класса следующий: ищется для маппинга, потом для ККТ, потом общий. Про случай настройки для маппинга есть оговорка: не работает для возвратов (в данный момент там нет маппинга), при ручном чеке проверяется что все платежи в чеке (если их несколько - например при распределении или просто при печати кучи платежей одного договора в один чек) нашли один и тот же настроенный дин.код.

Несколько примеров реализации класса идёт в комплекте с плагином. Подразумевается, что какой-либо класс обязательно должен быть найден и должен сработать. О работе с динамическим кодом можно прочитать в соответствующем разделе справки. Внутри можно проверить любые условия и сформировать чек любой формы для каждой позиции/платежа, добавляемой в чек. Класс должен расширять абстрактный класс ru.bitel.bgbilling.cashcheck.CheckMaker.

...

Блок кода
languageruby
linenumbersfalse
int printerId = printer.getId();

В этом объекте есть метод switchPrinter, который позволяет переключить на нужный принтер внутри дин.кода, это может понадобиться в случаях, когда выбор принтера сложнее привязки "по типам". Весь конфиг принтера доступен через метод getConfig.

Последовательность вызова дин.кода:

...