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 @@