diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java index 08c6b17f3..3824e2f45 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/catalogos/EditarPuntoVentaController.java @@ -68,6 +68,7 @@ import org.zkoss.zul.Doublebox; import org.zkoss.zul.Filedownload; import org.zkoss.zul.Image; import org.zkoss.zul.Intbox; +import org.zkoss.zul.ListModelList; import org.zkoss.zul.Listitem; import org.zkoss.zul.Messagebox; import org.zkoss.zul.Radio; @@ -95,6 +96,7 @@ import com.rjconsultores.ventaboletos.entidad.HistoricoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.InstiFinanceira; import com.rjconsultores.ventaboletos.entidad.Moneda; import com.rjconsultores.ventaboletos.entidad.Nodo; +import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; import com.rjconsultores.ventaboletos.entidad.Parada; import com.rjconsultores.ventaboletos.entidad.ParamRecoleccion; import com.rjconsultores.ventaboletos.entidad.PerfilFuncion; @@ -111,6 +113,7 @@ import com.rjconsultores.ventaboletos.entidad.PtovtaEmpresa; import com.rjconsultores.ventaboletos.entidad.PtovtaEmpresaBloqueada; import com.rjconsultores.ventaboletos.entidad.PtovtaEmpresaContaBancaria; import com.rjconsultores.ventaboletos.entidad.PtovtaEstoque; +import com.rjconsultores.ventaboletos.entidad.PtovtaExcecaoMultaCanc; import com.rjconsultores.ventaboletos.entidad.PtovtaHorario; import com.rjconsultores.ventaboletos.entidad.PtovtaTitular; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; @@ -134,6 +137,7 @@ import com.rjconsultores.ventaboletos.service.FormaPagoService; import com.rjconsultores.ventaboletos.service.InstiFinanceiraService; import com.rjconsultores.ventaboletos.service.MonedaService; import com.rjconsultores.ventaboletos.service.NodoService; +import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; import com.rjconsultores.ventaboletos.service.PtoVtaCheckinService; import com.rjconsultores.ventaboletos.service.PtoVtaSeguroService; import com.rjconsultores.ventaboletos.service.PtoVtaUsuarioBancarioService; @@ -143,6 +147,7 @@ import com.rjconsultores.ventaboletos.service.PtovtaComissaoService; import com.rjconsultores.ventaboletos.service.PtovtaEmpresaBloqueadaService; import com.rjconsultores.ventaboletos.service.PtovtaEmpresaContaBancariaService; import com.rjconsultores.ventaboletos.service.PtovtaEmpresaService; +import com.rjconsultores.ventaboletos.service.PtovtaExcecaoMultaCancService; import com.rjconsultores.ventaboletos.service.PtovtaTitularService; import com.rjconsultores.ventaboletos.service.PuntoVentaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; @@ -179,6 +184,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPtoVtaSeguro; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPtovtaAntifraude; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPtovtaCatInd; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPtovtaComissao; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPtovtaExcecaoMultaCanc; import com.rjconsultores.ws.totvs.service.GeradorTitulosIntegracion; import com.rjconsultores.ws.totvs.service.GerenciadorEnvioTitulosWS; import com.rjconsultores.ws.utileria.RetornoTotvs.TipoRetorno; @@ -248,10 +254,15 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { @Autowired private PtovtaAntifraudeService ptovtaAntifraudeService; @Autowired + private PtovtaExcecaoMultaCancService ptovtaExcecaoMultaCancService; + @Autowired private UsuarioUbicacionService usuarioUbicacionService; @Autowired private PtovtaTitularService ptovtaTitularService; + @Autowired + private OrgaoConcedenteService orgaoConcedenteService; + private PuntoVenta puntoVenta; private Textbox txtCP; private MyListbox categoriaList; @@ -275,6 +286,7 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private MyListbox empresaContaBancariaList; private Textbox txtChaveAntifraude; private MyListbox ptovtaAntifraudeList; + private MyListbox ptovtaExcecaoMultaCancList; private Bandbox bbCategoria; private List lsCategoriaBloquear; @@ -333,6 +345,8 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private Combobox cmbEmpresaPtoVta; private Combobox cmbEmpresaPtoVtaUsuarioBancario; private Combobox cmbEmpresaPtoVtaAntifraude; + private Combobox cmbEmpresaPtoVtaExcecaoMultaCanc; + private Combobox cmbOrgaoConcedente; private Combobox cmbParada; private Combobox cmbPtoVtaCheckinParada; private Combobox cmbEmpresaSeguro; @@ -512,6 +526,8 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { @Autowired private CobrancaAdcPuntoVentaService cobrancaAdcService; + private List lsOrgaoConcedentes; + public Button getBtnApagar() { return btnApagar; } @@ -561,8 +577,12 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { lsTodasCobrancas = cobrancaAdcService.buscarTodasAsCobrancas(puntoVenta); + lsOrgaoConcedentes = orgaoConcedenteService.obtenerTodos(); + + super.doAfterCompose(comp); + if(puntoVenta.getIndBloqueiaTipoPassagem()) { radIndBloquear.setSelected(Boolean.TRUE); }else { @@ -959,6 +979,10 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { verPtovtaAntifraude(a); } }); + + ptovtaExcecaoMultaCancList.setItemRenderer(new RenderPtovtaExcecaoMultaCanc()); + ptovtaExcecaoMultaCancList.setData(puntoVenta.getPtovtaExcecaoMultaCancList() == null ? Collections.emptyList() : puntoVenta.getPtovtaExcecaoMultaCancList()); + } private List obterEmpresasUsuarioLogadoComOpcaoTodas() { @@ -2013,6 +2037,11 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { Labels.getLabel("editarPuntoVentaController.window.title"), Messagebox.OK, Messagebox.ERROR); } + + //Aba Excecao Multa Cancelamento + cmbOrgaoConcedente.setModel(new ListModelList(lsOrgaoConcedentes)); + cmbOrgaoConcedente.setSelectedItem(null); + } @@ -3655,6 +3684,35 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { log.error(e.getMessage(), e); } } + + public void onClick$btnAddExcecaoMultaCanc(Event event) { + try { + if(verificarCamposAddExcecaoMultaCanc()) { + if (cmbEmpresaPtoVtaExcecaoMultaCanc.getSelectedItem() == null) { + return; + } + if(cmbOrgaoConcedente.getSelectedItem() == null){ + return; + } + + PtovtaExcecaoMultaCanc ptovtaExcecaoMultaCanc = new PtovtaExcecaoMultaCanc(); + ptovtaExcecaoMultaCanc.setEmpresa((Empresa)cmbEmpresaPtoVtaExcecaoMultaCanc.getSelectedItem().getValue()); + ptovtaExcecaoMultaCanc.setPuntoventa(puntoVenta); + ptovtaExcecaoMultaCanc.setOrgaoConcedente((OrgaoConcedente)cmbOrgaoConcedente.getSelectedItem().getValue()); + ptovtaExcecaoMultaCanc.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + if(puntoVenta.getPtovtaExcecaoMultaCancList() ==null) { + puntoVenta.setPtovtaExcecaoMultaCancList(new ArrayList()); + } + puntoVenta.getPtovtaExcecaoMultaCancList().add(ptovtaExcecaoMultaCanc); + ptovtaExcecaoMultaCancList.setData(puntoVenta.getPtovtaExcecaoMultaCancList()); + + + } + } catch (Exception e) { + log.error("Erro ao adicionar Exceção Multa Cancelamento", e); + } + } private boolean verificarCamposAddChaveAntifraude() throws InterruptedException { if (cmbEmpresaPtoVtaAntifraude.getSelectedItem() == null) { @@ -3688,6 +3746,43 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { } return true; } + + + private boolean verificarCamposAddExcecaoMultaCanc() throws InterruptedException { + if (cmbEmpresaPtoVtaExcecaoMultaCanc.getSelectedItem() == null) { + Messagebox.show( + Labels.getLabel("editarPuntoVentaController.MSG.empresaExcecaoMultaCancNaoInformada"), + Labels.getLabel("editarPuntoVentaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return false; + } + + if (cmbOrgaoConcedente.getSelectedItem() == null) { + Messagebox.show( + Labels.getLabel("editarPuntoVentaController.MSG.OrgaoConcedenteExcecaoMultaCancNaoInformada"), + Labels.getLabel("editarPuntoVentaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return false; + } + + + if(puntoVenta.getPtovtaExcecaoMultaCancList() != null) { + Empresa empresa = (Empresa) cmbEmpresaPtoVtaExcecaoMultaCanc.getSelectedItem().getValue(); + OrgaoConcedente orgaoConcedente = (OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue(); + + for (PtovtaExcecaoMultaCanc ptovtaExcecaoMultaCanc : puntoVenta.getPtovtaExcecaoMultaCancList()) { + if(empresa.getEmpresaId().equals(ptovtaExcecaoMultaCanc.getEmpresa().getEmpresaId()) + && orgaoConcedente.getOrgaoConcedenteId().equals(ptovtaExcecaoMultaCanc.getOrgaoConcedente().getOrgaoConcedenteId()) ) { + Messagebox.show( + Labels.getLabel("editarPuntoVentaController.MSG.empresaOrgaoExcecaoMultaCancJaCadastrada"), + Labels.getLabel("editarPuntoVentaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return false; + } + } + } + return true; + } public void onClick$btnRemoveChaveAntifraude(Event event) { try{ @@ -3712,6 +3807,31 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { } } + public void onClick$btnRemoveExcecaoMultaCanc(Event event) { + try{ + PtovtaExcecaoMultaCanc ptovtaExcecaoMultaCanc = (PtovtaExcecaoMultaCanc)ptovtaExcecaoMultaCancList.getSelected(); + if(ptovtaExcecaoMultaCanc != null) { + String nomeEmpresa = ptovtaExcecaoMultaCanc.getEmpresa() != null ? ptovtaExcecaoMultaCanc.getEmpresa().getNombempresa() : ""; + String nomeOrgao = ptovtaExcecaoMultaCanc.getOrgaoConcedente() != null ? ptovtaExcecaoMultaCanc.getOrgaoConcedente().getDescOrgao() : ""; + int resp = Messagebox.show( + Labels.getLabel("editarPuntoVentaController.MSG.borrarChaveExcecaoMultaCancJaCadastrada", new String[] {nomeEmpresa, nomeOrgao}), + Labels.getLabel("editarPuntoVentaController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.YES) { + puntoVenta.removePtovtaExcecaoMultaCanc(ptovtaExcecaoMultaCanc); + + if(ptovtaExcecaoMultaCanc.getPtovtaExcecaoMultaCancId() != null) { + ptovtaExcecaoMultaCancService.borrar(ptovtaExcecaoMultaCanc); + } + ptovtaExcecaoMultaCancList.setData(puntoVenta.getPtovtaExcecaoMultaCancList()); + } + } + } catch (Exception e){ + log.error("Erro ao processar remoção Exceção Multa Cancelamento", e); + } + } + @SuppressWarnings({ "rawtypes", "unchecked" }) private void verPtovtaAntifraude(PtovtaAntifraude ptovtaAntifraude) { Map args = new HashMap(); @@ -4255,4 +4375,14 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { public void setIntTiempoMaxBoletoEnVenta(Intbox intTiempoMaxBoletoEnVenta) { this.intTiempoMaxBoletoEnVenta = intTiempoMaxBoletoEnVenta; } + + public List getLsOrgaoConcedentes() { + return lsOrgaoConcedentes; + } + + public void setLsOrgaoConcedentes(List lsOrgaoConcedentes) { + this.lsOrgaoConcedentes = lsOrgaoConcedentes; + } + + } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaExcecaoMultaCanc.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaExcecaoMultaCanc.java new file mode 100644 index 000000000..d38067eb2 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaExcecaoMultaCanc.java @@ -0,0 +1,24 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.PtovtaExcecaoMultaCanc; + +public class RenderPtovtaExcecaoMultaCanc implements ListitemRenderer { + + @Override + public void render(Listitem lstm, Object o) throws Exception { + PtovtaExcecaoMultaCanc PtovtaExcecaoMultaCanc = (PtovtaExcecaoMultaCanc) o; + + Listcell lc = new Listcell(PtovtaExcecaoMultaCanc.getEmpresa() == null ? " - " : PtovtaExcecaoMultaCanc.getEmpresa().getNombempresa()); + lc.setParent(lstm); + + lc = new Listcell((PtovtaExcecaoMultaCanc.getOrgaoConcedente()!=null) ? PtovtaExcecaoMultaCanc.getOrgaoConcedente().getDescOrgao() : ""); + lc.setParent(lstm); + + lstm.setAttribute("data", PtovtaExcecaoMultaCanc); + } + +} diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index 9e776b0c6..08357d381 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -515,6 +515,7 @@ com.rjconsultores.ventaboletos.entidad.ReservaEspecialCliente com.rjconsultores.ventaboletos.entidad.ConexionRutaLocalidadeRemovida com.rjconsultores.ventaboletos.entidad.ConfTotemVentaRapida + com.rjconsultores.ventaboletos.entidad.PtovtaExcecaoMultaCanc diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 124844d75..a48aca4d5 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -1962,6 +1962,13 @@ editarPuntoVentaComissaoController.MSG.suscribirOKContaMD=Porcentagem da Empresa editarPuntoVentaComissaoController.MSG.jaPossuiItem=Porcentagem da Empresa/Ponto de Venda já existe para esta conta editarPuntoVentaComissaoController.MSG.borrarPerguntaPtovtaContaMD=Deseja eliminar esta Porcentagem da Empresa/Ponto de Venda? editarPuntoVentaComissaoController.MSG.borrarOKContaMD=Porcentagem da Empresa/Ponto de Venda excluida com sucesso + +editarPuntoVentaController.MSG.empresaOrgaoExcecaoMultaCancJaCadastrada = Empresa e Órgão Condente informados já cadastrados +editarPuntoVentaController.MSG.borrarChaveExcecaoMultaCancJaCadastrada = Deseja eliminar a Exceção de Multa Cancelamento para Empresa: {0} e Órgão Condente: {1} ? +editarPuntoVentaController.lhOrgaoConcedente.label = Orgão Concedente +editarPuntoVentaController.MSG.empresaExcecaoMultaCancNaoInformada = Informe a empresa +editarPuntoVentaController.MSG.OrgaoConcedenteExcecaoMultaCancNaoInformada = Informe o Órgão Concedente +editarPuntoVentaController.OrgaoConcedente.label=Orgão Concedente # Muestra o TipoVenta Pesquisa busquedaTipoVentaController.window.title=Modalidade de Venda diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index a14be923f..cd8772bdf 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -1891,6 +1891,14 @@ editarPuntoVentaController.tiempoMaxBoletoEnVenta.label = Tempo máx. poltrona e editarPuntoVentaController.qrcodeCatracaRodEAN13.label = Imprimir na venda o QR Code da catraca da rodoviária editarPuntoVentaController.checkBloqDevolveReativaOutroPto.label = Bloqueia Devolver e Reativar em outro Ponto de Venda +editarPuntoVentaController.MSG.empresaOrgaoExcecaoMultaCancJaCadastrada = Empresa e Órgão Condente informados já cadastrados +editarPuntoVentaController.MSG.borrarChaveExcecaoMultaCancJaCadastrada = Deseja eliminar a Exceção de Multa Cancelamento para Empresa: {0} e Órgão Condente: {1} ? +editarPuntoVentaController.lhOrgaoConcedente.label = Orgão Concedente +editarPuntoVentaController.MSG.empresaExcecaoMultaCancNaoInformada = Informe a empresa +editarPuntoVentaController.MSG.OrgaoConcedenteExcecaoMultaCancNaoInformada = Informe o Órgão Concedente +editarPuntoVentaController.OrgaoConcedente.label=Orgão Concedente + + # Editar comisión ponto de venta editarPuntoVentaComissaoController.window.title = Comisión empresa/Punto de venta - {0} editarPuntoVentaComissaoController.MSG.suscribirOK = Comisión de la empresa/Punto de venta se registró exitosamente diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index d21b37d3d..bbbd35528 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -2077,6 +2077,7 @@ editarPuntoVentaController.lbCheckBoletoAG.value = Boleto editarPuntoVentaController.lbCheckDepositoAG.value = Depósito editarPuntoVentaController.lbCheckAdiantamentoAG.value = Adiantamentos editarPuntoVentaController.tab.label.antifraude = Antifraude +editarPuntoVentaController.tab.label.excecaoMultaCancelamento = Exceção de Multa Cancelamento editarPuntoVentaController.btnAddChaveAntifraude.tooltiptext = Adiciona chave de antifraude para a empresa informada editarPuntoVentaController.btnRemoveChaveAntifraude.tooltiptext = Remove chave de antifraude da empresa selecionada editarPuntoVentaController.MSG.borrarChaveAntifraude = Deseja eliminar a chave antifraude empresa {0} ? @@ -2087,6 +2088,8 @@ editarPuntoVentaController.lbComportamentoAbaTipoPassagem.value = Comportamento editarPuntoVentaController.lbComportamentoAbaTipoPassagem.bloquear.value = Bloquear editarPuntoVentaController.lbComportamentoAbaTipoPassagem.liberar.value = Liberar editarPuntoVentaController.lbComportamentoAbaTipoPassagem.mensagemAlerta.value=ATENÇÃO: O comportamento de bloqueio/liberação dos tipos de passagem será INVERTIDO para este ponto de venda. Os cadastros DEVERÃO SER REVISADOS. Deseja continuar? +editarPuntoVentaController.MSG.empresaOrgaoExcecaoMultaCancJaCadastrada = Empresa e Órgão Condente informados já cadastrados +editarPuntoVentaController.MSG.borrarChaveExcecaoMultaCancJaCadastrada = Deseja eliminar a Exceção de Multa Cancelamento para Empresa: {0} e Órgão Condente: {1} ? editarPuntoVentaController.lbCheckDinheiro.value=R$ editarPuntoVentaController.lbCheckCredito.value=CC @@ -9987,6 +9990,10 @@ editarPuntoVentaController.registroLancado.value = Lançado? editarPuntoVentaController.dicaMensal.value=Essa funcionalidade não faz cobrança retroativa, so o primeiro dia do mês cadastrado já estiver passado a cobrança só será efetuada no próximo mês, sem valor acumulado. editarPuntoVentaController.dicaTiempoMaxBoletoEnVenta.value = Este campo determinará o tempo máximo em que uma poltrona pode ficar bloqueada (em venda), caso preenchido. Caso não esteja preenchido será respeitado o tempo de venda cadastrado na constante TIEMPO_MAX_BOLETO_EN_VENTA. Essa regra não se aplica ao cliente de vendas que sempre irá respeitar a constante. editarPuntoVentaController.dicaMaxCancelacion.ajuda = Este campo deterinará o tempo máximo em que um bilhete poderá sofrer o Cancelamento (sem multa), após este tempo o cancelamento sofrerá multa de acordo com com os parâmetros configurados no Órgão Concedente. +editarPuntoVentaController.lhOrgaoConcedente.label = Orgão Concedente +editarPuntoVentaController.MSG.empresaExcecaoMultaCancNaoInformada = Informe a empresa +editarPuntoVentaController.MSG.OrgaoConcedenteExcecaoMultaCancNaoInformada = Informe o Órgão Concedente +editarPuntoVentaController.OrgaoConcedente.label=Orgão Concedente # Relatório de Venda de Cartão (Integração Cash Monitor) relatorioVendaCartaoCashMonitorController.window.title = Venda de Cartão diff --git a/web/gui/catalogos/editarPuntoVenta.zul b/web/gui/catalogos/editarPuntoVenta.zul index 85ac1c487..1ed9ffa2d 100644 --- a/web/gui/catalogos/editarPuntoVenta.zul +++ b/web/gui/catalogos/editarPuntoVenta.zul @@ -86,6 +86,8 @@ + @@ -2265,7 +2267,7 @@ - + @@ -2321,6 +2323,66 @@ + + + + + + + + + + + + + + + + + + +