diff --git a/pom.xml b/pom.xml index 2a0f2ec47..b62f623d1 100644 --- a/pom.xml +++ b/pom.xml @@ -3,7 +3,7 @@ 4.0.0 br.com.rjconsultores ModelWeb - 1.74.0 + 1.75.0 diff --git a/src/com/rjconsultores/ventaboletos/constantes/Constantes.java b/src/com/rjconsultores/ventaboletos/constantes/Constantes.java index 6a6ee5dd6..583a875c8 100644 --- a/src/com/rjconsultores/ventaboletos/constantes/Constantes.java +++ b/src/com/rjconsultores/ventaboletos/constantes/Constantes.java @@ -7,52 +7,53 @@ import java.util.List; public class Constantes { - public static final Long FORMA_PAGO_DINHEIRO = new Long(1); - public static final Long FORMA_PAGO_RESERVA = new Long(94); - public static final Long FORMA_PAGO_NOTA_CREDITO = new Long(93); - public static final Long FORMA_PAGO_CREDITO = new Long(2); - public static final Long FORMA_PAGO_DEBITO = new Long(3); - public static final Long FORMA_PAGO_GERACAO_OCD = new Long(35); - public static final Long FORMA_PAGO_TROCA_PASSAGEM = new Long(10); - public static final Long FORMA_PAGO_ORDEN_SERVICIO = new Long(11); + public static final Long FORMA_PAGO_DINHEIRO = 1L; + public static final Long FORMA_PAGO_CREDITO = 2L; + public static final Long FORMA_PAGO_DEBITO = 3L; + public static final Long FORMA_PAGO_TROCA_PASSAGEM = 10L; + public static final Long FORMA_PAGO_ORDEN_SERVICIO = 11L; + public static final Long FORMA_PAGO_GERACAO_OCD = 35L; + public static final Long FORMA_PAGO_NOTA_CREDITO = 93L; + public static final Long FORMA_PAGO_RESERVA = 94L; - public static final Long MVO_CANCEL_CANCELACION = new Long(31); - public static final Long MVO_CANCEL_DEVOLUCAO = new Long(32); - public static final Long MVO_CANCEL_DEVOLUCAO_CONTIGENCIA_50 = new Long(36); - public static final Long MVO_CANCEL_DEVOLUCAO_CONTIGENCIA_100 = new Long(37); - public static final Long MVO_CANCEL_TROCA = new Long(10); - public static final Long MVO_CANCEL_CHECKIN = new Long(27); - public static final Long MVO_CANCEL_TRANSFERENCIA = new Long(23); - public static final Long MVO_CANCEL_BOLETO_ENTREGADO = new Long(16); - public static final Long MVO_CANCEL_BOLETO_AGRUPAMENTO = new Long(17); - public static final Long MVO_CANCEL_GERACAO_OCD = new Long(99); - public static final Long MVO_CANCEL_QUITACAO_OCD = new Long(35); - public static final Long MVO_CANCEL_VENDA_PACOTE = new Long(33); - public static final Long ORGAO_CONCEDENTE_ID_AGERBA = new Long(27); - public static Long TPV_DIRECTO_NORMAL = new Long(1); - public static Long TPV_MANUAL = new Long(3); - public static Long TPV_CALL_CENTER = new Long(5); - public static Long TPV_BOLETO_REMOTO = new Long(18); - public static Long TPV_TRANSFERENCIAS = new Long(8); // é a troca de passagens - public static Long TPV_CAMBIO_VIAJE = new Long(81); // é a transferência de passagens - public static Long TPV_CHECKIN_VIAGEM = new Long(41); // chekin boletos - public static Long TPV_BOLETO_ABIERTO = new Long(9); - public static Long TPV_CONFIRMA_ABIERTO = new Long(82); - public static Long TPV_VENDA_BOLETO_ABERTO_MANUAL = new Long(39); + public static final Long MVO_CANCEL_CANCELACION = 31L; + public static final Long MVO_CANCEL_DEVOLUCAO = 32L; + public static final Long MVO_CANCEL_DEVOLUCAO_CONTIGENCIA_50 = 36L; + public static final Long MVO_CANCEL_DEVOLUCAO_CONTIGENCIA_100 = 37L; + public static final Long MVO_CANCEL_TROCA = 10L; + public static final Long MVO_CANCEL_CHECKIN = 27L; + public static final Long MVO_CANCEL_TRANSFERENCIA = 23L; + public static final Long MVO_CANCEL_BOLETO_ENTREGADO = 16L; + public static final Long MVO_CANCEL_BOLETO_AGRUPAMENTO = 17L; + public static final Long MVO_CANCEL_GERACAO_OCD = 99L; + public static final Long MVO_CANCEL_QUITACAO_OCD = 35L; + public static final Long MVO_CANCEL_VENDA_PACOTE = 33L; + public static final Long ORGAO_CONCEDENTE_ID_AGERBA = 27L; + + public static final Long TPV_DIRECTO_NORMAL = 1L; + public static final Long TPV_MANUAL = 3L; + public static final Long TPV_CALL_CENTER = 5L; + public static final Long TPV_BOLETO_REMOTO = 18L; + public static final Long TPV_TRANSFERENCIAS = 8L; // é a troca de passagens + public static final Long TPV_CAMBIO_VIAJE = 81L; // é a transferência de passagens + public static final Long TPV_CHECKIN_VIAGEM = 41L; // chekin boletos + public static final Long TPV_BOLETO_ABIERTO = 9L; + public static final Long TPV_CONFIRMA_ABIERTO = 82L; + public static final Long TPV_VENDA_BOLETO_ABERTO_MANUAL = 39L; - public static Long TPV_RESERVACION_POR_INTERNET = new Long(16); - public static Long TPV_POR_INTERNET = new Long(12); - public static Long TPV_AGENCIA_WEB = new Long(19); + public static final Long TPV_RESERVACION_POR_INTERNET = 16L; + public static final Long TPV_POR_INTERNET = 12L; + public static final Long TPV_AGENCIA_WEB = 19L; - public static final Integer TIPO_OPERACION_CC_LQ = new Integer(1); - public static final Integer TIPO_OPERACION_CC_PAGO = new Integer(2); + public static final Integer TIPO_OPERACION_CC_LQ = 1; + public static final Integer TIPO_OPERACION_CC_PAGO = 2; public static final Integer ARTICULO_VENTA = 1; public static final Integer ARTICULO_OUTROS = 2; public static final Integer ARTICULO_MANUAL = 3; - public static Short TURNO_AUTOMATICO = new Short("99"); + public static final Short TURNO_AUTOMATICO = new Short("99"); public static final String IMAGEM_EMPRESA = "EMPRESA_BACKGROUND"; public static final String IMAGEM_EMPRESA_GENERICA = "EMPRESA_BACKGROUND_GENERICA"; @@ -105,7 +106,7 @@ public class Constantes { public static final String RETER_COMISSAO_ADM_FECHAMENTO_CAIXA = "RETER_COMISSAO_ADM_FECHAMENTO_CAIXA"; - public static enum FiltroEnviadosSefaz { SIM, NAO, TODOS }; + public enum FiltroEnviadosSefaz { SIM, NAO, TODOS }; public static final String CVESISTEMA_MOTIVO_CANCELAMENTO_ALTERACAO_POLTRONA = "ALTERACAO_POLTRONA"; @@ -148,4 +149,10 @@ public class Constantes { public static final String DESATIVAR_OBR_CAM_EMPRESA_IMPOSTO = "DESATIVAR_OBR_CAM_EMPRESA_IMPOSTO"; + public static final Integer PERFIL_ADM_CONTRATO = 32; + + private Constantes() { + + } + } diff --git a/src/com/rjconsultores/ventaboletos/dao/UsuarioDAO.java b/src/com/rjconsultores/ventaboletos/dao/UsuarioDAO.java index f9edd996c..11e09fe8a 100644 --- a/src/com/rjconsultores/ventaboletos/dao/UsuarioDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/UsuarioDAO.java @@ -8,6 +8,9 @@ import java.util.List; import com.rjconsultores.ventaboletos.entidad.Empleado; import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.entidad.UsuarioEmpresa; +import com.rjconsultores.ventaboletos.entidad.UsuarioPerfil; +import com.rjconsultores.ventaboletos.entidad.UsuarioUbicacion; import com.rjconsultores.ventaboletos.vo.caja.UsuarioActivoVO; import com.rjconsultores.ventaboletos.vo.embarcada.UsuarioEmbarcadaVO; @@ -31,6 +34,12 @@ public interface UsuarioDAO extends GenericDAO { public Usuario buscarPeloId(Integer usuarioId); + public List buscarUsuarioEmpresaList(Integer usuarioId); + + public List buscarUsuarioPerfilList(Integer usuarioId); + + public List buscarUsuarioUbicacionList(Integer usuarioId); + public List buscarPorFuncionSistema(Long funcionSistemaId); public List buscarUsuarioPorPontoVenda(Long puntoVentaId); @@ -40,5 +49,7 @@ public interface UsuarioDAO extends GenericDAO { public List buscarUsuarioEmbarcadaPorUsuariosIds(List usuariosIdList); public List buscaUsuariosDoPuntoVenta(Long puntoventaId); + + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.java index 0a5737fec..e89afc67b 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioHibernateDAO.java @@ -26,6 +26,9 @@ import com.rjconsultores.ventaboletos.dao.UsuarioDAO; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; import com.rjconsultores.ventaboletos.entidad.Empleado; import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.entidad.UsuarioEmpresa; +import com.rjconsultores.ventaboletos.entidad.UsuarioPerfil; +import com.rjconsultores.ventaboletos.entidad.UsuarioUbicacion; import com.rjconsultores.ventaboletos.vo.caja.UsuarioActivoVO; import com.rjconsultores.ventaboletos.vo.embarcada.UsuarioEmbarcadaVO; @@ -247,6 +250,33 @@ public class UsuarioHibernateDAO extends GenericHibernateDAO i return (List)qr.list(); } + + @Override + public List buscarUsuarioEmpresaList(Integer usuarioId) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("usuarioId", usuarioId)); + + Usuario result = (Usuario)c.uniqueResult(); + return result.getUsuarioEmpresaList(); + } + + @Override + public List buscarUsuarioUbicacionList(Integer usuarioId) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("usuarioId", usuarioId)); + + Usuario result = (Usuario)c.uniqueResult(); + return result.getUsuarioUbicacionList(); + } + + @Override + public List buscarUsuarioPerfilList(Integer usuarioId) { + Criteria c = getSession().createCriteria(getPersistentClass()); + c.add(Restrictions.eq("usuarioId", usuarioId)); + + Usuario result = (Usuario)c.uniqueResult(); + return result.getUsuarioPerfilList(); + } diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioPerfilHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioPerfilHibernateDAO.java index 15b32f0c7..ae85d83cc 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioPerfilHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/UsuarioPerfilHibernateDAO.java @@ -19,6 +19,7 @@ import org.springframework.stereotype.Repository; * * @author Rafius */ +@SuppressWarnings("unchecked") @Repository("usuarioPerfilDAO") public class UsuarioPerfilHibernateDAO extends GenericHibernateDAO implements UsuarioPerfilDAO { @@ -28,7 +29,8 @@ public class UsuarioPerfilHibernateDAO extends GenericHibernateDAO obtenerTodos() { Criteria c = getSession().createCriteria(getPersistentClass()); c.add(Restrictions.eq("activo", Boolean.TRUE)); diff --git a/src/com/rjconsultores/ventaboletos/entidad/Usuario.java b/src/com/rjconsultores/ventaboletos/entidad/Usuario.java index 873ed9a67..007bb7fbf 100644 --- a/src/com/rjconsultores/ventaboletos/entidad/Usuario.java +++ b/src/com/rjconsultores/ventaboletos/entidad/Usuario.java @@ -72,28 +72,36 @@ public class Usuario implements Serializable, UserDetails, Auditavel { @Basic(optional = false) @Column(name = "USUARIO_ID") private Integer usuarioId; + @Column(name = "NOMBUSUARIO") private String nombusuario; + @Column(name = "NOMBPATERNO") private String nombpaterno; + @Column(name = "NOMBMATERNO") private String nombmaterno; + @Column(name = "ACTIVO") private Boolean activo; + @Column(name = "FECMODIF") @Temporal(TemporalType.TIMESTAMP) private Date fecmodif; + @Column(name = "USUARIOMODIF_ID") private Integer usuariomodifId; + @Column(name = "DESCCONTRASENA") private String senha; + @Column(name = "CVEUSUARIO") private String claveUsuario; + @Column(name = "DESCCORREO") private String descCorreo; @OneToMany(mappedBy = "usuario", cascade = CascadeType.ALL, fetch = FetchType.LAZY) - @Fetch(FetchMode.SELECT) @AuditarLista(auditarEntidades = true, nome = "Perfil") private List usuarioPerfilList; @@ -104,12 +112,12 @@ public class Usuario implements Serializable, UserDetails, Auditavel { @JoinColumn(name = "EMPLEADO_ID") private Empleado empleado; - @OneToMany(mappedBy = "usuarioLog", cascade = CascadeType.ALL, fetch = FetchType.EAGER) + @OneToMany(mappedBy = "usuarioLog", cascade = CascadeType.ALL, fetch = FetchType.LAZY) @Fetch(FetchMode.SELECT) @NaoAuditar private List usuarioEmpresaList; - @OneToMany(mappedBy = "usuario", cascade = CascadeType.ALL, fetch = FetchType.EAGER) + @OneToMany(mappedBy = "usuario", cascade = CascadeType.ALL, fetch = FetchType.LAZY) @Fetch(FetchMode.SELECT) @OrderBy("padrao desc") @NaoAuditar @@ -605,6 +613,26 @@ public class Usuario implements Serializable, UserDetails, Auditavel { } usuarioClone.setUsuarioPerfilList((lsClones)); } + + if(this.getUsuarioEmpresaList() != null) { + List lsClones = new ArrayList(); + for (UsuarioEmpresa usuarioEmpresa : this.getUsuarioEmpresaList()) { + if(BooleanUtils.isTrue(usuarioEmpresa.getActivo())) { + lsClones.add(usuarioEmpresa); + } + } + usuarioClone.setUsuarioEmpresaList((lsClones)); + } + + if(this.getUsuarioUbicacionList() != null) { + List lsClones = new ArrayList(); + for (UsuarioUbicacion usuarioUbicacion : this.getUsuarioUbicacionList()) { + if(BooleanUtils.isTrue(usuarioUbicacion.getActivo())) { + lsClones.add(usuarioUbicacion); + } + } + usuarioClone.setUsuarioUbicacionList((lsClones)); + } } @Override diff --git a/src/com/rjconsultores/ventaboletos/service/UsuarioService.java b/src/com/rjconsultores/ventaboletos/service/UsuarioService.java index ee0acab5a..74b210343 100644 --- a/src/com/rjconsultores/ventaboletos/service/UsuarioService.java +++ b/src/com/rjconsultores/ventaboletos/service/UsuarioService.java @@ -52,4 +52,6 @@ public interface UsuarioService { public void desativarLinkRecuperacaoSenha(RecuperarSenha entidad); public void salvarLinkRecuperacaoSenha(RecuperarSenha entidad); + + public Usuario obtenerCompletoID(Integer id); } \ No newline at end of file diff --git a/src/com/rjconsultores/ventaboletos/service/impl/UsuarioServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/UsuarioServiceImpl.java index 394e34c78..2fdce5422 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/UsuarioServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/UsuarioServiceImpl.java @@ -75,6 +75,19 @@ public class UsuarioServiceImpl implements UsuarioService, UserDetailsService { return usuario; } + + @Override + public Usuario obtenerCompletoID(Integer id) { + + Usuario usuario = usuarioDAO.obtenerID(id); + try { + usuario.clonar(); + } catch (Exception e) { + log.error(e.getMessage(), e); + } + return usuario; + + } @Transactional(rollbackFor = BusinessException.class) @Override diff --git a/src/com/rjconsultores/ventaboletos/utilerias/UsuarioLogado.java b/src/com/rjconsultores/ventaboletos/utilerias/UsuarioLogado.java index 41da47101..8e42b848c 100644 --- a/src/com/rjconsultores/ventaboletos/utilerias/UsuarioLogado.java +++ b/src/com/rjconsultores/ventaboletos/utilerias/UsuarioLogado.java @@ -1,7 +1,3 @@ -/* - * To change this template, choose Tools | Templates - * and open the template in the editor. - */ package com.rjconsultores.ventaboletos.utilerias; import java.util.ArrayList; @@ -13,22 +9,22 @@ import org.springframework.context.ApplicationContext; import org.springframework.security.core.Authentication; import org.springframework.security.core.context.SecurityContext; import org.springframework.security.core.context.SecurityContextHolder; -import org.springframework.web.context.ContextLoaderListener; +import org.springframework.web.context.ContextLoader; -import com.rjconsultores.ventaboletos.dao.UsuarioPerfilDAO; +import com.rjconsultores.ventaboletos.constantes.Constantes; +import com.rjconsultores.ventaboletos.dao.UsuarioDAO; import com.rjconsultores.ventaboletos.entidad.PerfilFuncion; import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.entidad.UsuarioEmpresa; import com.rjconsultores.ventaboletos.entidad.UsuarioPerfil; +import com.rjconsultores.ventaboletos.entidad.UsuarioUbicacion; -/** - * - * @author rodrigo - */ public class UsuarioLogado { private static final Logger log = LogManager.getLogger(UsuarioLogado.class); public static Usuario getUsuarioLogado() { + Usuario usuario = null; SecurityContext sc = SecurityContextHolder.getContext(); if (sc != null) { @@ -40,37 +36,101 @@ public class UsuarioLogado { if(usuario.getListClavesPermisos() == null) { cargaPermisoClave(usuario); } + + try { + usuario.getUsuarioEmpresaList(); + }catch (Exception e) { + carregaUsuarioEmpresaList(usuario); + } + + try { + usuario.getUsuarioPerfilList(); + }catch (Exception e) { + carregaUsuarioPerfilList(usuario); + } + + try { + usuario.getUsuarioUbicacionList(); + }catch (Exception e) { + carregaUsuarioUbicacionList(usuario); + } } else { usuario = null; } } - + return usuario; } - private static void cargaPermisoClave(Usuario usuario) { - try { - if(usuario != null && usuario.getListClavesPermisos() == null || usuario.getListClavesPermisos().isEmpty()) { - ApplicationContext context = ContextLoaderListener.getCurrentWebApplicationContext(); - - if(context != null) { + private static void carregaUsuarioPerfilList(Usuario usuario) { + try { + List list = obtemUsuarioDao().buscarUsuarioPerfilList(usuario.getUsuarioId()); + usuario.setUsuarioPerfilList(list); + }catch (Exception e) { + log.error(e.getMessage(), e); + } + } + + private static void carregaUsuarioUbicacionList(Usuario usuario) { + try { + List list = obtemUsuarioDao().buscarUsuarioUbicacionList(usuario.getUsuarioId()); + usuario.setUsuarioUbicacionList(list); + }catch (Exception e) { + log.error(e.getMessage(), e); + } + } + + private static void carregaUsuarioEmpresaList(Usuario usuario) { + try { + List list = obtemUsuarioDao().buscarUsuarioEmpresaList(usuario.getUsuarioId()); + usuario.setUsuarioEmpresaList(list); + }catch (Exception e) { + log.error(e.getMessage(), e); + } + } - UsuarioPerfilDAO usuarioPerfilDAO = context.getBean(UsuarioPerfilDAO.class); - if(usuarioPerfilDAO != null) { - usuario.setListClavesPermisos(new ArrayList()); - List listUsuarioPerfil = usuarioPerfilDAO.obtenerPorUsuario(usuario); - for (UsuarioPerfil up : listUsuarioPerfil) { - List listPerfilFuncion = up.getPerfil().getPerfilFuncionList(); - for (PerfilFuncion pf : listPerfilFuncion) { - usuario.getListClavesPermisos().add(pf.getFuncionSistema().getDescruta()); - } - } - } + private static void cargaPermisoClave(Usuario usuario) { + try { + usuario.setListClavesPermisos(new ArrayList()); + List listUsuarioPerfil = obtemUsuarioDao().buscarUsuarioPerfilList(usuario.getUsuarioId()); + for (UsuarioPerfil up : listUsuarioPerfil) { + List listPerfilFuncion = up.getPerfil().getPerfilFuncionList(); + for (PerfilFuncion pf : listPerfilFuncion) { + usuario.getListClavesPermisos().add(pf.getFuncionSistema().getDescruta()); } } } catch (Exception e) { log.error(e.getMessage(), e); } } + + private static UsuarioDAO obtemUsuarioDao() { + ApplicationContext context = ContextLoader.getCurrentWebApplicationContext(); + + if(context != null) { + UsuarioDAO usuarioDAO = context.getBean(UsuarioDAO.class); + if(usuarioDAO != null) { + return usuarioDAO; + } + } + return null; + } + + public static boolean isUsuarioAdmContrato() { + if( getUsuarioLogado() == null) { + return false; + } + + for (UsuarioPerfil perf : getUsuarioLogado().getUsuarioPerfilList()){ + if(perf.getPerfil().getPerfilId().equals(Constantes.PERFIL_ADM_CONTRATO)) { + return true; + } + } + return false; + } + + private UsuarioLogado() { + + } }