RLH - Homologação de Itens

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@30477 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2013-09-02 18:36:51 +00:00
parent 14637a3a75
commit f08e654c03
4 changed files with 52 additions and 32 deletions

View File

@ -15,6 +15,7 @@ import com.rjconsultores.ventaboletos.entidad.Corrida;
import com.rjconsultores.ventaboletos.entidad.Empresa;
import com.rjconsultores.ventaboletos.entidad.GrupoRuta;
import com.rjconsultores.ventaboletos.entidad.Ruta;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.ProcessadorParametros;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioLinhasHorarioBean;
@ -27,9 +28,9 @@ public class RelatorioLinhasHorario extends Relatorio {
public RelatorioLinhasHorario(Map<String, Object> parametros, Connection conexao) throws Exception {
super(parametros, conexao);
this.setProcessadorParametros(new ProcessadorParametros(this) {
this.setCustomDataSource(new DataSource(this) {
@Override
public void processaParametros() throws Exception {
public void initDados() throws Exception {
Connection conexao = this.relatorio.getConexao();
@ -75,6 +76,8 @@ public class RelatorioLinhasHorario extends Relatorio {
Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID");
String sql = getSql(lsNumLinha, lsNumServico, empresa, tipoServico, grupoRuta);
System.out.println(sql);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = null;
@ -146,6 +149,7 @@ public class RelatorioLinhasHorario extends Relatorio {
horarioBean.setOrigem((String) rset.getObject("ORIGEM"));
horarioBean.setDestino((String) rset.getObject("DESTINO"));
horarioBean.setSomaExtensaoTrecho((BigDecimal) rset.getObject("EXTENSAO_TRECHO"));
horarioBean = trecho(horarioBean);
horarioBean = calcTotal(horarioBean);
@ -211,13 +215,13 @@ public class RelatorioLinhasHorario extends Relatorio {
parametros.put("TOTAL_KM_RODADO", totalKmRodado);
parametros.put("TOTAL_ABSOLUTO", totalAbsoluto);
parametros.put("TOTAL_EQUIVALENTE", totalEquivalente);
parametros.put("MEDIA_MPA", mediaMPA.divide(qtdeRegistros, RoundingMode.HALF_EVEN));
parametros.put("MEDIA_MPE", mediaMPE.divide(qtdeRegistros, RoundingMode.HALF_EVEN));
parametros.put("MEDIA_RS_POR_KM", mediaRsPorKm.divide(qtdeRegistros, RoundingMode.HALF_EVEN));
parametros.put("MEDIA_MPA", mediaMPA.divide(qtdeRegistros, 2, RoundingMode.HALF_EVEN));
parametros.put("MEDIA_MPE", mediaMPE.divide(qtdeRegistros, 2, RoundingMode.HALF_EVEN));
parametros.put("MEDIA_RS_POR_KM", mediaRsPorKm.divide(qtdeRegistros, 2, RoundingMode.HALF_EVEN));
parametros.put("TOTAL_EQ", totalEQ);
parametros.put("TOTAL_TX_EMBARQUE", totalTxEmbarque);
parametros.put("TOTAL_PEDAGIO", totalPedagio);
parametros.put("MEDIA_RS_POR_VIAGEM", mediaRSPorViagem.divide(qtdeRegistros, RoundingMode.HALF_EVEN));
parametros.put("MEDIA_RS_POR_VIAGEM", mediaRSPorViagem.divide(qtdeRegistros, 2, RoundingMode.HALF_EVEN));
parametros.put("TOTAL_PAX_KM_OFERTADO", totalPaxKMOfertado);
parametros.put("TOTAL_PAX_KM_TRANSPORTADO", totalPaxKMTransportado);
parametros.put("TOTAL_IAP", totalIAP);
@ -253,7 +257,7 @@ public class RelatorioLinhasHorario extends Relatorio {
private RelatorioLinhasHorarioBean calcMediaReceitaTotal(RelatorioLinhasHorarioBean horarioBean) {
BigDecimal mediaTotal = horarioBean.getPassagens().add(horarioBean.getSeguro());
mediaTotal = mediaTotal.add(horarioBean.getBagagens());
mediaTotal = mediaTotal.divide(new BigDecimal(3), RoundingMode.CEILING);
mediaTotal = mediaTotal.divide(new BigDecimal(3), 2, RoundingMode.HALF_EVEN);
horarioBean.setMediaReceitaViagem(mediaTotal);
return horarioBean;
}
@ -273,13 +277,11 @@ public class RelatorioLinhasHorario extends Relatorio {
private RelatorioLinhasHorarioBean calcEquivalente(RelatorioLinhasHorarioBean horarioBean) {
BigDecimal equivalente = new BigDecimal(0);
try {
equivalente = horarioBean.getExtensao().divide(horarioBean.getExtensao(), RoundingMode.CEILING);
equivalente = equivalente.multiply(horarioBean.getAbsol());
equivalente = horarioBean.getSomaExtensaoTrecho().divide(horarioBean.getExtensao(), 2, RoundingMode.HALF_EVEN);
} catch (ArithmeticException e) {
equivalente = new BigDecimal(0);
equivalente = BigDecimal.ZERO;
} catch (NullPointerException nex) {
equivalente = new BigDecimal(0);
equivalente = BigDecimal.ZERO;
} catch (Exception ex) {
ex.printStackTrace();
}
@ -291,11 +293,11 @@ public class RelatorioLinhasHorario extends Relatorio {
private RelatorioLinhasHorarioBean calcMpa(RelatorioLinhasHorarioBean horarioBean) {
BigDecimal mpa = new BigDecimal(0);
try {
mpa = horarioBean.getAbsol().divide(horarioBean.getTotalViagem(), RoundingMode.CEILING);
mpa = horarioBean.getAbsol().divide(horarioBean.getTotalViagem(), 2, RoundingMode.HALF_EVEN);
} catch (ArithmeticException e) {
mpa = new BigDecimal(0);
mpa = BigDecimal.ZERO;
} catch (NullPointerException nex) {
mpa = new BigDecimal(0);
mpa = BigDecimal.ZERO;
} catch (Exception ex) {
ex.printStackTrace();
}
@ -304,14 +306,13 @@ public class RelatorioLinhasHorario extends Relatorio {
}
private RelatorioLinhasHorarioBean calcMpe(RelatorioLinhasHorarioBean horarioBean) {
BigDecimal mpe = horarioBean.getEquivalente().divide(horarioBean.getTotalViagem(), RoundingMode.CEILING);
BigDecimal mpe = horarioBean.getEquivalente().divide(horarioBean.getTotalViagem(), 2, RoundingMode.HALF_EVEN);
horarioBean.setMpe(mpe);
return horarioBean;
}
private RelatorioLinhasHorarioBean calcRsKm(RelatorioLinhasHorarioBean horarioBean) {
BigDecimal rsKm = horarioBean.getTotal().divide(horarioBean.getTotalViagem(), RoundingMode.CEILING);
rsKm = rsKm.multiply(horarioBean.getExtensao());
BigDecimal rsKm = horarioBean.getTotal().divide(horarioBean.getKmRodado(), 2, RoundingMode.HALF_EVEN);
horarioBean.setRsKm(rsKm);
return horarioBean;
}
@ -319,11 +320,11 @@ public class RelatorioLinhasHorario extends Relatorio {
private RelatorioLinhasHorarioBean calcEq(RelatorioLinhasHorarioBean horarioBean) {
BigDecimal eq = null;
try {
eq = horarioBean.getMediaReceitaViagem().divide(horarioBean.getTarifa(), RoundingMode.CEILING);
eq = horarioBean.getMediaReceitaViagem().divide(horarioBean.getTarifa(), 2, RoundingMode.HALF_EVEN);
} catch (ArithmeticException e) {
eq = new BigDecimal(0);
eq = BigDecimal.ZERO;
} catch (NullPointerException nex) {
eq = new BigDecimal(0);
eq = BigDecimal.ZERO;
} catch (Exception ex) {
ex.printStackTrace();
}
@ -332,7 +333,7 @@ public class RelatorioLinhasHorario extends Relatorio {
}
private RelatorioLinhasHorarioBean calcRsViagem(RelatorioLinhasHorarioBean horarioBean) {
BigDecimal RSViagem = horarioBean.getTotal().divide(horarioBean.getTotalViagem(), RoundingMode.CEILING);
BigDecimal RSViagem = horarioBean.getTotal().divide(horarioBean.getTotalViagem(), 2, RoundingMode.HALF_EVEN);
horarioBean.setRsViagem(RSViagem);
return horarioBean;
}
@ -352,12 +353,13 @@ public class RelatorioLinhasHorario extends Relatorio {
private RelatorioLinhasHorarioBean calcIap(RelatorioLinhasHorarioBean horarioBean) {
BigDecimal iap = null;
BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN);
try {
iap = horarioBean.getPaxKmTransportado().divide(horarioBean.getPaxKmOfertado(), 4, RoundingMode.HALF_EVEN);
iap = (horarioBean.getPaxKmTransportado().multiply(CENTO)).divide(horarioBean.getPaxKmOfertado(), 2, RoundingMode.HALF_EVEN);
} catch (ArithmeticException e) {
iap = new BigDecimal(0);
iap = BigDecimal.ZERO;
} catch (NullPointerException nex) {
iap = new BigDecimal(0);
iap = BigDecimal.ZERO;
} catch (Exception ex) {
ex.printStackTrace();
}
@ -367,14 +369,13 @@ public class RelatorioLinhasHorario extends Relatorio {
@Override
protected void processaParametros() throws Exception {
this.getProcessadorParametros().processaParametros();
}
private String getSql(ArrayList<Ruta> lsNumLinha, ArrayList<Corrida> lsNumServico, Empresa empresa, Integer tipoServico, GrupoRuta grupoRuta) {
StringBuffer sql = new StringBuffer();
sql.append(" SELECT R.RUTA_ID, ");
sql.append(" NVL(GR.DESCGRUPO, 'NÃO POSSUI GRUPO') AS GRUPO_RUTA, ");
sql.append(" NVL(GR.DESCGRUPO, 'Não Definido') AS GRUPO_RUTA, ");
sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORA, ");
sql.append(" C.CORRIDA_ID AS SERVICO, ");
sql.append(" R.INDSENTIDOIDA AS SENTIDO, ");
@ -384,6 +385,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" ORIGEM.CVEPARADA AS ORIGEM, ");
sql.append(" DESTINO.CVEPARADA AS DESTINO, ");
sql.append(" EXTENSAO, ");
sql.append(" SUM(NVL(CJ.NUMKMVIAJE, 0)) AS EXTENSAO_TRECHO, ");
sql.append(" SUM(NVL(EE.IMPINGRESO, 0)) AS BAGAGENS, ");
sql.append(" SUM(NVL(CJ.IMPORTESEGURO, 0)) AS SEGURO, ");
sql.append(" SUM(NVL(CJ.IMPORTETAXAEMBARQUE, 0)) AS TX_EMBARQUE, ");
@ -438,7 +440,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" AND B.MOTIVOCANCELACION_ID IS NULL ");
sql.append(" GROUP BY C.CORRIDA_ID) TB4, ");
sql.append(" CORRIDA C ");
sql.append(" LEFT JOIN CAJA CJ ");
sql.append(" LEFT JOIN BOLETO CJ ");
sql.append(" ON ( CJ.CORRIDA_ID = C.CORRIDA_ID ");
sql.append(" AND CJ.FECCORRIDA = C.FECCORRIDA ) ");
sql.append(" LEFT JOIN PARADA ORIGEM ");
@ -473,7 +475,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" ON ( TF.VIGENCIATARIFA_ID = VTF.VIGENCIATARIFA_ID ");
sql.append(" AND C.FECCORRIDA BETWEEN VTF.FECINICIOVIGENCIA AND ");
sql.append(" VTF.FECFINVIGENCIA ) ");
sql.append(" WHERE CJ.PRECIOBASE > 0 ");
sql.append(" WHERE CJ.INDSTATUSBOLETO != 'S' ");
sql.append(" AND CJ.MOTIVOCANCELACION_ID IS NULL ");
sql.append(" AND CJ.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL ");
sql.append(" AND TB1.RUTA_ID = C.RUTA_ID ");
@ -524,7 +526,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" AND DA.ACTIVO = 1 ");
sql.append(" AND CS.ACTIVO = 1 ");
sql.append(" GROUP BY R.RUTA_ID, ");
sql.append(" NVL(GR.DESCGRUPO, 'NÃO POSSUI GRUPO'), ");
sql.append(" NVL(GR.DESCGRUPO, 'Não Definido'), ");
sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI'), ");
sql.append(" C.CORRIDA_ID, ");
sql.append(" R.INDSENTIDOIDA, ");
@ -539,7 +541,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" CD.ESTADO_ID, ");
sql.append(" ORIGEM.CVEPARADA, ");
sql.append(" DESTINO.CVEPARADA ");
sql.append(" ORDER BY NVL(GR.DESCGRUPO, 'NÃO POSSUI GRUPO'), ");
sql.append(" ORDER BY NVL(GR.DESCGRUPO, 'Não Definido'), ");
sql.append(" C.CORRIDA_ID ");
return sql.toString();

View File

@ -1,5 +1,5 @@
<?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="AllSectionsNoDetail" columnWidth="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ae2cbb01-bc79-4d18-8206-3b59273fe793">
<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="802" leftMargin="20" rightMargin="20" topMargin="20" bottomMargin="20" uuid="ae2cbb01-bc79-4d18-8206-3b59273fe793">
<property name="ireport.zoom" value="2.0"/>
<property name="ireport.x" value="0"/>
<property name="ireport.y" value="0"/>
@ -1232,4 +1232,13 @@
</textField>
</band>
</summary>
<noData>
<band height="20">
<textField>
<reportElement uuid="3429e199-e682-4e28-b2ce-1bc9f2d031b2" x="0" y="0" width="803" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$R{msg.noData}]]></textFieldExpression>
</textField>
</band>
</noData>
</jasperReport>

View File

@ -40,6 +40,7 @@ public class RelatorioLinhasHorarioBean {
private BigDecimal pedagio;
private BigDecimal ordLinha;
private BigDecimal extraLinha;
private BigDecimal somaExtensaoTrecho;
public RelatorioLinhasHorarioBean() {
}
@ -345,4 +346,12 @@ public class RelatorioLinhasHorarioBean {
public void setExtraLinha(BigDecimal extraLinha) {
this.extraLinha = extraLinha;
}
public BigDecimal getSomaExtensaoTrecho() {
return somaExtensaoTrecho;
}
public void setSomaExtensaoTrecho(BigDecimal somaExtensaoTrecho) {
this.somaExtensaoTrecho = somaExtensaoTrecho;
}
}