diff --git a/pom.xml b/pom.xml
index 976610f60..efd35ad71 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,12 +4,12 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.80.2
+ 1.81.0
war
- 1.60.1
- 1.45.3
+ 1.61.0
+ 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')}"/>
+
+