diff --git a/pom.xml b/pom.xml
index cff9e9ead..a67740220 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,12 +4,12 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.9.2
+ 1.10.0
war
- 1.6.12
- 1.5.2
+ 1.7.0
+ 1.6.0
UTF-8
UTF-8
diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/BusquedaSecretariaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/BusquedaSecretariaController.java
index 5156a4da5..ea59492b8 100644
--- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/BusquedaSecretariaController.java
+++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/BusquedaSecretariaController.java
@@ -12,6 +12,8 @@ import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderSecretaria;
import java.util.HashMap;
import java.util.Map;
+
+import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
@@ -37,6 +39,8 @@ public class BusquedaSecretariaController extends MyGenericForwardComposer {
private Paging pagingSecretaria;
private Textbox txtDescSecretaria;
private Textbox txtCveSecretaria;
+ private Textbox txtCnpj;
+
public Paging getPagingSecretaria() {
return pagingSecretaria;
@@ -109,6 +113,9 @@ public class BusquedaSecretariaController extends MyGenericForwardComposer {
pagingSecretaria.getPageSize());
secretariaBusqueda.addFilterEqual("activo", Boolean.TRUE);
+
+ if( StringUtils.isNotBlank(txtCnpj.getText()))
+ secretariaBusqueda.addFilterEqual("cnpj", txtCnpj.getText());
secretariaBusqueda.addFilterLike("descsecretaria",
"%" + txtDescSecretaria.getText().trim().concat("%"));
diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarSecretariaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarSecretariaController.java
index efc0a19c8..7b8b3e57d 100644
--- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarSecretariaController.java
+++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/configuracioneccomerciales/EditarSecretariaController.java
@@ -13,6 +13,8 @@ import java.util.List;
import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
+import org.brazilutils.br.cpfcnpj.Cnpj;
+import org.brazilutils.validation.ValidationException;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;
@@ -26,15 +28,19 @@ import org.zkoss.zul.Button;
import org.zkoss.zul.Checkbox;
import org.zkoss.zul.Combobox;
import org.zkoss.zul.Longbox;
+import org.zkoss.zul.Messagebox;
import org.zkoss.zul.Radio;
import org.zkoss.zul.Row;
import org.zkoss.zul.Textbox;
+import com.rjconsultores.ventaboletos.constantes.Constantes;
+import com.rjconsultores.ventaboletos.entidad.Constante;
import com.rjconsultores.ventaboletos.entidad.CuponSecretaria;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.FormaPago;
import com.rjconsultores.ventaboletos.entidad.Secretaria;
import com.rjconsultores.ventaboletos.entidad.SecretariaEmpresa;
+import com.rjconsultores.ventaboletos.service.ConstanteService;
import com.rjconsultores.ventaboletos.service.CuponSecretariaService;
import com.rjconsultores.ventaboletos.service.EmpresaService;
import com.rjconsultores.ventaboletos.service.FormaPagoService;
@@ -45,6 +51,7 @@ import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar;
import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer;
import com.rjconsultores.ventaboletos.web.utilerias.MyListbox;
+import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox;
import com.rjconsultores.ventaboletos.web.utilerias.MyTextboxDecimal;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCuponSecretaria;
import com.rjconsultores.ventaboletos.web.utilerias.render.RenderSecretariaEmpresa;
@@ -88,6 +95,7 @@ public class EditarSecretariaController extends MyGenericForwardComposer {
private Longbox txtRUT;
private Textbox txtDirSecretaria;
private Textbox txtCiudad;
+ private MyTextbox txtCNPJ;
private Button btnApagar;
private Button btnAdicionarCuponSecretaria;
private Radio rdPrecioTotal;
@@ -97,6 +105,9 @@ public class EditarSecretariaController extends MyGenericForwardComposer {
private Checkbox chkValidaSerieSubserie;
private Checkbox chkVoucherRod;
private MyComboboxEstandar cmbEmpresa;
+ @Autowired
+ private ConstanteService constanteService;
+
private static Logger log = Logger.getLogger(EditarSecretariaController.class);
private Row rowComboFormaPago;
@@ -306,6 +317,7 @@ public class EditarSecretariaController extends MyGenericForwardComposer {
txtRUT.setValue(secretaria.getRut());
txtDirSecretaria.setText(secretaria.getDireccion());
txtCiudad.setText(secretaria.getCiudad());
+ txtCNPJ.setText(secretaria.getCnpj());
}
rowComboFormaPago.setVisible(chkVoucherRod.isChecked());
@@ -396,7 +408,21 @@ public class EditarSecretariaController extends MyGenericForwardComposer {
txtDescSecretaria.getValue();
txtCveSecretaria.getValue();
cmbFormaPago.getValue();
+
try {
+ if (isCnpjObrigatorioOrdemDeSevico() && StringUtils.isBlank(txtCNPJ.getText())) {
+ String msg = "editarSecretariaController.cnjp.CNPJincorreto";
+ Messagebox.show(Labels.getLabel(msg), Labels.getLabel("editarSecretariaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ return;
+ } else if (!(!isCnpjObrigatorioOrdemDeSevico() && StringUtils.isBlank(txtCNPJ.getText()))) {
+ if (!validarCPFCNPJ(txtCNPJ.getText())) {
+ txtCNPJ.focus();
+ return;
+ } else {
+ secretaria.setCnpj(txtCNPJ.getText());
+ }
+ }
FormaPago formaPago = cmbFormaPago.getSelectedItem() != null ? (FormaPago) cmbFormaPago.getSelectedItem().getValue() : null;
@@ -450,6 +476,7 @@ public class EditarSecretariaController extends MyGenericForwardComposer {
} else if (rdPrecioTotal.isChecked()) {
secretaria.setImprimeprecio(Secretaria.PRECIO_TOTAL);
}
+
boolean podeSalvar = false;
List lsSecretaria = secretariaService.buscar(secretaria.getDescsecretaria());
if (lsSecretaria.isEmpty()) {
@@ -788,6 +815,55 @@ public class EditarSecretariaController extends MyGenericForwardComposer {
secretaria.setLsCuponSecretaria(lsCuponSecretaria);
}
}
+
+ private boolean validarCPFCNPJ(String numDoc) {
+ try {
+ String msg = "";
+ if (numDoc == null || StringUtils.isBlank(numDoc) || numDoc.length() != 14) {
+ msg = "editarSecretariaController.cnjp.CNPJincorreto";
+ } else {
+
+ numDoc = numDoc.trim();
+ if (!isCNPJValido(numDoc)) {
+ msg = "editarSecretariaController.cnjp.CNPJincorreto";
+ }
+ }
+
+ if (StringUtils.isNotBlank(msg)) {
+ Messagebox.show(Labels.getLabel(msg), Labels.getLabel("editarSecretariaController.window.title"),
+ Messagebox.OK, Messagebox.EXCLAMATION);
+ return false;
+ }
+
+ return true;
+ } catch (Exception e) {
+ log.error("Erro ao validar CPF/CNPJ: ", e);
+ return false;
+ }
+ }
+
+
+ private Boolean isCNPJValido(String numDoc) {
+ try {
+ Cnpj cnpj = new Cnpj(numDoc);
+ if(!cnpj.isValid()) {
+ return false;
+ }
+ } catch (ValidationException e) {
+ return false;
+ }
+
+ return true;
+ }
+
+ public Boolean isCnpjObrigatorioOrdemDeSevico() {
+ Constante constante = constanteService.buscarPorNomeConstante(Constantes.CNPJ_OBRIGATORIO_ORDEN_SERVICO);
+ if(constante != null) {
+ return Boolean.valueOf(constante.getValorconstante());
+ }
+ return false;
+ }
+
public void onCheck$chkVoucherRod(Event event) {
rowComboFormaPago.setVisible(chkVoucherRod.isChecked());
diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label
index 4d9daea1b..c6136c1c8 100644
--- a/web/WEB-INF/i3-label_en.label
+++ b/web/WEB-INF/i3-label_en.label
@@ -5761,6 +5761,9 @@ editarSecretariaController.MSG.registroTraslapado = O número do documento infor
editarSecretariaController.MSG.pocentaje = Mais de um desconto permitido para rango de passagens diferentes
editarSecretariaController.MSG.necessarioRemoverCupon.value = Existe registro com número de documento vazio, para validar documento é necessário apagar estes registros.
editarSecretariaController.MSG.voucherRodSemFormaPago.value=E Necessário escolher uma forma de pagamento quando marcado o registro como Voucher Rodoviaria.
+editarSecretariaController.cnjp.CNPJincorreto=CNPJ inválido, verifique o campo.
+editarSecretariaController.cnpj.label=CNPJ
+
# Pesquisa Cidade
busquedaCiudadController.window.title = Cidade
diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label
index 3479a1cfd..ef92185f0 100644
--- a/web/WEB-INF/i3-label_es_MX.label
+++ b/web/WEB-INF/i3-label_es_MX.label
@@ -5446,6 +5446,8 @@ editarSecretariaController.MSG.voucherRodDuplicado.value = Já existe um registr
editarSecretariaController.MSG.registroTraslapado = El numero de documento informado se traslapa con otro ya existente
editarSecretariaController.MSG.pocentaje = Mas de un descuento permitido para rango de pasajes distintos
editarSecretariaController.MSG.voucherRodSemFormaPago.value=Es necesario elegir una forma de pago cuando el registro está marcado como Voucher Rodoviaria.
+editarSecretariaController.cnjp.CNPJincorreto=CNPJ inválido, verifique o campo.
+editarSecretariaController.cnpj.label=CNPJ
# Búsqueda Ciudad
busquedaCiudadController.window.title = Ciudad
diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label
index edb59c917..0b5ffae7f 100644
--- a/web/WEB-INF/i3-label_pt_BR.label
+++ b/web/WEB-INF/i3-label_pt_BR.label
@@ -5735,6 +5735,7 @@ busquedaSecretariaController.btnNovo.tooltiptext = Incluir
busquedaSecretariaController.btnCerrar.tooltiptext = Fechar
busquedaSecretariaController.DescSecretaria.label = Descrição
busquedaSecretariaController.SecretariaID.label = ID
+busquedaSecretariaController.cnpj.label = CNPJ
busquedaSecretariaController.CveSecretaria.label = Código Secretaria
busquedaSecretariaController.btnPesquisa.label = Pesquisa
busquedaSecretariaController.validafolio.label = Validar Número do Documento
@@ -5783,6 +5784,8 @@ editarSecretariaController.MSG.registroTraslapado = O número do documento infor
editarSecretariaController.MSG.pocentaje = Mais de um desconto permitido para rango de passagens diferentes
editarSecretariaController.MSG.necessarioRemoverCupon.value = Existe registro com número de documento vazio, para validar documento é necessário apagar estes registros.
editarSecretariaController.MSG.voucherRodSemFormaPago.value=E Necessário escolher uma forma de pagamento quando marcado o registro como Voucher Rodoviaria.
+editarSecretariaController.cnjp.CNPJincorreto=CNPJ inválido, verifique o campo.
+editarSecretariaController.cnpj.label=CNPJ
# Pesquisa Cidade
busquedaCiudadController.window.title = Cidade
diff --git a/web/gui/configuraciones_comerciales/busquedaSecretaria.zul b/web/gui/configuraciones_comerciales/busquedaSecretaria.zul
index 3bbd95409..7676412d4 100644
--- a/web/gui/configuraciones_comerciales/busquedaSecretaria.zul
+++ b/web/gui/configuraciones_comerciales/busquedaSecretaria.zul
@@ -33,6 +33,11 @@
+
+
+
+
+
diff --git a/web/gui/configuraciones_comerciales/editarSecretaria.zul b/web/gui/configuraciones_comerciales/editarSecretaria.zul
index db5cf1dac..01a257bfb 100644
--- a/web/gui/configuraciones_comerciales/editarSecretaria.zul
+++ b/web/gui/configuraciones_comerciales/editarSecretaria.zul
@@ -56,6 +56,14 @@
value="@{winEditarSecretaria$composer.secretaria.cvesecretaria}"
use="com.rjconsultores.ventaboletos.web.utilerias.MyTextbox" />
+
+
+
+