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

Внешний вид чека
http://forum.bitel.ru/viewtopic.php?f=28&t=1839
Страница 1 из 1

Автор:  lacost [ 22 янв 2009, 23:26 ]
Заголовок сообщения:  Внешний вид чека

Не могу настроить внешний вид чека.

сделал скрипт:
Код:
import ru.bitel.bgbilling.plugins.cashcheck.server.bean.*;

check = event.getCheck();
payment = event.getPayment();


if ( event instanceof AddPaymentCheckEvent) {

   check.addString( " " );
   check.addString( "Оплата услуг электросвязи" );
   check.addString( "Договор №: " + payment.getContractTitle() );
   check.addString( "Абонент: " + payment.getContractComment() );
   check.addString( " " );

   check.addPayment( payment.getSumma(), payment.getContractTitle(), event.getPaymentDep() );

   check.addString( " " );
}

if(event instanceof EndCreateCheckEvent) {

   check.addString( "Ваш текущий баланс: " + BalanceUtils.getBalance(new Date(),  payment.getContractID());
   check.addString( " " );
}


но в чек не попадает часть EndCreateCheckEvent

Так же в явадоках по этому плагину нет никакой информации.

Автор:  dimOn [ 23 янв 2009, 13:33 ]
Заголовок сообщения: 

Хм, а в первую часть попадает? То есть чек то печатается? Или печатается, но без дополнительного подвала?

А Вы к чему этот скрипт привязали? Там ведь два отдельных события. Вы их оба привязали?

Автор:  dimOn [ 23 янв 2009, 13:43 ]
Заголовок сообщения: 

И версия плагина какая?

Автор:  Lavrenov_Sergey [ 23 янв 2009, 14:18 ]
Заголовок сообщения: 

Я работаю вместе с lacost.

В первую часть всё попадает, чек печатается без дополнительного подвала.
Скрипт привязали к обоим событиям.
Версия плагина 4.5_15, версия сервера 4.6_61

Автор:  dimOn [ 23 янв 2009, 17:01 ]
Заголовок сообщения: 

Странно, я проверил сейчас - у меня срабатывает нормально событие.
А у вас ошибок в скрипте не происходит никаких?

Автор:  dimOn [ 23 янв 2009, 17:02 ]
Заголовок сообщения: 

Так, стоп. У события EndCreateCheckEvent нет метода getPayment(); В этом месте у вас скрипт должен свалиться, всё логично.
Сейчас я посмотрю, почему не сделал этого метода.

Автор:  dimOn [ 23 янв 2009, 17:14 ]
Заголовок сообщения: 

А, ну понятно, почему не сделал. Конечно не сделал, потому что это событие происходит один раз в конце формирования чека. А в чеке может быть МНОГО платежей. То есть payment можно взять только для каждой отдельной строки в чеке. То есть это значит:

1)
Код:
payment = event.getPayment();
вам надо засунуть ПОД
Код:
if ( event instanceof AddPaymentCheckEvent) {
...
}


2) В событии EndCreateCheckEvent не пользовать payment, тем более, Вы там скорее всего ошиблись, и вместо event написали payment. А если не ошиблись, то знайте - что ИД_Договора доступен и у события. То есть будет что-то типа того:
Код:
import ru.bitel.bgbilling.plugins.cashcheck.server.bean.*;

check = event.getCheck();

if ( event instanceof AddPaymentCheckEvent)
{
   payment = event.getPayment();

   check.addString( " " );
   check.addString( "Оплата услуг электросвязи" );
   check.addString( "Договор №: " + payment.getContractTitle() );
   check.addString( "Абонент: " + payment.getContractComment() );
   check.addString( " " );

   check.addPayment( payment.getSumma(), payment.getContractTitle(), event.getPaymentDep() );

   check.addString( " " );
}

if(event instanceof EndCreateCheckEvent)
{
   check.addString( "Ваш текущий баланс: " + BalanceUtils.getBalance(new Date(),  event.getContractID() );
   check.addString( " " );
}


Проверьте.

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