diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesBoletos.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesBoletos.java index 893e04dd9..1d2bceabe 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesBoletos.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPacotesBoletos.java @@ -24,6 +24,9 @@ import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class RelatorioVendasPacotesBoletos extends Relatorio { private static Logger log = Logger.getLogger(RelatorioVendasPacotesBoletos.class); + + public static final Integer VENDIDOS = 1; + public static final Integer CANCELADOS = 0; private SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); @@ -38,6 +41,7 @@ public class RelatorioVendasPacotesBoletos extends Relatorio { private Integer destinoId; private Integer usuarioId; private Integer tipoTarifaPacoteId; + private Integer situacaoBilheteId; public RelatorioVendasPacotesBoletos(Map parametros, Connection conexao, final String... nomeSubReporte) throws Exception { super(parametros, conexao); @@ -57,11 +61,17 @@ public class RelatorioVendasPacotesBoletos extends Relatorio { destinoId = parametros.get("destinoId") != null && !parametros.get("destinoId").equals("null") ? Integer.valueOf(parametros.get("destinoId").toString()) : null; usuarioId = parametros.get("usuarioId") != null && !parametros.get("usuarioId").equals("null") ? Integer.valueOf(parametros.get("usuarioId").toString()) : null; tipoTarifaPacoteId = parametros.get("tipoTarifaPacoteId") != null && !parametros.get("tipoTarifaPacoteId").equals("null") ? Integer.valueOf(parametros.get("tipoTarifaPacoteId").toString()) : null; + situacaoBilheteId = parametros.get("situacaoBilheteId") != null && !parametros.get("situacaoBilheteId").equals("null") ? Integer.valueOf(parametros.get("situacaoBilheteId").toString()) : null; Connection conexao = this.relatorio.getConexao(); processarVendasPacote(conexao); - processarVendasAvulsas(conexao); - processarVendasAvulsasCancelados(conexao); + + if(situacaoBilheteId == null || !CANCELADOS.equals(situacaoBilheteId)) { + processarVendasAvulsas(conexao); + } + if(situacaoBilheteId == null || CANCELADOS.equals(situacaoBilheteId)) { + processarVendasAvulsasCancelados(conexao); + } processarVendasPacoteTotais(); setNomeSubReporte(nomeSubReporte); @@ -76,7 +86,7 @@ public class RelatorioVendasPacotesBoletos extends Relatorio { NamedParameterStatement stmt = null; try { - stmt = carregarNamedParameterStatementVendasPacotes(conexao, false); + stmt = carregarNamedParameterStatementVendasPacotes(conexao); rset = stmt.executeQuery(); if(lsDadosRelatorio == null) { @@ -162,8 +172,8 @@ public class RelatorioVendasPacotesBoletos extends Relatorio { return relatorioVendasPacotesBoletosBean; } - private NamedParameterStatement carregarNamedParameterStatementVendasPacotes(Connection conexao, boolean cancelados) throws SQLException { - String sql = getSqlVendasPacotes(cancelados); + private NamedParameterStatement carregarNamedParameterStatementVendasPacotes(Connection conexao) throws SQLException { + String sql = getSqlVendasPacotes(); log.info(sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); @@ -195,11 +205,14 @@ public class RelatorioVendasPacotesBoletos extends Relatorio { if(tipoTarifaPacoteId != null && tipoTarifaPacoteId > 0) { stmt.setInt("tipoTarifaPacoteId", tipoTarifaPacoteId); } + if(situacaoBilheteId != null) { + stmt.setInt("situacaoPacote",SituacaoVendaPacote.CANCELADO.getShortValue()); + } return stmt; } - protected String getSqlVendasPacotes(boolean cancelado) { + protected String getSqlVendasPacotes() { StringBuilder sQuery = new StringBuilder(); sQuery.append("SELECT DES.CVEPARADA AS CVEDESTINO, ORI.CVEPARADA AS CVEORIGEM, ORI.DESCPARADA AS ORIGEM, DES.DESCPARADA AS DESTINO, R.NUMRUTA, R.DESCRUTA, PC.NOMCONVENIO, TTP.DESCTIPOTARIFA, VP.SITUACAO, ") @@ -254,6 +267,17 @@ public class RelatorioVendasPacotesBoletos extends Relatorio { if(tipoTarifaPacoteId != null && tipoTarifaPacoteId > 0) { sQuery.append("AND TTP.TIPOTARIFAPACOTE_ID = :tipoTarifaPacoteId "); } + + if(situacaoBilheteId != null) { + } + + if(situacaoBilheteId != null && !CANCELADOS.equals(situacaoBilheteId)) { + sQuery.append("AND VP.SITUACAO <> :situacaoPacote "); + } + + if(situacaoBilheteId != null && CANCELADOS.equals(situacaoBilheteId)) { + sQuery.append("AND VP.SITUACAO = :situacaoPacote "); + } sQuery.append("GROUP BY DES.CVEPARADA, ORI.CVEPARADA, ORI.DESCPARADA, DES.DESCPARADA, R.NUMRUTA, R.DESCRUTA, PC.NOMCONVENIO, TTP.DESCTIPOTARIFA, VP.SITUACAO, 'PACOTE' ") .append("ORDER BY DES.CVEPARADA, ORI.CVEPARADA, ORI.DESCPARADA, DES.DESCPARADA, R.NUMRUTA, R.DESCRUTA, PC.NOMCONVENIO, TTP.DESCTIPOTARIFA, VP.SITUACAO, 'PACOTE' "); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesBoletos_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesBoletos_es.properties index af32ee071..e82996bf4 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesBoletos_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesBoletos_es.properties @@ -16,6 +16,7 @@ cabecalho.origem=Origem: cabecalho.destino=Destino: cabecalho.usuario=Usuário: cabecalho.tipoTarifaPacote=Tipo Tarifa: +cabecalho.situacaoBilhete=Situação: label.empresa=Empresa: label.trecho=Trecho: label.cancelados = - CANCELADOS diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesBoletos_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesBoletos_pt_BR.properties index 829f9c49a..02bf53593 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesBoletos_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPacotesBoletos_pt_BR.properties @@ -16,6 +16,7 @@ cabecalho.origem=Origem: cabecalho.destino=Destino: cabecalho.usuario=Usuário: cabecalho.tipoTarifaPacote=Tipo Tarifa: +cabecalho.situacaoBilhete=Situação: label.empresa=Empresa: label.trecho=Trecho: label.cancelados=- CANCELADOS diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesBoletos.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesBoletos.jasper index 0b285766a..4347f6352 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesBoletos.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesBoletos.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesBoletos.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesBoletos.jrxml index 31ebdbb96..bcc6b3211 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesBoletos.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPacotesBoletos.jrxml @@ -17,6 +17,7 @@ + @@ -27,7 +28,7 @@ - <band height="142" splitType="Stretch"> + <band height="160" splitType="Stretch"> <textField> <reportElement x="0" y="0" width="620" height="20" uuid="43b2c28d-4760-4890-b00d-25e931e79c74"/> <textElement markup="none"> @@ -84,6 +85,13 @@ </textElement> <textFieldExpression><![CDATA[$R{cabecalho.periodoPacote} + " " + $P{periodoPacote}]]></textFieldExpression> </textField> + <textField> + <reportElement x="0" y="140" width="802" height="20" uuid="10191622-490c-4eb8-800c-efe85abed02b"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.situacaoBilhete} + " " + $P{situacaoBilhete}]]></textFieldExpression> + </textField> </band> diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesBoletosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesBoletosController.java index 7066bf2ee..f9829b7fb 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesBoletosController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPacotesBoletosController.java @@ -20,6 +20,7 @@ import org.zkoss.zk.ui.event.Event; import org.zkoss.zul.Comboitem; import org.zkoss.zul.ComboitemRenderer; import org.zkoss.zul.Datebox; +import org.zkoss.zul.Radio; import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.Parada; @@ -67,6 +68,9 @@ public class RelatorioVendasPacotesBoletosController extends MyGenericForwardCom private MyComboboxParada cmbParadaDestino; private MyComboboxParadaCve cmbParadaDestinoCve; private MyComboboxUsuario cmbUsuario; + private Radio rTodos; + private Radio rVendidos; + private Radio rCancelados; public List getLsEmpresa() { return lsEmpresa; @@ -189,6 +193,15 @@ public class RelatorioVendasPacotesBoletosController extends MyGenericForwardCom parametros.put("tipoTarifaPacote", tipoTarifaPacote.getDesctipotarifa()); } + parametros.put("situacaoBilhete", "Todos"); + if(rVendidos.isChecked()) { + parametros.put("situacaoBilhete", "Vendidos"); + parametros.put("situacaoBilheteId", RelatorioVendasPacotesBoletos.VENDIDOS); + } else if(rCancelados.isChecked()) { + parametros.put("situacaoBilhete", "Cancelados"); + parametros.put("situacaoBilheteId", RelatorioVendasPacotesBoletos.CANCELADOS); + } + Relatorio relatorio = gerarRelatorioVendaPacotesBoletos(parametros); Map args = new HashMap(); diff --git a/web/gui/relatorios/filtroRelatorioVendasPacotesBoletos.zul b/web/gui/relatorios/filtroRelatorioVendasPacotesBoletos.zul index 07529f25b..ae9e43020 100644 --- a/web/gui/relatorios/filtroRelatorioVendasPacotesBoletos.zul +++ b/web/gui/relatorios/filtroRelatorioVendasPacotesBoletos.zul @@ -92,6 +92,20 @@ format="dd/MM/yyyy" lenient="false" maxlength="10" /> + + +