/** * Método que obtiene los ultimos 5 movimientos de una cuenta. * * @param cliente ClienteBean. * @param datosMovimientos Datos para la consulta. * @param bitacoraBean Objeto para bitacorizar. * @param tipoProducto Tipo de producto a consultar (CC, TC, FI, IV) * @throws BusinessException Excepción lanzada si no se puede ejecutar el servicio. */ public Object getUltMvtos(ClienteBean cliente, DatosUltMvtos datos, BitacoraBean bitacoraBean) throws BusinessException, ParseException { log.debug("*****************ENTRO A CONSULTA ULTIMOS 5 MOVIMIENTOS************"); if (cliente == null) { throw new BusinessException("MOVIMIENTOS"); } String tipoConsulta = datos.getTipoConsulta(); boolean restaranio = false; // Obtencion de fechas inicial y final String sdiaFrom = "", smesFrom = "", sanioFrom = ""; String sdiaTo = "", smesTo = "", sanioTo = ""; GregorianCalendar gc = new GregorianCalendar(); Date trialTime = new Date(); gc.setTime(trialTime); // se obtiene fecha inicial int idiaTo = gc.get(Calendar.DAY_OF_MONTH); int imesTo = gc.get(Calendar.MONTH); int ianioTo = gc.get(Calendar.YEAR); sdiaTo = Integer.toString(idiaTo); sanioTo = Integer.toString(ianioTo); smesTo = getMesFromNumber(imesTo); if (imesTo <= 2) { restaranio = true; } // Se reduce la fecha tres meses gc.roll(Calendar.MONTH, -2); // se obtiene la fecha final int idiaFrom = gc.get(Calendar.DAY_OF_MONTH); int imesFrom = gc.get(Calendar.MONTH); int ianioFrom = gc.get(Calendar.YEAR); if (restaranio) { ianioFrom -= 1; } sdiaFrom = Integer.toString(idiaFrom); sanioFrom = Integer.toString(ianioFrom); smesFrom = getMesFromNumber(imesFrom); String from = sdiaFrom + "/" + smesFrom + "/" + sanioFrom; String to = sdiaTo + "/" + smesTo + "/" + sanioTo; System.out.println("From: " + from); System.out.println("To: " + to); datos.setFecha(to); datos.setFechaDia(to); datos.setFechaHistorica(from); if (tipoConsulta.equals("CC") || tipoConsulta.equals("IV")) { log.debug("*********************ENTRA EN CONSULTA DE CUENTA DE CHEQUES*********************"); DatosConsultaMovimientosBean bean = new DatosConsultaMovimientosBean(); bean.setCuenta(datos.getCuenta()); bean.setFechaDia(datos.getFechaDia()); bean.setFechaHistorica(datos.getFechaHistorica()); bean.setImporte(datos.getImporte()); bean.setTipoCuenta(datos.getTipoCuenta()); bean.setTipoMovimiento(datos.getTipoMovimiento()); return getMovimientoCuentasChequeras(cliente, bean, bitacoraBean); } if (tipoConsulta.equals("TC")) { log.debug( "*********************ENTRA EN CONSULTA DE TARJETAS DE CREDITO*********************"); DatosEntradaMovimientosBean bean = new DatosEntradaMovimientosBean(); bean.setCuenta(datos.getCuenta()); bean.setDespliega(datos.getDespliega()); bean.setExtracto(datos.getExtracto()); bean.setFecha(datos.getFecha()); bean.setFechaHistorica(datos.getFechaHistorica()); bean.setNumeroExtracto(datos.getNumeroExtracto()); bean.setTasaAnualizada(datos.getTasaAnualizada()); bean.setTipoOperacion(datos.getTipoOperacion()); bean.setTipoProducto(datos.getTipoProducto()); return getMovimientoTarjetacredito(cliente, bean, bitacoraBean); } if (tipoConsulta.equals("FI")) { log.debug( "*********************ENTRA EN CONSULTA DE FONDOS DE INVERSION*********************"); DatosEntradaMovimientosBean bean = new DatosEntradaMovimientosBean(); bean.setCuenta(datos.getCuenta()); bean.setDespliega(datos.getDespliega()); bean.setExtracto(datos.getExtracto()); bean.setFecha(datos.getFecha()); bean.setFechaHistorica(datos.getFechaHistorica()); bean.setNumeroExtracto(datos.getNumeroExtracto()); bean.setTasaAnualizada(datos.getTasaAnualizada()); bean.setTipoOperacion(datos.getTipoOperacion()); bean.setTipoProducto(datos.getTipoProducto()); return getMovimientoFondoInversion(cliente, bean, bitacoraBean); } if (tipoConsulta.equals("IV")) { log.debug( "*********************ENTRA EN CONSULTA DE INVERSION VISTA*************************"); } return null; }
/** * Este método obtenerMovimientosCheques se encuentra en el paquete * com.santander.supernet.web.servlets.consultas en el servlet Movimientos. * * @param datosMovimientos datos de los movimientos * @param usuario usuario * @param referencia Referncia * @param nombreClase Nombre de la clase * @return Regresa un movimiento * @throws ParseException Excepcion de parse * @throws BusinessException excepiocn de negocio */ private MovimientosBean obtenerMovimientosCheques( DatosConsultaMovimientosBean datosMovimientos, String usuario, String referencia, String nombreClase) throws BusinessException, ParseException { log.debug("*******ENTRO EN OBTENRE MOVIMIENTOS CHEQUES***********"); MovimientosBean movimientosCuentasChequerasBean = new MovimientosBean(); log.debug("TIPO MOVIMIENTO " + datosMovimientos.getTipoMovimiento()); char tipoMovimiento = 'T'; if (datosMovimientos.getTipoMovimiento().equals("Retiros")) { tipoMovimiento = 'C'; } else { if (datosMovimientos.getTipoMovimiento().equals("Depositos")) { tipoMovimiento = 'A'; log.debug("TIPO MOVIMIENTO " + tipoMovimiento); } else { tipoMovimiento = 'T'; } } log.debug("TIPO MOVIMIENTO " + tipoMovimiento); if (datosMovimientos.getTipoCuenta().equals("Vista")) { datosMovimientos.setTipoCuenta("V"); } else { if (datosMovimientos.getTipoCuenta().equals("Cheques")) { datosMovimientos.setTipoCuenta("C"); } } String fechaInicio = datosMovimientos.getFechaHistorica().substring(6) + "-" + datosMovimientos.getFechaHistorica().substring(3, 5) + "-" + datosMovimientos.getFechaHistorica().substring(0, 2); log.debug("FECHA INICIO " + fechaInicio); String fechaFin = datosMovimientos.getFechaDia().substring(6) + "-" + datosMovimientos.getFechaDia().substring(3, 5) + "-" + datosMovimientos.getFechaDia().substring(0, 2); log.debug("FECHA FIN " + fechaFin); SantanderMovimientoCuentaService servicioMovimientos = null; // synchronized (this) { log.debug("**************ENTRO EN SINCONIZADO******************"); log.debug("CUENTA " + datosMovimientos.getCuenta()); log.debug("REFERENCIA " + referencia); log.debug("FECHA INICIO " + fechaInicio); log.debug("FECHA FIN " + fechaFin); log.debug("TIPO MOVIMIENTO " + tipoMovimiento); log.debug("TIPO CUENTA " + datosMovimientos.getTipoCuenta()); log.debug("IMPORTE " + datosMovimientos.getImporte()); log.debug("NOMBRE CLASE " + nombreClase); log.debug("datosMovimientos.getImporte() " + datosMovimientos.getImporte()); if (StringUtils.equals(datosMovimientos.getImporte(), "") || StringUtils.isEmpty(datosMovimientos.getImporte()) || StringUtils.isBlank(datosMovimientos.getImporte())) { datosMovimientos.setImporte("0.00"); } try { servicioMovimientos = new SantanderMovimientoCuentaService(); servicioMovimientos = new SantanderMovimientoCuentaService(); servicioMovimientos.setNumeroCuenta(datosMovimientos.getCuenta()); servicioMovimientos.setReferencia(referencia); servicioMovimientos.setFechaInicio(fechaInicio); servicioMovimientos.setFechaFin(fechaFin); servicioMovimientos.setTipoMovimiento(tipoMovimiento); servicioMovimientos.setTipoCuenta(datosMovimientos.getTipoCuenta()); servicioMovimientos.setImporte(datosMovimientos.getImporte()); servicioMovimientos.setNombreClase(nombreClase); log.debug("**************ANTES DE EJECUTA******************"); servicioMovimientos.ejecuta(); log.debug("**************DESPUES DE EJECUTAR******************"); } catch (Error e) { throw new BusinessException("B401-00"); } // } List<MovimientosChequerasBean> listaMovimientos = new ArrayList<MovimientosChequerasBean>(); MovimientosChequerasBean movimientosChequeraBean = null; log.debug("Codigo de status " + servicioMovimientos.getCodigoEstatus()); if (servicioMovimientos.getCodigoEstatus() == 0) { log.debug("Entro en codigo de status 0"); Hashtable movimientos = servicioMovimientos.getMovimientos(); log.debug("MUESTRA LOS MOVIMIENTOS SIZE " + movimientos.size()); log.debug("MUESTRA LOS MOVIMIENTOS " + movimientos.toString()); for (int i = 0; i < movimientos.size(); i++) { log.debug("*******ENTRO EN EL FOR*********"); String cantidades[] = (String[]) movimientos.get(String.valueOf(i)); movimientosChequeraBean = new MovimientosChequerasBean(); log.debug("fechaOperante " + cantidades[0]); log.debug("fecha Operante 2 " + Utils.sdfMovimientosCheques.parse(cantidades[0])); log.debug("fecha " + Utils.sdf.format(Utils.sdfMovimientosCheques.parse(cantidades[0]))); movimientosChequeraBean.setFechaOperante( Utils.sdf.format(Utils.sdfMovimientosCheques.parse(cantidades[0]))); movimientosChequeraBean.setCodigoAmpliado(cantidades[1]); movimientosChequeraBean.setReferenciaInterna(cantidades[2]); if (!cantidades[3].equals("")) { cantidades[3] = MovimientosServiceReusableFunctions.formateaCantidades(cantidades[3]); movimientosChequeraBean.setMontoCargo(cantidades[3]); } if (!cantidades[4].equals("")) { cantidades[4] = MovimientosServiceReusableFunctions.formateaCantidades(cantidades[4]); movimientosChequeraBean.setMontoAbono(cantidades[4]); } movimientosChequeraBean.setCentroUmo(cantidades[5]); movimientosChequeraBean.setHoraFinal(cantidades[6]); if (!cantidades[7].equals("")) { cantidades[7] = MovimientosServiceReusableFunctions.formateaCantidades(cantidades[7]); movimientosChequeraBean.setSaldoFinal(cantidades[7]); } movimientosChequeraBean.setObservaciones(cantidades[8]); // Se agrega el set de referencia SPEI se separa de observaciones (concepto) movimientosChequeraBean.setReferenciaSPEI(cantidades[9]); log.debug("movimientosChequeraBean********* " + movimientosChequeraBean.toString()); log.debug("TIPO MOVIMIENTO ********* " + tipoMovimiento); if (movimientosChequeraBean.getMontoAbono() != null && tipoMovimiento == 'A') { log.debug("***********ENTRO EN TIPO MOVIMIENTO A ********* "); log.debug("MONTO ABONO ********* " + movimientosChequeraBean.getMontoAbono()); listaMovimientos.add(movimientosChequeraBean); } else { log.debug("ENTRO EN EL ELSE DE TIPO DE MOVIMIENTO " + listaMovimientos.size()); if (movimientosChequeraBean.getMontoCargo() != null && tipoMovimiento == 'C') { log.debug("ENTRO EN TIPO MOVIMIENTO C ********* "); listaMovimientos.add(movimientosChequeraBean); } else { log.debug("ENTRO EN EL SEGUNDO ELSE DE TIPO DE MOVIMIENTO " + listaMovimientos.size()); if (tipoMovimiento == 'T') { log.debug("ENTRO EN TIPO MOVIMIENTO T ********* "); listaMovimientos.add(movimientosChequeraBean); } } } log.debug("*****LISTA EN EL FOR " + listaMovimientos.size()); // movimientos.put(String.valueOf(i), cantidades); } if (movimientosChequeraBean != null) { movimientosCuentasChequerasBean.setImporte(movimientosChequeraBean.getSaldoFinal()); } log.debug("tamanio de la lista " + listaMovimientos.size()); // log.debug("lista datos" + listaMovimientos.toString()); if (listaMovimientos.size() == 0) { throw new BusinessException("MOVC-MCC-3"); } movimientosCuentasChequerasBean.setListaMovimientos(listaMovimientos); movimientosCuentasChequerasBean.setMensajeStatus(servicioMovimientos.getMensajeEstatus()); } else if (servicioMovimientos.getCodigoEstatus() == -9) { // Inicio: ELIMINACIÓN OFFLINE throw new BusinessException("OFF-LINE"); // Fin: ELIMINACIÓN OFFLINE } else { throw new BusinessException("MOVC-MCC-2"); } return movimientosCuentasChequerasBean; }