Начисление бонусов на счет при платежах определенного типа

Материал из BiTel WiKi

Перейти к: навигация, поиск

При поступлении на счет договора платежей типов 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 );
}
Личные инструменты