diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFormaPagamentoAgenciaRutaTramo.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFormaPagamentoAgenciaRutaTramo.java new file mode 100644 index 000000000..1645fde30 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioFormaPagamentoAgenciaRutaTramo.java @@ -0,0 +1,107 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +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.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioFormaPagamentoAgenciaRutaTramoBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + + +public class RelatorioFormaPagamentoAgenciaRutaTramo extends RelatorioDemandas { + + private List lsDadosRelatorio; + + public RelatorioFormaPagamentoAgenciaRutaTramo(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + this.setCustomDataSource(new ArrayDataSource(this) { + @Override + public void initDados() throws Exception { + SimpleDateFormat format = new SimpleDateFormat("dd/MM/yyyy"); + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + + String dataIncial = (String) parametros.get("DATA_INICIAL"); + + String dataFinal = (String) parametros.get("DATA_FINAL"); + + Integer empresa = (Integer) parametros.get("EMPRESA"); + + String rutaId = (String) parametros.get("RUTAS_IDS"); + + Integer agencia = (Integer) parametros.get("AGENCIA"); + + StringBuilder sql = new StringBuilder(); + + sql.append(" select rc.RUTACOMBINACION_ID as rc_RUTACOMBINACION_ID, rc.ruta_id as rc_ruta_id, r.descruta as r_descruta, rc.tramo_id as rc_tramo_id , "); + sql.append(" t.desctramo as t_desctramo, t.origen_id as t_origen_id, t.destino_id as t_destino_id , ");// b.caja_id as b_caja_id , "); + sql.append(" fp.DESCPAGO as fp_DESCPAGO, sum(cfp.importe) as cfp_importe, sum(b.IMPORTEPEDAGIO) as b_IMPORTEPEDAGIO, "); + sql.append(" sum(b.IMPORTESEGURO) as b_IMPORTESEGURO, sum(b.IMPORTETAXAEMBARQUE) as b_IMPORTETAXAEMBARQUE ,TO_DATE(TO_CHAR(b.fechorventa,'DD-MON-YYYY'),'DD-MON-YYYY' ) as b_fechorventa, pv.NOMBPUNTOVENTA as pv_NOMBPUNTOVENTA, count(b.caja_id) AS QTD "); + sql.append(" from ruta_combinacion RC "); + sql.append(" inner join tramo t on t.tramo_id = rc.tramo_id "); + sql.append(" inner join ruta r on r.ruta_id = rc.ruta_id "); + sql.append(" left join caja b on (b.ORIGEN_ID = t.ORIGEN_ID and b.DESTINO_ID = t.DESTINO_ID and b.RUTA_ID = rc.ruta_id "); + sql.append(" and b.fechorventa BETWEEN to_date('" + dataIncial + " 00:00:00','dd/MM/yyyy hh24:mi:ss') AND to_date('" + dataFinal + " 23:59:59','dd/MM/yyyy hh24:mi:ss') AND b.RUTA_ID in ("+rutaId+") ");//AND b.CORRIDA_ID = 86300 "); + //sql.append(" and b.feccorrida BETWEEN to_date('" + format.format(dataIncial) + " 00:00:00','dd/MM/yyyy hh24:mi:ss') AND to_date('" + format.format(dataFinal) + " 00:00:00','dd/MM/yyyy hh24:mi:ss') AND b.RUTA_ID = "+rutaId+" ");//AND b.CORRIDA_ID = 86300 "); + sql.append(" ) "); + sql.append(" left join caja_formapago cfp on cfp.CAJA_ID = b.CAJA_ID "); + sql.append(" left join forma_pago fp on fp.FORMAPAGO_ID = cfp.FORMAPAGO_ID "); + sql.append(" left join punto_venta pv on pv.PUNTOVENTA_ID = b.puntoventa_id "); + sql.append(" WHERE RC.RUTA_ID in ("+rutaId+") and rc.activo = 1 and t.activo =1 AND B.EMPRESACORRIDA_ID = "+empresa+" "); + if( agencia != null){ + sql.append("AND pv.PUNTOVENTA_ID = "+agencia+" "); + } + sql.append(" GROUP BY TO_DATE(TO_CHAR(B.fechorventa,'DD-MON-YYYY'),'DD-MON-YYYY' ),T.DESCTRAMO,FP.DESCPAGO, RC.RUTACOMBINACION_ID, r.descruta, RC.RUTA_ID, RC.TRAMO_ID, T.ORIGEN_ID, T.DESTINO_ID, PV.NOMBPUNTOVENTA "); + sql.append(" order by RC_ruta_ID , RC_tramo_ID , b_fechorventa "); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql.toString()); + + ResultSet rset = stmt.executeQuery(); + + lsDadosRelatorio = new ArrayList(); + + RelatorioFormaPagamentoAgenciaRutaTramoBean r ; + SimpleDateFormat dt = new SimpleDateFormat("dd/MM/yy"); + + while (rset.next()) { + r= new RelatorioFormaPagamentoAgenciaRutaTramoBean(); + + r.setDescRuta("desc ruta"); + r.setPeriodo("periodo"); + r.setDescFormaPag(rset.getString("fp_DESCPAGO")); + r.setDescTramo(rset.getString("t_desctramo")); + r.setDescRuta(rset.getString("r_descruta")); + r.setData(dt.format(rset.getDate("b_fechorventa"))); + r.setAgencia(rset.getString("pv_NOMBPUNTOVENTA")); + r.setTarifa(rset.getDouble("cfp_importe")); + r.setPedagio(rset.getDouble("b_IMPORTEPEDAGIO")); + r.setSeguro(rset.getDouble("b_IMPORTESEGURO")); + r.setTaxas(rset.getDouble("b_IMPORTETAXAEMBARQUE")); + r.setTotal(rset.getDouble("b_IMPORTETAXAEMBARQUE") +rset.getDouble("b_IMPORTESEGURO") + rset.getDouble("cfp_importe") + rset.getDouble("b_IMPORTEPEDAGIO")); + r.setQuantidade(rset.getInt("QTD")); + + lsDadosRelatorio.add(r); + } + setLsDadosRelatorio(lsDadosRelatorio); + } + }); + } + public List getLsDadosRelatorio() { + return lsDadosRelatorio; + } + + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFormaPagamentoAgenciaRutaTramo_pt_BR..properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFormaPagamentoAgenciaRutaTramo_pt_BR..properties new file mode 100644 index 000000000..4c7dfdb6a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioFormaPagamentoAgenciaRutaTramo_pt_BR..properties @@ -0,0 +1 @@ +msg.noData=Não foi possivel obter dados com os parâmetros informados. \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFormaPagamentoAgenciaRutaTramo.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFormaPagamentoAgenciaRutaTramo.jasper new file mode 100644 index 000000000..a05c5e2b2 Binary files /dev/null and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFormaPagamentoAgenciaRutaTramo.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFormaPagamentoAgenciaRutaTramo.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFormaPagamentoAgenciaRutaTramo.jrxml new file mode 100644 index 000000000..2a4722f05 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioFormaPagamentoAgenciaRutaTramo.jrxml @@ -0,0 +1,284 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="79" splitType="Stretch"> + <staticText> + <reportElement uuid="f1ec38fc-f846-43f2-b9a4-338eb5d19aa2" x="39" y="10" width="802" height="20"/> + <textElement textAlignment="Center"> + <font size="14" isBold="true"/> + </textElement> + <text><![CDATA[Relatório de Forma de Pagamento por Linha]]></text> + </staticText> + <textField> + <reportElement uuid="d3de6210-3d3e-4ef1-a080-bcbf232792a7" x="10" y="48" width="247" height="20"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA["Período: " + $P{DATA_INICIAL} + " a " + $P{DATA_FINAL}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioFormaPagamentoAgenciaRutaTramoBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioFormaPagamentoAgenciaRutaTramoBean.java new file mode 100644 index 000000000..f45ea0b6b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioFormaPagamentoAgenciaRutaTramoBean.java @@ -0,0 +1,129 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.util.ArrayList; +import java.util.List; + +public class RelatorioFormaPagamentoAgenciaRutaTramoBean { + + private String periodo; + private String descRuta; + private String data; + private String agencia; + private String descFormaPag; + private double tarifa; + private double pedagio; + private double seguro; + private double taxas; + private double total; + private Integer quantidade; + private String descTramo; + private String totalTarifa; + private String totalSeguro; + private String totalPedagio; + private String totalGeral; + private String totalQtd; + + public String getPeriodo() { + return periodo; + } + public void setPeriodo(String periodo) { + this.periodo = periodo; + } + public String getDescRuta() { + return descRuta; + } + public void setDescRuta(String descRuta) { + this.descRuta = descRuta; + } + public String getData() { + return data; + } + public void setData(String data) { + this.data = data; + } + public String getAgencia() { + return agencia; + } + public void setAgencia(String agencia) { + this.agencia = agencia; + } + public String getDescFormaPag() { + return descFormaPag; + } + public void setDescFormaPag(String descFormaPag) { + this.descFormaPag = descFormaPag; + } + public double getTarifa() { + return tarifa; + } + public void setTarifa(double tarifa) { + this.tarifa = tarifa; + } + public double getPedagio() { + return pedagio; + } + public void setPedagio(double pedagio) { + this.pedagio = pedagio; + } + public double getSeguro() { + return seguro; + } + public void setSeguro(double seguro) { + this.seguro = seguro; + } + public double getTaxas() { + return taxas; + } + public void setTaxas(double taxas) { + this.taxas = taxas; + } + public double getTotal() { + return total; + } + public void setTotal(double total) { + this.total = total; + } + public Integer getQuantidade() { + return quantidade; + } + public void setQuantidade(Integer quantidade) { + this.quantidade = quantidade; + } + + public String getTotalTarifa() { + return totalTarifa; + } + public void setTotalTarifa(String totalTarifa) { + this.totalTarifa = totalTarifa; + } + public String getTotalSeguro() { + return totalSeguro; + } + public void setTotalSeguro(String totalSeguro) { + this.totalSeguro = totalSeguro; + } + public String getTotalPedagio() { + return totalPedagio; + } + public void setTotalPedagio(String totalPedagio) { + this.totalPedagio = totalPedagio; + } + public String getTotalGeral() { + return totalGeral; + } + public void setTotalGeral(String totalGeral) { + this.totalGeral = totalGeral; + } + public String getTotalQtd() { + return totalQtd; + } + public void setTotalQtd(String totalQtd) { + this.totalQtd = totalQtd; + } + public String getDescTramo() { + return descTramo; + } + public void setDescTramo(String descTramo) { + this.descTramo = descTramo; + } +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/financeiro/FormaPagamentoAgenciaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/financeiro/FormaPagamentoAgenciaController.java index 2b5c94439..3b9476e47 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/financeiro/FormaPagamentoAgenciaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/financeiro/FormaPagamentoAgenciaController.java @@ -4,6 +4,8 @@ */ package com.rjconsultores.ventaboletos.web.gui.controladores.financeiro; +import java.text.SimpleDateFormat; +import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -17,16 +19,21 @@ import org.springframework.stereotype.Controller; import org.zkoss.util.resource.Labels; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Checkbox; import org.zkoss.zul.Datebox; import com.rjconsultores.ventaboletos.entidad.PuntoVenta; import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioFormaPagamentoAgencia; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioFormaPagamentoAgenciaRutaTramo; import com.rjconsultores.ventaboletos.service.FormaPagamentoAgenciaService; +import com.rjconsultores.ventaboletos.service.RutaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; 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; /** * @@ -38,6 +45,8 @@ public class FormaPagamentoAgenciaController extends MyGenericForwardComposer { @Autowired private FormaPagamentoAgenciaService financeiroService; + @Autowired + private RutaService rutaService; @Autowired private DataSource dataSourceRead; @@ -49,12 +58,22 @@ public class FormaPagamentoAgenciaController extends MyGenericForwardComposer { private List lsEmpresas; private MyComboboxPuntoVenta cmbAgencia; + private Checkbox considerarRuta; + + private MyComboboxEstandar cmbRuta; + private List lsRuta; + + private List listSelectedRutas; + private MyListbox selectedRutasList; + + @Override public void doAfterCompose(Component comp) throws Exception { lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa(); - + lsRuta = rutaService.obtenerTodos(); + listSelectedRutas = new ArrayList(); super.doAfterCompose(comp); } @@ -121,9 +140,17 @@ public class FormaPagamentoAgenciaController extends MyGenericForwardComposer { Date dataInicio = fecInicio.getValue(); Date dataFinal = fecFinal.getValue(); + SimpleDateFormat dt = new SimpleDateFormat("dd/MM/yyyy"); + Map argsInforme = new HashMap(); - argsInforme.put("DATA_INICIAL", dataInicio); - argsInforme.put("DATA_FINAL", dataFinal); + + if(!considerarRuta.isChecked()){ + argsInforme.put("DATA_INICIAL", dataInicio); + argsInforme.put("DATA_FINAL", dataFinal); + }else{ + argsInforme.put("DATA_INICIAL", dt.format(dataInicio)); + argsInforme.put("DATA_FINAL", dt.format(dataFinal)); + } if (cmbEmpresa.isValid() && cmbEmpresa.getSelectedItem() != null) { Integer empresaId = ((Empresa)cmbEmpresa.getSelectedItem().getValue()).getEmpresaId(); @@ -135,13 +162,76 @@ public class FormaPagamentoAgenciaController extends MyGenericForwardComposer { argsInforme.put("AGENCIA", agencia); } - RelatorioFormaPagamentoAgencia relatorio = new RelatorioFormaPagamentoAgencia(argsInforme, dataSourceRead.getConnection()); + if (considerarRuta.isChecked() && listSelectedRutas != null && !listSelectedRutas.isEmpty()) { + String idsRutas = ""; + for(Ruta r : listSelectedRutas){ + idsRutas = idsRutas + r.getRutaId()+","; + } + + argsInforme.put("RUTAS_IDS", idsRutas.substring(0, idsRutas.length()-1)); + } + + RelatorioFormaPagamentoAgencia relatorio =null; + RelatorioFormaPagamentoAgenciaRutaTramo relatorioRutaTramo =null; + if(!considerarRuta.isChecked()){ + relatorio = new RelatorioFormaPagamentoAgencia(argsInforme, dataSourceRead.getConnection()); + }else{ + relatorioRutaTramo = new RelatorioFormaPagamentoAgenciaRutaTramo(argsInforme, dataSourceRead.getConnection()); + } + Map args = new HashMap(); - args.put("relatorio", relatorio); + if(!considerarRuta.isChecked()){ + args.put("relatorio", relatorio); + }else{ + args.put("relatorio", relatorioRutaTramo); + } + openWindow("/component/reportView.zul", Labels.getLabel("formaPagamentoAgenciaController.window.title"), args, MODAL); } + + public void onClick$btnAddRuta(Event ev) throws InterruptedException { + if (cmbRuta.getSelectedItem() != null) { + listSelectedRutas.add((Ruta) cmbRuta.getSelectedItem().getValue()); + selectedRutasList.setData(listSelectedRutas); + cmbRuta.setSelectedItem(null); + } + } + + public void onClick$btnRemoveRuta(Event ev) throws InterruptedException { + Ruta ruta = (Ruta) selectedRutasList.getSelected(); + listSelectedRutas.remove(ruta); + selectedRutasList.setData(listSelectedRutas); + } + + public List getLsRuta() { + return lsRuta; + } + + public void setLsRuta(List lsRuta) { + this.lsRuta = lsRuta; + } + + + public List getListSelectedRutas() { + return listSelectedRutas; + } + + + public void setListSelectedRutas(List listSelectedRutas) { + this.listSelectedRutas = listSelectedRutas; + } + + + public MyListbox getSelectedRutasList() { + return selectedRutasList; + } + + + public void setSelectedRutasList(MyListbox selectedRutasList) { + this.selectedRutasList = selectedRutasList; + } } diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 62edce78d..3a1d757cf 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -399,6 +399,7 @@ formaPagamentoAgenciaController.lbAgencia.value = Agência formaPagamentoAgenciaController.lbDataIni.value = Data Início formaPagamentoAgenciaController.lbDataFin.value = Data Fim formaPagamentoAgenciaController.lbEmpresa.value = Empresa +formaPagamentoAgenciaController.lbConsideraRuta.value = Considerar Ruta # Relatório Financeiro por Grupo de Linhas financeiroGrupoLinhasController.mniRelatorioFinanceiro.label = Financeiro por Grupo de Linhas diff --git a/web/gui/informes/formaPagamentoAgencia/formaPagamentoAgencia.zul b/web/gui/informes/formaPagamentoAgencia/formaPagamentoAgencia.zul index 44db1d1e5..09a760e20 100644 --- a/web/gui/informes/formaPagamentoAgencia/formaPagamentoAgencia.zul +++ b/web/gui/informes/formaPagamentoAgencia/formaPagamentoAgencia.zul @@ -44,8 +44,54 @@ width="70%" model="@{winFormaPagamentoAgencia$composer.lsEmpresas}"/> + + + + + +