/** * 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; }
/** * Este metodo esta encargado de agregar los valores necesarios para que el bean sea procesado por * el store PROCESA_EQUITIES. * * @param procesaVO * @param validaCapVO * @throws Exception */ private void populaBeanValidar(final CargaMasivaVO cargaVO, final ValidaCapitalesVO validaCapVO) throws Exception { if (cargaVO.getResult().intValue() != 0) { if (validaCapVO.getPicoind() != 0) { cargaVO.setPl("P"); } cargaVO.setStatus("R"); cargaVO.setErrMsg(cargaVO.getResult() + ":" + cargaVO.getErrMsg()); cargaVO.setPrice(new BigDecimal(0.0)); } else { cargaVO.setStatus("C"); cargaVO.setErrMsg(""); if (!validaCapVO.getBrPrcinpDate().equals(cargaVO.getDealDate())) { cargaVO.setErrMsg( "LA OPERACIÓN SERA DADA DE ALTA CON " + "FECHA DE OPERACIÓN DEL SIGUIENTE DIA HÁBIL."); } if (cargaVO.getRemQty().intValue() != 0 && validaCapVO.getPicoind() == 0) { cargaVO.setPl("L"); esPico = true; } else { esPico = false; } } cargaVO.setBranchId(validaCapVO.getBranch()); cargaVO.setAccount(validaCapVO.getAccount()); cargaVO.setOper(validaCapVO.getOper()); cargaVO.setPs(validaCapVO.getPs()); cargaVO.setCcy(validaCapVO.getCcy()); cargaVO.setSecid(validaCapVO.getSecid()); cargaVO.setOrderType(validaCapVO.getOrderType()); cargaVO.setOrderInst(validaCapVO.getOrderInst()); cargaVO.setBrPrcinpDate(validaCapVO.getBrPrcinpDate()); cargaVO.setBrDateFront(FechaUtils.dateToString(validaCapVO.getBrPrcinpDate())); log.info("FECHA A MOSTRARSE:|" + cargaVO.getBrDateFront() + "|"); cargaVO.setTriggerPrice(validaCapVO.getTriggerPrice()); cargaVO.setExpirTerm(validaCapVO.getExpirTerm()); cargaVO.setPorcentaje(validaCapVO.getPorcentaje()); cargaVO.setPriceInd(validaCapVO.getPriceIndCarga()); if (validaCapVO.getPriceIndCarga().equals("L")) { cargaVO.setPriceLimit(1); } else { cargaVO.setPriceLimit(0); } cargaVO.setTimeCEIQ(FechaUtils.dateToString(new Date())); cargaVO.setSel(validaCapVO.getSelCarga()); cargaVO.setDealDateFront(FechaUtils.dateToString(cargaVO.getDealDate())); cargaVO.setExpirDateFront(FechaUtils.dateToString(cargaVO.getExpirDate())); }