package com.fitbank.installment; import java.math.BigDecimal; import com.fitbank.common.helper.Constant; /** * Clase que genera una tabla de interes anticipado y capital al vencimiento. * @author BANTEC Inc. */ public class AdvanceInterestInstallment extends AbstractQuota { /* (non-Javadoc) * @see com.fitbank.installment.AbstractQuota#calculate(com.fitbank.installment.InstallmentTable) */ public void calculate(InstallmentTable pQuotaTable) throws Exception { isAdvancedInterest = true; this.quotaTable = pQuotaTable; this.quotanumber = pQuotaTable.getBegincalculationperiod(); super.reducedcapital = quotaTable.getAmount(); boolean end = false; super.calculateTotalperiod(pQuotaTable); int size = quotaTable.getTotalperiod() ; size = size + quotaTable.getBegincalculationperiod()-1; super.interestFrquencyDays = quotaTable.getDaysperperiod(); for (int i = this.quotaTable.getBegincalculationperiod(); i <= size; i++) { super.calculatePayDate(this.quotaTable); if(i == size){ end = true; } super.processByCategory(true); this.calculateCuota(end); this.quotanumber++; if(super.stop){ break; } }//end for } /** * Calcula tabla de pago dado una cuota fija. * @throws Exception */ protected void calculateCuota(boolean pEnd) throws Exception{ BigDecimal capital = Constant.BD_ZERO; // Obtiene el valor de interes y comision de la cuota // Si se trata de la ultima cuota if(pEnd){ // Carga todo el capital reducido al capital de la cuota capital = this.quotaTable.getAmount(); } super.addQuota(this.quotanumber,this.quotaTable.getAmount(),capital,true); } }