/** * 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; }
/** * Metodo para obtener los movimientos de credito personal * * @param cliente Bean del cliente * @param entrada Bean de movimientos de entrada * @param bitacoraBean Bean de bitacora * @return Lista de movimientos de las tarjetas de cédito. * @throws BusinessException Excepcion lanzada */ public List<CreditoConsumoMovBean> getMovimientoCreditoPersonal( ClienteBean cliente, DatosConsultaMovimientosBean entrada, BitacoraBean bitacoraBean) throws BusinessException { List<CreditoConsumoMovBean> movimientos = new ArrayList<CreditoConsumoMovBean>(); String importe = ""; bitacoraBean.setClaveUsuario(cliente.getClaveCliente()); if (!"0.00".equals(entrada.getImporte())) { importe = entrada.getImporte(); } if (PROD_ALTAIR.equals(entrada.getTipoCuenta())) { SantanderConsultaMovContratosPersonas consultaMovimientosAltair = new SantanderConsultaMovContratosPersonas(); String fechaInicio = entrada.getFechaHistorica().substring(6) + "-" + entrada.getFechaHistorica().substring(3, 5) + "-" + entrada.getFechaHistorica().substring(0, 2); String fechaFin = entrada.getFechaDia().substring(6) + "-" + entrada.getFechaDia().substring(3, 5) + "-" + entrada.getFechaDia().substring(0, 2); String[] datos = {entrada.getCuenta(), fechaInicio, fechaFin}; if (consultaMovimientosAltair.ejecuta(datos)) { movimientos = getMovimientosFiltrados( entrada.getTipoMovimiento(), importe, consultaMovimientosAltair.getMovimientos()); registraBitacoraCP( bitacoraBean, entrada.getCuenta(), entrada.getImporte(), "0000 OPERACION REALIZADA EXITOSAMENTE"); } else { registraBitacoraCP( bitacoraBean, entrada.getCuenta(), entrada.getImporte(), "9999 OPERACION FALLIDA"); throw new BusinessException("LB14-0"); } } else { List<CreditoConsumoMovBean> movimientosTotal = new ArrayList<CreditoConsumoMovBean>(); SantanderMovtosAltamiraService consultaMovimientosAltamira = new SantanderMovtosAltamiraService(); DetalleCreditoAltamiraBean detalleCreditoAltamira = new DetalleCreditoAltamiraBean(); String fechaInicio = entrada.getFechaHistorica().substring(8, 10) + entrada.getFechaHistorica().substring(3, 5) + entrada.getFechaHistorica().substring(0, 2); log.debug("FECHA INICIO " + fechaInicio); String fechaFin = entrada.getFechaDia().substring(8, 10) + entrada.getFechaDia().substring(3, 5) + entrada.getFechaDia().substring(0, 2); log.debug("FECHA FIN " + fechaFin); detalleCreditoAltamira.setNumeroDeCredito(entrada.getCuenta()); detalleCreditoAltamira.setFechaDesde(fechaInicio); detalleCreditoAltamira.setFechaHasta(fechaFin); consultaMovimientosAltamira.ejecutarTransaccion(detalleCreditoAltamira); if (consultaMovimientosAltamira.getCodStatus() == 0) { for (SaldosCreditoAltamiraBean saldosAltamira : consultaMovimientosAltamira.getListaSaldos()) { CreditoConsumoMovBean movContratoPersonas = new CreditoConsumoMovBean(); movContratoPersonas.setConcepto(saldosAltamira.getConcepto().trim()); movContratoPersonas.setRetiro(saldosAltamira.getCargo().trim()); movContratoPersonas.setFecha(saldosAltamira.getFechaDeOperacion().trim()); movContratoPersonas.setDeposito(saldosAltamira.getAbono().trim()); movContratoPersonas.setReferencia(saldosAltamira.getReferencia().trim()); movimientosTotal.add(movContratoPersonas); } movimientos = getMovimientosFiltrados(entrada.getTipoMovimiento(), importe, movimientosTotal); registraBitacoraCP( bitacoraBean, entrada.getCuenta(), entrada.getImporte(), "0000 OPERACION REALIZADA EXITOSAMENTE"); } else { registraBitacoraCP( bitacoraBean, entrada.getCuenta(), entrada.getImporte(), "9999 OPERACION FALLIDA"); throw new BusinessException("LB14-0"); } } return movimientos; }
/** * Metodo que obtiene los movimientos realizados por cada cuenta o chequera del cliente. * * @param cliente Bean del Cliente * @param datosMovimientos Bean de los datos con mivimeintos * @param bitacoraBean Bean de bitacora * @return MovimientosBean Bean con los movimientos * @author Igor Mejia * @throws ParseException Excepxion al parsear * @throws BusinessException Excepcion de negocio */ public MovimientosBean getMovimientoCuentasChequeras( ClienteBean cliente, DatosConsultaMovimientosBean datosMovimientos, BitacoraBean bitacoraBean) throws BusinessException, ParseException { boolean autorizadoPesos = false; boolean autorizadoDolares = false; Validator.valida(cliente, CLAVE_MODULO_MOVIMIENTO_CUENTA); log.debug("*****************ENTRO A MOVIMIENTOS CUENTAS CHEQUERAS************"); if (cliente == null) { throw new BusinessException("MOVIMIENTOS"); } Iterator itera = (Iterator) cuentaService.getCuentasPropias(cliente).iterator(); while (itera.hasNext()) { CuentaBean cuenta = (CuentaBean) itera.next(); String cuentaVista = MovimientosServiceReusableFunctions.getCuentaVista( cliente.getClaveCliente(), cuenta.getNumeroCuenta(), cuenta.getSucursal(), NOMBRE_CALSE); if (cuenta.getNumeroCuenta().equalsIgnoreCase(datosMovimientos.getCuenta()) || datosMovimientos.getCuenta().equalsIgnoreCase(cuentaVista)) { autorizadoPesos = true; break; } } if (cliente.isDolares()) { Iterator iter = (Iterator) cuentaService.getCuentasPropiasDolares(cliente).iterator(); while (iter.hasNext()) { CuentaBean cuentaDolares = (CuentaBean) iter.next(); String cuentaVistaDolares = MovimientosServiceReusableFunctions.getCuentaVista( cliente.getClaveCliente(), cuentaDolares.getNumeroCuenta(), cuentaDolares.getSucursal(), NOMBRE_CALSE); if (!cuentaDolares.getNumeroCuenta().equalsIgnoreCase(datosMovimientos.getCuenta()) && datosMovimientos.getCuenta().equalsIgnoreCase(cuentaVistaDolares)) { autorizadoDolares = true; break; } } } if (!autorizadoPesos && !autorizadoDolares) { if (datosMovimientos.getTipoCuenta().equals(TIPO_CUENTA_VISTA)) { throw new BusinessException("MOVC-MCC-1"); } else throw new BusinessException("MOVC-MCC-1"); } SantanderReferenciaService referencia = commonService.getReferencia(bitacoraBean.getNombreClase()); MovimientosBean movimientosBean = obtenerMovimientosCheques( datosMovimientos, cliente.getClaveCliente(), String.valueOf(referencia.getNumReferencia()), bitacoraBean.getNombreClase()); if (movimientosBean.getListaMovimientos() == null && movimientosBean.getMensajeStatus() == null && movimientosBean.getImporte() == null) { throw new BusinessException("MOVIMIENTOS"); } String mensaje = SantanderConstantesService.MOVC + movimientosBean.getMensajeStatus().substring(4); bitacoraBean.setNumeroReferencia(referencia.getNumReferencia()); bitacoraBean.setNumeroCuenta(datosMovimientos.getCuenta()); bitacoraBean.setImporte(movimientosBean.getImporte()); bitacoraBean.setClaveUsuario(cliente.getClaveCliente()); bitacoraBean.setMensaje(mensaje); bitacoraBean.setClaveConcepto(SantanderConstantesService.CMCHEQUES); commonService.registrarBitacora(bitacoraBean); return movimientosBean; }