Divergência Relatório Empresa ônibus x Empresa Corrida (fixes bug #6270)
Tempo: 08 horas git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@43837 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
96e7f80b5d
commit
d1f63bc6ea
|
@ -37,8 +37,6 @@ public class RelatorioEmpresaCorrida extends Relatorio {
|
||||||
|
|
||||||
String sql = getSql(empresa);
|
String sql = getSql(empresa);
|
||||||
|
|
||||||
System.out.println(sql);
|
|
||||||
|
|
||||||
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
|
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
|
||||||
ResultSet rset = null;
|
ResultSet rset = null;
|
||||||
|
|
||||||
|
@ -86,138 +84,52 @@ public class RelatorioEmpresaCorrida extends Relatorio {
|
||||||
private String getSql(String empresa) {
|
private String getSql(String empresa) {
|
||||||
|
|
||||||
StringBuilder sql = new StringBuilder();
|
StringBuilder sql = new StringBuilder();
|
||||||
sql.append("SELECT DISTINCT ");
|
sql.append("select ");
|
||||||
sql.append(" c1.ruta_id, ");
|
sql.append(" km2.empresa_id, ");
|
||||||
sql.append(" c1.EMPRESACORRIDA_ID, ");
|
sql.append(" km2.nombempresa, ");
|
||||||
|
sql.append(" r.ruta_id, ");
|
||||||
sql.append(" r.descruta AS linea, ");
|
sql.append(" r.descruta AS linea, ");
|
||||||
sql.append(" e.nombempresa, ");
|
sql.append(" COALESCE(SUM(CASE WHEN ((b.motivocancelacion_id IS NULL) AND (cat.grupocategoria_id IS NULL OR cat.grupocategoria_id <> 4)) THEN b.preciopagado ELSE 0 END), 0) boletos, ");
|
||||||
sql.append(" COALESCE(SUM( ");
|
sql.append(" COALESCE(SUM(CASE WHEN b.motivocancelacion_id IS NULL AND cat.grupocategoria_id = 4 THEN b.preciopagado ELSE 0 END), 0) abonos, ");
|
||||||
sql.append(" CASE ");
|
sql.append(" COALESCE(SUM(CASE WHEN b.motivocancelacion_id IS NULL THEN 1 ELSE 0 END), 0) passageirosTransp, ");
|
||||||
sql.append(" WHEN ((b.motivocancelacion_id IS NULL) ");
|
|
||||||
sql.append(" AND (cat.grupocategoria_id IS NULL ");
|
|
||||||
sql.append(" OR cat.grupocategoria_id <> 4)) ");
|
|
||||||
sql.append(" THEN b.preciopagado ");
|
|
||||||
sql.append(" ELSE 0 ");
|
|
||||||
sql.append(" END), 0) boletos, ");
|
|
||||||
sql.append(" COALESCE(SUM( ");
|
|
||||||
sql.append(" CASE ");
|
|
||||||
sql.append(" WHEN b.motivocancelacion_id IS NULL ");
|
|
||||||
sql.append(" AND cat.grupocategoria_id = 4 ");
|
|
||||||
sql.append(" THEN b.preciopagado ");
|
|
||||||
sql.append(" ELSE 0 ");
|
|
||||||
sql.append(" END), 0) abonos, ");
|
|
||||||
sql.append(" COALESCE(SUM( ");
|
|
||||||
sql.append(" CASE ");
|
|
||||||
sql.append(" WHEN b.motivocancelacion_id IS NULL ");
|
|
||||||
sql.append(" THEN 1 ");
|
|
||||||
sql.append(" ELSE 0 ");
|
|
||||||
sql.append(" END), 0) passageirosTransp, ");
|
|
||||||
sql.append(" COALESCE(km2.kmtotal, 0) kmtotal, ");
|
sql.append(" COALESCE(km2.kmtotal, 0) kmtotal, ");
|
||||||
sql.append(" COALESCE(km2.kmonibusproprio, 0) kmOnibusProprio, ");
|
sql.append(" COALESCE(km2.kmonibusproprio, 0) kmOnibusProprio, ");
|
||||||
sql.append(" COALESCE(km2.kmonibusarrendados, 0) kmOnibusArrendados ");
|
sql.append(" COALESCE(km2.kmonibusarrendados, 0) kmOnibusArrendados ");
|
||||||
sql.append("FROM ");
|
sql.append("FROM ruta r ");
|
||||||
sql.append(" tramo t1 ");
|
|
||||||
sql.append("INNER JOIN ");
|
sql.append("INNER JOIN ");
|
||||||
sql.append(" corrida_tramo ct ");
|
sql.append(" ( SELECT ");
|
||||||
sql.append("ON ");
|
|
||||||
sql.append(" ct.tramo_id = t1.tramo_id ");
|
|
||||||
sql.append("INNER JOIN ");
|
|
||||||
sql.append(" corrida c1 ");
|
|
||||||
sql.append("ON ");
|
|
||||||
sql.append(" ct.corrida_id = c1.corrida_id ");
|
|
||||||
sql.append("AND ct.feccorrida = c1.feccorrida ");
|
|
||||||
sql.append("INNER JOIN ");
|
|
||||||
sql.append(" autobus a ");
|
|
||||||
sql.append("ON ");
|
|
||||||
sql.append(" ct.autobus_id = a.autobus_id ");
|
|
||||||
sql.append("LEFT JOIN ");
|
|
||||||
sql.append(" boleto b ");
|
|
||||||
sql.append("ON ");
|
|
||||||
sql.append(" b.corrida_id = c1.corrida_id ");
|
|
||||||
sql.append("AND b.feccorrida = c1.feccorrida ");
|
|
||||||
sql.append("LEFT JOIN ");
|
|
||||||
sql.append(" categoria cat ");
|
|
||||||
sql.append("ON ");
|
|
||||||
sql.append(" cat.categoria_id = b.categoria_id ");
|
|
||||||
sql.append("INNER JOIN ");
|
|
||||||
sql.append(" empresa e ");
|
|
||||||
sql.append("ON ");
|
|
||||||
sql.append(" e.empresa_id = c1.EMPRESACORRIDA_ID ");
|
|
||||||
sql.append("INNER JOIN ");
|
|
||||||
sql.append(" ruta r ");
|
|
||||||
sql.append("ON ");
|
|
||||||
sql.append(" r.ruta_id = c1.ruta_id ");
|
|
||||||
sql.append("LEFT JOIN ");
|
|
||||||
sql.append(" ( ");
|
|
||||||
sql.append(" SELECT ");
|
|
||||||
sql.append(" c.ruta_id ruta_id, ");
|
sql.append(" c.ruta_id ruta_id, ");
|
||||||
sql.append(" c.EMPRESACORRIDA_ID empresa_id, ");
|
sql.append(" e.empresa_id empresa_id, ");
|
||||||
|
sql.append(" e.nombempresa nombempresa, ");
|
||||||
sql.append(" COALESCE(SUM(t.cantkmreal), 0) kmtotal, ");
|
sql.append(" COALESCE(SUM(t.cantkmreal), 0) kmtotal, ");
|
||||||
sql.append(" COALESCE(SUM( ");
|
sql.append(" COALESCE(SUM(CASE WHEN a.empresa_id = c.empresacorrida_id THEN t.cantkmreal ELSE 0 END), 0) kmOnibusProprio, ");
|
||||||
sql.append(" CASE ");
|
sql.append(" COALESCE(SUM(CASE WHEN a.empresa_id <> c.empresacorrida_id THEN t.cantkmreal ELSE 0 END), 0) kmOnibusArrendados ");
|
||||||
sql.append(" WHEN a.empresa_id = c.empresacorrida_id ");
|
sql.append(" FROM corrida c ");
|
||||||
sql.append(" THEN t.cantkmreal ");
|
sql.append(" INNER JOIN corrida_tramo ct ON ct.corrida_id = c.corrida_id AND c.feccorrida = ct.feccorrida ");
|
||||||
sql.append(" ELSE 0 ");
|
sql.append(" INNER JOIN tramo t ON t.tramo_id = ct.tramo_id ");
|
||||||
sql.append(" END), 0) kmOnibusProprio, ");
|
sql.append(" INNER JOIN parada o ON o.parada_id = ct.origen_id ");
|
||||||
sql.append(" COALESCE(SUM( ");
|
sql.append(" INNER JOIN parada d ON d.parada_id = ct.destino_id ");
|
||||||
sql.append(" CASE ");
|
sql.append(" INNER JOIN autobus a ON a.autobus_id = ct.autobus_id ");
|
||||||
sql.append(" WHEN a.empresa_id <> c.empresacorrida_id ");
|
sql.append(" INNER JOIN empresa e ON e.empresa_id = a.empresa_id ");
|
||||||
sql.append(" THEN t.cantkmreal ");
|
sql.append(" WHERE c.activo <> 0 ");
|
||||||
sql.append(" ELSE 0 ");
|
sql.append(StringUtils.isBlank(empresa) ? "" : " AND e.empresa_id = :empresa_id ");
|
||||||
sql.append(" END), 0) kmOnibusArrendados ");
|
sql.append(" AND ct.activo = 1 ");
|
||||||
sql.append(" FROM ");
|
sql.append(" AND c.FECCORRIDA BETWEEN :fecInicio AND :fecFinal ");
|
||||||
sql.append(" corrida c ");
|
sql.append(" GROUP BY c.ruta_id, e.empresa_id, e.nombempresa) km2 ON r.ruta_id = km2.ruta_id ");
|
||||||
sql.append(" INNER JOIN ");
|
sql.append("INNER JOIN corrida c ON c.ruta_id = km2.ruta_id ");
|
||||||
sql.append(" corrida_tramo ct ");
|
sql.append("INNER JOIN corrida_tramo ct ON ct.corrida_id = c.corrida_id AND c.feccorrida = ct.feccorrida ");
|
||||||
sql.append(" ON ");
|
sql.append("INNER JOIN tramo t ON t.tramo_id = ct.tramo_id ");
|
||||||
sql.append(" ct.corrida_id = c.corrida_id ");
|
sql.append("INNER JOIN parada o ON o.parada_id = ct.origen_id ");
|
||||||
sql.append(" AND c.feccorrida = ct.feccorrida ");
|
sql.append("INNER JOIN parada d ON d.parada_id = ct.destino_id ");
|
||||||
sql.append(" INNER JOIN ");
|
sql.append("INNER JOIN autobus a ON a.autobus_id = ct.autobus_id ");
|
||||||
sql.append(" tramo t ");
|
sql.append("INNER JOIN empresa e ON e.empresa_id = a.empresa_id ");
|
||||||
sql.append(" ON ");
|
sql.append("LEFT JOIN boleto b ON b.corrida_id = c.corrida_id AND b.feccorrida = c.feccorrida ");
|
||||||
sql.append(" t.tramo_id = ct.tramo_id ");
|
sql.append("LEFT OUTER JOIN categoria cat ON cat.categoria_id = b.categoria_id ");
|
||||||
sql.append(" INNER JOIN ");
|
|
||||||
sql.append(" parada o ");
|
|
||||||
sql.append(" ON ");
|
|
||||||
sql.append(" o.parada_id = ct.origen_id ");
|
|
||||||
sql.append(" INNER JOIN ");
|
|
||||||
sql.append(" parada d ");
|
|
||||||
sql.append(" ON ");
|
|
||||||
sql.append(" d.parada_id = ct.destino_id ");
|
|
||||||
sql.append(" INNER JOIN ");
|
|
||||||
sql.append(" autobus a ");
|
|
||||||
sql.append(" ON ");
|
|
||||||
sql.append(" a.autobus_id = ct.autobus_id ");
|
|
||||||
sql.append(" INNER JOIN ");
|
|
||||||
sql.append(" empresa e ");
|
|
||||||
sql.append(" ON ");
|
|
||||||
sql.append(" e.empresa_id = a.empresa_id ");
|
|
||||||
sql.append("WHERE c.activo <> 0 ");
|
sql.append("WHERE c.activo <> 0 ");
|
||||||
sql.append("AND e.empresa_id = 1 ");
|
sql.append("AND e.empresa_id = 1 ");
|
||||||
sql.append("AND ct.activo = 1 ");
|
sql.append("AND ct.activo = 1 ");
|
||||||
sql.append(" AND c.feccorrida BETWEEN :fecInicio AND :fecFinal ");
|
sql.append("AND c.FECCORRIDA BETWEEN :fecInicio AND :fecFinal ");
|
||||||
sql.append(" AND ct.feccorrida BETWEEN :fecInicio AND :fecFinal ");
|
sql.append("GROUP BY km2.empresa_id, km2.nombempresa, r.ruta_id, r.descruta, km2.kmtotal, km2.kmonibusproprio, km2.kmonibusarrendados");
|
||||||
sql.append(" GROUP BY ");
|
|
||||||
sql.append(" c.ruta_id, ");
|
|
||||||
sql.append(" c.EMPRESACORRIDA_ID ) km2 ");
|
|
||||||
sql.append("ON (km2.ruta_id = r.ruta_id AND km2.empresa_id = e.empresa_id) ");
|
|
||||||
sql.append("WHERE c1.activo <> 0 ");
|
|
||||||
sql.append("AND ct.activo <> 0 ");
|
|
||||||
sql.append("AND a.activo <> 0 ");
|
|
||||||
sql.append("AND t1.activo <> 0 ");
|
|
||||||
sql.append("AND c1.feccorrida BETWEEN :fecInicio AND :fecFinal ");
|
|
||||||
sql.append(StringUtils.isBlank(empresa) ? "" : " AND e.empresa_id = :empresa_id ");
|
|
||||||
sql.append("GROUP BY ");
|
|
||||||
sql.append(" c1.ruta_id, ");
|
|
||||||
sql.append(" c1.EMPRESACORRIDA_ID, ");
|
|
||||||
sql.append(" r.descruta, ");
|
|
||||||
sql.append(" e.nombempresa, ");
|
|
||||||
sql.append(" km2.kmtotal, ");
|
|
||||||
sql.append(" km2.kmonibusproprio, ");
|
|
||||||
sql.append(" km2.kmonibusarrendados ");
|
|
||||||
sql.append("ORDER BY ");
|
|
||||||
sql.append(" nombempresa, ");
|
|
||||||
sql.append(" linea");
|
|
||||||
|
|
||||||
return sql.toString();
|
return sql.toString();
|
||||||
}
|
}
|
||||||
|
|
|
@ -42,8 +42,6 @@ public class RelatorioEmpresaOnibus extends Relatorio {
|
||||||
|
|
||||||
String sql = getSql(empresa, autobus);
|
String sql = getSql(empresa, autobus);
|
||||||
|
|
||||||
System.out.println(sql);
|
|
||||||
|
|
||||||
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
|
SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy hh:mm:ss");
|
||||||
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
|
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
|
||||||
stmt.setTimestamp("fecInicio", new java.sql.Timestamp(sdf.parse(fecInicio).getTime()));
|
stmt.setTimestamp("fecInicio", new java.sql.Timestamp(sdf.parse(fecInicio).getTime()));
|
||||||
|
|
Loading…
Reference in New Issue