Разделение по отделам и типам платежа в ККМ

Этот раздел относится логически к предыдущему про настройку внешнего вида чеков, так как затрагивает использование тех же скриптов.

Имейте ввиду, что для каждого ККМ номера отделов и типов платежа имеют какой-то диапазон. Следует уточнить это в документации по устройству. Также устройство может не поддерживать то или иное.

При желании разделять некоторые платежи по разным отделам можно использовать такую возможность, предоставляемую большинством ККМ. Для этого при добавлении в скрипте "формирование позиции чека" очередной позиции с помощью команды addPayment надо третьим параметром передать номер отдела. Таким образом отдел привязывается к продажной позиции.

Вычислить номер отдела можно на основании любых данных, например, типа платежа, номера принтера и т.д. и т.п. Пример использования:

int paymentDep = 0;
switch( payment.getPaymentTypeID() )
{
case 1:
paymentDep = 1;
break;
case 2:
paymentDep = 2;
break;
// .... итд
}
check.addPayment( payment.getSumma(), payment.getContractTitle(), paymentDep );

Можно просто отдавать в метод 0 (ноль), если вам не нужна эта возможность.

Тип платежа - это "наличные", "картой" итд. Поддерживается многими ККМ. Он задаётся для всего чека сразу. Вам нужен setPaymentType у объекта Check. Туда передаётся целочисленный тип, назначение идентификаторов уточняйте в документации устройства или у поставщика. Так как тип платежа привязан ко всему чеку, подходящее место для установки - метод "завершение формирования чека" (но можно ставить и в момент формирования каждой позиции, нужно только учесть, что в следующей позиции он может перекрыться).