git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@29979 d1611594-4594-4d17-8e1d-87c2c4800839
parent
764358d42a
commit
e94fce6518
|
@ -31,14 +31,19 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
|
||||
String sql = getSQL(empresaIds, corridasIds, dataDe, dataAte, bilhetesGratuitos, trechosSemMovimento);
|
||||
|
||||
List<PesoOperacional> lsPesoOperacionalRelatorio = getPesoOperacional(corridasIds, dataDe, dataAte, bilhetesGratuitos);
|
||||
List<PesoOperacional> lsPesoOperacionalRelatorio = getPesoOperacional(corridasIds, dataDe, dataAte, bilhetesGratuitos, empresaIds, trechosSemMovimento);
|
||||
getParametros().put("lsPesoOperacionalRelatorio", lsPesoOperacionalRelatorio);
|
||||
getParametros().put("SQL", sql);
|
||||
}
|
||||
|
||||
private List<PesoOperacional> getPesoOperacional(String corridasIds, String dataDe, String dataAte,
|
||||
Boolean bilhetesGratuitos) throws SQLException {
|
||||
Boolean bilhetesGratuitos, String empresaIds, Boolean mostratTrechosSemMovimento) throws SQLException {
|
||||
StringBuilder sql = new StringBuilder();
|
||||
|
||||
if (mostratTrechosSemMovimento) {
|
||||
sql.append(" SELECT TRAMOS.*, NVL(SOMA.RECEITA, 0) RECEITA ");
|
||||
sql.append(" FROM ");
|
||||
sql.append(" ( ");
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" CA.CORRIDA_ID CORRIDA_ID, ");
|
||||
sql.append(" CA.FECCORRIDA FECCORRIDA, ");
|
||||
|
@ -62,6 +67,64 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" AND CA.CORRIDA_ID IN (").append(corridasIds).append(")");
|
||||
}
|
||||
sql.append(" AND CA.FECCORRIDA BETWEEN TO_DATE('").append(dataDe).append("','DD/MM/YYYY HH24:MI:SS') AND TO_DATE('").append(dataAte).append("','DD/MM/YYYY HH24:MI:SS') ");
|
||||
sql.append(" AND CA.EMPRESACORRIDA_ID IN (").append(empresaIds).append(") ");
|
||||
sql.append(" GROUP BY ");
|
||||
sql.append(" CA.CORRIDA_ID, ");
|
||||
sql.append(" CA.FECCORRIDA, ");
|
||||
sql.append(" O.CVEPARADA, ");
|
||||
sql.append(" O.DESCPARADA, ");
|
||||
sql.append(" D.CVEPARADA, ");
|
||||
sql.append(" D.DESCPARADA ");
|
||||
sql.append(" ) SOMA ");
|
||||
sql.append(" RIGHT JOIN ");
|
||||
sql.append(" ( ");
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" CO.CORRIDA_ID CORRIDA_ID, ");
|
||||
sql.append(" CO.FECCORRIDA FECCORRIDA, ");
|
||||
sql.append(" O.CVEPARADA CVE_ORIGEM, ");
|
||||
sql.append(" O.DESCPARADA ORIGEM, ");
|
||||
sql.append(" D.CVEPARADA CVE_DESTINO, ");
|
||||
sql.append(" D.DESCPARADA DESTINO ");
|
||||
sql.append(" FROM CORRIDA CO ");
|
||||
sql.append(" INNER JOIN RUTA R ON R.RUTA_ID=CO.RUTA_ID ");
|
||||
sql.append(" INNER JOIN RUTA_COMBINACION RC ON RC.RUTA_ID=R.RUTA_ID ");
|
||||
sql.append(" INNER JOIN TRAMO TR ON TR.TRAMO_ID=RC.TRAMO_ID ");
|
||||
sql.append(" INNER JOIN PARADA O ON O.PARADA_ID = TR.ORIGEN_ID ");
|
||||
sql.append(" INNER JOIN PARADA D ON D.PARADA_ID = TR.DESTINO_ID ");
|
||||
sql.append(" WHERE R.ACTIVO = 1 AND RC.ACTIVO = 1 AND TR.ACTIVO = 1 ");
|
||||
if (!corridasIds.equals("Todas")) {
|
||||
sql.append(" AND CO.CORRIDA_ID IN (").append(corridasIds).append(")");
|
||||
}
|
||||
sql.append(" AND CO.FECCORRIDA BETWEEN TO_DATE('").append(dataDe).append("','DD/MM/YYYY HH24:MI:SS') AND TO_DATE('").append(dataAte).append("','DD/MM/YYYY HH24:MI:SS') ");
|
||||
sql.append(" AND CO.EMPRESACORRIDA_ID IN (").append(empresaIds).append(") ");
|
||||
sql.append(" )TRAMOS ");
|
||||
sql.append(" ON (TRAMOS.CORRIDA_ID=SOMA.CORRIDA_ID AND TRAMOS.FECCORRIDA=SOMA.FECCORRIDA AND TRAMOS.CVE_ORIGEM=SOMA.CVE_ORIGEM AND TRAMOS.CVE_DESTINO=SOMA.CVE_DESTINO) ");
|
||||
sql.append(" ORDER BY TRAMOS.CORRIDA_ID ");
|
||||
} else {
|
||||
sql.append(" SELECT ");
|
||||
sql.append(" CA.CORRIDA_ID CORRIDA_ID, ");
|
||||
sql.append(" CA.FECCORRIDA FECCORRIDA, ");
|
||||
sql.append(" O.CVEPARADA CVE_ORIGEM, ");
|
||||
sql.append(" O.DESCPARADA ORIGEM, ");
|
||||
sql.append(" D.CVEPARADA CVE_DESTINO, ");
|
||||
sql.append(" D.DESCPARADA DESTINO, ");
|
||||
sql.append(" SUM(CA.PRECIOPAGADO) RECEITA ");
|
||||
sql.append(" FROM CAJA CA ");
|
||||
sql.append(" INNER JOIN PARADA O ON O.PARADA_ID = CA.ORIGEN_ID ");
|
||||
sql.append(" INNER JOIN PARADA D ON D.PARADA_ID = CA.DESTINO_ID ");
|
||||
sql.append(" WHERE CA.ACTIVO = 1 ");
|
||||
sql.append(" AND ca.indreimpresion = 0 ");
|
||||
sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
|
||||
if (bilhetesGratuitos) {
|
||||
sql.append(" AND CA.PRECIOBASE >= 0 ");
|
||||
} else {
|
||||
sql.append(" AND CA.PRECIOBASE > 0 ");
|
||||
}
|
||||
if (!corridasIds.equals("Todas")) {
|
||||
sql.append(" AND CA.CORRIDA_ID IN (").append(corridasIds).append(")");
|
||||
}
|
||||
sql.append(" AND CA.FECCORRIDA BETWEEN TO_DATE('").append(dataDe).append("','DD/MM/YYYY HH24:MI:SS') AND TO_DATE('").append(dataAte).append("','DD/MM/YYYY HH24:MI:SS') ");
|
||||
sql.append(" AND CA.EMPRESACORRIDA_ID IN (").append(empresaIds).append(") ");
|
||||
sql.append(" GROUP BY ");
|
||||
sql.append(" CA.CORRIDA_ID, ");
|
||||
sql.append(" CA.FECCORRIDA, ");
|
||||
|
@ -70,6 +133,7 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" D.CVEPARADA, ");
|
||||
sql.append(" D.DESCPARADA ");
|
||||
sql.append(" ORDER BY CA.CORRIDA_ID ");
|
||||
}
|
||||
|
||||
Connection conexao = getConexao();
|
||||
|
||||
|
@ -159,7 +223,6 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
|
||||
PesoOperacional pesoOperacional = new PesoOperacional();
|
||||
pesoOperacional.setCorridaId(idCorrida);
|
||||
// pesoOperacional.setFecCorrida(id.getFeccorrida());
|
||||
pesoOperacional.setLocalidade(parada);
|
||||
pesoOperacional.setReceitaSaida(receitaSaida);
|
||||
pesoOperacional.setReceitaChegada(receitaChegada);
|
||||
|
@ -180,6 +243,15 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" SELECT ");
|
||||
sql.append(" resultado.*, ");
|
||||
sql.append(" SUM(TR.CANTKMREAL) KM_CORRIDA, ");
|
||||
sql.append(" ( ");
|
||||
sql.append(" SELECT MAX(DA.CANTASIENTOS) ");
|
||||
sql.append(" FROM CORRIDA CO ");
|
||||
sql.append(" INNER JOIN ROL_OPERATIVO ROL ON ROL.ROLOPERATIVO_ID=CO.ROLOPERATIVO_ID ");
|
||||
sql.append(" INNER JOIN DIAGRAMA_AUTOBUS DA ON DA.DIAGRAMAAUTOBUS_ID = ROL.DIAGRAMAAUTOBUS_ID ");
|
||||
sql.append(" WHERE CO.CORRIDA_ID=RESULTADO.CORRIDA_ID ");
|
||||
sql.append(" AND CO.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
|
||||
sql.append(" GROUP BY DA.DIAGRAMAAUTOBUS_ID ");
|
||||
sql.append(" ) DISPONIBILIDADE, ");
|
||||
sql.append(" ( SELECT COUNT(*) ");
|
||||
sql.append(" FROM caja ca ");
|
||||
sql.append(" INNER JOIN CORRIDA CO ON (CO.CORRIDA_ID = CA.CORRIDA_ID AND CO.FECCORRIDA = CA.FECCORRIDA) ");
|
||||
|
@ -189,7 +261,6 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" AND CA.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
|
||||
sql.append(" AND ca.indreimpresion = 0 ");
|
||||
sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
|
||||
sql.append(" AND CO.ACTIVO = 1 ");
|
||||
if (bilhetesGratuitos) {
|
||||
sql.append(" AND CA.PRECIOBASE >= 0 ");
|
||||
} else {
|
||||
|
@ -207,7 +278,6 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" AND CA.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
|
||||
sql.append(" AND ca.indreimpresion = 0 ");
|
||||
sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
|
||||
sql.append(" AND CO.ACTIVO = 1 ");
|
||||
if (bilhetesGratuitos) {
|
||||
sql.append(" AND CA.PRECIOBASE >= 0 ");
|
||||
} else {
|
||||
|
@ -237,7 +307,6 @@ public class RelatorioOrigemDestino extends Relatorio {
|
|||
sql.append(" INNER JOIN EMPRESA EM ON EM.EMPRESA_ID = CO.EMPRESACORRIDA_ID ");
|
||||
sql.append(" INNER JOIN RUTA RU ON RU.RUTA_ID = CO.RUTA_ID ");
|
||||
sql.append(" WHERE CA.ACTIVO = 1 ");
|
||||
sql.append(" AND CO.ACTIVO = 1 ");
|
||||
sql.append(" AND RU.ACTIVO = 1 ");
|
||||
sql.append(" AND EM.ACTIVO = 1 ");
|
||||
sql.append(" AND ORI.ACTIVO = 1 ");
|
||||
|
|
Binary file not shown.
|
@ -35,6 +35,7 @@
|
|||
<field name="PRECIOBASE" class="java.math.BigDecimal"/>
|
||||
<field name="ABSOLUTO_TOTAL_CORRIDA" class="java.lang.Integer"/>
|
||||
<field name="EQUIVALENTE_TOTAL_CORRIDA" class="java.math.BigDecimal"/>
|
||||
<field name="DISPONIBILIDADE" class="java.lang.Integer"/>
|
||||
<variable name="RECEITA_1" class="java.math.BigDecimal" resetType="Group" resetGroup="group_corrida_id" calculation="Sum">
|
||||
<variableExpression><![CDATA[$F{RECEITA}]]></variableExpression>
|
||||
</variable>
|
||||
|
@ -83,6 +84,9 @@
|
|||
<variable name="KM_CORRIDA_1" class="java.math.BigDecimal" resetType="Group" resetGroup="group_corrida_id" calculation="Sum">
|
||||
<variableExpression><![CDATA[$F{KM_CORRIDA}]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="PAX_OFERTADO" class="java.math.BigDecimal">
|
||||
<variableExpression><![CDATA[$F{KM_CORRIDA}.multiply(new BigDecimal($V{CORRIDA_ID_2}.toString())).multiply(new BigDecimal($F{DISPONIBILIDADE}.toString()))]]></variableExpression>
|
||||
</variable>
|
||||
<group name="group_corrida_id">
|
||||
<groupExpression><![CDATA[$F{CORRIDA_ID}]]></groupExpression>
|
||||
<groupHeader>
|
||||
|
@ -248,7 +252,7 @@
|
|||
</band>
|
||||
</groupHeader>
|
||||
<groupFooter>
|
||||
<band height="231">
|
||||
<band height="252">
|
||||
<textField pattern="#,##0.00">
|
||||
<reportElement uuid="47543add-d41f-4a2d-bd53-424b419773d2" x="226" y="1" width="60" height="20"/>
|
||||
<textElement textAlignment="Right">
|
||||
|
@ -397,45 +401,45 @@
|
|||
<textFieldExpression><![CDATA[$V{sum_equivalente}]]></textFieldExpression>
|
||||
</textField>
|
||||
<line>
|
||||
<reportElement uuid="a8bb0411-9a3c-49da-9ef4-b7d1bc20696e" positionType="Float" x="0" y="230" width="555" height="1"/>
|
||||
<reportElement uuid="a8bb0411-9a3c-49da-9ef4-b7d1bc20696e" positionType="Float" x="0" y="231" width="555" height="1"/>
|
||||
</line>
|
||||
<staticText>
|
||||
<reportElement uuid="d4f3ad63-ee47-44d6-9ffd-966cf144a7d1" x="0" y="170" width="140" height="20"/>
|
||||
<reportElement uuid="d4f3ad63-ee47-44d6-9ffd-966cf144a7d1" x="0" y="191" width="140" height="20"/>
|
||||
<textElement>
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<text><![CDATA[Localidade]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement uuid="4e986dd5-a716-4d02-a723-3e9fbed1d4fd" x="140" y="170" width="74" height="20"/>
|
||||
<reportElement uuid="4e986dd5-a716-4d02-a723-3e9fbed1d4fd" x="140" y="191" width="74" height="20"/>
|
||||
<textElement>
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<text><![CDATA[Rec. Saida]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement uuid="07c2b3bb-13ef-4862-95d6-da697714905e" x="214" y="170" width="74" height="20"/>
|
||||
<reportElement uuid="07c2b3bb-13ef-4862-95d6-da697714905e" x="214" y="191" width="74" height="20"/>
|
||||
<textElement>
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<text><![CDATA[Rec. Chegada]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement uuid="8930f2c6-9cbe-419a-9678-8d72dc141eed" x="288" y="170" width="74" height="20"/>
|
||||
<reportElement uuid="8930f2c6-9cbe-419a-9678-8d72dc141eed" x="288" y="191" width="74" height="20"/>
|
||||
<textElement>
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<text><![CDATA[Soma]]></text>
|
||||
</staticText>
|
||||
<staticText>
|
||||
<reportElement uuid="64d4208c-4752-4389-aa26-4ca6e97db6ac" x="362" y="170" width="74" height="20"/>
|
||||
<reportElement uuid="64d4208c-4752-4389-aa26-4ca6e97db6ac" x="362" y="191" width="74" height="20"/>
|
||||
<textElement>
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<text><![CDATA[Peso]]></text>
|
||||
</staticText>
|
||||
<componentElement>
|
||||
<reportElement uuid="fc473644-667d-480e-adf3-0b7abdc99aa5" x="0" y="190" width="436" height="20" isRemoveLineWhenBlank="true"/>
|
||||
<reportElement uuid="fc473644-667d-480e-adf3-0b7abdc99aa5" x="0" y="211" width="436" height="20" isRemoveLineWhenBlank="true"/>
|
||||
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
|
||||
<datasetRun subDataset="peso_operacional" uuid="cceb69bf-5b20-4d36-b039-25196730651a">
|
||||
<datasetParameter name="corrida_id_relatorio">
|
||||
|
@ -483,7 +487,7 @@
|
|||
</jr:list>
|
||||
</componentElement>
|
||||
<staticText>
|
||||
<reportElement uuid="f65284c0-c782-4168-b4be-867c1fbcdd79" x="0" y="150" width="140" height="20"/>
|
||||
<reportElement uuid="f65284c0-c782-4168-b4be-867c1fbcdd79" x="0" y="171" width="140" height="20"/>
|
||||
<textElement>
|
||||
<font size="11" isBold="true"/>
|
||||
</textElement>
|
||||
|
@ -500,9 +504,26 @@
|
|||
<textFieldExpression><![CDATA[$V{KM_CORRIDA_1}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField>
|
||||
<reportElement uuid="100f3e8f-adf0-4ef9-879f-40112d482e13" x="0" y="1" width="100" height="20"/>
|
||||
<reportElement uuid="aa398d64-4ed7-4b94-b687-c305fd57fc50" x="0" y="1" width="100" height="20"/>
|
||||
<textElement/>
|
||||
<textFieldExpression><![CDATA[$F{EQUIVALENTE_TOTAL_CORRIDA}]]></textFieldExpression>
|
||||
<textFieldExpression><![CDATA[$F{DISPONIBILIDADE}]]></textFieldExpression>
|
||||
</textField>
|
||||
<staticText>
|
||||
<reportElement uuid="214d1ffb-e86e-4d8c-a7a2-3138ac92f161" x="0" y="141" width="74" height="20"/>
|
||||
<textElement>
|
||||
<font isBold="true"/>
|
||||
</textElement>
|
||||
<text><![CDATA[Pax Ofertado:]]></text>
|
||||
</staticText>
|
||||
<textField pattern="#,##0.00">
|
||||
<reportElement uuid="5c8faa69-f13d-41c0-9ba4-46007cae9716" x="74" y="141" width="100" height="20"/>
|
||||
<textElement/>
|
||||
<textFieldExpression><![CDATA[$V{PAX_OFERTADO}]]></textFieldExpression>
|
||||
</textField>
|
||||
<textField pattern="#,##0.00">
|
||||
<reportElement uuid="f73cbb8b-ccfd-4145-8314-7f6da15129b8" x="294" y="121" width="100" height="20"/>
|
||||
<textElement/>
|
||||
<textFieldExpression><![CDATA[$V{sum_pax_km}.divide( $V{PAX_OFERTADO}, 2, 2 )]]></textFieldExpression>
|
||||
</textField>
|
||||
</band>
|
||||
</groupFooter>
|
||||
|
|
|
@ -98,7 +98,7 @@ public class RelatorioOrigemDestinoController extends MyGenericForwardComposer {
|
|||
if (corridaList.getData().length == 0) {
|
||||
try {
|
||||
Messagebox.show(Labels.getLabel("MSG.ningunRegistro"),
|
||||
Labels.getLabel("relatorioLinhaOperacionalController.window.title"),
|
||||
Labels.getLabel("relatorioOrigemDestinoController.window.title"),
|
||||
Messagebox.OK, Messagebox.INFORMATION);
|
||||
} catch (InterruptedException ex) {
|
||||
}
|
||||
|
@ -133,6 +133,12 @@ public class RelatorioOrigemDestinoController extends MyGenericForwardComposer {
|
|||
Date dataDe = datInicial.getValue();
|
||||
Date dataAte = datFinal.getValue();
|
||||
|
||||
Boolean trechoSemMovimento = chkTrechoSemMovimento.isChecked();
|
||||
if ((trechoSemMovimento) && (lsCorridasSelecionadas.isEmpty())) {
|
||||
Messagebox.show(Labels.getLabel("relatorioOrigemDestinoController.MSG.trechoSemMovimento"),
|
||||
Labels.getLabel("relatorioOrigemDestinoController.window.title"),
|
||||
Messagebox.OK, Messagebox.INFORMATION);
|
||||
} else {
|
||||
Map<String, Object> parametros = new HashMap<String, Object>();
|
||||
parametros.put("BILHETES_GRATUITOS", chkBilhetesGratuitos.isChecked());
|
||||
parametros.put("TRECHOS_SEM_MOVIMENTO", chkTrechoSemMovimento.isChecked());
|
||||
|
@ -179,4 +185,5 @@ public class RelatorioOrigemDestinoController extends MyGenericForwardComposer {
|
|||
openWindow("/component/reportView.zul",
|
||||
Labels.getLabel("relatorioOrigemDestinoController.window.title"), args, MODAL);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -4447,6 +4447,6 @@ relatorioOrigemDestinoController.descRuta.label = Linha
|
|||
relatorioOrigemDestinoController.MSG.selecionarCorridas = Selecione algum serviço para gerar o relatório.
|
||||
relatorioOrigemDestinoController.chkBilhetesGratuitos.value = Considerar bilhetes gratuitos
|
||||
relatorioOrigemDestinoController.chkTrechoSemMovimento.value = Exibir trechos sem movimento
|
||||
|
||||
relatorioOrigemDestinoController.MSG.trechoSemMovimento = Para exibir trechos sem movimento é necessário selecionar quais são os serviços desejados.
|
||||
|
||||
|
||||
|
|
Loading…
Reference in New Issue