diff --git a/pom.xml b/pom.xml index 9c3398c86..efd35ad71 100644 --- a/pom.xml +++ b/pom.xml @@ -9,7 +9,7 @@ 1.61.0 - 1.45.3 + 1.46.0 UTF-8 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesConsolidado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesConsolidado.java index e516a219f..cef5265db 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesConsolidado.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesConsolidado.java @@ -76,6 +76,7 @@ public class RelatorioCadastroClientesConsolidado extends Relatorio { sql.append("WHERE cliente.ACTIVO = 1 "); sql.append("AND usuarioUbicacion.ACTIVO = 1 "); + sql.append("AND usuarioUbicacion.PADRAO = 1 "); sql.append("AND usuario.ACTIVO = 1 "); if (puntoVentas != null && !puntoVentas.isEmpty()) { diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesDetalhado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesDetalhado.java index c50925632..4cf0326d4 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesDetalhado.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCadastroClientesDetalhado.java @@ -122,6 +122,7 @@ public class RelatorioCadastroClientesDetalhado extends Relatorio { sql.append("WHERE cliente.ACTIVO = 1 "); sql.append("AND usuarioUbicacion.ACTIVO = 1 "); + sql.append("AND usuarioUbicacion.PADRAO = 1 "); sql.append("AND usuario.ACTIVO = 1 "); if (puntoVentas != null && !puntoVentas.isEmpty()) { diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasBilheteiroSintetico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasBilheteiroSintetico.java index a4ee31c31..0568a4ff4 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasBilheteiroSintetico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasBilheteiroSintetico.java @@ -128,7 +128,7 @@ public class RelatorioVendasBilheteiroSintetico extends Relatorio { if (isDigitacao) { sql.append(" JOIN DIGITA_ITEM_BOLETO dib on (ca.TRANSACAO_ID = dib.BOLETO_ID) "); sql.append(" LEFT JOIN DIGITA_VENTA dv on (dib.DIGITAVENTA_ID = dv.DIGITAVENTA_ID) "); - sql.append(" LEFT JOIN USUARIO_UBICACION udu on (udu.USUARIO_ID = dv.USUARIO_ID and udu.ACTIVO = 1) "); + sql.append(" LEFT JOIN USUARIO_UBICACION udu on (udu.USUARIO_ID = dv.USUARIO_ID and udu.ACTIVO = 1 and udu.PADRAO = 1) "); sql.append(" LEFT JOIN ESTACION est on ( est.estacion_id = ca.estacion_id AND est.ACTIVO = 1 ) "); } @@ -139,7 +139,7 @@ public class RelatorioVendasBilheteiroSintetico extends Relatorio { sql.append(" AND ca.PUNTOVENTA_ID = ct.PUNTOVENTA_ID "); sql.append(" AND ca.TURNO_ID = ct.TURNO_ID "); sql.append(" AND ca.ACTIVO = 1 "); - sql.append(" LEFT JOIN USUARIO_UBICACION uu on uu.USUARIO_ID = ct.USUARIO_ID and uu.ACTIVO = 1 "); + sql.append(" LEFT JOIN USUARIO_UBICACION uu on uu.USUARIO_ID = ct.USUARIO_ID and uu.ACTIVO = 1 and udu.PADRAO = 1"); sql.append(" INNER JOIN usuario uc ON uc.usuario_id = ct.usuario_id "); sql.append(" INNER JOIN punto_venta pvc ON pvc.puntoventa_id = uu.puntoventa_id "); } diff --git a/src/java/com/rjconsultores/ventaboletos/rest/service/LoginService.java b/src/java/com/rjconsultores/ventaboletos/rest/service/LoginService.java index 3b98fc925..b26a4b9e8 100644 --- a/src/java/com/rjconsultores/ventaboletos/rest/service/LoginService.java +++ b/src/java/com/rjconsultores/ventaboletos/rest/service/LoginService.java @@ -65,10 +65,14 @@ public class LoginService { retorno.setEstacionId(estacion.getEstacionId()); - List ubicacion = usuarioUbicacionService.buscarPorUsuario(usuario); + List lsUubicacion = usuarioUbicacionService.buscarPorUsuario(usuario); - if (ubicacion != null && !ubicacion.isEmpty()) { - retorno.setPuntoventaId(ubicacion.get(0).getPuntoVenta().getPuntoventaId()); + if (lsUubicacion != null && !lsUubicacion.isEmpty()) { + for (UsuarioUbicacion ubicacion : lsUubicacion) { + if (ubicacion.getPadrao()) { + retorno.setPuntoventaId(ubicacion.getPuntoVenta().getPuntoventaId()); + } + } } List empresas = usuarioEmpresaService.obtenerPorUsuario(usuario); diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/gestaopricing/GestaoPricingController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/gestaopricing/GestaoPricingController.java index 8a7ed926f..7ebe1d746 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/gestaopricing/GestaoPricingController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/gestaopricing/GestaoPricingController.java @@ -315,7 +315,7 @@ public class GestaoPricingController extends MyGenericForwardComposer { params.put("funcion", false); params.put("verificaBPe", false); params.put("esViajeRedondo", false); - params.put("unPuntoVenta_id", UsuarioLogado.getUsuarioLogado().getUsuarioUbicacionActivoList().iterator().next().getPuntoVenta().getPuntoventaId()); + params.put("unPuntoVenta_id", UsuarioLogado.getUsuarioLogado().getUsuarioUbicacionPadrao().getPuntoVenta().getPuntoventaId()); params.put("usuarioId", UsuarioLogado.getUsuarioLogado().getUsuarioId()); params.put("unTipoVenta_id", "1"); params.put("unaHoraCorrida", "00:01"); diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java index bdee1f0af..0f720cc33 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMensalDAERController.java @@ -125,7 +125,7 @@ public class RelatorioMensalDAERController extends MyGenericForwardComposer { // Filtro nome usuário parametros.put("NOME_USUARIO", UsuarioLogado.getUsuarioLogado().getNombusuario().toString()); parametros.put("AGENCIA", agenciasUsuario); - parametros.put("RODOVIARIA", UsuarioLogado.getUsuarioLogado().getUsuarioUbicacionList().get(0).getPuntoVenta().getNombpuntoventa().toString()); + parametros.put("RODOVIARIA", UsuarioLogado.getUsuarioLogado().getUsuarioUbicacionPadrao().getPuntoVenta().getNombpuntoventa().toString()); parametros.put("ESTACION", ""); StringBuilder tipVenta = new StringBuilder(); diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/EditarUsuarioController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/EditarUsuarioController.java index c83e84fa8..615fe5794 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/EditarUsuarioController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/EditarUsuarioController.java @@ -11,6 +11,7 @@ import java.util.List; import org.apache.commons.collections.CollectionUtils; import org.apache.commons.collections.Predicate; +import org.apache.commons.lang.StringUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.springframework.beans.factory.annotation.Autowired; @@ -29,10 +30,12 @@ import org.zkoss.zul.Comboitem; import org.zkoss.zul.Label; import org.zkoss.zul.ListModelList; import org.zkoss.zul.Radio; +import org.zkoss.zul.Row; import org.zkoss.zul.Tab; import org.zkoss.zul.Textbox; import com.rjconsultores.ventaboletos.constantes.ConstantesFuncionSistema; +import com.rjconsultores.ventaboletos.entidad.Constante; import com.rjconsultores.ventaboletos.entidad.Empleado; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Parada; @@ -45,6 +48,7 @@ import com.rjconsultores.ventaboletos.entidad.UsuarioEmpresa; import com.rjconsultores.ventaboletos.entidad.UsuarioPerfil; import com.rjconsultores.ventaboletos.entidad.UsuarioUbicacion; import com.rjconsultores.ventaboletos.exception.BusinessException; +import com.rjconsultores.ventaboletos.service.ConstanteService; import com.rjconsultores.ventaboletos.service.EmpleadoService; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.PerfilFuncionService; @@ -101,6 +105,8 @@ public class EditarUsuarioController extends MyGenericForwardComposer { private UsuarioSesionService usuarioSesionService; @Autowired private PerfilFuncionService perfilFuncionService; + @Autowired + private ConstanteService constanteService; private List lsPerfil; private List lsEmpresa; private List lsPuntoVenta = null; @@ -144,6 +150,10 @@ public class EditarUsuarioController extends MyGenericForwardComposer { private Radio radioNao; private Textbox txtDescMac; private Checkbox chkTrocarSenha; + private Checkbox chkUsuarioUbicacionPadrao; + private Row rowUsuarioUbicacionPadrao; + private boolean indConstanteIndMultiPuntoVenta; + private final String nombreIndConstanteIndMultiPuntoVenta ="IND_MULTI_PUNTOVENTA"; @Override @@ -153,7 +163,8 @@ public class EditarUsuarioController extends MyGenericForwardComposer { lsPerfil = perfilService.buscaPerfilJerarquia(perfilUsuario); lsEmpresa = empresaService.obtenerTodos(); - lsTiposVenta = tipoVentaService.obterTiposVentaIntegracao(); + lsTiposVenta = tipoVentaService.obterTiposVentaIntegracao(); + super.doAfterCompose(comp); @@ -162,6 +173,9 @@ public class EditarUsuarioController extends MyGenericForwardComposer { usuarioList = (MyListbox) Executions.getCurrent().getArg().get("usuarioList"); usrAdmin = (Boolean) Executions.getCurrent().getArg().get("usrAdmin"); + validarSeIsMultiPuntoVenta(); + rowUsuarioUbicacionPadrao.setVisible(indConstanteIndMultiPuntoVenta); + lsUsuarioUbicacion = new ArrayList(); if (usuario.getUsuarioId() != null) { lsUsuarioUbicacion.addAll(usuarioUbicacionService.buscarPorUsuario(usuario)); @@ -227,6 +241,19 @@ public class EditarUsuarioController extends MyGenericForwardComposer { validaUsuarioAdmin(perfilUsuario); } + private void validarSeIsMultiPuntoVenta() { + List list = constanteService.buscar(nombreIndConstanteIndMultiPuntoVenta); + + if(!list.isEmpty()) { + Constante constante = list.get(0); + if (StringUtils.isNotBlank(constante.getValorconstante())){ + if(constante.getValorconstante().equalsIgnoreCase("true")) { + indConstanteIndMultiPuntoVenta = true; + } + } + } + } + private void validaUsuarioAdmin(Perfil perfilUsuario) { chkCorteTurnoAutomatico.setDisabled(!validaHabilitarViradaCaixaAutomatico()); boolean constanteValidacao = ApplicationProperties.getInstance().isCustomHabilitado(CustomEnum.IS_DESABILITA_USUARIO_ADMINISTRADORES_PERFIL.getDescricao()); @@ -322,10 +349,12 @@ public class EditarUsuarioController extends MyGenericForwardComposer { } private void enableAddUbicacion() { - if (lsUsuarioUbicacion.size() > 0) { - btnAdicionarUbicacion.setDisabled(true); - } else { - btnAdicionarUbicacion.setDisabled(false); + if (!indConstanteIndMultiPuntoVenta) { + if (lsUsuarioUbicacion.size() > 0) { + btnAdicionarUbicacion.setDisabled(true); + } else { + btnAdicionarUbicacion.setDisabled(false); + } } } @@ -539,6 +568,25 @@ public class EditarUsuarioController extends MyGenericForwardComposer { MensagensUtils.showMessageExclamation("editarUsuarioController.MSG.necessitaUbicacion", TITULO_CONTROLER); return; } + + int qtdPadrao = 0; + for(UsuarioUbicacion ub : usuario.getUsuarioUbicacionActivoList()) { + if(ub.getPadrao()) { + qtdPadrao++; + } + } + + if(qtdPadrao==0) { + tabUbicacion.setSelected(Boolean.TRUE); + MensagensUtils.showMessageExclamation("editarUsuarioController.MSG.QtdPadraoVazio", TITULO_CONTROLER); + return; + } + + if(qtdPadrao>1) { + tabUbicacion.setSelected(Boolean.TRUE); + MensagensUtils.showMessageExclamation("editarUsuarioController.MSG.QtdPadraoMaiorDoQueUm", TITULO_CONTROLER); + return; + } if (tipoVentaSeleccionado != null) { usuario.setTipoVentaIntegracaoId(Long.valueOf(tipoVentaSeleccionado.getTipoventaId())); @@ -618,12 +666,18 @@ public class EditarUsuarioController extends MyGenericForwardComposer { public void onClick$btnAdicionarUbicacion() { Comboitem cbiParada = cmbParada.getSelectedItem(); Comboitem cbiPuntoVenta = cmbPuntoVenta.getSelectedItem(); + boolean chkiUsuarioUbicacionPadrao; + if (indConstanteIndMultiPuntoVenta) { + chkiUsuarioUbicacionPadrao = chkUsuarioUbicacionPadrao.isChecked(); + } else { + chkiUsuarioUbicacionPadrao = true; + } if ((cbiParada != null) && (cbiPuntoVenta != null)) { Parada parada = (Parada) cbiParada.getValue(); PuntoVenta puntoVenta = (PuntoVenta) cbiPuntoVenta.getValue(); - UsuarioUbicacion uu = inicializaUsuarioUbicacion(parada, puntoVenta); + UsuarioUbicacion uu = inicializaUsuarioUbicacion(parada, puntoVenta, chkiUsuarioUbicacionPadrao); lsUsuarioUbicacion.add(uu); List usuarioUbicacionList = getUsuarioUbicacionList(); usuarioUbicacionList.add(uu); @@ -640,7 +694,7 @@ public class EditarUsuarioController extends MyGenericForwardComposer { return usuario.getUsuarioUbicacionList(); } - protected UsuarioUbicacion inicializaUsuarioUbicacion(Parada parada, PuntoVenta puntoVenta) { + protected UsuarioUbicacion inicializaUsuarioUbicacion(Parada parada, PuntoVenta puntoVenta, boolean padrao) { UsuarioUbicacion uu = new UsuarioUbicacion(); uu.setActivo(Boolean.TRUE); uu.setFecmodif(Calendar.getInstance().getTime()); @@ -648,6 +702,7 @@ public class EditarUsuarioController extends MyGenericForwardComposer { uu.setParada(parada); uu.setPuntoVenta(puntoVenta); uu.setUsuario(usuario); + uu.setPadrao(padrao); return uu; } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderUbicacion.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderUbicacion.java index c03f6285d..74fe21ed3 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderUbicacion.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderUbicacion.java @@ -36,6 +36,9 @@ public class RenderUbicacion implements ListitemRenderer { lc = new Listcell(""); } lc.setParent(lstm); + + lc = new Listcell(ubicacion.getPadrao() ? "Sim" : "Não"); + lc.setParent(lstm); lstm.setAttribute("data", ubicacion); } diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 946098d4f..4e4bd8a34 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -7038,6 +7038,9 @@ editarUsuarioController.txtEstacion.label = Estação editarUsuarioController.txtItensComissao.label = Item considerado na Comissão editarUsuarioController.txtTempoDevolucao.label = Tempo(minutos) de Devolução da Passagem após embarque - Contingência editarUsuarioController.txtTipoVenta.label = Tipo de Venda +editarUsuarioController.lhPadrao.label= Ponto de Venda (Padrão) +editarUsuarioController.MSG.QtdPadraoVazio= Precisa definir um ponto de venda como padrão. +editarUsuarioController.MSG.QtdPadraoMaiorDoQueUm= Apenas um ponto de venda pode ser configurado como padrão. # Editar User editarUsuarioController.window.title = User editarViaController.MSG.borrarOK = Via Excluida com Sucesso. diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index ae9e44ce3..3fa599802 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -7124,6 +7124,9 @@ editarUsuarioController.txtEstacion.label = Estación editarUsuarioController.txtItensComissao.label = Item considerado na Comissão editarUsuarioController.txtTempoDevolucao.label = Tempo(minutos) de Devolução da Passagem após embarque - Contingência editarUsuarioController.txtTipoVenta.label = Tipo Venta +editarUsuarioController.lhPadrao.label= Ponto de Venda (Padrão) +editarUsuarioController.MSG.QtdPadraoVazio= Precisa definir um ponto de venda como padrão. +editarUsuarioController.MSG.QtdPadraoMaiorDoQueUm= Apenas um ponto de venda pode ser configurado como padrão. # Editar Usuário editarUsuarioController.window.title = Usuário editarViaController.MSG.borrarOK = Via se eliminó exitosamente diff --git a/web/WEB-INF/i3-label_fr_FR.label b/web/WEB-INF/i3-label_fr_FR.label index 38062ba2b..82457b6a7 100644 --- a/web/WEB-INF/i3-label_fr_FR.label +++ b/web/WEB-INF/i3-label_fr_FR.label @@ -7113,6 +7113,9 @@ editarUsuarioController.txtEstacion.label = Gare editarUsuarioController.txtItensComissao.label = Point examiné par le Comité editarUsuarioController.txtTempoDevolucao.label = Temps de retour du billet (minutes) après l'embarquement - Contingence editarUsuarioController.txtTipoVenta.label = Type de vente +editarUsuarioController.lhPadrao.label= Ponto de Venda (Padrão) +editarUsuarioController.MSG.QtdPadraoVazio= Precisa definir um ponto de venda como padrão. +editarUsuarioController.MSG.QtdPadraoMaiorDoQueUm= Apenas um ponto de venda pode ser configurado como padrão. # Editar Usuário editarUsuarioController.window.title = Utilisateur editarViaController.MSG.borrarOK = Chemin supprimé avec succès. diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 475950fc1..2df16bbe4 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -7119,6 +7119,9 @@ editarUsuarioController.txtEstacion.label = Estação editarUsuarioController.txtItensComissao.label = Item considerado na Comissão editarUsuarioController.txtTempoDevolucao.label = Tempo(minutos) de Devolução da Passagem após embarque - Contingência editarUsuarioController.txtTipoVenta.label = Tipo de Venda +editarUsuarioController.lhPadrao.label= Ponto de Venda (Padrão) +editarUsuarioController.MSG.QtdPadraoVazio= Precisa definir um ponto de venda como padrão. +editarUsuarioController.MSG.QtdPadraoMaiorDoQueUm= Apenas um ponto de venda pode ser configurado como padrão. # Editar Usuário editarUsuarioController.window.title = Usuário editarViaController.MSG.borrarOK = Via Excluida com Sucesso. diff --git a/web/gui/seguridad/editarUsuario.zul b/web/gui/seguridad/editarUsuario.zul index 113b05d4d..1c4ff6dd7 100644 --- a/web/gui/seguridad/editarUsuario.zul +++ b/web/gui/seguridad/editarUsuario.zul @@ -162,6 +162,10 @@ + + @@ -172,6 +176,9 @@ label="${c:l('editarUsuarioController.lhParada.label')}"/> + +