fixes bug#21093

qua:
dev:Valdir

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@105062 d1611594-4594-4d17-8e1d-87c2c4800839
master
valdevir 2021-01-19 18:07:27 +00:00
parent eb68465227
commit 8eadbb56bc
3 changed files with 86 additions and 67 deletions

View File

@ -34,10 +34,40 @@ public class RelatorioAproveitamentoFinanceiro extends Relatorio {
Map<String, Object> parametros = this.relatorio.getParametros();
StringBuilder sql = new StringBuilder();
sql.append("select * from ( ");
sql.append(" select TB.*, ");
sql.append(" (SELECT ");
sql.append(" max (TF.PRECIO) ");
sql.append(" FROM ");
sql.append(" CORRIDA CR, ");
sql.append(" TRAMO TR, ");
sql.append(" RUTA_COMBINACION RC, ");
sql.append(" TARIFA TF, ");
sql.append(" VIGENCIA_TARIFA VT ");
sql.append(" WHERE ");
sql.append(" CR.CORRIDA_ID = TB.SERVICO ");
sql.append(" AND CR.FECCORRIDA BETWEEN :DATA_INICIAL and :DATA_FINAL ");
sql.append(" AND CR.RUTA_ID = TB.RUTAID ");
sql.append(" AND CR.RUTA_ID = RC.RUTA_ID AND RC.ACTIVO = 1 ");
sql.append(" AND RC.TRAMO_ID = TR.TRAMO_ID ");
sql.append(" AND TF.TRAMO_ID = TR.TRAMO_ID ");
sql.append(" AND TF.MARCA_ID = CR.MARCA_ID ");
sql.append(" AND TF.RUTA_ID = CR.RUTA_ID ");
sql.append(" AND TF.STATUSTARIFA = 'A' ");
sql.append(" AND CR.ACTIVO <> 0 ");
sql.append(" AND TF.ACTIVO = 1 ");
sql.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID ");
sql.append(" AND TR.DESTINO_ID = CR.DESTINO_ID ");
sql.append(" AND TF.VIGENCIATARIFA_ID = VT.VIGENCIATARIFA_ID ");
sql.append(" AND VT.ACTIVO = 1 ");
sql.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA ");
sql.append(" AND TF.CLASESERVICIO_ID = CR.CLASESERVICIO_ID ");
sql.append(" GROUP BY TF.PRECIO) TARIFA ");
sql.append(" from ");
sql.append(" ( ");
sql.append(" select * from ( ");
sql.append(" SELECT ");
sql.append(" r.DESCRUTA as linha, ");
sql.append(" r.ruta_id as rutaid, ");
sql.append(" count( c.caja_id) as passageiros, ");
sql.append(" sum( c.PRECIOPAGADO )as valor, ");
sql.append(" to_char( c.FECHORVENTA, 'D') as dia, ");
@ -47,8 +77,7 @@ public class RelatorioAproveitamentoFinanceiro extends Relatorio {
sql.append(" r.indsentidoida as sentido, ");
sql.append(" da.cantasientos as assentos, ");
sql.append(" TO_CHAR(co.fechorsalidaoriginal ,'HH24:mi') as horario, ");
sql.append(" c.CORRIDA_ID as servico, ");
sql.append(" max(c.preciobase) as tarifa ");
sql.append(" c.CORRIDA_ID as servico ");
sql.append(" FROM CAJA c ");
sql.append(" inner join corrida co ");
sql.append(" on c.CORRIDA_ID = co.CORRIDA_ID ");
@ -75,7 +104,7 @@ public class RelatorioAproveitamentoFinanceiro extends Relatorio {
sql.append(" and c.MOTIVOCANCELACION_ID is null ");
sql.append(" and c.INDSTATUSBOLETO = 'V' ");
sql.append(" GROUP by r.DESCRUTA, r.indsentidoida, da.cantasientos, ");
sql.append(" GROUP by r.DESCRUTA, r.ruta_id, r.indsentidoida, da.cantasientos, ");
sql.append(" to_char( c.FECHORVENTA, 'D'), TO_CHAR(co.fechorsalidaoriginal ,'HH24:mi'), ");
sql.append(" c.CORRIDA_ID ");
sql.append(" ORDER by r.DESCRUTA, r.indsentidoida desc, to_char( c.FECHORVENTA, 'D') ");
@ -87,6 +116,7 @@ public class RelatorioAproveitamentoFinanceiro extends Relatorio {
sql.append(" max(passageiros) tot ");
sql.append(" for dia in ('1', '2', '3', '4', '5', '6', '7') ");
sql.append(") ");
sql.append(") TB");
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql.toString());
@ -103,6 +133,7 @@ public class RelatorioAproveitamentoFinanceiro extends Relatorio {
Map<String, Object> dataResult = new HashMap<String, Object>();
dataResult.put("LINHA", rset.getString("linha"));
Integer linhaId = rset.getInt("rutaId");
dataResult.put("SENTIDO", rset.getString("sentido"));
dataResult.put("SERVICO", rset.getString("servico"));
dataResult.put("HORARIO", rset.getString("horario"));
@ -216,6 +247,7 @@ public class RelatorioAproveitamentoFinanceiro extends Relatorio {
}
private BigDecimal limpaNulo( BigDecimal val ) {
if( val == null ) {
return BigDecimal.ZERO;
@ -247,7 +279,7 @@ public class RelatorioAproveitamentoFinanceiro extends Relatorio {
BigDecimal fin = totReceita.divide(dividendo, 4, BigDecimal.ROUND_HALF_UP);
fin = fin.multiply(new BigDecimal(new Long(100L))).setScale(2);
return fin;
return fin !=null ? fin : BigDecimal.ZERO;
}else{
return BigDecimal.ZERO;
}

View File

@ -1,8 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="RelatorioAproveitamentoFinanceiro" pageWidth="873" pageHeight="842" whenNoDataType="NoDataSection" columnWidth="833" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="b92fb063-a827-4619-8a69-5c78e3afbb8c">
<property name="ireport.zoom" value="1.3636363636363682"/>
<property name="ireport.zoom" value="1.0"/>
<property name="net.sf.jasperreports.export.xls.exclude.origin.band.1" value="pageHeader"/>
<property name="ireport.x" value="441"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
<style name="textStyle" isDefault="true" fontSize="6" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false"/>
<style name="table">
@ -172,8 +172,8 @@
(
$V{totReceitaLinha}.divide(
$V{totDomReceitaLinha}.multiply($V{totDomTotLinha}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
@ -183,9 +183,9 @@
(
$V{totReceitaLinha}.divide(
$V{totSegReceitaLinha}.multiply($V{totSegTotLinha}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totTerFinLinha" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -194,9 +194,9 @@
(
$V{totReceitaLinha}.divide(
$V{totTerReceitaLinha}.multiply($V{totTerTotLinha}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totQuaFinLinha" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -205,9 +205,9 @@
(
$V{totReceitaLinha}.divide(
$V{totQuaReceitaLinha}.multiply($V{totQuaTotLinha}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totQuiFinLinha" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -216,9 +216,9 @@
(
$V{totReceitaLinha}.divide(
$V{totQuiReceitaLinha}.multiply($V{totQuiTotLinha}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totSexFinLinha" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -227,9 +227,9 @@
(
$V{totReceitaLinha}.divide(
$V{totSexReceitaLinha}.multiply($V{totSexTotLinha}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totSabFinLinha" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -238,9 +238,9 @@
(
$V{totReceitaLinha}.divide(
$V{totSabReceitaLinha}.multiply($V{totSabTotLinha}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totViagemGeral" class="java.math.BigDecimal" calculation="Sum">
@ -345,20 +345,20 @@
(
$V{totReceitaGeral}.divide(
$V{totDomReceitaGeral}.multiply($V{totDomTotGeral}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totSegFinGeral" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
<variableExpression><![CDATA[$V{totSegQtdeGeral}.intValue()==0?BigDecimal.ZERO:
<variableExpression><![CDATA[$V{totSegQtdeGeral}.intValue()==0 ? BigDecimal.ZERO:
($V{totSegReceitaGeral}.intValue()==0?BigDecimal.ZERO:
(
$V{totReceitaGeral}.divide(
$V{totSegReceitaGeral}.multiply($V{totSegTotGeral}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totTerFinGeral" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -368,8 +368,8 @@
$V{totReceitaGeral}.divide(
$V{totTerReceitaGeral}.multiply($V{totTerTotGeral}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totQuaFinGeral" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -378,9 +378,9 @@
(
$V{totReceitaGeral}.divide(
$V{totQuaReceitaGeral}.multiply($V{totQuaTotGeral}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totQuiFinGeral" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -389,9 +389,9 @@
(
$V{totReceitaGeral}.divide(
$V{totQuiReceitaGeral}.multiply($V{totQuiTotGeral}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
)]]></variableExpression>
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100)))
).setScale(2)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="totSexFinGeral" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
@ -400,8 +400,8 @@
(
$V{totReceitaGeral}.divide(
$V{totSexReceitaGeral}.multiply($V{totSexTotGeral}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100))).setScale(2)
)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
@ -411,24 +411,24 @@
(
$V{totReceitaGeral}.divide(
$V{totSabReceitaGeral}.multiply($V{totSabTotGeral}
), 2, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal("100"))
), 4, BigDecimal.ROUND_HALF_UP )
).multiply( new BigDecimal(new Integer(100))).setScale(2)
)]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="finMediaLinha" class="java.math.BigDecimal" resetType="Group" resetGroup="LINHA">
<variableExpression><![CDATA[$F{TOT_RECEITA}.intValue() > 0 ? ($F{TOT_RECEITA}.divide (
<variableExpression><![CDATA[$F{TARIFA}.intValue() > 0 && $F{TOT_RECEITA}.intValue() > 0 ? ($F{TOT_RECEITA}.divide (
$F{TARIFA}.multiply(
$F{VIAGENS}.multiply(
$F{ASSENTOS}
)
)
, 4, BigDecimal.ROUND_HALF_UP )
.multiply( new BigDecimal(new Integer(100)) )).setScale(2) : new BigDecimal(0)]]></variableExpression>
.multiply( new BigDecimal(new Integer(100)) )).setScale(2) : BigDecimal.ZERO;]]></variableExpression>
<initialValueExpression><![CDATA[BigDecimal.ZERO]]></initialValueExpression>
</variable>
<variable name="finMediaGeral" class="java.math.BigDecimal">
<variableExpression><![CDATA[$F{TOT_RECEITA}.intValue() > 0 ? ($F{TOT_RECEITA}.divide (
<variableExpression><![CDATA[$F{TARIFA}.intValue() > 0 && $F{TOT_RECEITA}.intValue() > 0 ? ($F{TOT_RECEITA}.divide (
$F{TARIFA}.multiply(
$F{VIAGENS}.multiply(
$F{ASSENTOS}
@ -1654,17 +1654,17 @@
<textFieldExpression><![CDATA[$V{totPassageiroGeral}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" pattern="###0.00" isBlankWhenNull="true">
<reportElement uuid="98031e93-a0ae-450e-b2ca-b3fb2e14023f" stretchType="RelativeToTallestObject" mode="Transparent" x="175" y="0" width="49" height="14" isPrintWhenDetailOverflows="true" forecolor="#000000" backcolor="#FFFFFF"/>
<reportElement uuid="9182878e-d5c2-487b-959e-5182bed49cc5" stretchType="RelativeToBandHeight" mode="Transparent" x="135" y="0" width="40" height="14" isPrintWhenDetailOverflows="true" forecolor="#000000" backcolor="#FFFFFF"/>
<box>
<topPen lineWidth="0.0"/>
<bottomPen lineWidth="0.0"/>
<rightPen lineWidth="0.0"/>
</box>
<textElement textAlignment="Center" verticalAlignment="Top" rotation="None" markup="none">
<font fontName="SansSerif" size="7" isBold="false" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
<textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none">
<font fontName="SansSerif" size="8" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$V{totReceitaGeral}]]></textFieldExpression>
<textFieldExpression><![CDATA[$V{totViagemGeral}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" pattern="###0.00" isBlankWhenNull="true">
<reportElement uuid="e9ce8d17-49cc-4ddd-800e-63898ee6fb1a" stretchType="RelativeToTallestObject" mode="Transparent" x="175" y="0" width="49" height="14" isPrintWhenDetailOverflows="true" forecolor="#000000" backcolor="#FFFFFF"/>
@ -1679,19 +1679,6 @@
</textElement>
<textFieldExpression><![CDATA[$V{totReceitaGeral}]]></textFieldExpression>
</textField>
<textField isStretchWithOverflow="true" pattern="###0.00" isBlankWhenNull="true">
<reportElement uuid="9182878e-d5c2-487b-959e-5182bed49cc5" stretchType="RelativeToBandHeight" mode="Transparent" x="135" y="0" width="40" height="14" isPrintWhenDetailOverflows="true" forecolor="#000000" backcolor="#FFFFFF"/>
<box>
<topPen lineWidth="0.0"/>
<bottomPen lineWidth="0.0"/>
<rightPen lineWidth="0.0"/>
</box>
<textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none">
<font fontName="SansSerif" size="8" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/>
<paragraph lineSpacing="Single"/>
</textElement>
<textFieldExpression><![CDATA[$V{totViagemGeral}]]></textFieldExpression>
</textField>
</band>
</lastPageFooter>
<noData>