forum.bitel.ru
http://forum.bitel.ru/

Печать 2-х чеков
http://forum.bitel.ru/viewtopic.php?f=28&t=13496
Страница 1 из 1

Автор:  simka [ 18 ноя 2019, 19:14 ]
Заголовок сообщения:  Печать 2-х чеков

Для определенных договоров платеж нужно разбивать на 2 и печатать 2 чека.
Например, добавляем платеж 10 руб., вводим сумму от клиента 10 руб.
1 чек - summa1 = 6 руб.
2 чек - summa2 = 4 руб.
Чеки печатаются и в конце выходит сообщение "Напечатан чек на сумму: 6.00 Сдача: 4.00",
т.е. не учитывается, что напечатан 2-й чек.
Можно ли сделать так, чтобы сдача нигде не печаталась: ни в сообщении кассиру, ни в чеке.
Например, передавать объекту check свою сумму от клиента, или указывать, что был напечатан чек на оставшуюся сумму.


метод addPayment( Payment payment, Check check, Printer printer )
Код:
//делим на 2 платежа
PayDiv pd = new PayDiv(con);
int newPayId = pd.divSum( payment.getId());
//1-й чек
check.setPaymentType(PAYMENTTYPE);
check.setTax( TAX);
check.setPayObject(PAYOBJ);
check.addPayment( pd.getSumma1(), comment, DEP );

//2-й чек
Check check2 = new Check();
check2.setPaymentType(PAYMENTTYPE);
check2.setTax(TAX);
check2.setCheckType(payment.getCheckType());
check2.setPayObject(PAYOBJ);
check2.addPayment( pd.getSumma2(), comment , DEP );
CashCheckUtils.printCheck(check2, printer , pswd, con, newPayId);



Код:
 Клиент: 7.2.232 / 30.10.2019 15:20:47
    os: Windows 7; java: Java HotSpot(TM) Client VM, v.1.8.0_231
  Сервер: 7.2.1101 / 30.10.2019 15:23:04
    os: Linux; java: Java HotSpot(TM) 64-Bit Server VM, v.1.8.0_191
 
ru.bitel.bgbilling.plugins.cashcheck: 7.2.146 / 30.10.2019 16:38:20

Автор:  dimOn [ 18 ноя 2019, 19:33 ]
Заголовок сообщения:  Re: Печать 2-х чеков

штатной системой нельзя напечатать два чека на один платёж, это неочевидное поведение, непонятно как логировать, как настраивать это всё итд
использовать CashCheckUtils.printCheck внутри дин.кода шаблона конечно не очень правильно в таком виде...
делайте полностью свой тогда обработчик платежа и делайте что хотите там, два раза печатайте, разбивайте как хотите итд

чтобы сдача не печаталась на чеке - сделать так нельзя, потому что этим снаружи не управляется это сам ККТ рисует, только общей суммой, а вы её уже ввели 10, она проходит мимо дин.кода и передаётся только в ККТ

вообще какая задача у вас? вам не подойдёт просто две позиции в чеке с разными (любыми - налоги, признаки объекта и способа расчёта итд) атрибутами ?тогда это всё просто делается искаробки

Автор:  simka [ 18 ноя 2019, 19:42 ]
Заголовок сообщения:  Re: Печать 2-х чеков

Цитата:
чтобы сдача не печаталась на чеке - сделать так нельзя, потому что этим снаружи не управляется это сам ККТ рисует, только общей суммой, а вы её уже ввели 10, она проходит мимо дин.кода и передаётся только в ККТ
очень жаль


Цитата:
вам не подойдёт просто две позиции в чеке с разными (любыми - налоги, признаки объекта и способа расчёта итд) атрибутами ?тогда это всё просто делается искаробки
Нет. Нужно именно 2 чека

Автор:  dimOn [ 18 ноя 2019, 19:52 ]
Заголовок сообщения:  Re: Печать 2-х чеков

максимум что тут можно сделать - передавать в CashCheckUtils.printCheck сумму клиента, но внутри оно вычисляется как сумма по чеку и оно и так будет getSumma2 что вы и хотели бы туда передать, то есть это бесполезно.
проблема тут я так понимаю с суммой клиента для первого чека (вернее второго потому что сначала распечатается вызванный первым check2 а потом уже сработает динкод в вашем случае), но это в данном случае никак не обойти, т.к. сумма для клиента не используется никак в этой всей цепочке, потому и повлиять никак нельзя на неё

Автор:  dimOn [ 18 ноя 2019, 19:53 ]
Заголовок сообщения:  Re: Печать 2-х чеков

вообще можете кстати попробовать перенастроить с manual на auto, и не ставить галочку (но оно и не даст - будет ругаться, галочку лучше задисейблить).
тогда после прихода платежа сработает автоплатежей система, аналогичный дин.код ваш, но там сумма клиента не используется и как следствие фискализаторами всегда вычисляется как сумма позиций чека.
минус - вы не сможете ввести "сумму клиента" в клиенте биллинга, она всегда будет равна сумме платежа(-ей)

Страница 1 из 1 Часовой пояс: UTC + 5 часов [ Летнее время ]
Powered by phpBB® Forum Software © phpBB Group
http://www.phpbb.com/