From 5a2e5cc7ac03f95ed7e30e8998e5f119ee4679ec Mon Sep 17 00:00:00 2001 From: wilian Date: Thu, 3 Jan 2019 17:40:18 +0000 Subject: [PATCH] bug#12840 dev:valdevir qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@88486 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioIntegracaoAntiFraude.java | 68 ++- ...elatorioIntegracaoAntiFraude_es.properties | 28 +- ...elatorioIntegracaoAntiFraude_pt.properties | 25 +- .../RelatorioIntegracaoAntiFraude.jasper | Bin 36737 -> 47211 bytes .../RelatorioIntegracaoAntiFraude.jrxml | 516 +++++++++++------- .../catalogos/EditarPuntoVentaController.java | 104 +++- .../integracaoantifraude/EStatusKonduto.java | 50 +- .../EStatusKondutoEnvio.java | 47 ++ .../EStatusKondutoTotalBus.java | 58 ++ ...ExecutarRelatorioIntegracaoAntiFraude.java | 46 +- ...latorioIntegracaoAntiFraudeController.java | 47 +- ...lidaFormRelatorioIntegracaoAntiFraude.java | 24 +- .../web/utilerias/MyComboboxPuntoVenta.java | 7 + .../ventaboletos/web/utilerias/MyListbox.java | 12 + ...ItemMenuRelatorioIntegracaoAntiFraude.java | 4 +- .../render/RenderPtovtaAntifraude.java | 25 + src/java/spring-config.xml | 1 + web/WEB-INF/i3-label_es_MX.label | 13 +- web/WEB-INF/i3-label_pt_BR.label | 13 +- web/gui/catalogos/editarEmpresa.zul | 22 - web/gui/catalogos/editarPuntoVenta.zul | 61 ++- .../filtroRelatorioIntegracaoAntiFraude.zul | 32 +- 22 files changed, 906 insertions(+), 297 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKondutoEnvio.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKondutoTotalBus.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaAntifraude.java diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioIntegracaoAntiFraude.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioIntegracaoAntiFraude.java index 2b408e8fd..adcf4ac61 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioIntegracaoAntiFraude.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioIntegracaoAntiFraude.java @@ -7,10 +7,14 @@ import java.sql.Timestamp; import java.util.Date; import java.util.Map; +import org.apache.commons.lang.StringUtils; + import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayCustomDataSourceRelatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.utilerias.DateUtil; -import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; +import com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude.EStatusKonduto; +import com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude.EStatusKondutoEnvio; +import com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude.EStatusKondutoTotalBus; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; public class RelatorioIntegracaoAntiFraude extends Relatorio { @@ -38,30 +42,44 @@ public class RelatorioIntegracaoAntiFraude extends Relatorio { instrucaoSql.append("WHEN CLI.TIPOIDENTIFICADOS_ID = 2 THEN "); instrucaoSql.append(" NUMIDENTIFICADOS "); instrucaoSql.append("END, 11, '0') CPF_COMPRADOR, CLI.NOMBCLIENTE NOME_COMPRADOR, "); - instrucaoSql.append("TO_CHAR(B.FECHORVENTA, 'DD/MM/YYYY') DATA_COMPRA, "); - instrucaoSql.append("TO_CHAR(B.FECHORVENTA, 'HH24:MI') HORA_COMPRA, "); - instrucaoSql.append("CT.NSU, CT.NUMAUTORIZACION AUTORIZACAO, "); + instrucaoSql.append("TO_CHAR(COALESCE(B.FECHORVENTA_H,B.FECHORVENTA), 'DD/MM/YYYY HH24:MI') DATA_HORA_COMPRA, "); + instrucaoSql.append("TK.NSU, TK.NUMAUTORIZACION AUTORIZACAO, "); instrucaoSql.append("COALESCE(B.PRECIOPAGADO,0) + COALESCE(B.IMPORTETAXAEMBARQUE,0) + "); instrucaoSql.append("COALESCE(B.IMPORTESEGURO,0) + COALESCE(B.IMPORTEPEDAGIO,0) + COALESCE(B.IMPORTEOUTROS,0) AS VALOR_TOTAL, "); instrucaoSql.append("B.CORRIDA_ID SERVICO, "); - instrucaoSql.append("TO_CHAR(B.FECHORVIAJE, 'DD/MM/YYYY') DATA_VIAGEM, "); - instrucaoSql.append("TO_CHAR(B.FECHORVIAJE, 'HH24:MI') HORA_VIAGEM, "); + instrucaoSql.append("TO_CHAR(B.FECHORVIAJE, 'DD/MM/YYYY HH24:MI') DATA_HORA_VIAGEM, "); instrucaoSql.append("PO.DESCPARADA ORIGEM, PD.DESCPARADA DESTINO, "); instrucaoSql.append("B.NUMFOLIOSISTEMA BILHETE, "); instrucaoSql.append("B.NUMASIENTO POLTRONA, "); - instrucaoSql.append("B.NOMBPASAJERO PASSAGEIRO "); + instrucaoSql.append("B.NOMBPASAJERO PASSAGEIRO, "); + instrucaoSql.append("TK.STATUSTRANSACAOKONDUTO STATUSTRANSACAOKONDUTO, "); + instrucaoSql.append("TK.STATUSTRANSACAO STATUSTRANSACAO, "); + instrucaoSql.append("TK.TENTATIVAENVIO TENTATIVAENVIO, "); + instrucaoSql.append("TK.STATUSENVIO STATUSENVIO "); instrucaoSql.append("FROM BOLETO B "); instrucaoSql.append("INNER JOIN TRANSACAO_KONDUTO TK ON B.BOLETO_ID = TK.BOLETO_ID "); instrucaoSql.append("INNER JOIN MARCA M ON B.MARCA_ID = M.MARCA_ID "); instrucaoSql.append("LEFT JOIN CLIENTE CLI ON B.CLIENTECOMPRADOR_ID = CLI.CLIENTE_ID "); - instrucaoSql.append("LEFT JOIN CAJA C ON B.BOLETO_ID = C.TRANSACAO_ID "); - instrucaoSql.append("LEFT JOIN CAJA_DET_PAGO CDP ON C.CAJA_ID = CDP.CAJA_ID "); - instrucaoSql.append("LEFT JOIN CAJA_TARJETA CT ON CDP.CAJADETPAGO_ID = CT.CAJADETPAGO_ID "); instrucaoSql.append("LEFT JOIN PARADA PO ON B.ORIGEN_ID = PO.PARADA_ID "); instrucaoSql.append("LEFT JOIN PARADA PD ON B.DESTINO_ID = PD.PARADA_ID "); instrucaoSql.append("WHERE B.FECHORVENTA BETWEEN :dtInicial AND :dtFinal "); - instrucaoSql.append("AND TK.STATUSTRANSACAO IN("+parametros.get("statusKondutoId").toString()+") "); instrucaoSql.append("AND M.EMPRESA_ID = :empresaId "); + + if(parametros.get("statusKondutoTotalBusId") != null) { + instrucaoSql.append("AND TK.STATUSTRANSACAO IN("+parametros.get("statusKondutoTotalBusId").toString()+") "); + } + + if(parametros.get("puntoventaId") != null) { + instrucaoSql.append("AND TK.PUNTOVENTA_ID = :puntoventaId "); + } + + if(parametros.get("statusKondutoId") != null) { + instrucaoSql.append("AND TK.STATUSTRANSACAOKONDUTO IN("+parametros.get("statusKondutoId").toString()+") "); + } + + if(parametros.get("statusKondutoEnvioId") != null) { + instrucaoSql.append("AND TK.STATUSENVIO IN("+parametros.get("statusKondutoEnvioId").toString()+") "); + } } @Override @@ -69,19 +87,33 @@ public class RelatorioIntegracaoAntiFraude extends Relatorio { dataResult.put("ID_KONDUTO", resultSet.getString("ID_KONDUTO")); dataResult.put("CPF_COMPRADOR", resultSet.getString("CPF_COMPRADOR")); dataResult.put("NOME_COMPRADOR", resultSet.getString("NOME_COMPRADOR")); - dataResult.put("DATA_COMPRA", resultSet.getString("DATA_COMPRA")); - dataResult.put("HORA_COMPRA", resultSet.getString("HORA_COMPRA")); + dataResult.put("DATA_COMPRA", resultSet.getString("DATA_HORA_COMPRA")); dataResult.put("NSU", resultSet.getString("NSU")); dataResult.put("AUTORIZACAO", resultSet.getString("AUTORIZACAO")); - dataResult.put("VALOR_TOTAL", MoneyHelper.instanciar(resultSet.getBigDecimal("VALOR_TOTAL"))); + dataResult.put("VALOR_TOTAL", resultSet.getBigDecimal("VALOR_TOTAL")); dataResult.put("SERVICO", resultSet.getString("SERVICO")); - dataResult.put("DATA_VIAGEM", resultSet.getString("DATA_VIAGEM")); - dataResult.put("HORA_VIAGEM", resultSet.getString("HORA_VIAGEM")); + dataResult.put("DATA_VIAGEM", resultSet.getString("DATA_HORA_VIAGEM")); dataResult.put("ORIGEM", resultSet.getString("ORIGEM")); dataResult.put("DESTINO", resultSet.getString("DESTINO")); dataResult.put("BILHETE", resultSet.getString("BILHETE")); dataResult.put("POLTRONA", resultSet.getString("POLTRONA")); dataResult.put("PASSAGEIRO", resultSet.getString("PASSAGEIRO")); + dataResult.put("TENTATIVAENVIO", resultSet.getInt("TENTATIVAENVIO")); + + String statustransacao = resultSet.getString("STATUSTRANSACAO"); + if(StringUtils.isNotBlank(statustransacao)) { + dataResult.put("STATUSTRANSACAO", EStatusKondutoTotalBus.getStatusKondutoPorId(statustransacao).getDescricao()); + } + + String statustransacaoKonduto = resultSet.getString("STATUSTRANSACAOKONDUTO"); + if(StringUtils.isNotBlank(statustransacaoKonduto)) { + dataResult.put("STATUSTRANSACAOKONDUTO", EStatusKonduto.getStatusKondutoPorId(statustransacaoKonduto).getDescricao()); + } + + String statusEnvio = resultSet.getString("STATUSENVIO"); + if(StringUtils.isNotBlank(statusEnvio)) { + dataResult.put("STATUSENVIO", EStatusKondutoEnvio.getStatusKondutoPorId(statusEnvio).getDescricao()); + } } @Override @@ -89,6 +121,10 @@ public class RelatorioIntegracaoAntiFraude extends Relatorio { stmt.setTimestamp("dtInicial", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("dtInicial")).getTime())); stmt.setTimestamp("dtFinal", new Timestamp(DateUtil.fimFecha((Date) parametros.get("dtFinal")).getTime())); stmt.setObject("empresaId", parametros.get("empresaId")); + + if(parametros.get("puntoventaId") != null) { + stmt.setObject("puntoventaId", parametros.get("puntoventaId")); + } } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_es.properties index 7dec516f1..b2283679b 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_es.properties @@ -9,5 +9,29 @@ cabecalho.dataHora=Data/Hora: cabecalho.impressorPor=Impresso por: cabecalho.pagina=Página cabecalho.de=de -cabecalho.filtros=Filtros: -cabecalho.empresa=Empresa: \ No newline at end of file +cabecalho.filtros=Filtros +cabecalho.empresa=Empresa: +cabecalho.statusKonduto=Status Konduto: +cabecalho.puntoventa=Agência: +cabecalho.statusKondutoEnvio=Status Envio: +cabecalho.statusKondutoTotalBus=Status Envio totalBus: + +label.idKonduto=ID Konduto +label.cpfComprador=CPF Comprador +label.nomeComprador=Nome Comprador +label.dataCompra=Data Compra +label.nsu=NSU +label.autorizacao=Autorização +label.valor=Valor +label.servico=Serviço +label.dataViagem=Data Viagem +label.origem=Origem +label.destino=Destino +label.bilhete=Bilhete +label.poltrona=Poltrona +label.passageiro=Passageiro +label.tentativasEnvio=Tentativas Envio +label.statusTotalBus=Status totalBus +label.statusKonduto=Status Konduto +label.total=Total +label.statusEnvio=Status Envio \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_pt.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_pt.properties index b8b960109..01a315209 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_pt.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_pt.properties @@ -11,4 +11,27 @@ cabecalho.pagina=P cabecalho.de=de cabecalho.filtros=Filtros: cabecalho.empresa=Empresa: -cabecalho.statusKonduto=Filtro Status Konduto: \ No newline at end of file +cabecalho.statusKonduto=Status Konduto: +cabecalho.puntoventa=Agência: +cabecalho.statusKondutoEnvio=Status Envio: +cabecalho.statusKondutoTotalBus=Status Envio totalBus: + +label.idKonduto=ID Konduto +label.cpfComprador=CPF Comprador +label.nomeComprador=Nome Comprador +label.dataCompra=Data Compra +label.nsu=NSU +label.autorizacao=Autorização +label.valor=Valor +label.servico=Serviço +label.dataViagem=Data Viagem +label.origem=Origem +label.destino=Destino +label.bilhete=Bilhete +label.poltrona=Poltrona +label.passageiro=Passageiro +label.tentativasEnvio=Tentativas Envio +label.statusTotalBus=Status totalBus +label.statusKonduto=Status Konduto +label.total=Total +label.statusEnvio=Status Envio \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioIntegracaoAntiFraude.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioIntegracaoAntiFraude.jasper index 71451e44a1ebc0b9a905e8a9ef0e03b00febf3a8..87462019799eb2c77c4532e677f049c7dda44c42 100644 GIT binary patch literal 47211 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 - - - - + + + + + + + @@ -23,6 +26,10 @@ + + + + @@ -30,315 +37,410 @@ - + - - - + + + - - - + + + - - + + - + - - - - - - - - - + + - + - - - + + + + + + + + + + - - + + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + + - - - - - - + + + + + + - - + + + + + + + + + + + + + + + + + + + - + - - - + + + - - - + + + - - - + + + - - - + + + - - - - - - - - - - + + + - - - - + + + + - - - - + + + + + - - - - + + + + - - - - + + + + - - - - - - - - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + - - - - - + + + + + + - - - - + + + + - - + + + + + - + - + 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 03ce1278a..6c36a6eff 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 @@ -90,6 +90,7 @@ import com.rjconsultores.ventaboletos.entidad.PtoVtaSeguro; import com.rjconsultores.ventaboletos.entidad.PtoVtaUsuarioBancario; import com.rjconsultores.ventaboletos.entidad.PtovtaAgencia; import com.rjconsultores.ventaboletos.entidad.PtovtaAntecipacomissao; +import com.rjconsultores.ventaboletos.entidad.PtovtaAntifraude; import com.rjconsultores.ventaboletos.entidad.PtovtaCatInd; import com.rjconsultores.ventaboletos.entidad.PtovtaComissao; import com.rjconsultores.ventaboletos.entidad.PtovtaDiversos; @@ -104,6 +105,7 @@ import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.Usuario; import com.rjconsultores.ventaboletos.entidad.UsuarioBancario; import com.rjconsultores.ventaboletos.entidad.UsuarioPerfil; +import com.rjconsultores.ventaboletos.enums.TipoAntifraude; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.exception.IntegracionException; import com.rjconsultores.ventaboletos.exception.ValidacionCampoException; @@ -120,6 +122,7 @@ import com.rjconsultores.ventaboletos.service.NodoService; import com.rjconsultores.ventaboletos.service.PtoVtaCheckinService; import com.rjconsultores.ventaboletos.service.PtoVtaSeguroService; import com.rjconsultores.ventaboletos.service.PtoVtaUsuarioBancarioService; +import com.rjconsultores.ventaboletos.service.PtovtaAntifraudeService; import com.rjconsultores.ventaboletos.service.PtovtaCatIndService; import com.rjconsultores.ventaboletos.service.PtovtaComissaoService; import com.rjconsultores.ventaboletos.service.PtovtaEmpresaBloqueadaService; @@ -153,6 +156,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.render.RenderCategoriaBloque import com.rjconsultores.ventaboletos.web.utilerias.render.RenderEmpresaBloquear; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderParadaPtoVtaCheckin; 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.ws.totvs.service.GeradorTitulosIntegracion; @@ -220,6 +224,8 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private CategoriaBloqueioImpPosteriorService categoriaBloqueioImpPosteriorService; @Autowired private ConstanteService constanteService; + @Autowired + private PtovtaAntifraudeService ptovtaAntifraudeService; private PuntoVenta puntoVenta; private Textbox txtCP; @@ -241,11 +247,14 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private MyListbox ptovtaHistoricoList; private MyListbox categoriasBloqImpPosteriorList; private MyListbox empresaContaBancariaList; + private Textbox txtChaveAntifraude; + private MyListbox ptovtaAntifraudeList; private List lsCategoriaBloquear; private List lsEmpresasBloquear; private List lsEmpresas; + private List lsEmpresasSemTodos; private List lsEmpresasFormapago; private List lsEmpresaContaBancarias; private List lsBanco; @@ -293,6 +302,7 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { private Combobox cmbEmpresa; private Combobox cmbEmpresaPtoVta; private Combobox cmbEmpresaPtoVtaUsuarioBancario; + private Combobox cmbEmpresaPtoVtaAntifraude; private Combobox cmbParada; private Combobox cmbPtoVtaCheckinParada; private Combobox cmbEmpresaSeguro; @@ -433,6 +443,7 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { @Autowired private DataSource dataSource; + public Button getBtnApagar() { return btnApagar; } @@ -465,6 +476,7 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { lsCategoriaBloquear = categoriaService.obtenerTodasCategoriasVisibles(); lsEmpresasBloquear = empresaService.obtenerTodos(); lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa(); + lsEmpresasSemTodos = UsuarioLogado.getUsuarioLogado().getEmpresa(); lsMoneda = monedaService.obtenerTodos(); lsBanco = ptovtaBancoService.obtenerTodos(); lsColonia = new ArrayList(); @@ -806,8 +818,6 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { puntoVenta.setLsPtovtaUsuarioBancario(new ArrayList()); } - - lsPtovtaUsuarioBancario = puntoVenta.getLsPtovtaUsuarioBancario(); ptovtaUsuarioBancarioList.setData(lsPtovtaUsuarioBancario); @@ -834,6 +844,9 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { if (puntoVenta.getValidaTempoParaImpressao() != null) { txtTempoParaImpressao.setDisabled(!puntoVenta.getValidaTempoParaImpressao()); } + + ptovtaAntifraudeList.setItemRenderer(new RenderPtovtaAntifraude()); + ptovtaAntifraudeList.setData(puntoVenta.getPtovtaAntifraudes()); } private void downloadLogIntegracao(Combobox cmb){ @@ -936,6 +949,7 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { clearCombobox(cmbLote); clearCombobox(cmbPosicao); clearCombobox(cmbEmpresas); + clearCombobox(cmbEmpresas); clearCombobox(cmbCategorias); clearCombobox(cmbUsuarioEmpresa); @@ -3406,6 +3420,88 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { } } + public void onClick$btnAddChaveAntifraude(Event event) { + try { + if(verificarCamposAddChaveAntifraude()) { + if (cmbEmpresaPtoVtaAntifraude.getSelectedItem() == null) { + return; + } + txtChaveAntifraude.getValue(); + + PtovtaAntifraude ptovtaAntifraude = new PtovtaAntifraude(); + ptovtaAntifraude.setEmpresa((Empresa)cmbEmpresaPtoVtaAntifraude.getSelectedItem().getValue()); + ptovtaAntifraude.setPuntoventa(puntoVenta); + ptovtaAntifraude.setChave(txtChaveAntifraude.getValue()); + ptovtaAntifraude.setTipo(TipoAntifraude.KONDUTO); + ptovtaAntifraude.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + puntoVenta.addChaveAntifurto(ptovtaAntifraude); + + ptovtaAntifraudeList.setData(puntoVenta.getPtovtaAntifraudes()); + + txtChaveAntifraude.setValue(""); + } + } catch (Exception e) { + log.error(e.getMessage(), e); + } + } + + private boolean verificarCamposAddChaveAntifraude() throws InterruptedException { + if (cmbEmpresaPtoVtaAntifraude.getSelectedItem() == null) { + Messagebox.show( + Labels.getLabel("editarPuntoVentaController.MSG.empresaAntifraudeNaoInformada"), + Labels.getLabel("editarPuntoVentaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return false; + } + + txtChaveAntifraude.getValue(); + if(StringUtils.isBlank(txtChaveAntifraude.getValue())) { + Messagebox.show( + Labels.getLabel("editarPuntoVentaController.MSG.chaveAntifraudeNaoInformada"), + Labels.getLabel("editarPuntoVentaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return false; + } + + if(puntoVenta.getPtovtaAntifraudes() != null) { + Empresa empresa = (Empresa) cmbEmpresaPtoVtaAntifraude.getSelectedItem().getValue(); + for (PtovtaAntifraude ptovtaAntifraude : puntoVenta.getPtovtaAntifraudes()) { + if(empresa.equals(ptovtaAntifraude.getEmpresa())) { + Messagebox.show( + Labels.getLabel("editarPuntoVentaController.MSG.empresaAntifraudeJaCadastrada"), + Labels.getLabel("editarPuntoVentaController.window.title"), + Messagebox.OK, Messagebox.EXCLAMATION); + return false; + } + } + } + return true; + } + + public void onClick$btnRemoveChaveAntifraude(Event event) { + try{ + PtovtaAntifraude ptovtaAntifraude = (PtovtaAntifraude)ptovtaAntifraudeList.getSelected(); + if(ptovtaAntifraude != null) { + int resp = Messagebox.show( + Labels.getLabel("editarPuntoVentaController.MSG.borrarChaveAntifraude", new String[] {ptovtaAntifraude.getEmpresa() != null ? ptovtaAntifraude.getEmpresa().getNombempresa() : ""}), + Labels.getLabel("editarPuntoVentaController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.YES) { + puntoVenta.removeChaveAntifurto(ptovtaAntifraude); + + if(ptovtaAntifraude.getPtovtaAntifraudeId() != null) { + ptovtaAntifraudeService.borrar(ptovtaAntifraude); + } + ptovtaAntifraudeList.setData(puntoVenta.getPtovtaAntifraudes()); + } + } + } catch (Exception e){ + log.error("", e); + } + } + public void onClick$radIndvendsegtabelaNo(Event event) { if (radIndvendsegtabelaNo.isChecked()) { radIndestansegtabelaSi.setDisabled(true); @@ -3556,4 +3652,8 @@ public class EditarPuntoVentaController extends MyGenericForwardComposer { this.radIndvendsegtabelaNo = radIndvendsegtabelaNo; } + public List getLsEmpresasSemTodos() { + return lsEmpresasSemTodos; + } + } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKonduto.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKonduto.java index aa988873d..ce5580239 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKonduto.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKonduto.java @@ -1,32 +1,62 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude; +import java.util.List; + public enum EStatusKonduto { - PENDENTE("P", "Pendente"), - APROVADO("A", "Aprovado"), - NEGADO("N", "Negado"); - private String id; + PENDING("PENDING", "Pendente"), + APPROVED("APPROVED","Aprovado"), + DECLINED("DECLINED","Negado"), + FRAUD("FRAUD","Fraude"), + NOT_AUTHORIZED("NOT_AUTHORIZED","Não autorizado"), + NOT_ANALYZED("NOT_ANALYZED","Não analisado"), + CANCELED("CANCELED","Cancelado"); + + private String codigo; private String descricao; - private EStatusKonduto(String id, String descricao) { - this.id = id; + private EStatusKonduto(String codigo, String descricao) { + this.codigo = codigo; this.descricao = descricao; } - public String getId() { - return id; + public String getCodigo() { + return codigo; } public String getDescricao() { return descricao; } + public static String getDescricaoTodos(List list) { + StringBuilder str = new StringBuilder(); + for (EStatusKonduto eStatusKonduto : list) { + if(str.length() > 0) { + str.append(", "); + } + str.append(eStatusKonduto.getDescricao()); + } + return str.toString(); + } + + public static String getIdTodos(List list) { + StringBuilder str = new StringBuilder(); + for (EStatusKonduto eStatusKonduto : list) { + if(str.length() > 0) { + str.append(", "); + } + str.append("'").append(eStatusKonduto.getCodigo()).append("'"); + } + return str.toString(); + } + public static EStatusKonduto getStatusKondutoPorId(String id) { - for (EStatusKonduto status : EStatusKonduto.values()) { - if (status.getId().equals(id)) { + for (EStatusKonduto status: EStatusKonduto.values()) { + if (status.getCodigo().equals(id)) { return status; } } throw new IllegalArgumentException("Status Konduto não encontrado."); } + } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKondutoEnvio.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKondutoEnvio.java new file mode 100644 index 000000000..c39346ca4 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKondutoEnvio.java @@ -0,0 +1,47 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude; + +import java.util.List; + +public enum EStatusKondutoEnvio { + + ENVIADO("Enviado"), + PENDENTE("Pendente"), + ENVIADO_POSTERIOR("Enviado Posterior"); + + private String descricao; + + private EStatusKondutoEnvio(String descricao) { + this.descricao = descricao; + } + + public String getDescricao() { + return descricao; + } + + public static String getDescricaoTodos(List list) { + StringBuilder str = new StringBuilder(); + for (EStatusKondutoEnvio eStatusKondutoEnvio : list) { + if(str.length() > 0) { + str.append(", "); + } + str.append(eStatusKondutoEnvio.getDescricao()); + } + return str.toString(); + } + + public static String getIdTodos(List list) { + StringBuilder str = new StringBuilder(); + for (EStatusKondutoEnvio eStatusKondutoEnvio : list) { + if(str.length() > 0) { + str.append(", "); + } + str.append("'").append(eStatusKondutoEnvio.toString()).append("'"); + } + return str.toString(); + } + + public static EStatusKondutoEnvio getStatusKondutoPorId(String id) { + return EStatusKondutoEnvio.valueOf(id); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKondutoTotalBus.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKondutoTotalBus.java new file mode 100644 index 000000000..8b2937ae6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKondutoTotalBus.java @@ -0,0 +1,58 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude; + +import java.util.List; + +public enum EStatusKondutoTotalBus { + PENDENTE("P", "Pendente"), + APROVADO("A", "Aprovado"), + NEGADO("N", "Negado"), + STATUS_NEGADO_CARTAO("NC", "Cartao não Aprovado"); + + private String id; + private String descricao; + + private EStatusKondutoTotalBus(String id, String descricao) { + this.id = id; + this.descricao = descricao; + } + + public String getId() { + return id; + } + + public String getDescricao() { + return descricao; + } + + public static EStatusKondutoTotalBus getStatusKondutoPorId(String id) { + for (EStatusKondutoTotalBus status : EStatusKondutoTotalBus.values()) { + if (status.getId().equals(id)) { + return status; + } + } + throw new IllegalArgumentException("Status Konduto totalBus não encontrado."); + } + + public static String getDescricaoTodos(List list) { + StringBuilder str = new StringBuilder(); + for (EStatusKondutoTotalBus eStatusKondutoTotalBus : list) { + if(str.length() > 0) { + str.append(", "); + } + str.append(eStatusKondutoTotalBus.getDescricao()); + } + return str.toString(); + } + + public static String getIdTodos(List list) { + StringBuilder str = new StringBuilder(); + for (EStatusKondutoTotalBus eStatusKondutoTotalBus : list) { + if(str.length() > 0) { + str.append(", "); + } + str.append("'").append(eStatusKondutoTotalBus.getId()).append("'"); + } + return str.toString(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EventListenerExecutarRelatorioIntegracaoAntiFraude.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EventListenerExecutarRelatorioIntegracaoAntiFraude.java index 05eea4363..7eda4483c 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EventListenerExecutarRelatorioIntegracaoAntiFraude.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EventListenerExecutarRelatorioIntegracaoAntiFraude.java @@ -1,7 +1,6 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude; import java.sql.SQLException; -import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -11,6 +10,7 @@ import org.zkoss.util.resource.Labels; import org.zkoss.zk.ui.event.EventListener; import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioIntegracaoAntiFraude; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.utils.FormataUtil; @@ -49,34 +49,32 @@ public class EventListenerExecutarRelatorioIntegracaoAntiFraude extends EventLis Empresa empresa = getController().getCmbEmpresa().getSelecteObject(Empresa.class); parametros.put("empresaId", empresa.getEmpresaId()); parametros.put("empresa", empresa.getNombempresa()); - List statusKondutoSelecionados = obtemIdsEDescricaoStatusKondutoSelecionados(); - parametros.put("statusKondutoId", statusKondutoSelecionados.get(0).toString()); - parametros.put("statusKonduto", statusKondutoSelecionados.get(1).toString()); + + PuntoVenta puntoVenta = getController().getCmbPuntoVenta().getSelecteObject(PuntoVenta.class); + if(puntoVenta != null) { + parametros.put("puntoventaId", puntoVenta.getPuntoventaId()); + parametros.put("puntoventa", puntoVenta.getNombpuntoventa()); + } else { + parametros.put("puntoventa", "Todos"); + } + + obtemIdsEDescricaoStatusKondutoSelecionados(parametros); return parametros; } - private List obtemIdsEDescricaoStatusKondutoSelecionados() { - StringBuilder idsKonduto = new StringBuilder(); - StringBuilder descricaoKonduto = new StringBuilder(); - List statusKondutoSelecionados = getController().getKondutoList().getItensSelecionados(); - populaKondutoSelecionados(idsKonduto, descricaoKonduto, statusKondutoSelecionados); - ArrayList kondutosSelecionados = new ArrayList(); - kondutosSelecionados.add(idsKonduto); - kondutosSelecionados.add(descricaoKonduto); - return kondutosSelecionados; - } + private void obtemIdsEDescricaoStatusKondutoSelecionados(Map parametros) { + List statusKondutoTotalBusSelecionados = getController().getKondutoTotalBusList().getItensSelecionados(EStatusKondutoTotalBus.class); + parametros.put("statusKondutoTotalBusId", EStatusKondutoTotalBus.getIdTodos(statusKondutoTotalBusSelecionados)); + parametros.put("statusKondutoTotalBus", EStatusKondutoTotalBus.getDescricaoTodos(statusKondutoTotalBusSelecionados)); - private void populaKondutoSelecionados(StringBuilder idsKonduto, StringBuilder descricaoKonduto, List statusKondutoSelecionados) { - for (int i = 0; i < statusKondutoSelecionados.size(); i++) { - EStatusKonduto statusKonduto = (EStatusKonduto)statusKondutoSelecionados.get(i); - idsKonduto.append("'"+statusKonduto.getId()+"'"); - descricaoKonduto.append(statusKonduto.getDescricao()); - if (i != statusKondutoSelecionados.size()-1) { - idsKonduto.append(", "); - descricaoKonduto.append(", "); - } - } + List statusKondutoEnvioSelecionados = getController().getKondutoEnvioList().getItensSelecionados(EStatusKondutoEnvio.class); + parametros.put("statusKondutoEnvioId", EStatusKondutoEnvio.getIdTodos(statusKondutoEnvioSelecionados)); + parametros.put("statusKondutoEnvio", EStatusKondutoEnvio.getDescricaoTodos(statusKondutoEnvioSelecionados)); + + List statusKondutoSelecionados = getController().getKondutoList().getItensSelecionados(EStatusKonduto.class); + parametros.put("statusKondutoId", EStatusKonduto.getIdTodos(statusKondutoSelecionados)); + parametros.put("statusKonduto", EStatusKonduto.getDescricaoTodos(statusKondutoSelecionados)); } private String obtemPeriodo() { diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/RelatorioIntegracaoAntiFraudeController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/RelatorioIntegracaoAntiFraudeController.java index ca4797451..3f7c05854 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/RelatorioIntegracaoAntiFraudeController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/RelatorioIntegracaoAntiFraudeController.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude; +import java.util.ArrayList; import java.util.Arrays; import java.util.List; @@ -13,9 +14,11 @@ import org.zkoss.zul.Button; import org.zkoss.zul.Datebox; import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.enums.TypeEventListener; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPersonalizado; @@ -26,7 +29,7 @@ public class RelatorioIntegracaoAntiFraudeController extends MyGenericForwardCom private static final long serialVersionUID = 1L; - public static final String TITULO_RELATORIO = "indexController.mniRelatorioIntegracaoAntifraude.label"; + public static final String TITULO_RELATORIO = "indexController.mniRelatorioIntegracaoAntiFraude.label"; @Autowired private DataSource dataSource; @@ -38,18 +41,34 @@ public class RelatorioIntegracaoAntiFraudeController extends MyGenericForwardCom private EmpresaService empresaService; private List lsEmpresa; private MyComboboxEstandar cmbEmpresa; + private List lsPuntoVenta; + private MyComboboxPuntoVenta cmbPuntoVenta; + private List lsStatusKondutoTotalBus; private List lsStatusKonduto; + private List lsStatusKondutoEnvio; private MyListbox kondutoList; + private MyListbox kondutoTotalBusList; + private MyListbox kondutoEnvioList; private Button btnExecutarRelatorio; @Override public void doAfterCompose(Component comp) throws Exception { lsEmpresa = empresaService.obtenerTodos(); + lsPuntoVenta = new ArrayList(); + super.doAfterCompose(comp); kondutoList.setItemRenderer(new RenderPersonalizado(Arrays.asList("descricao"))); kondutoList.setData(Arrays.asList(EStatusKonduto.values())); + + kondutoTotalBusList.setItemRenderer(new RenderPersonalizado(Arrays.asList("descricao"))); + kondutoTotalBusList.setData(Arrays.asList(EStatusKondutoTotalBus.values())); + + kondutoEnvioList.setItemRenderer(new RenderPersonalizado(Arrays.asList("descricao"))); + kondutoEnvioList.setData(Arrays.asList(EStatusKondutoEnvio.values())); + + configuraEventosExecucaoRelatorio(); } @@ -85,5 +104,29 @@ public class RelatorioIntegracaoAntiFraudeController extends MyGenericForwardCom public List getLsEmpresa() { return lsEmpresa; } - + + public List getLsStatusKondutoTotalBus() { + return lsStatusKondutoTotalBus; + } + + public List getLsStatusKondutoEnvio() { + return lsStatusKondutoEnvio; + } + + public List getLsPuntoVenta() { + return lsPuntoVenta; + } + + public MyComboboxPuntoVenta getCmbPuntoVenta() { + return cmbPuntoVenta; + } + + public MyListbox getKondutoTotalBusList() { + return kondutoTotalBusList; + } + + public MyListbox getKondutoEnvioList() { + return kondutoEnvioList; + } + } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/ValidaFormRelatorioIntegracaoAntiFraude.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/ValidaFormRelatorioIntegracaoAntiFraude.java index 2aece29c3..8af791a0a 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/ValidaFormRelatorioIntegracaoAntiFraude.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/ValidaFormRelatorioIntegracaoAntiFraude.java @@ -13,6 +13,8 @@ public class ValidaFormRelatorioIntegracaoAntiFraude implements ValidaForm { private static final String MSG_DATA_INICIAL_MAIOR_FINAL = "relatorioPosicaoVendaBilheteIdosoController.MSG.dataInicialMaiorFinal"; private static final String MSG_EMPRESA_NAO_INFORMADO = "relatorioPosicaoVendaBilheteIdosoController.MSG.informarEmpresa"; private static final String MSG_STATUS_KONDUTO_NAO_INFORMADO = "relatorioIntegracaoAntiFraudeController.MSG.informarStatusKonduto"; + private static final String MSG_STATUS_KONDUTO_ENVIO_NAO_INFORMADO = "relatorioIntegracaoAntiFraudeController.MSG.informarStatusKondutoEnvio"; + private static final String MSG_STATUS_KONDUTO_TOTALBUS_NAO_INFORMADO = "relatorioIntegracaoAntiFraudeController.MSG.informarStatusKondutoTotalBus"; private RelatorioIntegracaoAntiFraudeController controller; @@ -28,10 +30,20 @@ public class ValidaFormRelatorioIntegracaoAntiFraude implements ValidaForm { private boolean isFiltrosValidos() { return possuiEmpresaSelecionada() - && possuiStatusKondutoSelecionado(); + && possuiStatusKondutoEnvioSelecionado() + && possuiStatusKondutoSelecionado() + && possuiStatusKondutoTotalBusSelecionado(); } - private Boolean possuiStatusKondutoSelecionado() { + private boolean possuiStatusKondutoEnvioSelecionado() { + if (controller.getKondutoEnvioList().getSelectedsItens().isEmpty()) { + MensagensUtils.showMessageInformation(MSG_STATUS_KONDUTO_ENVIO_NAO_INFORMADO, TITULO_RELATORIO); + return false; + } + return true; + } + + private boolean possuiStatusKondutoSelecionado() { if (controller.getKondutoList().getSelectedsItens().isEmpty()) { MensagensUtils.showMessageInformation(MSG_STATUS_KONDUTO_NAO_INFORMADO, TITULO_RELATORIO); return false; @@ -39,6 +51,14 @@ public class ValidaFormRelatorioIntegracaoAntiFraude implements ValidaForm { return true; } + private Boolean possuiStatusKondutoTotalBusSelecionado() { + if (controller.getKondutoTotalBusList().getSelectedsItens().isEmpty()) { + MensagensUtils.showMessageInformation(MSG_STATUS_KONDUTO_TOTALBUS_NAO_INFORMADO, TITULO_RELATORIO); + return false; + } + return true; + } + private boolean possuiEmpresaSelecionada() { if (controller.getCmbEmpresa().getSelectedItem() == null) { MensagensUtils.showMessageInformation(MSG_EMPRESA_NAO_INFORMADO, TITULO_RELATORIO); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxPuntoVenta.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxPuntoVenta.java index a1ed40ed2..4aa5e6fd7 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxPuntoVenta.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyComboboxPuntoVenta.java @@ -120,5 +120,12 @@ public class MyComboboxPuntoVenta extends Combobox { public void setSinTodos(boolean sinTodos) { this.sinTodos = sinTodos; } + + public T getSelecteObject(Class cType) { + if (this.getSelectedItem() != null) { + return cType.cast(this.getSelectedItem().getValue()); + } + return null; + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyListbox.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyListbox.java index dfe7127a7..8aa1f8b62 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyListbox.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyListbox.java @@ -135,6 +135,18 @@ public class MyListbox extends Listbox { return selecteds; } + public List getItensSelecionados(Class classe) { + int qtd = this.getSelectedCount(); + List selecteds = new ArrayList(); + for (int i = 0; i < qtd; i++) { + Object obj = modelList.get(((Listitem)getSelectedItems().toArray()[i]).getIndex()); + if(classe.isInstance(obj)) { + selecteds.add(classe.cast(obj)); + } + } + return selecteds; + } + public List getSelectedItemsByIndex() { List selecteds = new ArrayList(); Set selList = this.getSelectedItems(); diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioIntegracaoAntiFraude.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioIntegracaoAntiFraude.java index 3abac7826..13a7bf5e5 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioIntegracaoAntiFraude.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioIntegracaoAntiFraude.java @@ -9,7 +9,7 @@ import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; public class ItemMenuRelatorioIntegracaoAntiFraude extends DefaultItemMenuSistema { public ItemMenuRelatorioIntegracaoAntiFraude() { - super("indexController.mniRelatorioIntegracaoAntifraude.label"); + super("indexController.mniRelatorioIntegracaoAntiFraude.label"); } @Override @@ -20,7 +20,7 @@ public class ItemMenuRelatorioIntegracaoAntiFraude extends DefaultItemMenuSistem @Override public void ejecutar() { PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioIntegracaoAntiFraude.zul", - Labels.getLabel("indexController.mniRelatorioIntegracaoAntifraude.label"), getArgs() ,desktop); + Labels.getLabel("indexController.mniRelatorioIntegracaoAntiFraude.label"), getArgs() ,desktop); } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaAntifraude.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaAntifraude.java new file mode 100644 index 000000000..140cdfd7c --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderPtovtaAntifraude.java @@ -0,0 +1,25 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.apache.commons.lang.StringUtils; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.PtovtaAntifraude; + +public class RenderPtovtaAntifraude implements ListitemRenderer { + + @Override + public void render(Listitem lstm, Object o) throws Exception { + PtovtaAntifraude ptoVta = (PtovtaAntifraude) o; + + Listcell lc = new Listcell(ptoVta.getEmpresa() == null ? " - " : ptoVta.getEmpresa().getNombempresa()); + lc.setParent(lstm); + + lc = new Listcell(StringUtils.isNotBlank(ptoVta.getChave()) ? ptoVta.getChave() : ""); + lc.setParent(lstm); + + lstm.setAttribute("data", ptoVta); + } + +} diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index 242fc2340..b64608c8b 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -474,6 +474,7 @@ com.rjconsultores.ventaboletos.entidad.EmpresaEmail com.rjconsultores.ventaboletos.entidad.EmpresaEmailConfig com.rjconsultores.ventaboletos.entidad.CtrlFechamentoCaixa + com.rjconsultores.ventaboletos.entidad.PtovtaAntifraude diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 746ec4a06..6fcdd1d39 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -279,7 +279,7 @@ indexController.mniRelatorioGratuidadeIdosoDeficiente.label = Gratuidades Idoso/ indexController.mniRelatorioVendasBilheteiro.label = Ventas por agente de pasajes indexController.mniRelatorioVendasBilheteiroSintetico.label = Ventas por agentes sintético indexController.mniRelatorioAgenciasNaoImportadas.label = Reporte puntos venta no importados -indexController.mniRelatorioIntegracaoAntifraude.label = Relatório de Integração com Anti-Fraude +indexController.mniRelatorioIntegracaoAntiFraude.label = Relatório de Integração com Anti-Fraude indexController.mniRelatorioCheckin.label = Checkin's indexController.mniFechamentoParamgeral.label = Cierre cuenta indexController.mniFechamentoParamptovta.label = Cierre cuenta contábil punto de venta @@ -1543,6 +1543,13 @@ editarPuntoVentaController.label.lbIndPermisoTasaEmbarque.value = Permite desele editarPuntoVentaController.label.lbIndPermisoTasaEmbarqueVtaManual.value = Permite deseleccionar Tasa de abordaje en Venda Manual editarPuntoVentaController.label.lbIndPermisoTasaEmbarqueVtaAgencia.value = Permite deseleccionar Tasa de abordaje en Venda Agencia editarPuntoVentaController.tab.label.empresas = Empresas +editarPuntoVentaController.tab.label.antifraude = Antifraude +editarPuntoVentaController.btnAddChaveAntifurto.tooltiptext = Añade llave de antifraude para la empresa informada +editarPuntoVentaController.btnRemoveChaveAntifurto.tooltiptext = Remueve llave de antifraude de la empresa seleccionada +editarPuntoVentaController.MSG.borrarChaveAntifraude = Desea eliminar la llave antifraude empresa {0} ? +editarPuntoVentaController.MSG.empresaAntifraudeJaCadastrada = Empresa informada ya dada de alta +editarPuntoVentaController.MSG.chaveAntifraudeNaoInformada = Informe la llave antifraude +editarPuntoVentaController.MSG.empresaAntifraudeNaoInformada = Informe la empresa editarPuntoVentaController.label.isento = ISENTO editarPuntoVentaController.label.totvs = Integracion TOTVS @@ -6759,8 +6766,12 @@ integracion.totvs.ja.cadastrado = Esta agencia ya tiene registrado en el sistema relatorioIntegracaoAntiFraudeController.lblDataIni.value = Período Inicial relatorioIntegracaoAntiFraudeController.lblDataFin.value = Período Final relatorioIntegracaoAntiFraudeController.lblEmpresa.value = Empresa +relatorioIntegracaoAntiFraudeController.lblStatusKondutoTotalBus.value = Status Konduto totalBus relatorioIntegracaoAntiFraudeController.lblStatusKonduto.value = Status Konduto +relatorioIntegracaoAntiFraudeController.lblStatusKondutoEnvio.value = Status Envio relatorioIntegracaoAntiFraudeController.MSG.informarStatusKonduto = Favor informar ao menos um status Konduto. +relatorioIntegracaoAntiFraudeController.MSG.informarStatusKondutoTotalBus = Favor informar ao menos um status Konduto totalBus. +relatorioIntegracaoAntiFraudeController.MSG.informarStatusKondutoEnvio = Favor informar ao menos um status Konduto Envio. # Búsqueda Hotel busquedaHotelController.window.title = Hotel diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 724de3fe4..50557e83d 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -288,7 +288,7 @@ indexController.mniRelatorioVendasBilheteiro.label = Vendas por Bilheteiro indexController.mniRelatorioVendasBilheteiroSintetico.label = Vendas por Bilheteiro Sintético indexController.mniRelatorioCancelamentoAutomaticoECF.label = Relatório de Cancelamento Automatico ECF indexController.mniRelatorioAgenciasNaoImportadas.label = Relatório de Agências não Importadas -indexController.mniRelatorioIntegracaoAntifraude.label = Relatório de Integração com Anti-Fraude +indexController.mniRelatorioIntegracaoAntiFraude.label = Relatório de Integração com Anti-Fraude indexController.mniRelatorioCheckin.label = Checkin's indexController.mniFechamentoParamgeral.label = Configuração de Boleto indexController.mniFechamentoParamptovta.label = Fechamento Conta Corrente Agência @@ -1702,6 +1702,13 @@ editarPuntoVentaController.lbCheckCartaoAG.value = Cartão editarPuntoVentaController.lbCheckBoletoAG.value = Boleto editarPuntoVentaController.lbCheckDepositoAG.value = Depósito editarPuntoVentaController.lbCheckAdiantamentoAG.value = Adiantamentos +editarPuntoVentaController.tab.label.antifraude = Antifraude +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} ? +editarPuntoVentaController.MSG.empresaAntifraudeJaCadastrada = Empresa informada já cadastrada +editarPuntoVentaController.MSG.chaveAntifraudeNaoInformada = Informe a chave antifraude +editarPuntoVentaController.MSG.empresaAntifraudeNaoInformada = Informe a empresa editarPuntoVentaController.lbCheckDinheiro.value=R$ editarPuntoVentaController.lbCheckCredito.value=CC @@ -7246,8 +7253,12 @@ filtroRelatorioAgenciasNaoImportadas.lbDataFin.value = Data Final relatorioIntegracaoAntiFraudeController.lblDataIni.value = Período Inicial relatorioIntegracaoAntiFraudeController.lblDataFin.value = Período Final relatorioIntegracaoAntiFraudeController.lblEmpresa.value = Empresa +relatorioIntegracaoAntiFraudeController.lblStatusKondutoTotalBus.value = Status Konduto totalBus relatorioIntegracaoAntiFraudeController.lblStatusKonduto.value = Status Konduto +relatorioIntegracaoAntiFraudeController.lblStatusKondutoEnvio.value = Status Envio relatorioIntegracaoAntiFraudeController.MSG.informarStatusKonduto = Favor informar ao menos um status Konduto. +relatorioIntegracaoAntiFraudeController.MSG.informarStatusKondutoTotalBus = Favor informar ao menos um status Konduto totalBus. +relatorioIntegracaoAntiFraudeController.MSG.informarStatusKondutoEnvio = Favor informar ao menos um status Konduto Envio. # Buscar Manutenção Pacote busquedaManutencaoPacoteController.window.title = Pesquisar Venda Pacotes diff --git a/web/gui/catalogos/editarEmpresa.zul b/web/gui/catalogos/editarEmpresa.zul index a43540905..a788af609 100644 --- a/web/gui/catalogos/editarEmpresa.zul +++ b/web/gui/catalogos/editarEmpresa.zul @@ -46,9 +46,6 @@ - - @@ -1220,25 +1217,6 @@ - - - - - - - - - - - - - diff --git a/web/gui/catalogos/editarPuntoVenta.zul b/web/gui/catalogos/editarPuntoVenta.zul index 9705a1a93..d33e43863 100644 --- a/web/gui/catalogos/editarPuntoVenta.zul +++ b/web/gui/catalogos/editarPuntoVenta.zul @@ -6,7 +6,7 @@ @@ -80,6 +80,9 @@ label="${c:l('editarPuntoVentaController.tab.label.historico')}" /> + + @@ -1867,6 +1870,62 @@ + + + + + + + + + + + + + + + + +