diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEmpresaCorrida.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEmpresaCorrida.java index 1a54954f9..71d98b06e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEmpresaCorrida.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioEmpresaCorrida.java @@ -85,8 +85,8 @@ public class RelatorioEmpresaCorrida extends Relatorio { StringBuilder sql = new StringBuilder(); sql.append("SELECT "); - sql.append(" km2.empresa_id, "); - sql.append(" km2.nombempresa, "); + sql.append(" e.empresa_id, "); + sql.append(" e.nombempresa, "); sql.append(" r.ruta_id, "); sql.append(" r.descruta AS linea, "); 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, "); @@ -97,11 +97,12 @@ public class RelatorioEmpresaCorrida extends Relatorio { sql.append(" COALESCE(km2.kmonibusarrendados, 0) kmOnibusArrendados "); sql.append("FROM ruta r "); sql.append("INNER JOIN ruta_empresa re ON re.ruta_id = r.ruta_id "); + sql.append("INNER JOIN empresa e ON re.empresa_id = e.empresa_id "); sql.append("INNER JOIN "); - sql.append(" (SELECT c.ruta_id ruta_id, e.empresa_id empresa_id, e.nombempresa nombempresa, "); + sql.append(" (SELECT c.ruta_id ruta_id, "); sql.append(" COALESCE(SUM(t.cantkmreal), 0) kmtotal, "); sql.append(" COALESCE(SUM(CASE WHEN a.empresa_id = c.empresacorrida_id THEN t.cantkmreal ELSE 0 END), 0) kmOnibusProprio, "); - sql.append(" COALESCE(SUM(CASE WHEN a.empresa_id <> c.empresacorrida_id THEN t.cantkmreal ELSE 0 END), 0) kmOnibusArrendados "); + sql.append(" COALESCE(SUM( CASE WHEN a.empresa_id <> c.empresacorrida_id THEN t.cantkmreal ELSE 0 END), 0) kmOnibusArrendados "); sql.append(" FROM corrida c "); sql.append(" INNER JOIN corrida_tramo ct ON ct.corrida_id = c.corrida_id AND c.feccorrida = ct.feccorrida "); sql.append(" INNER JOIN tramo t ON t.tramo_id = ct.tramo_id "); @@ -111,10 +112,9 @@ public class RelatorioEmpresaCorrida extends Relatorio { sql.append(" INNER JOIN empresa e ON e.empresa_id = a.empresa_id "); sql.append(" WHERE c.activo <> 0 "); sql.append(" AND ct.activo = 1 "); - sql.append(StringUtils.isBlank(empresa) ? "" : "AND e.empresa_id = :empresa_id "); + sql.append(StringUtils.isBlank(empresa) ? "" : "AND c.empresacorrida_id = :empresa_id "); sql.append(" AND c.FECCORRIDA BETWEEN :fecInicio AND :fecFinal "); - sql.append(" GROUP BY c.ruta_id, e.empresa_id, e.nombempresa) km2 "); - sql.append("ON r.ruta_id = km2.ruta_id AND re.empresa_id = km2.empresa_id "); + sql.append(" GROUP BY c.ruta_id) km2 ON r.ruta_id = km2.ruta_id "); sql.append("INNER JOIN corrida c ON c.ruta_id = re.ruta_id "); sql.append("LEFT JOIN boleto b ON b.corrida_id = c.corrida_id AND b.feccorrida = c.feccorrida "); sql.append("LEFT OUTER JOIN categoria cat ON cat.categoria_id = b.categoria_id "); @@ -123,13 +123,14 @@ public class RelatorioEmpresaCorrida extends Relatorio { sql.append("AND c.ruta_id = km2.ruta_id "); sql.append("AND b.FECCORRIDA BETWEEN :fecInicio AND :fecFinal "); sql.append("GROUP BY "); - sql.append(" km2.empresa_id, "); - sql.append(" km2.nombempresa, "); + sql.append(" e.empresa_id, "); + sql.append(" e.nombempresa, "); sql.append(" r.ruta_id, "); sql.append(" r.descruta, "); sql.append(" km2.kmtotal, "); sql.append(" km2.kmonibusproprio, "); sql.append(" km2.kmonibusarrendados "); + sql.append("ORDER BY r.descruta "); return sql.toString(); }