Exemple #1
0
  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) {
    }
  }