From 3d2d96e26b530d5bc55817fe212eb5110815ae95 Mon Sep 17 00:00:00 2001 From: "bruno.neves" Date: Thu, 6 Apr 2017 12:49:19 +0000 Subject: [PATCH] =?UTF-8?q?fixed=20bug=20#0008450=20-Foi=20criado=20o=20no?= =?UTF-8?q?vo=20relat=C3=B3rio,=20com=20as=20informa=C3=A7=C3=B5es=20solic?= =?UTF-8?q?itadas=20pelo=20cliente.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@67804 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioKmProgramada.java | 199 ++++++++++++++++++ 1 file changed, 199 insertions(+) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioKmProgramada.java diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioKmProgramada.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioKmProgramada.java new file mode 100644 index 000000000..08e327cc5 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioKmProgramada.java @@ -0,0 +1,199 @@ +/** + * + */ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + +import com.rjconsultores.ventaboletos.entidad.Constante; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.ConstanteService; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +/** + * @author Bruno Neves + * + */ +public class RelatorioKmProgramada extends Relatorio { + + /** + * @param parametros + * @param conexao + */ + public RelatorioKmProgramada(Map parametros, Connection conexao) { + super(parametros, conexao); + // TODO Auto-generated constructor stub + } + + /* + * (non-Javadoc) + * + * @see com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio#processaParametros() + */ + @Override + public void processaParametros() throws Exception { + } + + + + private ConstanteService constanteService; + + public RelatorioKmProgramada(Map parametros, Connection conexao, ConstanteService constanteService) throws Exception { + super(parametros, conexao); + this.constanteService = constanteService; + + this.setCustomDataSource(new ArrayDataSource(this) { + + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + final Integer CARTAO_CREDITO = 2; + String sql = getSql(parametros.get("EMPRESA_ID")+""); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + stmt.setTimestamp("fecInicio", new Timestamp(DateUtil.inicioFecha(sdf.parse(parametros.get("DATA_INICIAL").toString())).getTime())); + stmt.setTimestamp("fecFinal", new Timestamp(DateUtil.inicioFecha(sdf.parse( parametros.get("DATA_FINAL").toString())).getTime())); + // stmt.setTimestamp("data_final", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime())); + // stmt.setInt("formaPago1", CARTAO_CREDITO); + if(parametros.get("EMPRESA_ID" )!= null){ + stmt.setInt("empresaId", Integer.valueOf(parametros.get("EMPRESA_ID" )== null ?"0":parametros.get("EMPRESA_ID") + "")); + } + + + ResultSet rset = stmt.executeQuery(); + + while (rset.next()) { + Map dataResult = new HashMap(); + dataResult.put("Linhas", rset.getString("Linhas")); + dataResult.put("DescLinha", rset.getString("DescLinha")); + dataResult.put("Empresa", rset.getString("Empresa")); + dataResult.put("KMPadrao", rset.getBigDecimal("KMPadrao")); + dataResult.put("SRVNormal", rset.getInt("SRVNormal")); + dataResult.put("SRVExtra", rset.getInt("SRVExtra")); + dataResult.put("SRVTotal", rset.getInt("SRVTotal")); + dataResult.put("KMTotal", rset.getBigDecimal("KMTotal")); + + + this.dados.add(dataResult); + } + + this.resultSet = rset; + } + }); + } + + private String getSql(String empresaId) { + StringBuilder sql = new StringBuilder(); + + /* Boletos apenas com venda e cancelamento direto com corrida */ + + + + sql.append(" select"); + sql.append(" geral.Linhas,"); + sql.append(" geral.Empresa,"); + sql.append(" geral.DescLinha,"); + sql.append(" geral.KMPadrao,"); + sql.append(" COUNT("); + sql.append(" CASE"); + sql.append(" WHEN geral.TIPOSERVICIO_ID = 1"); + sql.append(" THEN 1"); + sql.append(" ELSE null"); + sql.append(" END) AS SRVNormal,"); + sql.append(" COUNT("); + sql.append(" CASE"); + sql.append(" WHEN geral.TIPOSERVICIO_ID = 2"); + sql.append(" THEN 1"); + sql.append(" ELSE null"); + sql.append(" END) AS SRVExtra,"); + sql.append(" NVL(geral.KMPadrao, 0 ) * (NVL( COUNT("); + sql.append(" CASE"); + sql.append(" WHEN geral.TIPOSERVICIO_ID = 1"); + sql.append(" THEN 1"); + sql.append(" ELSE null"); + sql.append(" END), 0 ) + NVL( COUNT("); + sql.append(" CASE"); + sql.append(" WHEN geral.TIPOSERVICIO_ID = 2"); + sql.append(" THEN 1"); + sql.append(" ELSE null"); + sql.append(" END), 0 )) as KMTotal,"); + + + sql.append("(NVL( COUNT("); + sql.append(" CASE"); + sql.append(" WHEN geral.TIPOSERVICIO_ID = 1"); + sql.append(" THEN 1"); + sql.append(" ELSE null"); + sql.append(" END), 0 ) + NVL( COUNT("); + sql.append(" CASE"); + sql.append(" WHEN geral.TIPOSERVICIO_ID = 2"); + sql.append(" THEN 1"); + sql.append(" ELSE null"); + sql.append(" END), 0 )) SRVTotal"); + + sql.append(" from (SELECT c.RUTA_ID AS Linhas,"); + sql.append(" c.EMPRESACORRIDA_ID AS Empresa,"); + sql.append(" r.DESCRUTA AS DescLinha,"); + sql.append(" c.TIPOSERVICIO_ID,"); + sql.append(" (select sum(t.CANTKMREAL) from CORRIDA_TRAMO ct inner join TRAMO t ON ct.TRAMO_ID = t.TRAMO_ID where ct.CORRIDA_ID = c.CORRIDA_ID"); + sql.append(" AND ct.FECCORRIDA = c.FECCORRIDA ) AS KMPadrao"); + sql.append(" FROM CORRIDA c"); + sql.append(" JOIN RUTA r"); + sql.append(" ON c.RUTA_ID = r.RUTA_ID"); + sql.append(" WHERE "); + sql.append(" c.FECCORRIDA BETWEEN :fecInicio and :fecFinal"); + if (!empresaId.equals("null")) { + sql.append(" and c.EMPRESACORRIDA_ID = :empresaId "); + } + sql.append(") geral group by geral.Linhas, geral.Empresa, geral.DescLinha, geral.KMPadrao"); + + + + + +// sql.append("SELECT DISTINCT c.RUTA_ID AS Linhas,"); +// sql.append(" c.EMPRESACORRIDA_ID AS Empresa,"); +// sql.append(" r.DESCRUTA AS DescLinha,"); +// sql.append(" SUM(t.CANTKMREAL) AS KMPadrao,"); +// sql.append(" COUNT("); +// sql.append(" CASE"); +// sql.append(" WHEN c.TIPOSERVICIO_ID = 1"); +// sql.append(" THEN 1"); +// sql.append(" ELSE NULL"); +// sql.append(" END ) AS SRVNormal,"); +// sql.append(" COUNT("); +// sql.append(" CASE"); +// sql.append(" WHEN c.TIPOSERVICIO_ID = 2"); +// sql.append(" THEN 1"); +// sql.append(" ELSE NULL"); +// sql.append(" END ) AS SRVExtra,"); +// sql.append(" COUNT (c.CORRIDA_ID) AS SRVTotal"); +// sql.append(" FROM CORRIDA c"); +// sql.append(" JOIN CORRIDA_TRAMO ct"); +// sql.append(" ON ct.CORRIDA_ID = c.CORRIDA_ID"); +// sql.append(" AND ct.FECCORRIDA = c.FECCORRIDA"); +// sql.append(" JOIN TRAMO t"); +// sql.append(" ON ct.TRAMO_ID = t.TRAMO_ID"); +// sql.append(" JOIN RUTA r "); +// sql.append(" on c.RUTA_ID = r.RUTA_ID"); +// sql.append(" WHERE "); +// sql.append(" c.FECCORRIDA BETWEEN :fecInicio and :fecFinal"); +// if (empresaId != null) { +// sql.append(" and c.EMPRESACORRIDA_ID = :empresaId "); +// } +// sql.append(" GROUP BY c.RUTA_ID,"); +// sql.append(" c.EMPRESACORRIDA_ID,"); +// sql.append(" r.DESCRUTA "); + + return sql.toString(); + } +}