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

[6.0] PaymentManager deletePayment
http://forum.bitel.ru/viewtopic.php?f=19&t=12037
Страница 1 из 1

Автор:  oldb0y [ 25 окт 2016, 11:20 ]
Заголовок сообщения:  [6.0] PaymentManager deletePayment

Не смог найти достаточно информации по методу PaymentManager.deletePayment()

Как правильно удалить платеж?

Решение (спасибо barguzin2):
Код:
               // PID — ID платежа
               // CID — ID договора

               Date CURDATE = new Date();
               BalanceUtils bu = new BalanceUtils( con );
               PaymentManager pm = new PaymentManager( con );
               Payment payment = pm.getPaymentById( PID );

               pm.deletePayment( PID );
               bu.updateBalance( CURDATE, CID);

               // Кидаем оповещение
               EventProcessor eventProc = EventProcessor.getInstance();
               eventProc.publishAfterCommit( new PaymentDeletedEvent( 0, payment ) );
               eventProc.publishAfterCommit( new ContractBalanceChangedEvent( CID, payment.getSum().negate() ) );

Автор:  barguzin2 [ 25 окт 2016, 12:40 ]
Заголовок сообщения:  Re: [6.0] PaymentManager deletePayment

Второй вариант более верный, только зачем кидать 2 события удаления платежа. И эти лишние телодвижения с отрицательным значением суммы платежа. примерно, так:

Код:
// Кидаем оповещение
EventProcessor eventProc = EventProcessor.getInstance();
eventProc.publishAfterCommit( new PaymentDeletedEvent( 0, payment ) );
eventProc.publishAfterCommit( new ContractBalanceChangedEvent( cid, payment.getSum().negate() ) );

Автор:  oldb0y [ 25 окт 2016, 14:07 ]
Заголовок сообщения:  Re: [6.0] PaymentManager deletePayment

Спасибо! Акуратно и красиво.

Автор:  stark [ 09 дек 2016, 13:26 ]
Заголовок сообщения:  Re: [6.0] PaymentManager deletePayment

Лучше делать через Web-сервис и не думать самим о балансах и событиях.

Автор:  barguzin2 [ 15 дек 2016, 13:02 ]
Заголовок сообщения:  Re: [6.0] PaymentManager deletePayment

согласен. только в 6.0 его, вроде, нет.

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