Начисление бонусов на счет при платежах определенного типа
Материал из BiTel WiKi
Версия от 04:37, 15 мая 2009; Admin (Обсуждение | вклад)
При поступлении на счет договора платежей типов 390 и 391 дополнительно начисляется платеж-бонус с типом 529 и суммой, равной 5% от основного платежа. Обрабатывается событие "Приход платежа".
Для 4.6 версии:
import bitel.billing.server.contract.bean.*; import bitel.billing.server.util.*; import java.math.*; payment = event.getPayment(); cid = payment.getContractID(); date = payment.getDate(); bu = new BalanceUtils( con ); pm = new PaymentManager( con ); PAYMENT_TYPE_ICB_1 = 1; PAYMENT_TYPE_ICB_2 = 2; PAYMENT_TYPE_ICB_BONUS = 5; // бонус за ИКБ платежи if( payment.getPaymentTypeID() == PAYMENT_TYPE_ICB_1 || payment.getPaymentTypeID() == PAYMENT_TYPE_ICB_2 ) { print( "Add ICB bonus payment.." ); bonus = new Payment(); bonus.setPaymentTypeID( PAYMENT_TYPE_ICB_BONUS ); bonus.setDate( date ); bonus.setContractID( payment.getContractID() ); bonus.setSumma( payment.getSumma().multiply( new BigDecimal( "0.05" ) ) ); bonus.setComment( "Бонус за платеж через ИКБ ИБ" ); bonus.setUserID( 0 ); pm.updatePayment( "new", bonus ); bu.updateBalance( date, cid ); }
Для 4.5 версии и ранее:
import bitel.billing.server.contract.bean.*; import bitel.billing.server.util.*; payment = event.getPayment(); cid = payment.getContractID(); date = payment.getDate(); bu = new BalanceUtils( con ); pm = new PaymentManager( con ); PAYMENT_TYPE_ICB_1 = 390; PAYMENT_TYPE_ICB_2 = 392; PAYMENT_TYPE_ICB_BONUS = 529; // бонус за ИКБ платежи if( payment.getPaymentTypeID() == PAYMENT_TYPE_ICB_1 || payment.getPaymentTypeID() == PAYMENT_TYPE_ICB_2 ) { print( "Add ICB bonus payment.." ); bonus = new Payment(); bonus.setPaymentTypeID( PAYMENT_TYPE_ICB_BONUS ); bonus.setDate( date ); bonus.setContractID( payment.getContractID() ); bonus.setSumma( (float)(payment.getSumma() * 0.05) ); bonus.setComment( "Бонус за платеж через ИКБ ИБ" ); bonus.setUserID( 0 ); pm.updatePayment( "new", bonus ); bu.updateBalance( date, cid ); }