Divergência de valores no Relatório Empresa Corrida (fixes bug #6182)

Tempo: 01 horas

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@43238 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2015-04-17 13:08:06 +00:00
parent 937ff62423
commit 9cde5d4610
2 changed files with 26 additions and 33 deletions

View File

@ -7,6 +7,8 @@ import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.lang.StringUtils;
import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
@ -18,7 +20,7 @@ public class RelatorioEmpresaCorrida extends Relatorio {
private List<RelatorioEmpresaCorridaBean> lsDadosRelatorio; private List<RelatorioEmpresaCorridaBean> lsDadosRelatorio;
public RelatorioEmpresaCorrida(Map<String, Object> parametros, Connection conexao) throws Exception { public RelatorioEmpresaCorrida(Map<String, Object> parametros, Connection conexao) throws Exception {
super(parametros, conexao); super(parametros, conexao);
this.setCustomDataSource(new DataSource(this) { this.setCustomDataSource(new DataSource(this) {
@ -43,7 +45,7 @@ public class RelatorioEmpresaCorrida extends Relatorio {
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss"); SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
stmt.setTimestamp("fecInicio", new java.sql.Timestamp(sdf.parse(fecInicio).getTime())); stmt.setTimestamp("fecInicio", new java.sql.Timestamp(sdf.parse(fecInicio).getTime()));
stmt.setTimestamp("fecFinal", new java.sql.Timestamp(sdf.parse(fecFinal).getTime())); stmt.setTimestamp("fecFinal", new java.sql.Timestamp(sdf.parse(fecFinal).getTime()));
if (empresa != null && !empresa.equals("")){ if (empresa != null && !empresa.equals("")) {
stmt.setInt("empresa_id", Integer.parseInt(empresa)); stmt.setInt("empresa_id", Integer.parseInt(empresa));
} }
rset = stmt.executeQuery(); rset = stmt.executeQuery();
@ -103,12 +105,9 @@ public class RelatorioEmpresaCorrida extends Relatorio {
sql.append(" COALESCE(km2.kmonibusarrendados, 0) kmOnibusArrendados "); sql.append(" COALESCE(km2.kmonibusarrendados, 0) kmOnibusArrendados ");
sql.append("FROM boleto b "); sql.append("FROM boleto b ");
sql.append(" INNER JOIN categoria cat on cat.categoria_id = b.categoria_id "); sql.append(" INNER JOIN categoria cat on cat.categoria_id = b.categoria_id ");
sql.append(" INNER JOIN marca m "); sql.append(" INNER JOIN marca m ON m.marca_id = b.marca_id ");
sql.append(" ON m.marca_id = b.marca_id "); sql.append(" INNER JOIN empresa e ON e.empresa_id = m.empresa_id ");
sql.append(" INNER JOIN empresa e "); sql.append(" INNER JOIN ruta r ON r.ruta_id = b.ruta_id ");
sql.append(" ON e.empresa_id = m.empresa_id ");
sql.append(" INNER JOIN ruta r ");
sql.append(" ON r.ruta_id = b.ruta_id ");
sql.append(" LEFT JOIN (SELECT c1.ruta_id ruta_id, "); sql.append(" LEFT JOIN (SELECT c1.ruta_id ruta_id, ");
sql.append(" c1.EMPRESACORRIDA_ID empresa_id, "); sql.append(" c1.EMPRESACORRIDA_ID empresa_id, ");
sql.append(" COALESCE(Sum(t1.cantkmreal), 0) kmtotal, "); sql.append(" COALESCE(Sum(t1.cantkmreal), 0) kmtotal, ");
@ -132,18 +131,14 @@ public class RelatorioEmpresaCorrida extends Relatorio {
sql.append(" AND ct.feccorrida = c1.feccorrida "); sql.append(" AND ct.feccorrida = c1.feccorrida ");
sql.append(" INNER JOIN autobus a "); sql.append(" INNER JOIN autobus a ");
sql.append(" ON ct.autobus_id = a.autobus_id "); sql.append(" ON ct.autobus_id = a.autobus_id ");
sql.append(" WHERE c1.feccorrida BETWEEN :fecInicio AND :fecFinal "); sql.append(" WHERE c1.activo <> 0 AND ct.activo <> 0 ");
sql.append(" AND c1.empresacorrida_id = :empresa_id ");
sql.append(" AND c1.activo <> 0 AND ct.activo <> 0 ");
sql.append(" AND a.activo <> 0 AND t1.activo <> 0 "); sql.append(" AND a.activo <> 0 AND t1.activo <> 0 ");
sql.append(" GROUP BY c1.ruta_id, "); sql.append(StringUtils.isBlank(empresa) ? "" : " AND c1.empresacorrida_id = :empresa_id ");
sql.append(" c1.EMPRESACORRIDA_ID) km2 "); sql.append(" GROUP BY c1.ruta_id, c1.EMPRESACORRIDA_ID) km2 ");
sql.append(" ON ( km2.ruta_id = r.ruta_id "); sql.append(" ON ( km2.ruta_id = r.ruta_id ");
sql.append(" AND km2.empresa_id = e.empresa_id ) "); sql.append(" AND km2.empresa_id = e.empresa_id ) ");
sql.append("WHERE b.fechorventa BETWEEN :fecInicio AND :fecFinal "); sql.append("WHERE b.fechorventa BETWEEN :fecInicio AND :fecFinal ");
if (empresa != null && !empresa.isEmpty()){ sql.append(StringUtils.isBlank(empresa) ? "" : " AND e.empresa_id = :empresa_id ");
sql.append(" AND e.empresa_id = :empresa_id ");
}
sql.append("GROUP BY e.empresa_id, "); sql.append("GROUP BY e.empresa_id, ");
sql.append(" r.ruta_id, "); sql.append(" r.ruta_id, ");
sql.append(" r.descruta, "); sql.append(" r.descruta, ");
@ -151,8 +146,7 @@ public class RelatorioEmpresaCorrida extends Relatorio {
sql.append(" km2.kmtotal, "); sql.append(" km2.kmtotal, ");
sql.append(" km2.kmonibusproprio, "); sql.append(" km2.kmonibusproprio, ");
sql.append(" km2.kmonibusarrendados "); sql.append(" km2.kmonibusarrendados ");
sql.append("ORDER BY nombempresa, "); sql.append("ORDER BY nombempresa, linea ");
sql.append(" linea ");
return sql.toString(); return sql.toString();
} }

View File

@ -7,8 +7,7 @@
<zk xmlns="http://www.zkoss.org/2005/zul"> <zk xmlns="http://www.zkoss.org/2005/zul">
<window id="winFiltroRelatorioEmpresaCorrida" <window id="winFiltroRelatorioEmpresaCorrida"
apply="${relatorioEmpresaCorridaController}" apply="${relatorioEmpresaCorridaController}"
contentStyle="overflow:auto" height="264px" width="550px" contentStyle="overflow:auto" width="550px" border="normal">
border="normal">
<grid fixedLayout="true"> <grid fixedLayout="true">
<columns> <columns>