/** * Metodo que obtiene los movimientos de la tarjeta de credito * * @param cliente Bean de cliente * @param datosTarjeta Bien de los datos de la tarjeta * @param bitacoraBean Bean de bitacora * @return Regresa los movimeintos de las tarjetas de credito * @throws BusinessException Excepcion de negocio */ public MovimientosTarjetasCreditoBean getMovimientoTarjetacredito( ClienteBean cliente, DatosEntradaMovimientosBean datosTarjeta, BitacoraBean bitacoraBean) throws BusinessException { Validator.valida(cliente, CLAVE_MODULO_MOVIMIENTO_TARJETA); String tramaDiasInhabil; String diasInhabiles[]; TramaDiasInhabiles tramaSiasInhabiles = new TramaDiasInhabiles(); tramaDiasInhabil = tramaSiasInhabiles.getTramaDiasInhabiles(); diasInhabiles = SantanderUtileriasService.desentrama(tramaDiasInhabil, '|'); MovimientosTarjetasCreditoBean movimientoTarjetaBean = null; String[] fechas = null; if (StringUtils.equals(datosTarjeta.getTipoOperacion(), "Fechas")) { fechas = new String[4]; fechas[3] = tramaDiasInhabil; fechas[0] = MovimientosServiceReusableFunctions.AnteriorDiaHabil(2, diasInhabiles); fechas[2] = MovimientosServiceReusableFunctions.AnteriorDiaHabil(1, diasInhabiles); fechas[1] = MovimientosServiceReusableFunctions.InicioDelMes(fechas[2]); if (cliente.getTarjetas() == null) { throw new BusinessException("MOVT-MT-2"); } movimientoTarjetaBean = new MovimientosTarjetasCreditoBean(); if (StringUtils.equals(datosTarjeta.getCuenta(), "-1")) { movimientoTarjetaBean.setFechas(fechas); movimientoTarjetaBean.setCuenta(datosTarjeta.getCuenta()); return movimientoTarjetaBean; } else { boolean esTarjetaTitular = false; Iterator itera = (Iterator) cliente.getTarjetas().iterator(); while (itera.hasNext()) { TarjetaBean tarjetaPropia = (TarjetaBean) itera.next(); if (tarjetaPropia.getNumeroTarjeta().equals(datosTarjeta.getCuenta())) { if (tarjetaPropia.getParticipacion().equals("TI")) { esTarjetaTitular = true; break; } } } log.debug("VALOR DE TITULAR****** " + esTarjetaTitular); if (!esTarjetaTitular) { // si NO es Titular - SE DESPLEGARAN // EXTRACTOS SantanderReferenciaService referencia = commonService.getReferencia(bitacoraBean.getNombreClase()); MovimientosBean extractos = MovimientosServiceReusableFunctions.obtenerExtractoTarjetasPAMPA( datosTarjeta.getCuenta(), bitacoraBean.getNombreClase(), referencia); if (Integer.parseInt(extractos.getMensajeStatus()) != 0) { throw new BusinessException("MOVIMIENTOS"); } else { movimientoTarjetaBean = new MovimientosTarjetasCreditoBean(); movimientoTarjetaBean.setExtractos(extractos); movimientoTarjetaBean.setCuenta(datosTarjeta.getCuenta()); movimientoTarjetaBean.setFechas(fechas); } } else { // si ES Titular - SE DESPLEGARAN FECHAS movimientoTarjetaBean = new MovimientosTarjetasCreditoBean(); movimientoTarjetaBean.setCuenta(datosTarjeta.getCuenta()); movimientoTarjetaBean.setFechas(fechas); } return movimientoTarjetaBean; } } if (StringUtils.equals(datosTarjeta.getTipoOperacion(), "TarjetaCredito")) { boolean aurizado = false; movimientoTarjetaBean = new MovimientosTarjetasCreditoBean(); try { Iterator itera = (Iterator) cliente.getTarjetas().iterator(); while (itera.hasNext()) { TarjetaBean tarjeta = (TarjetaBean) itera.next(); if (tarjeta.getNumeroTarjeta().equalsIgnoreCase(datosTarjeta.getCuenta())) { aurizado = true; break; } } log.debug("VALOR de autorizado*********** " + aurizado); if (!aurizado) { log.debug("Se trato de hacer una operacion invalida..."); throw new BusinessException("MOVT-MT-3"); } } catch (Exception e) { throw new BusinessException("MOVIMIENTOS"); } MovimientosFinalesContainerBean movimientosTarjeta = null; log.debug("entro en obtener movimientos***********"); boolean estaBloqueada = MovimientosServiceReusableFunctions.ServicioValidaBloqueo( datosTarjeta.getCuenta(), bitacoraBean.getNombreClase()); SantanderReferenciaService referencia = commonService.getReferencia(bitacoraBean.getNombreClase()); log.debug("Valor de bloqueada********" + estaBloqueada); if (!estaBloqueada) { // String tasaAnualizada = null; log.debug("ENTRO en !esBloquedada"); if (StringUtils.equals(datosTarjeta.getDespliega(), "extractos")) { log.debug("ENTro en extractos!!!!!"); movimientosTarjeta = MovimientosServiceReusableFunctions.obtenerMovimientosExtracto( datosTarjeta.getNumeroExtracto(), datosTarjeta.getExtracto().getMonedaExtracto(), datosTarjeta.getCuenta(), datosTarjeta.getExtracto().getTasaAnualizada(), bitacoraBean, String.valueOf(referencia.getNumReferencia())); log.debug("MOVIMIENTOS TARJETA" + movimientosTarjeta.toString()); } else { // Si viene de Fechas consulta por MPV3 log.debug("Sin extractos!!!!!"); movimientosTarjeta = MovimientosServiceReusableFunctions.obtenerMovsTarjetaPAMPA( datosTarjeta.getFechaHistorica(), datosTarjeta.getFecha(), datosTarjeta.getCuenta(), bitacoraBean, String.valueOf(referencia.getNumReferencia())); // PAMPAIII } } if (movimientosTarjeta.getListaMovimientos() == null) { throw new BusinessException("MOVT-MT-3"); } if (estaBloqueada) { throw new BusinessException("MOVT-MT-4"); } bitacoraBean.setNumeroReferencia(referencia.getNumReferencia()); bitacoraBean.setNumeroCuenta(datosTarjeta.getCuenta()); String mensajeStatus = SantanderConstantesService.MOVT; // + // movimientosTarjeta.getMensajeStatus().substring(4); bitacoraBean.setMensaje(mensajeStatus); bitacoraBean.setClaveUsuario(cliente.getClaveCliente()); commonService.registrarBitacora(bitacoraBean); movimientoTarjetaBean.setMovimientos(movimientosTarjeta); movimientoTarjetaBean.setCuenta(datosTarjeta.getCuenta()); movimientoTarjetaBean.setFechaHistorica(datosTarjeta.getFechaHistorica()); movimientoTarjetaBean.setFecha(datosTarjeta.getFecha()); } if (movimientoTarjetaBean == null) { throw new BusinessException("MOVIMIENTOS"); } return movimientoTarjetaBean; }
/** * 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 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; }