package com.fitbank.installment;

import com.fitbank.balance.helper.BalanceList;
import com.fitbank.common.Helper;
import com.fitbank.dto.financial.FinancialRequest;
import com.fitbank.fin.common.provision.GeneralProvision;
import com.fitbank.fin.helper.TransactionHelper;
import com.fitbank.hb.persistence.fin.Tbalance;

/**
 * Clase que se encarga del cambio de una tasa.
 * @author fit-bank
 *
 */

public class CalculateProvisionNewRate {
	/**
	 * Cambiar la Tasa 
	 * @param pFinancialRequest		FinantialRequest
	 * @param listTbalance			Listado de Saldos a prosesar
	 * @throws Exception
	 */
	
	public void calculate(FinancialRequest pFinancialRequest,BalanceList<Tbalance> listTbalance) throws Exception {
		BalanceList<Tbalance> lbalancessubaccount = listTbalance.getProvisionBalance();
		for (Tbalance tbalance : lbalancessubaccount) {				
			BalanceList<Tbalance> lprovision = new BalanceList<Tbalance>();		
			lprovision.add(tbalance);
			pFinancialRequest.setAccountingdate(tbalance.getFinicio());
			pFinancialRequest.setValuedate(tbalance.getFinicio());
			pFinancialRequest.setProcessdate(tbalance.getFinicio());
			TransactionHelper.getTransactionData().setAccountingdate(tbalance.getFinicio());
			new GeneralProvision(lprovision,pFinancialRequest,true);
			TransactionHelper.getTransactionData().getFinancialTransaction().saveProvisionBalances();
			Helper.flushTransaction();
		}				
	}
			
	
}
