diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidade.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidade.java index e881b9ffa..fd11b766e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidade.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioGratuidade.java @@ -17,7 +17,6 @@ import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class RelatorioGratuidade extends Relatorio { private Integer orgaoConcedenteId; - private String orgaoConcedenteDesc; private List lsDadosRelatorio; @@ -32,8 +31,22 @@ public class RelatorioGratuidade extends Relatorio { Map parametros = this.relatorio.getParametros(); - String fecInicio = parametros.get("fecInicio").toString() + " 00:00:00"; - String fecFinal = parametros.get("fecFinal").toString() + " 23:59:59"; + String fecInicioViagem = null; + if (parametros.get("fecInicioViagem") != null) { + fecInicioViagem = parametros.get("fecInicioViagem").toString() + " 00:00:00"; + } + String fecFinalViagem = null; + if (parametros.get("fecFinalViagem") != null) { + fecFinalViagem = parametros.get("fecFinalViagem").toString() + " 23:59:59"; + } + String fecInicioVenda = null; + if (parametros.get("fecInicioVenda") != null) { + fecInicioVenda = parametros.get("fecInicioVenda").toString() + " 00:00:00"; + } + String fecFinalVenda = null; + if (parametros.get("fecFinalVenda") != null) { + fecFinalVenda = parametros.get("fecFinalVenda").toString() + " 23:59:59"; + } String empresa = parametros.get("empresa") != null ? parametros.get("empresa").toString() : ""; String agencia = parametros.get("agencia") != null ? parametros.get("agencia").toString() : ""; String ruta = parametros.get("ruta") != null && !parametros.get("ruta").equals(-1) ? parametros.get("ruta").toString() : ""; @@ -41,16 +54,25 @@ public class RelatorioGratuidade extends Relatorio { String destino = parametros.get("destino") != null ? parametros.get("destino").toString() : ""; String categoria = parametros.get("categoria") != null ? parametros.get("categoria").toString() : ""; orgaoConcedenteId = parametros.get("orgao_concedente_id") != null ? (Integer) parametros.get("orgao_concedente_id") : null; - orgaoConcedenteDesc = parametros.get("orgao_concedente_desc") != null ? parametros.get("orgao_concedente_desc").toString() : null; - String sql = getSql(empresa, agencia, ruta, fecInicio, fecFinal, origem, destino, categoria); + String sql = getSql(empresa, agencia, ruta, fecInicioViagem, fecFinalViagem, fecInicioVenda, fecFinalVenda, origem, destino, categoria); System.out.println(sql); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); - stmt.setTimestamp("fecInicio", new java.sql.Timestamp(sdf.parse(fecInicio).getTime())); - stmt.setTimestamp("fecFinal", new java.sql.Timestamp(sdf.parse(fecFinal).getTime())); + if (fecInicioViagem != null) { + stmt.setTimestamp("fecInicioViagem", new java.sql.Timestamp(sdf.parse(fecInicioViagem).getTime())); + } + if (fecFinalViagem != null) { + stmt.setTimestamp("fecFinalViagem", new java.sql.Timestamp(sdf.parse(fecFinalViagem).getTime())); + } + if (fecInicioVenda != null) { + stmt.setTimestamp("fecInicioVenda", new java.sql.Timestamp(sdf.parse(fecInicioVenda).getTime())); + } + if (fecFinalVenda != null) { + stmt.setTimestamp("fecFinalVenda", new java.sql.Timestamp(sdf.parse(fecFinalVenda).getTime())); + } if(empresa != null && !empresa.equals("")){ stmt.setInt("empresa_id", Integer.parseInt(empresa)); } @@ -102,9 +124,19 @@ public class RelatorioGratuidade extends Relatorio { gratuidadeBean.setDescorigen(rset.getString("descorigen")); gratuidadeBean.setDescdestino(rset.getString("descdestino")); gratuidadeBean.setNumfoliosistema(rset.getString("numfoliosistema")); + + gratuidadeBean.setTipoDoc(rset.getString("desctipo")); + gratuidadeBean.setTipo(rset.getString("desccategoria")); + gratuidadeBean.setSeguro(rset.getBigDecimal("importeseguro")); + gratuidadeBean.setPedagio(rset.getBigDecimal("importepedagio")); + gratuidadeBean.setUtr(rset.getBigDecimal("importetaxaembarque")); + gratuidadeBean.setRg(rset.getString("DESCNUMDOC")); + gratuidadeBean.setStatus(rset.getString("INDSTATUSBOLETO")); + //gratuidadeBean.setDataMd(rset.getDate("")); + lsDadosRelatorio.add(gratuidadeBean); } - + if (lsDadosRelatorio.size() > 0) { setLsDadosRelatorio(lsDadosRelatorio); } @@ -121,12 +153,12 @@ public class RelatorioGratuidade extends Relatorio { protected void processaParametros() throws Exception { } - private String getSql(String empresa, String agencia, String ruta, String fecInicio, String fecFinal, String origem, String destino, String categoria) { + private String getSql(String empresa, String agencia, String ruta, String fecInicioViagem, String fecFinalViagem, String fecInicioVenda, String fecFinalVenda, String origem, String destino, String categoria) { StringBuffer sql = new StringBuffer(); - sql.append("SELECT b.feccorrida, ori.cveparada origen, des.cveparada destino, ori.descparada descorigen, des.descparada descdestino, "); - sql.append("b.numkmviaje, r.descruta, b.corrida_id, b.fechorviaje, b.numasiento, b.numfoliosistema, "); - sql.append("tv.desctipoventa, b.nombpasajero, b.descnumdoc, tar.preciooriginal, "); - sql.append("b.porccategoria, b.preciopagado, u.cveusuario, ag.nombpuntoventa, e.nombempresa, cat.cvecategoria "); + sql.append("SELECT DISTINCT b.feccorrida, ori.cveparada origen, des.cveparada destino, ori.descparada descorigen, des.descparada descdestino, b.numkmviaje, "); + sql.append("r.descruta, b.corrida_id, b.fechorviaje, b.numasiento, b.numfoliosistema, tv.desctipoventa, b.nombpasajero, b.descnumdoc, tar.preciooriginal, "); + sql.append("b.porccategoria, b.preciopagado, u.cveusuario, ag.nombpuntoventa, e.nombempresa, C.cvecategoria, ti.DESCTIPO, "); + sql.append("c.DESCCATEGORIA, tar.IMPORTEPEDAGIO, tar.IMPORTESEGURO, tar.IMPORTETAXAEMBARQUE, b.DESCNUMDOC, b.INDSTATUSBOLETO "); sql.append("FROM boleto b "); sql.append("JOIN categoria c ON b.categoria_id = c.categoria_id "); sql.append("JOIN parada ori ON ori.parada_id = b.origen_id "); @@ -143,9 +175,14 @@ public class RelatorioGratuidade extends Relatorio { sql.append(" AND tar.origen_id = b.origen_id "); sql.append(" AND tar.destino_id = b.destino_id) "); sql.append("JOIN empresa e ON e.empresa_id = b.empresacorrida_id "); - sql.append("JOIN categoria cat ON cat.categoria_id = b.categoria_id "); - sql.append("WHERE "); - sql.append(" b.feccorrida BETWEEN :fecInicio AND :fecFinal "); + sql.append("LEFT JOIN TIPO_IDENTIFICACION ti ON ti.TIPOIDENTIFICACION_ID = b.TIPOIDENTIFICACIONDOC_ID "); + sql.append("WHERE 1=1 "); + if (fecInicioViagem != null && fecFinalViagem != null) { + sql.append(" AND b.feccorrida BETWEEN :fecInicioViagem AND :fecFinalViagem "); + } + if (fecInicioVenda != null && fecFinalVenda != null) { + sql.append(" AND b.b.FECHORVENTA BETWEEN :fecInicioVenda AND :fecFinalVenda "); + } sql.append("AND b.motivocancelacion_id IS NULL "); if (!empresa.isEmpty()){ sql.append("AND b.empresacorrida_id = :empresa_id "); @@ -163,12 +200,12 @@ public class RelatorioGratuidade extends Relatorio { sql.append(" AND des.parada_id = :destino_id "); } if(!categoria.isEmpty()){ - sql.append(" AND c.categoria_id = :categoria_id "); + sql.append(" AND c.categoria_id in(:categoria_id) "); } if(orgaoConcedenteId != null){ sql.append(" AND r.orgaoconcedente_id = :orgao_concedente_id "); } - + return sql.toString(); } } \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidade_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidade_pt_BR.properties index 4ae484a77..bf52c562e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidade_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioGratuidade_pt_BR.properties @@ -11,6 +11,8 @@ header.filtro.servico=Servi header.filtro.linha=Linha\: header.filtro.grupo=Grupo de Linhas\: header.empresa=Empresa\: +header.periodo.viagem=Período Viagem +header.periodo.venda=Período Venda #Labels detail @@ -30,6 +32,15 @@ detail.desconto=Desc.(%) detail.tarifadesconto=Tarifa detail.bilheteiro=Bilheteiro detail.agencia=Agência +detail.dataMD=Data MD +detail.tipo=Tipo +detail.tipoDoc=Tipo Doc. +detail.tarifa=Tarifa +detail.seguro=Seguro +detail.utr=UTR +detail.pedagio=Pedágio +detail.rg=RG +detail.status=Status detail.total=Total Quantidade: diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidade.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidade.jasper index ac807f567..6592be383 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidade.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidade.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidade.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidade.jrxml index 050f085cd..c769dec69 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidade.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioGratuidade.jrxml @@ -1,17 +1,20 @@ - - - - + + + + + - + + + @@ -36,7 +39,14 @@ - + + + + + + + + @@ -51,86 +61,86 @@ - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + @@ -138,27 +148,67 @@ - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -168,9 +218,9 @@ - + - + @@ -188,12 +238,12 @@ - + - + - + @@ -207,139 +257,205 @@ + + + + + + + + + + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -355,12 +471,12 @@ - + - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioGratuidadeBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioGratuidadeBean.java index 87bfdfe0b..d5fe8211c 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioGratuidadeBean.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioGratuidadeBean.java @@ -25,7 +25,63 @@ public class RelatorioGratuidadeBean { private String cvecategoria; private String numasiento; private String numfoliosistema; + private String tipoDoc; + private String tipo; + private BigDecimal seguro; + private BigDecimal pedagio; + private BigDecimal utr; + private String rg; + private String status; + private Date dataMd; + public Date getDataMd() { + return dataMd; + } + public void setDataMd(Date dataMd) { + this.dataMd = dataMd; + } + public String getStatus() { + return status; + } + public void setStatus(String status) { + this.status = status; + } + public String getRg() { + return rg; + } + public void setRg(String rg) { + this.rg = rg; + } + public String getTipoDoc() { + return tipoDoc; + } + public void setTipoDoc(String tipoDoc) { + this.tipoDoc = tipoDoc; + } + public String getTipo() { + return tipo; + } + public void setTipo(String tipo) { + this.tipo = tipo; + } + public BigDecimal getSeguro() { + return seguro; + } + public void setSeguro(BigDecimal seguro) { + this.seguro = seguro; + } + public BigDecimal getPedagio() { + return pedagio; + } + public void setPedagio(BigDecimal pedagio) { + this.pedagio = pedagio; + } + public BigDecimal getUtr() { + return utr; + } + public void setUtr(BigDecimal utr) { + this.utr = utr; + } public Date getFeccorrida() { return feccorrida; } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioGratuidadeController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioGratuidadeController.java index e003c901a..aa2bdc677 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioGratuidadeController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioGratuidadeController.java @@ -1,17 +1,18 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.HashMap; import java.util.List; 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.zhtml.Messagebox; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zul.Datebox; @@ -27,34 +28,33 @@ import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.service.CategoriaService; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; -import com.rjconsultores.ventaboletos.service.PuntoVentaService; import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxPuntoVenta; import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; @Controller("relatorioGratuidadeController") @Scope("prototype") public class RelatorioGratuidadeController extends MyGenericForwardComposer { private static final long serialVersionUID = 1L; - private static Logger log = Logger.getLogger(RelatorioGratuidadeController.class); @Autowired private DataSource dataSourceRead; @Autowired private EmpresaService empresaService; @Autowired - private PuntoVentaService puntoVentaService; - @Autowired private RutaService rutaService; @Autowired private CategoriaService categoriaService; @Autowired private OrgaoConcedenteService orgaocConcedenteService; - private Datebox datInicial; - private Datebox datFinal; + private Datebox datInicialViagem; + private Datebox datFinalViagem; + private Datebox datInicialVenda; + private Datebox datFinalVenda; private MyComboboxEstandar cmbTeste; private MyComboboxPuntoVenta cmbAgencia; private MyComboboxEstandar cmbLinha; @@ -66,16 +66,69 @@ public class RelatorioGratuidadeController extends MyGenericForwardComposer { private List lsEmpresas; private List lsLinhas; private List lsCategorias; + + private MyListbox selectedTipoGratuidadeList; + private List listSelectedTipoGratuidade; + private List lsOrgaoConcedente; + + public void onClick$btnRemoveTipoGratuidade(Event ev) throws InterruptedException { + Categoria categoria = (Categoria) selectedTipoGratuidadeList.getSelectedItem().getValue(); + listSelectedTipoGratuidade.remove(categoria); + selectedTipoGratuidadeList.setData(listSelectedTipoGratuidade); + } + + public void onClick$btnAddTipoTipoGratuidade(Event ev) throws InterruptedException { + if (cmbTipoGratuidade.getSelectedItem() != null) { + listSelectedTipoGratuidade.add((Categoria) cmbTipoGratuidade.getSelectedItem().getValue()); + selectedTipoGratuidadeList.setData(listSelectedTipoGratuidade); + selectedTipoGratuidadeList.setSelectedItem(null); + } + } + + public MyListbox getSelectedTipoGratuidadeList() { + return selectedTipoGratuidadeList; + } + + public void setSelectedTipoGratuidadeList(MyListbox selectedTipoGratuidadeList) { + this.selectedTipoGratuidadeList = selectedTipoGratuidadeList; + } + + public List getListSelectedTipoGratuidade() { + return listSelectedTipoGratuidade; + } + + public void setListSelectedTipoGratuidade(List listSelectedTipoGratuidade) { + this.listSelectedTipoGratuidade = listSelectedTipoGratuidade; + } 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())); + if (this.datInicialViagem.getValue() != null) { + parametros.put("fecInicioViagem", sdf.format(this.datInicialViagem.getValue())); + } + if (this.datFinalViagem.getValue() != null) { + parametros.put("fecFinalViagem", sdf.format(this.datFinalViagem.getValue())); + } + + if (this.datInicialVenda.getValue() != null) { + parametros.put("fecInicioVenda", sdf.format(this.datInicialVenda.getValue())); + } + if (this.datFinalVenda.getValue() != null) { + parametros.put("fecFinalVenda", sdf.format(this.datFinalVenda.getValue())); + } + if ((parametros.get("fecInicioViagem") == null && parametros.get("datFinalViagem") == null) || + (parametros.get("fecInicioVenda") == null && parametros.get("datFinalVenda") == null)) { + Messagebox.show(Labels.getLabel("relatorioGratuidadeController.data.obrigatoria"), + Labels.getLabel("relatorioGratuidadeController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + return; + } + if (cmbTeste.getSelectedIndex() != -1) { parametros.put("empresa", ((Empresa) cmbTeste.getSelectedItem().getValue()).getEmpresaId()); } @@ -91,8 +144,12 @@ public class RelatorioGratuidadeController extends MyGenericForwardComposer { if(cmbDestino.getSelectedIndex() != -1){ parametros.put("destino", ((Parada) cmbDestino.getSelectedItem().getValue()).getParadaId()); } - if(cmbTipoGratuidade.getSelectedIndex() != -1){ - parametros.put("categoria", ((Categoria) cmbTipoGratuidade.getSelectedItem().getValue()).getCategoriaId()); + if(listSelectedTipoGratuidade.size() > 0){ + String categoriaId = ""; + for (Categoria categoria : listSelectedTipoGratuidade) { + categoriaId = categoria.getCategoriaId() + ","; + } + parametros.put("categoria", categoriaId.substring(0, categoriaId.length()-1)); } if (cmbOrgaoConcedente.getSelectedItem() != null) { OrgaoConcedente orgaoConcedente = (OrgaoConcedente) cmbOrgaoConcedente.getSelectedItem().getValue(); @@ -123,6 +180,7 @@ public class RelatorioGratuidadeController extends MyGenericForwardComposer { lsEmpresas = empresaService.obtenerTodos(); lsCategorias = categoriaService.obtenerTodos(); lsOrgaoConcedente = orgaocConcedenteService.obtenerTodos(); + listSelectedTipoGratuidade = new ArrayList(); super.doAfterCompose(comp); } @@ -151,20 +209,36 @@ public class RelatorioGratuidadeController extends MyGenericForwardComposer { this.lsCategorias = lsCategorias; } - public Datebox getDatInicial() { - return datInicial; + public Datebox getDatInicialViagem() { + return datInicialViagem; } - public void setDatInicial(Datebox datInicial) { - this.datInicial = datInicial; + public void setDatInicialViagem(Datebox datInicialViagem) { + this.datInicialViagem = datInicialViagem; } - public Datebox getDatFinal() { - return datFinal; + public Datebox getDatFinalViagem() { + return datFinalViagem; } - public void setDatFinal(Datebox datFinal) { - this.datFinal = datFinal; + public void setDatFinalViagem(Datebox datFinalViagem) { + this.datFinalViagem = datFinalViagem; + } + + public Datebox getDatInicialVenda() { + return datInicialVenda; + } + + public void setDatInicialVenda(Datebox datInicialVenda) { + this.datInicialVenda = datInicialVenda; + } + + public Datebox getDatFinalVenda() { + return datFinalVenda; + } + + public void setDatFinalVenda(Datebox datFinalVenda) { + this.datFinalVenda = datFinalVenda; } public MyComboboxPuntoVenta getCmbAgencia() { diff --git a/web/gui/relatorios/filtroRelatorioGratuidade.zul b/web/gui/relatorios/filtroRelatorioGratuidade.zul index 20f819f9c..d9ab5d694 100644 --- a/web/gui/relatorios/filtroRelatorioGratuidade.zul +++ b/web/gui/relatorios/filtroRelatorioGratuidade.zul @@ -10,6 +10,52 @@ contentStyle="overflow:auto" height="320px" width="550px" border="normal"> + + + + + + + + + + + + + + + + + + @@ -68,28 +114,39 @@ - + + + + + + + + + +