/**
  * Metodo encargado de validar las ordenes contenidas en el archivo de excel proporcionado por la
  * carga masiva a traves del store SPP_VALIDA_EQUITIES y regresa la respuesta en DatosTabulares.
  *
  * @param ordenes Lista de ordenes a validar.
  * @return DatosTabulares resultado de la validacion.
  * @throws Exception Arroja una excepcion si ocurre un error.
  */
 public DatosTabulares validaOrdenesExcel(final List ordenes, final String formatoFecha)
     throws Exception {
   Iterator iteraOrdenes = null;
   ValidaCapitalesVO validaCapVO = null;
   CargaMasivaVO cargaVO = null;
   List ordenesValidadas = new ArrayList();
   DatosTabulares dt = null;
   ProcesaCapitalesVO procesaVO;
   if (ordenes != null && ordenes.size() > 0) {
     iteraOrdenes = ordenes.iterator();
     while (iteraOrdenes.hasNext()) {
       validaCapVO = (ValidaCapitalesVO) iteraOrdenes.next();
       // Valida antes de ejecutar SPP_VALIDA_EQUITIES
       this.validaValores(validaCapVO);
       if (validaCapVO.getMsgError() == null) {
         procesaVO = preadminDAO.validaCapitales(validaCapVO);
         cargaVO = new CargaMasivaVO(procesaVO);
       } else {
         cargaVO = new CargaMasivaVO();
         cargaVO.setResult(new BigDecimal(-1));
         cargaVO.setErrMsg(validaCapVO.getMsgError());
       }
       // Agrega la informacion extra que se necesita mostrar
       this.populaBeanValidar(cargaVO, validaCapVO);
       if (cargaVO.getPrice() != null && cargaVO.getOrigQty() != null) {
         cargaVO.setExtPrice(cargaVO.getPrice().multiply(cargaVO.getOrigQty()));
       }
       ordenesValidadas.add(cargaVO);
       if (esPico) {
         CargaMasivaVO tmp = new CargaMasivaVO(cargaVO);
         log.info("Fecha branch antes de pico:|" + tmp.getBrDateFront() + "|");
         this.agregaOperacionPico(validaCapVO, tmp);
         log.info("Fecha branch despues de pico:|" + tmp.getBrDateFront() + "|");
         tmp.setOrigQty(tmp.getRemQty());
         tmp.setPl("P");
         if (tmp.getPrice() != null) {
           tmp.setExtPrice(tmp.getPrice().multiply(tmp.getOrigQty()));
         }
         log.info("Fecha a mostrarse antes:|" + tmp.getBrDateFront() + "|");
         ordenesValidadas.add(tmp);
       }
     }
   }
   if (ordenesValidadas.size() > 0) {
     dt =
         new DatosTabularesDeLista(
             ordenesValidadas, parametrosValidacion() + "," + getParametrosExtras());
   }
   return dt;
 }
 /**
  * Metodo encargado de agregar la operacion pico que es enviada a la lista final de registros.
  * Realiza las mismas validaciones que una operacion normel.
  *
  * @param validaCapVO VO con los datos a validar
  * @param procesaVO VO con los datos a procesa
  * @throws Exception Arroja una excepcion si ocurre un error.
  */
 public void agregaOperacionPico(ValidaCapitalesVO validaCapVO, CargaMasivaVO cargaVO)
     throws Exception {
   ProcesaCapitalesVO procesaVO = null;
   // Indicador de operacion Pico
   validaCapVO.setPicoind(1);
   this.validaValores(validaCapVO);
   if (validaCapVO.getMsgError() == null) {
     procesaVO = preadminDAO.validaCapitales(validaCapVO);
     cargaVO = new CargaMasivaVO(procesaVO);
   } else {
     cargaVO = new CargaMasivaVO();
     cargaVO.setResult(new BigDecimal(-1));
     cargaVO.setErrMsg(validaCapVO.getMsgError());
   }
   // Agrega la informacion extra que se necesita mostrar
   this.populaBeanValidar(cargaVO, validaCapVO);
 }
 public DatosTabulares procesaOrdenesExcel(
     final List ordenes,
     final String formatoFecha,
     final String fileName,
     final SantanderSecurityContext sc)
     throws Exception {
   Iterator iteraOrdenes = null;
   CargaMasivaVO cargaVO = null;
   String orden = null;
   List ordenesProcesadas = new ArrayList();
   DatosTabulares dt = null;
   CargaMasivaJson cargaJson = null;
   BigDecimal seq = cargaMasivaDAO.obtenSecuenciaCarga();
   if (ordenes != null && ordenes.size() > 0) {
     iteraOrdenes = ordenes.iterator();
     while (iteraOrdenes.hasNext()) {
       cargaVO = new CargaMasivaVO();
       cargaJson = (CargaMasivaJson) iteraOrdenes.next();
       this.populaBeanProcesar(cargaVO, cargaJson, formatoFecha);
       try {
         log.info(
             "Bean a procesar:|" + cargaJson.getOrigqty() + "|:|" + cargaJson.getProcesar() + "|");
         if (cargaJson.getProcesar().equals("T")) {
           orden = preadminDAO.procesaCapitales(cargaVO);
           cargaVO.setOrdenOpics(orden);
           this.populaBeanProcesado(cargaVO, cargaJson, true);
           cargaMasivaDAO.generaHistoricoCEIQ(seq, cargaVO, fileName);
           getBitacoraService()
               .registraCapitales(
                   orden.trim(),
                   cargaVO.getBranchId(),
                   FCBitacoraService.TIPO_TX_CAPITALES,
                   cargaVO.getEjecucion(),
                   cargaVO.getFolio(),
                   new HashMap(),
                   FCBitacoraService.MODO_NUEVA_OPERACION,
                   sc);
           ordenesProcesadas.add(cargaVO);
         } else {
           // Hacer lo mismo para las que no se genera.
           this.populaBeanProcesado(cargaVO, cargaJson, false);
           cargaMasivaDAO.generaHistoricoCEIQ(seq, cargaVO, fileName);
           if (cargaVO.isRechazadaUsuario()) {
             ordenesProcesadas.add(cargaVO);
           }
         }
       } catch (Exception e) {
         try {
           log.info("ERROR AL PROCESAR CARGA MASIVA:|" + e.toString() + "|");
           String[] error = e.toString().split("-");
           if (error.length > 1) {
             Integer.parseInt(error[1]);
             log.info("Existe una excepcion try al generar CEIQ:|" + error[1] + "|");
             cargaVO.setResult(new BigDecimal("-" + error[1]));
             cargaVO.setErrMsg(getMsgErrorCache().evaluaMensaje("-" + error[1]));
           } else {
             Integer.parseInt(e.toString());
           }
         } catch (NumberFormatException nfe) {
           log.info("Existe una excepcion catch al generar CEIQ:|" + e + "|");
           cargaVO.setResult(new BigDecimal(-1));
           cargaVO.setErrMsg(getMsgErrorCache().evaluaMensaje(ErrorKeys.ERR_BASE_DATOS));
         }
         this.populaBeanProcesado(cargaVO, cargaJson, false);
         cargaMasivaDAO.generaHistoricoCEIQ(seq, cargaVO, fileName);
         ordenesProcesadas.add(cargaVO);
         // throw e;
       }
     }
     dt = new DatosTabularesDeLista(ordenesProcesadas, parametrosValidacion());
   }
   return dt;
 }