public void generarAmortizacion() { try { // DefaultRequestContext.getCurrentInstance().execute("wdlgAmortizacion.show()"); double tasap; double valorcuota; int ncuotas = 0; int pagosanio = 0; double interes = credito.getInteres().doubleValue(); double amortizacion = 0; double pagointeres; double monto = credito.getMonto().doubleValue(); double saldo = monto; int plazo = credito.getPlazo(); if (this.credito.getFormapago().equals("Mensual")) { pagosanio = 12; } ncuotas = plazo * pagosanio; interes = interes / 100; double tp = Math.pow((interes + 1), (1 / pagosanio)); tasap = tp - 0.9; // -1 double div = 1 - Math.pow((1 + tasap), (-1 * ncuotas)); valorcuota = (monto * (tasap / div)); listaAmt.clear(); objAmortizacion.setAmzcuota(credito.getPlazo()); objAmortizacion.setCreditoid(resul); for (int i = 0; i <= ncuotas; i++) { objAmortizacion.setAmzcuota(credito.getPlazo()); objAmortizacion.setCreditoid(resul); if (i != 0) { objAmortizacion.setAmzcuota(i); objAmortizacion.setAmzvalorc(BigDecimal.valueOf(getRedondear(valorcuota))); pagointeres = saldo * (tasap); objAmortizacion.setAmzinteres(BigDecimal.valueOf(getRedondear(pagointeres))); amortizacion = valorcuota - pagointeres; objAmortizacion.setAmortizacion(BigDecimal.valueOf(getRedondear(amortizacion))); saldo = saldo - amortizacion; objAmortizacion.setAmzcapital(BigDecimal.valueOf(getRedondear(saldo))); // objAmortizacion.setAmzfecha(obtieneFechaTimeStamp(fecha.getTime())); } else { objAmortizacion.setAmzcuota(i); objAmortizacion.setAmzcapital(BigDecimal.valueOf(getRedondear(monto))); } this.listaAmt.add(objAmortizacion); this.objAmortizacion = new Amortizacion(); } insertar(); } catch (Exception e) { } }