fixes bug#22581
dev: Celio qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@108032 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
90ac42760e
commit
aafb615963
|
@ -1,6 +1,7 @@
|
|||
package com.rjconsultores.ventaboletos.relatorios.impl;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.math.MathContext;
|
||||
import java.math.RoundingMode;
|
||||
import java.sql.Connection;
|
||||
import java.sql.ResultSet;
|
||||
|
@ -31,6 +32,7 @@ public class RelatorioLinhasHorario extends Relatorio {
|
|||
private static Logger log = Logger.getLogger(RelatorioLinhasHorario.class);
|
||||
private List<RelatorioLinhasHorarioBean> lsDadosRelatorio;
|
||||
private static String CONSTANTE_GRATUIDADE_CRIANCA;
|
||||
private BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN);
|
||||
|
||||
public RelatorioLinhasHorario(Map<String, Object> parametros, Connection conexao) throws Exception {
|
||||
super(parametros, conexao);
|
||||
|
@ -295,111 +297,74 @@ public class RelatorioLinhasHorario extends Relatorio {
|
|||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcKmRodado(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal kmRodado = horarioBean.getTotalViagem().multiply(horarioBean.getExtensao());
|
||||
horarioBean.setKmRodado(kmRodado);
|
||||
horarioBean.setKmRodado( calculaMultiplicacao(horarioBean.getTotalViagem(), horarioBean.getExtensao()));
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcEquivalente(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal equivalente = new BigDecimal(0);
|
||||
try {
|
||||
equivalente = horarioBean.getSomaExtensaoTrecho().divide(horarioBean.getExtensao(), 2, RoundingMode.HALF_UP);
|
||||
} catch (ArithmeticException e) {
|
||||
equivalente = BigDecimal.ZERO;
|
||||
} catch (NullPointerException nex) {
|
||||
equivalente = BigDecimal.ZERO;
|
||||
} catch (Exception ex) {
|
||||
log.error("", ex);
|
||||
}
|
||||
horarioBean.setEquivalente(equivalente);
|
||||
|
||||
horarioBean.setEquivalente( calculaDivisao( horarioBean.getSomaExtensaoTrecho(), horarioBean.getExtensao() ) );
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcMpa(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal mpa = new BigDecimal(0);
|
||||
try {
|
||||
mpa = horarioBean.getAbsol().divide(horarioBean.getTotalViagem(), 2, 4);
|
||||
} catch (ArithmeticException e) {
|
||||
mpa = BigDecimal.ZERO;
|
||||
} catch (NullPointerException nex) {
|
||||
mpa = BigDecimal.ZERO;
|
||||
} catch (Exception ex) {
|
||||
log.error("", ex);
|
||||
}
|
||||
horarioBean.setMpa(mpa);
|
||||
horarioBean.setMpa( calculaDivisao( horarioBean.getAbsol(), horarioBean.getTotalViagem() ) );
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcMpe(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal mpe = horarioBean.getEquivalente().divide(horarioBean.getTotalViagem(), 2, 4);
|
||||
horarioBean.setMpe(mpe);
|
||||
horarioBean.setMpe( calculaDivisao( horarioBean.getEquivalente(), horarioBean.getTotalViagem() ));
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcRsKm(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal rsKm = horarioBean.getTotal().divide(horarioBean.getKmRodado(), 2, 4);
|
||||
horarioBean.setRsKm(rsKm);
|
||||
horarioBean.setRsKm( calculaDivisao( horarioBean.getTotal(), horarioBean.getKmRodado() ) );
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcEq(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal eq = null;
|
||||
try {
|
||||
eq = horarioBean.getMediaReceitaViagem().divide(horarioBean.getTarifa(), 2, 4);
|
||||
} catch (ArithmeticException e) {
|
||||
eq = BigDecimal.ZERO;
|
||||
} catch (NullPointerException nex) {
|
||||
eq = BigDecimal.ZERO;
|
||||
} catch (Exception ex) {
|
||||
log.error("", ex);
|
||||
}
|
||||
horarioBean.setEq(eq);
|
||||
horarioBean.setEq( calculaDivisao(horarioBean.getMediaReceitaViagem(), horarioBean.getTarifa()) );
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcRsViagem(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal RSViagem = horarioBean.getPassagens().divide(horarioBean.getTotalViagem(), 2, 4);
|
||||
horarioBean.setRsViagem(RSViagem);
|
||||
horarioBean.setRsViagem( calculaDivisao(horarioBean.getPassagens(), horarioBean.getTotalViagem()));
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcPaxKmOfertado(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal paxKmOfertado = horarioBean.getLot().multiply(horarioBean.getTotalViagem());
|
||||
paxKmOfertado = paxKmOfertado.multiply(horarioBean.getExtensao());
|
||||
horarioBean.setPaxKmOfertado(paxKmOfertado);
|
||||
BigDecimal paxKmOfertado = calculaMultiplicacao( horarioBean.getLot(), horarioBean.getTotalViagem());
|
||||
horarioBean.setPaxKmOfertado( calculaMultiplicacao( paxKmOfertado, horarioBean.getExtensao()) );
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private RelatorioLinhasHorarioBean calcIap(RelatorioLinhasHorarioBean horarioBean) {
|
||||
BigDecimal iap = null;
|
||||
BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN);
|
||||
try {
|
||||
iap = (horarioBean.getPaxKmTransportado().multiply(CENTO)).divide(horarioBean.getPaxKmOfertado(), 2, 4);
|
||||
} catch (ArithmeticException e) {
|
||||
iap = BigDecimal.ZERO;
|
||||
} catch (NullPointerException nex) {
|
||||
iap = BigDecimal.ZERO;
|
||||
} catch (Exception ex) {
|
||||
log.error("", ex);
|
||||
}
|
||||
horarioBean.setIap(iap);
|
||||
horarioBean.setIap( calculaDivisao(horarioBean.getPaxKmTransportado().multiply(CENTO), horarioBean.getPaxKmOfertado() ));
|
||||
return horarioBean;
|
||||
}
|
||||
|
||||
private BigDecimal calcTotalIap(BigDecimal totalPaxKMTransportado, BigDecimal totalPaxKMOfertado) {
|
||||
BigDecimal iap = null;
|
||||
BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN);
|
||||
return calculaMultiplicacao(totalPaxKMTransportado.multiply(CENTO), totalPaxKMOfertado);
|
||||
}
|
||||
|
||||
private BigDecimal calculaDivisao( BigDecimal valor1, BigDecimal valor2){
|
||||
BigDecimal resultado = BigDecimal.ZERO;
|
||||
try {
|
||||
iap = (totalPaxKMTransportado.multiply(CENTO)).divide(totalPaxKMOfertado, 2, 4);
|
||||
} catch (ArithmeticException e) {
|
||||
iap = BigDecimal.ZERO;
|
||||
} catch (NullPointerException nex) {
|
||||
iap = BigDecimal.ZERO;
|
||||
resultado = valor1.multiply(valor2);
|
||||
resultado.setScale(2, 4);
|
||||
} catch (Exception ex) {
|
||||
log.error("", ex);
|
||||
log.error("Erro ao calcular mutiplicacao no Relatorio de linhas por horario", ex);
|
||||
}
|
||||
return iap;
|
||||
return resultado;
|
||||
}
|
||||
|
||||
private BigDecimal calculaMultiplicacao( BigDecimal valor1, BigDecimal valor2){
|
||||
BigDecimal resultado = BigDecimal.ZERO;
|
||||
try {
|
||||
resultado = valor1.divide(valor2, 2, 4);
|
||||
} catch (Exception ex) {
|
||||
log.error("Erro ao calcular divisão no Relatorio de linhas por horario", ex);
|
||||
}
|
||||
return resultado;
|
||||
}
|
||||
|
||||
@Override
|
||||
|
|
Binary file not shown.
|
@ -1,7 +1,7 @@
|
|||
<?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="RelatorioLinhasHorario" pageWidth="842" pageHeight="595" orientation="Landscape" whenNoDataType="NoDataSection" columnWidth="822" leftMargin="10" rightMargin="10" topMargin="20" bottomMargin="20" uuid="ae2cbb01-bc79-4d18-8206-3b59273fe793">
|
||||
<property name="ireport.zoom" value="2.0526324729228285"/>
|
||||
<property name="ireport.x" value="468"/>
|
||||
<property name="ireport.x" value="448"/>
|
||||
<property name="ireport.y" value="112"/>
|
||||
<parameter name="NOMBEMPRESA" class="java.lang.String"/>
|
||||
<parameter name="DATA_INICIO" class="java.util.Date">
|
||||
|
@ -132,7 +132,7 @@
|
|||
<variableExpression><![CDATA[$F{rsViagem}]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="media_rsKm_group" class="java.math.BigDecimal" resetType="Group" resetGroup="groupRuta">
|
||||
<variableExpression><![CDATA[!BigDecimal.ZERO.equals($P{TOTAL_KM_RODADO}) ? $P{TOTAL_TOTAL}.divide( $P{TOTAL_KM_RODADO}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
<variableExpression><![CDATA[BigDecimal.ZERO.compareTo($P{TOTAL_KM_RODADO})!= 0 ? $P{TOTAL_TOTAL}.divide( $P{TOTAL_KM_RODADO}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="media_mpa_group" class="java.math.BigDecimal" resetType="Group" resetGroup="groupRuta">
|
||||
<variableExpression><![CDATA[$V{mpa_group}]]></variableExpression>
|
||||
|
@ -201,7 +201,7 @@
|
|||
<variableExpression><![CDATA[$F{rsViagem}]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="linha_media_rsKm_group" class="java.math.BigDecimal" resetType="Group" resetGroup="groupTipoLinha">
|
||||
<variableExpression><![CDATA[!BigDecimal.ZERO.equals($P{TOTAL_KM_RODADO}) ? $P{TOTAL_PASSAGENS}.divide( $P{TOTAL_KM_RODADO}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
<variableExpression><![CDATA[BigDecimal.ZERO.compareTo($P{TOTAL_KM_RODADO}) != 0 ? $P{TOTAL_PASSAGENS}.divide( $P{TOTAL_KM_RODADO}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="linha_media_mpa_group" class="java.math.BigDecimal" resetType="Group" resetGroup="groupTipoLinha" calculation="Sum">
|
||||
<variableExpression><![CDATA[$F{mpa}]]></variableExpression>
|
||||
|
@ -213,7 +213,7 @@
|
|||
<variableExpression><![CDATA[$V{pedagio_group}]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="TOTAL_RSKM" class="java.math.BigDecimal">
|
||||
<variableExpression><![CDATA[!BigDecimal.ZERO.equals($P{TOTAL_KM_RODADO}) ? $P{TOTAL_PASSAGENS}.divide( $P{TOTAL_KM_RODADO}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
<variableExpression><![CDATA[BigDecimal.ZERO.compareTo($P{TOTAL_KM_RODADO}) != 0 ? $P{TOTAL_PASSAGENS}.divide( $P{TOTAL_KM_RODADO}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="TOTAL_IAP" class="java.math.BigDecimal" calculation="Average">
|
||||
<variableExpression><![CDATA[$F{iap}]]></variableExpression>
|
||||
|
@ -231,11 +231,11 @@
|
|||
<variableExpression><![CDATA[$F{mpe}]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="media_group_rsKm" class="java.math.BigDecimal" resetType="Group" resetGroup="groupRuta">
|
||||
<variableExpression><![CDATA[!BigDecimal.ZERO.equals($V{kmRodado_group}) ? $V{total_group}.divide( $V{kmRodado_group}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
<variableExpression><![CDATA[BigDecimal.ZERO.compareTo($V{kmRodado_group}) != 0 ? $V{total_group}.divide( $V{kmRodado_group}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
</variable>
|
||||
<variable name="variable1" class="java.lang.String"/>
|
||||
<variable name="linha_media_group_rsKm" class="java.math.BigDecimal" resetType="Group" resetGroup="groupTipoLinha">
|
||||
<variableExpression><![CDATA[!BigDecimal.ZERO.equals($V{linha_kmRodado_group}) ? $V{linha_total_group}.divide( $V{linha_kmRodado_group}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
<variableExpression><![CDATA[BigDecimal.ZERO.compareTo($V{linha_kmRodado_group}) != 0 ? $V{linha_total_group}.divide( $V{linha_kmRodado_group}, 2, BigDecimal.ROUND_HALF_UP ) : BigDecimal.ZERO]]></variableExpression>
|
||||
</variable>
|
||||
<group name="groupTipoLinha">
|
||||
<groupExpression><![CDATA[$F{tipoLinha}]]></groupExpression>
|
||||
|
|
Loading…
Reference in New Issue