Esempio n. 1
0
  /**
   * Valida la emisora capturada.
   *
   * @param fondosVO Parametros para filtrar la consulta.
   * @throws Exception En caso que ocurra un error.
   */
  public final RespuestaFondosVO validaEmisoras(final ParFondosVO fondosVO) throws Exception {

    RespuestaFondosVO respFondos = new RespuestaFondosVO();
    RespuestaFondosVO respDAOFon = new RespuestaFondosVO();
    Date strFecha = null;
    long interv = 0;

    respDAOFon = capturaFondosDAO.validaEmisora(fondosVO.getEmisora());

    if (respDAOFon.getError() != null) {
      respFondos.setError(ErrorKeys.ERR_EMISORA_INVALIDA);
      return respFondos;
    } else {
      int dias = respDAOFon.getDias();
      DatosTabulares dt = capturaFondosDAO.validaEmisoraFondos(fondosVO);

      Date fechaFormateada = fondosVO.getFechaProc();

      if (!dt.isEmpty()) {
        log.debug("colFsettdate " + dt.get(0, colFsettdate));
        if (dt.get(0, colFsettdate) == null
            || dt.get(0, colFsettdate).toString().trim().length() == 0) {
          if (respDAOFon.getDias() == 0) {
            respFondos.setFechaValor(fechaFormateada);
          } else {
            respFondos.setSettDate(
                commonDAO.sumaDiasHabiles(fechaFormateada, fondosVO.getMoneda().trim(), dias));
            respFondos.setFechaValor(respFondos.getSettDate());
            log.debug("respFondos.getSettDate" + respFondos.getSettDate());
            log.debug("respFondos.getFechaValor" + respFondos.getFechaValor());
          }
        } else {

          strFecha = commonDAO.sumaDiasHabiles(fechaFormateada, fondosVO.getMoneda().trim(), dias);

          if (strFecha == null) {
            strFecha = fondosVO.getFechaProc();
          }

          interv = commonDAO.diffDates(strFecha, (Date) dt.get(0, colFsettdate), "Fondos");

          log.debug("Valor de interv " + interv);

          if (interv < 0) {
            respFondos.setError(ErrorKeys.ERR_FECHA_EMISORA_MAL_ACTUALIZADA);
            return respFondos;
          } else {
            respFondos.setFechaValor((Date) dt.get(0, colFsettdate));
            log.debug("Fecha valor " + respFondos.getFechaValor());
          }
        }
      } else {
        /**
         * Se cambia la validacion de compraVenta a false porque el envio de compra venta se esta
         * haciendo de manera inversa, es decir, cuando es compra se esta enviando en false y venta
         * como true, se modifica aqui la validacion para no afectar otros procedimientos. Error
         * Interno 636
         */
        if (fondosVO.getCompraVenta().trim().equals("false")) {
          respFondos.setError(ErrorKeys.ERR_EMISORA_INVALIDA_SEMF);
        } else {
          respFondos.setError("-20113");
        }
        return respFondos;
      }
      return respFondos;
    }
  }