/**
   * Consulta las lineas de credito 24x7 del cliente, solo se puede tener una linea por cliente
   *
   * @param request Datos de entrada de la peticion, se recibe un json
   * @param response Datos de salida de la petcion
   * @return regresa la respuesta del servicio en formato json
   */
  public ModelAndView consultarDatosLinea24X7(
      HttpServletRequest request, HttpServletResponse response) {

    ClienteBean cliente = (ClienteBean) request.getSession().getAttribute("cliente");
    JSONResponseBean responseBean = new JSONResponseBean();
    JSONObject jsonObject = new JSONObject();
    CreditoConsumoBean linea = null;

    try {
      linea = lineas24x7Service.consultarDatosLinea24X7("", cliente);

      jsonObject.put("autorizado", linea.getSaldos().getMontoAutorizado());
      jsonObject.put("disponible", linea.getSaldos().getMontoDisponible());
      jsonObject.put("vigencia", linea.getFechas().getFechaVencimientoLinea());
      jsonObject.put("credito", linea.getNumCredito());
      jsonObject.put("montoMinimo", linea.getSaldos().getMontoMinimo());
      jsonObject.put("entidad", linea.getProducto().getIdEntidad());

      responseBean.setError(ErrorBean.SUCCESS);
      responseBean.setDto(JSONObject.fromBean(jsonObject).toString());
    } catch (BusinessException e) {
      responseBean.setError(e.getError());
    }

    return getResponseView(responseBean);
  }
  /**
   * * Simula el monto de disposicion de un credito 24x7
   *
   * @param request Datos de entrada de la peticion, se recibe un json
   * @param response Datos de salida de la petcion
   * @return regresa la respuesta del servicio en formato json
   */
  public ModelAndView simularDisposicion(HttpServletRequest request, HttpServletResponse response) {

    JSONResponseBean responseBean = new JSONResponseBean();

    try {
      JSONObject jsonObject = getJSONRequestObject(request);
      CreditoConsumoBean credito = new CreditoConsumoBean();
      ClienteBean cliente = (ClienteBean) request.getSession().getAttribute("cliente");
      BitacoraBean bitacora = getBitacoraBean(request);
      CreditoConsumoBean simulacion = null;

      credito.setNumCredito(jsonObject.getString("numeroCredito"));
      credito.setSaldos(new SaldosCreditoBean());
      credito.getSaldos().setLineaCredito(jsonObject.getString("monto"));

      simulacion = lineas24x7Service.simularDisposicion(credito, cliente, bitacora);
      responseBean.setDto(JSONObject.fromBean(simulacion).toString());
      responseBean.setError(ErrorBean.SUCCESS);
    } catch (BusinessException e) {
      responseBean.setError(e.getError());
    } catch (Exception e) {
      responseBean.setError(e.getMessage());
    }

    return getResponseView(responseBean);
  }
  /**
   * Realiza la disposicion del credito 24x7
   *
   * @param request Datos de entrada de la peticion, se recibe un json
   * @param response Datos de salida de la petcion
   * @return regresa la respuesta del servicio en formato json
   */
  public ModelAndView realizarDisposicion(
      HttpServletRequest request, HttpServletResponse response) {

    JSONResponseBean responseBean = new JSONResponseBean();

    try {
      JSONObject jsonObject = getJSONRequestObject(request);
      CreditoConsumoBean credito = new CreditoConsumoBean();
      ClienteBean cliente = (ClienteBean) request.getSession().getAttribute("cliente");
      BitacoraBean bitacora = getBitacoraBean(request);
      DisposicionL24X7Bean disposicion = null;
      byte[] datosTabla = null;

      credito.setNumCredito(jsonObject.getString("numeroCredito"));
      credito.setSaldos(new SaldosCreditoBean());
      credito.getSaldos().setLineaCredito(jsonObject.getString("monto"));

      disposicion = lineas24x7Service.realizarDisposicion(credito, cliente, bitacora);
      datosTabla =
          lineas24x7Service.consultarTablaAmortizacionL24X7(
              disposicion.getTablaAmortizacion(), cliente.getNombre());
      JSONObject respuesta = new JSONObject();

      request.getSession().setAttribute("tablaL24x7", datosTabla);
      respuesta.put("datos", JSONObject.fromBean(disposicion.getDatosDisposicion()).toString());

      responseBean.setDto(respuesta.toString());
      responseBean.setError(ErrorBean.SUCCESS);
    } catch (BusinessException e) {
      responseBean.setError(e.getError());
    } catch (Exception e) {
      responseBean.setError(e.getMessage());
    }

    return getResponseView(responseBean);
  }