diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioIntegracaoAntiFraude.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioIntegracaoAntiFraude.java index 037d7366c..379ed0fd8 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioIntegracaoAntiFraude.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioIntegracaoAntiFraude.java @@ -1,110 +1,94 @@ package com.rjconsultores.ventaboletos.relatorios.impl; import java.sql.Connection; -import java.sql.PreparedStatement; import java.sql.ResultSet; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Calendar; +import java.sql.SQLException; +import java.sql.Timestamp; import java.util.Date; -import java.util.List; import java.util.Map; -import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; - -import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayCustomDataSourceRelatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioAgenciasNaoImportadasBean; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; public class RelatorioIntegracaoAntiFraude extends Relatorio { - private List lsDadosRelatorio; - public RelatorioIntegracaoAntiFraude(Map parametros, Connection conexao){ super(parametros, conexao); - - try{ - this.setCustomDataSource(new DataSource(this) { - @Override - public void initDados() throws Exception { - - Connection conexao = this.relatorio.getConexao(); - - Map parametros = this.relatorio.getParametros(); - - String fecInicio = parametros.get("fecInicio").toString() + " 00:00:00"; - String fecFinal = parametros.get("fecFinal").toString() + " 23:59:59"; - - String empresas = getEmpresas(conexao); - String sql = getSQL(empresas); - - PreparedStatement stmt = conexao.prepareStatement(sql); - ResultSet rs = null; - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); - - stmt.setTimestamp(1, new java.sql.Timestamp(sdf.parse(fecInicio).getTime())); - stmt.setTimestamp(2, new java.sql.Timestamp(sdf.parse(fecFinal).getTime())); - - rs = stmt.executeQuery(); - - lsDadosRelatorio = new ArrayList(); - - while (rs.next()) { - - RelatorioAgenciasNaoImportadasBean agencia = new RelatorioAgenciasNaoImportadasBean(); - - agencia.setNumpuntoventa(rs.getString(1)); - agencia.setNombpuntoventa(rs.getString(2)); - agencia.setFecha(rs.getDate(3)); - - lsDadosRelatorio.add(agencia); - } - - if (lsDadosRelatorio.size() > 0) { - - setLsDadosRelatorio(lsDadosRelatorio); - } - } - }); - } catch (Exception e){ - System.out.println(e.toString()); - } - } - - public void setLsDadosRelatorio(List lsDadosRelatorio) { - this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); - this.lsDadosRelatorio = lsDadosRelatorio; } @Override protected void processaParametros() throws Exception { + setCustomDataSource(new ArrayCustomDataSource(this)); } + + private final class ArrayCustomDataSource extends ArrayCustomDataSourceRelatorio { - private String getEmpresas(Connection conexao){ - String sql = "select valorconstante from constante where nombconstante = 'EMPRESAS_INTEGRACAO'"; - try{ - PreparedStatement stmt = conexao.prepareStatement(sql); - ResultSet rs = stmt.executeQuery(); - if (rs.next()){ - return rs.getString(1); - } else { - return ""; - } - } catch (Exception e){ - System.out.println(e.toString()); - return ""; + public ArrayCustomDataSource(Relatorio relatorio) throws Exception { + super(relatorio); } - } - private String getSQL(String empresas) { - // Custo da query: 40 - StringBuilder sql = new StringBuilder(); - sql.append(" select distinct p.numpuntoventa, p.nombpuntoventa, t.feccorte "); - sql.append(" from punto_venta p "); - sql.append(" inner join titulo_integracion t on t.puntoventa_id = p.puntoventa_id "); - sql.append(" where t.feccorte between ? AND ? and t.fecintegracion is null "); - sql.append(" order by t.feccorte, p.nombpuntoventa "); + @Override + protected void getSql(StringBuilder instrucaoSql, Map parametros) { + instrucaoSql.append("SELECT TK.KONDUTO_ID ID_KONDUTO, "); + instrucaoSql.append("LPAD(CASE WHEN CLI.TIPOIDENTIFICAUNO_ID = 2 THEN "); + instrucaoSql.append(" NUMIDENTIFICAUNO "); + 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("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("PO.DESCPARADA ORIGEM, PD.DESCPARADA DESTINO, "); + instrucaoSql.append("B.NUMFOLIOSISTEMA BILHETE, "); + instrucaoSql.append("B.NUMASIENTO POLTRONA, "); + instrucaoSql.append("B.NOMBPASAJERO PASSAGEIRO "); + instrucaoSql.append("FROM BOLETO B "); + instrucaoSql.append("INNER JOIN TRANSACAO_KONDUTO TK ON B.BOLETO_ID = TK.BOLETO_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 B.MARCA_ID = :empresaId "); + } - return sql.toString(); + @Override + protected void populaValoresDataResult(Map dataResult, ResultSet resultSet) throws SQLException { + 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("NSU", resultSet.getString("NSU")); + dataResult.put("AUTORIZACAO", resultSet.getString("AUTORIZACAO")); + dataResult.put("VALOR_TOTAL", MoneyHelper.instanciar(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("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")); + } + + @Override + protected void configuraParametrosConsultaSql(Map parametros, NamedParameterStatement stmt) throws SQLException { + 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")); + } + } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_es.properties new file mode 100644 index 000000000..7dec516f1 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_es.properties @@ -0,0 +1,13 @@ +#geral +msg.noData = No se pudo obtener datos con los par\u00E1metros reportados. + +#Labels cabeçalho +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +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 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_pt.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_pt.properties new file mode 100644 index 000000000..b8b960109 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioIntegracaoAntiFraude_pt.properties @@ -0,0 +1,14 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels header +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impresso por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +cabecalho.empresa=Empresa: +cabecalho.statusKonduto=Filtro Status Konduto: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPosicaoVendaBilheteIdosoPorPassageiro_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPosicaoVendaBilheteIdosoPorPassageiro_es.properties index 9937a2b21..038beab79 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPosicaoVendaBilheteIdosoPorPassageiro_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPosicaoVendaBilheteIdosoPorPassageiro_es.properties @@ -11,4 +11,6 @@ cabecalho.pagina=P cabecalho.de=de cabecalho.filtros=Filtros: cabecalho.empresa=Empresa: -cabecalho.linhas=Linha: \ No newline at end of file +cabecalho.linhas=Linha: +cabecalho.tipoData=Tipo de Data: +cabecalho.orgao=Orgão Concedente: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPosicaoVendaBilheteIdosoPorTrecho_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPosicaoVendaBilheteIdosoPorTrecho_es.properties index 9937a2b21..038beab79 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPosicaoVendaBilheteIdosoPorTrecho_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioPosicaoVendaBilheteIdosoPorTrecho_es.properties @@ -11,4 +11,6 @@ cabecalho.pagina=P cabecalho.de=de cabecalho.filtros=Filtros: cabecalho.empresa=Empresa: -cabecalho.linhas=Linha: \ No newline at end of file +cabecalho.linhas=Linha: +cabecalho.tipoData=Tipo de Data: +cabecalho.orgao=Orgão Concedente: \ 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 new file mode 100644 index 000000000..08e8ec93c Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioIntegracaoAntiFraude.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioIntegracaoAntiFraude.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioIntegracaoAntiFraude.jrxml new file mode 100644 index 000000000..59fd9893d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioIntegracaoAntiFraude.jrxml @@ -0,0 +1,342 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ValidaForm.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ValidaForm.java new file mode 100644 index 000000000..da8b22456 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/ValidaForm.java @@ -0,0 +1,6 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +public interface ValidaForm { + + public boolean isValido(); +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioIntegracaoAntiFraudeController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioIntegracaoAntiFraudeController.java deleted file mode 100644 index 1c1ffb67e..000000000 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioIntegracaoAntiFraudeController.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; - -import java.text.SimpleDateFormat; -import java.util.HashMap; -import java.util.Map; - -import javax.sql.DataSource; - -import org.apache.log4j.Logger; -import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.context.annotation.Scope; -import org.springframework.stereotype.Controller; -import org.zkoss.util.resource.Labels; -import org.zkoss.zk.ui.event.Event; -import org.zkoss.zul.Datebox; - -import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioAgenciasNaoImportadas; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; -import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; - -@Controller("relatorioIntegracaoAntiFraudeController") -@Scope("prototype") -public class RelatorioIntegracaoAntiFraudeController extends MyGenericForwardComposer { - private static final long serialVersionUID = 1L; - private static Logger log = Logger.getLogger(RelatorioIntegracaoAntiFraudeController.class); - - @Autowired - private DataSource dataSourceRead; - - private Datebox datInicial; - private Datebox datFinal; - - private void executarRelatorio() throws Exception { - - Map parametros = new HashMap(); - - SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); - parametros.put("fecInicio", sdf.format(this.datInicial.getValue())); - parametros.put("fecFinal", sdf.format(this.datFinal.getValue())); - - parametros.put("TITULO", Labels.getLabel("indexController.mniRelatorioAgenciasNaoImportadas.label")); - - Relatorio relatorio = new RelatorioAgenciasNaoImportadas(parametros, dataSourceRead.getConnection()); - - Map args = new HashMap(); - args.put("relatorio", relatorio); - - openWindow("/component/reportView.zul", - Labels.getLabel("indexController.mniRelatorioAgenciasNaoImportadas.label"), args, MyGenericForwardComposer.MODAL); - - } - - public void onClick$btnExecutarRelatorio(Event ev) throws Exception { - executarRelatorio(); - } - -} 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 new file mode 100644 index 000000000..aa988873d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EStatusKonduto.java @@ -0,0 +1,32 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude; + +public enum EStatusKonduto { + PENDENTE("P", "Pendente"), + APROVADO("A", "Aprovado"), + NEGADO("N", "Negado"); + + private String id; + private String descricao; + + private EStatusKonduto(String id, String descricao) { + this.id = id; + this.descricao = descricao; + } + + public String getId() { + return id; + } + + public String getDescricao() { + return descricao; + } + + public static EStatusKonduto getStatusKondutoPorId(String id) { + for (EStatusKonduto status : EStatusKonduto.values()) { + if (status.getId().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/EventListenerExecutarRelatorioIntegracaoAntiFraude.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EventListenerExecutarRelatorioIntegracaoAntiFraude.java new file mode 100644 index 000000000..0f8e07d11 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/EventListenerExecutarRelatorioIntegracaoAntiFraude.java @@ -0,0 +1,87 @@ +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; +import java.util.Map; + +import org.zkoss.util.resource.Labels; +import org.zkoss.zk.ui.event.EventListener; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioIntegracaoAntiFraude; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utils.FormataUtil; +import com.rjconsultores.ventaboletos.web.utilerias.EventListenerExecutarRelatorio; + +public class EventListenerExecutarRelatorioIntegracaoAntiFraude extends EventListenerExecutarRelatorio implements EventListener { + + private static final String MASCARA_DATA_COMPLETA = "dd/MM/yyyy hh:mm:ss"; + + public EventListenerExecutarRelatorioIntegracaoAntiFraude(RelatorioIntegracaoAntiFraudeController controller) { + super(controller); + } + + @Override + protected String getTituloRelatorio() { + return RelatorioIntegracaoAntiFraudeController.TITULO_RELATORIO; + } + + @Override + protected boolean filtrosValidos(RelatorioIntegracaoAntiFraudeController controller) { + return new ValidaFormRelatorioIntegracaoAntiFraude(controller).isValido(); + } + + @Override + protected Relatorio configuraRelatorio(RelatorioIntegracaoAntiFraudeController controller) throws SQLException { + return new RelatorioIntegracaoAntiFraude(getParametros(), controller.getDataSource().getConnection()); + } + + private Map getParametros() { + Map parametros = new HashMap(); + + parametros.put("NOME_RELATORIO", Labels.getLabel(getTituloRelatorio())); + parametros.put("dtInicial", getController().getDtInicial().getValue()); + parametros.put("dtFinal", getController().getDtFinal().getValue()); + parametros.put("periodo", obtemPeriodo()); + 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()); + + 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 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(", "); + } + } + } + + private String obtemPeriodo() { + return FormataUtil.formataDataToString((Date)getController().getDtInicial().getValue(), "", MASCARA_DATA_COMPLETA) + +" até "+FormataUtil.formataDataToString((Date)getController().getDtFinal().getValue(), "", MASCARA_DATA_COMPLETA); + } + +} 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 new file mode 100644 index 000000000..ca4797451 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/RelatorioIntegracaoAntiFraudeController.java @@ -0,0 +1,89 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude; + +import java.util.Arrays; +import java.util.List; + +import javax.sql.DataSource; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.zk.ui.Component; +import org.zkoss.zul.Button; +import org.zkoss.zul.Datebox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +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.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderPersonalizado; + +@Controller("relatorioIntegracaoAntiFraudeController") +@Scope("prototype") +public class RelatorioIntegracaoAntiFraudeController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + + public static final String TITULO_RELATORIO = "indexController.mniRelatorioIntegracaoAntifraude.label"; + + @Autowired + private DataSource dataSource; + + private Datebox dtInicial; + private Datebox dtFinal; + + @Autowired + private EmpresaService empresaService; + private List lsEmpresa; + private MyComboboxEstandar cmbEmpresa; + + private List lsStatusKonduto; + private MyListbox kondutoList; + + private Button btnExecutarRelatorio; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + super.doAfterCompose(comp); + kondutoList.setItemRenderer(new RenderPersonalizado(Arrays.asList("descricao"))); + kondutoList.setData(Arrays.asList(EStatusKonduto.values())); + configuraEventosExecucaoRelatorio(); + } + + private void configuraEventosExecucaoRelatorio() { + btnExecutarRelatorio.addEventListener(TypeEventListener.ON_CLICK.getEvent(), + new EventListenerExecutarRelatorioIntegracaoAntiFraude(this)); + } + + public Datebox getDtInicial() { + return dtInicial; + } + + public Datebox getDtFinal() { + return dtFinal; + } + + public MyListbox getKondutoList() { + return kondutoList; + } + + public MyComboboxEstandar getCmbEmpresa() { + return cmbEmpresa; + } + + public DataSource getDataSource() { + return dataSource; + } + + public List getLsStatusKonduto() { + return lsStatusKonduto; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + +} 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 new file mode 100644 index 000000000..2aece29c3 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/integracaoantifraude/ValidaFormRelatorioIntegracaoAntiFraude.java @@ -0,0 +1,65 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude; + +import static com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.integracaoantifraude.RelatorioIntegracaoAntiFraudeController.TITULO_RELATORIO; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ValidaForm; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ValidarDatas; +import com.rjconsultores.ventaboletos.web.utilerias.MensagensUtils; + +public class ValidaFormRelatorioIntegracaoAntiFraude implements ValidaForm { + + private static final String MSG_PERIODO_NAO_INFORMADO = "relatorioPosicaoVendaBilheteIdosoController.MSG.informarFiltroData"; + private static final String MSG_PERIODO_INCOMPLETO = "relatorioPosicaoVendaBilheteIdosoController.MSG.informarData"; + 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 RelatorioIntegracaoAntiFraudeController controller; + + public ValidaFormRelatorioIntegracaoAntiFraude(RelatorioIntegracaoAntiFraudeController controller) { + this.controller = controller; + } + + @Override + public boolean isValido() { + return isDatasValidas() + && isFiltrosValidos(); + } + + private boolean isFiltrosValidos() { + return possuiEmpresaSelecionada() + && possuiStatusKondutoSelecionado(); + } + + private Boolean possuiStatusKondutoSelecionado() { + if (controller.getKondutoList().getSelectedsItens().isEmpty()) { + MensagensUtils.showMessageInformation(MSG_STATUS_KONDUTO_NAO_INFORMADO, TITULO_RELATORIO); + return false; + } + return true; + } + + private boolean possuiEmpresaSelecionada() { + if (controller.getCmbEmpresa().getSelectedItem() == null) { + MensagensUtils.showMessageInformation(MSG_EMPRESA_NAO_INFORMADO, TITULO_RELATORIO); + return false; + } + return true; + } + + private boolean isDatasValidas() { + ValidarDatas validadorData = new ValidarDatas(controller.getDtInicial(), controller.getDtFinal()); + + if (validadorData.isPeriodoNaoInformado()) { + MensagensUtils.showMessageInformation(MSG_PERIODO_NAO_INFORMADO, TITULO_RELATORIO); + return false; + } + + if (validadorData.isPeriodoParcialmenteInformado()) { + MensagensUtils.showMessageInformation(MSG_PERIODO_INCOMPLETO, TITULO_RELATORIO); + return false; + } + + return !validadorData.validarDataInicioMaiorQueTermino(MSG_DATA_INICIAL_MAIOR_FINAL, TITULO_RELATORIO); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/vendabilheteidoso/ValidaForm.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/vendabilheteidoso/ValidaForm.java deleted file mode 100644 index 1bcc9cf5a..000000000 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/vendabilheteidoso/ValidaForm.java +++ /dev/null @@ -1,6 +0,0 @@ -package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.vendabilheteidoso; - -public interface ValidaForm { - - public boolean isValido(); -} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/vendabilheteidoso/ValidaFormRelatorioVendaBilheteIdoso.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/vendabilheteidoso/ValidaFormRelatorioVendaBilheteIdoso.java index 062e5ed11..aeee51656 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/vendabilheteidoso/ValidaFormRelatorioVendaBilheteIdoso.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/vendabilheteidoso/ValidaFormRelatorioVendaBilheteIdoso.java @@ -2,6 +2,7 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.vendabil import static com.rjconsultores.ventaboletos.web.gui.controladores.relatorios.vendabilheteidoso.RelatorioPosicaoVendaBilheteIdosoController.TITULO_RELATORIO; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ValidaForm; import com.rjconsultores.ventaboletos.relatorios.utilitarios.ValidarDatas; import com.rjconsultores.ventaboletos.web.utilerias.MensagensUtils; diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyListbox.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyListbox.java index 1f3a97fcd..dfe7127a7 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyListbox.java +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/MyListbox.java @@ -125,6 +125,16 @@ public class MyListbox extends Listbox { return selecteds; } + public List getItensSelecionados() { + int qtd = this.getSelectedCount(); + List selecteds = new ArrayList(); + for (int i = 0; i < qtd; i++) { + selecteds.add(modelList.get(((Listitem)getSelectedItems().toArray()[i]).getIndex())); + } + + 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 bdf711f3a..3abac7826 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 @@ -2,18 +2,19 @@ package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; import org.zkoss.util.resource.Labels; +import com.rjconsultores.ventaboletos.constantes.ConstantesFuncionSistema; import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; public class ItemMenuRelatorioIntegracaoAntiFraude extends DefaultItemMenuSistema { public ItemMenuRelatorioIntegracaoAntiFraude() { - super("indexController.mniRelatorioIntegracaoAntiFraude.label"); + super("indexController.mniRelatorioIntegracaoAntifraude.label"); } @Override public String getClaveMenu() { - return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOINTEGRACAOANTIFRAUDE"; + return ConstantesFuncionSistema.CLAVE_INTEGRACAO_ANTI_FRAUDE; } @Override diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index d68c8c287..a82f0a531 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -217,8 +217,8 @@ analitico.integracion.relatorioFiscal.importacionFiscalReducaoZ=com.rjconsultore analitico.integracion.relatorioFiscal.importacionNaoFiscal=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.impressaofiscal.ItemMenuImportacionNaoFiscal analitico.integracion.relatorioFiscal.importacionEcFPendencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.impressaofiscal.ItemMenuImportacionFiscalEcFPendencia analitico.integracion.relatorioFiscal.importacionReducaoZPendencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.impressaofiscal.ItemMenuImportacionFiscalReducaoZPendencia -analitico.integracion.agenciasNaoImportadas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioIntegracaoAntiFraude -analitico.integracion.integracaoAntiFraude=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioAgenciasNaoImportadas +analitico.integracion.agenciasNaoImportadas=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioAgenciasNaoImportadas +analitico.integracion.integracaoAntiFraude=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioIntegracaoAntiFraude analitico.integracion.bgm=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.integracion.bgm.SubMenuBgm analitico.integracion.bgm.arquivo=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioArquivoBGM analitico.integracion.bgm.erro=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioErrosIntegracaoBGM diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 8352fb31a..3b9570e37 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -279,6 +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.mniRelatorioCheckin.label = Checkin's indexController.mniFechamentoParamgeral.label = Cierre cuenta indexController.mniFechamentoParamptovta.label = Cierre cuenta contábil punto de venta @@ -6737,6 +6738,13 @@ indexController.mniRelatorioAgenciaFechamento.label= Cierre de Agencias integracion.totvs=ERRO ao fazer integracion com a TOTVS integracion.totvs.ja.cadastrado = Esta agencia ya tiene registrado en el sistema de TOTVS. Los datos de integración no serán enviados nuevamente +#Relatório de Integração com Anti-Fraude +relatorioIntegracaoAntiFraudeController.lblDataIni.value = Período Inicial +relatorioIntegracaoAntiFraudeController.lblDataFin.value = Período Final +relatorioIntegracaoAntiFraudeController.lblEmpresa.value = Empresa +relatorioIntegracaoAntiFraudeController.lblStatusKonduto.value = Status Konduto +relatorioIntegracaoAntiFraudeController.MSG.informarStatusKonduto = Favor informar ao menos um status Konduto. + # Búsqueda Hotel busquedaHotelController.window.title = Hotel busquedaHotelController.btnRefresh.tooltiptext = Actualizar diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index bda2f50ca..f91ebf377 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -7225,6 +7225,13 @@ editarRelgerencialEmpresaController.MSG.erroTipoRelgerencial=Tipo Relatório Ger filtroRelatorioAgenciasNaoImportadas.lbDataIni.value = Data Inicio filtroRelatorioAgenciasNaoImportadas.lbDataFin.value = Data Final +#Relatório de Integração com Anti-Fraude +relatorioIntegracaoAntiFraudeController.lblDataIni.value = Período Inicial +relatorioIntegracaoAntiFraudeController.lblDataFin.value = Período Final +relatorioIntegracaoAntiFraudeController.lblEmpresa.value = Empresa +relatorioIntegracaoAntiFraudeController.lblStatusKonduto.value = Status Konduto +relatorioIntegracaoAntiFraudeController.MSG.informarStatusKonduto = Favor informar ao menos um status Konduto. + # Buscar Manutenção Pacote busquedaManutencaoPacoteController.window.title = Pesquisar Venda Pacotes busquedaManutencaoPacoteController.btnRefresh.tooltiptext = Atualizar diff --git a/web/gui/relatorios/filtroRelatorioIntegracaoAntiFraude.zul b/web/gui/relatorios/filtroRelatorioIntegracaoAntiFraude.zul index eda0c0c28..50107eb02 100644 --- a/web/gui/relatorios/filtroRelatorioIntegracaoAntiFraude.zul +++ b/web/gui/relatorios/filtroRelatorioIntegracaoAntiFraude.zul @@ -1,37 +1,51 @@ - + - - - + + - + - + - + + + + + +