Correção de Km na geração automática fix bug#AL-2496' (!61)

Reviewed-on: adm/ModelWeb#61
Reviewed-by: Valdir Cordeiro <valdir.cordeiro@totvs.com.br>
master
fabio 2023-05-31 11:41:26 +00:00
commit 1927b8b0e9
2 changed files with 10 additions and 13 deletions

View File

@ -3,7 +3,7 @@
<modelVersion>4.0.0</modelVersion> <modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId> <groupId>br.com.rjconsultores</groupId>
<artifactId>ModelWeb</artifactId> <artifactId>ModelWeb</artifactId>
<version>1.5.1</version> <version>1.5.2</version>
<distributionManagement> <distributionManagement>
<repository> <repository>
<id>rj-releases</id> <id>rj-releases</id>

View File

@ -73,7 +73,7 @@ public class TramoRutaServiceImpl implements TramoRutaService {
private TramoDAO tramoDAO; private TramoDAO tramoDAO;
/** /**
* Hace la validación de los datos del rutaTramoVO * Hace la validación de los datos del rutaTramoVO
* *
* @param rutaTramoVO * @param rutaTramoVO
* @throws BusinessException * @throws BusinessException
@ -149,7 +149,7 @@ public class TramoRutaServiceImpl implements TramoRutaService {
ruta.setFecmodif(new java.util.Date()); ruta.setFecmodif(new java.util.Date());
ruta.setPrefixo(rutaTramoVO.getPrefixo()); ruta.setPrefixo(rutaTramoVO.getPrefixo());
ruta.setNumRuta(rutaTramoVO.getNumRuta()); ruta.setNumRuta(rutaTramoVO.getNumRuta());
//valores de tributação para ecf //valores de tributação para ecf
ruta.setIndTribPedagio(Boolean.FALSE); ruta.setIndTribPedagio(Boolean.FALSE);
ruta.setIndTribTarifa(Boolean.TRUE); ruta.setIndTribTarifa(Boolean.TRUE);
ruta.setIndTribTaxaEmbarque(Boolean.FALSE); ruta.setIndTribTaxaEmbarque(Boolean.FALSE);
@ -346,19 +346,16 @@ public class TramoRutaServiceImpl implements TramoRutaService {
Via via = secuenciaInicial.getVia(); Via via = secuenciaInicial.getVia();
secuencia = criaSecuenciaRutaTramoCoeficienteVO(rutaTramoVO, lsSecuenciaCombinacionRutaTramoVO, secuencia, totalKmsReal, origen, destino, secuenciaInicial.getKmSaidaOrigen(), secuenciaInicial.getKmEntradaDestino(), totalTiempoRecorrido, via); secuencia = criaSecuenciaRutaTramoCoeficienteVO(rutaTramoVO, lsSecuenciaCombinacionRutaTramoVO, secuencia, totalKmsReal, origen, destino, secuenciaInicial.getKmSaidaOrigen(), secuenciaInicial.getKmEntradaDestino(), totalTiempoRecorrido, via);
totalKmsReal = totalKmsReal.subtract(secuenciaInicial.getKmEntradaDestino());
for (SecuenciaRutaTramoVO secuenciaInterna : listSecuenciaCalculada) { for (SecuenciaRutaTramoVO secuenciaInterna : listSecuenciaCalculada) {
destino = secuenciaInterna.getDestino(); destino = secuenciaInterna.getDestino();
totalKmsReal = totalKmsReal.add(secuenciaInterna.getKmReal()); totalKmsReal = totalKmsReal.add(secuenciaInterna.getKmReal());
totalKmsReal = totalKmsReal.add(secuenciaInterna.getKmEntradaDestino()); totalKmsReal = totalKmsReal.add(secuenciaInterna.getKmEntradaDestino());
totalKmsReal = totalKmsReal.add(secuenciaInterna.getKmSaidaOrigen());
totalTiempoRecorrido = totalTiempoRecorrido.sumar(secuenciaInterna.getTiempoRecorrido()); totalTiempoRecorrido = totalTiempoRecorrido.sumar(secuenciaInterna.getTiempoRecorrido());
secuencia = criaSecuenciaRutaTramoCoeficienteVO(rutaTramoVO, lsSecuenciaCombinacionRutaTramoVO, secuencia, totalKmsReal, origen, destino, secuenciaInicial.getKmSaidaOrigen(), secuenciaInterna.getKmEntradaDestino(), totalTiempoRecorrido, via); secuencia = criaSecuenciaRutaTramoCoeficienteVO(rutaTramoVO, lsSecuenciaCombinacionRutaTramoVO, secuencia, totalKmsReal, origen, destino, secuenciaInicial.getKmSaidaOrigen(), secuenciaInterna.getKmEntradaDestino(), totalTiempoRecorrido, via);
totalKmsReal = totalKmsReal.subtract(secuenciaInterna.getKmEntradaDestino());
} }
} }
return lsSecuenciaCombinacionRutaTramoVO; return lsSecuenciaCombinacionRutaTramoVO;
@ -466,14 +463,14 @@ public class TramoRutaServiceImpl implements TramoRutaService {
for (ParadaSecuencia secuenciaDestino : secuenciasDestino) { for (ParadaSecuencia secuenciaDestino : secuenciasDestino) {
//O processo não é realizado na ordem inversa (em que a sequencia da origem é maior que a sequencia de seus destinos), considerando que esse é o processo inversa a ida ou a volta. //O processo não é realizado na ordem inversa (em que a sequencia da origem é maior que a sequencia de seus destinos), considerando que esse é o processo inversa a ida ou a volta.
if (secuencia.getOrigem().getSecuencia() >= secuenciaDestino.getSecuencia()){ if (secuencia.getOrigem().getSecuencia() >= secuenciaDestino.getSecuencia()){
continue; continue;
} }
Parada destino = secuenciaDestino.getParada(); Parada destino = secuenciaDestino.getParada();
//A primeira seguencia sempre será a origem //A primeira seguencia sempre será a origem
//A segunda sequencia sempre recebe a km e o tempo da origem //A segunda sequencia sempre recebe a km e o tempo da origem
if (secuenciaDestino.getSecuencia() > 2) { if (secuenciaDestino.getSecuencia() > 2) {
tempoTotalOrigemDestino = calcularTempoTotalDestino(secuencia, secuenciaDestino.getSecuencia()); tempoTotalOrigemDestino = calcularTempoTotalDestino(secuencia, secuenciaDestino.getSecuencia());
@ -645,12 +642,12 @@ public class TramoRutaServiceImpl implements TramoRutaService {
HoraSistema horaSistemaDestino = destino.getTempoReal().isEmpty() ? new HoraSistema() : HoraSistema horaSistemaDestino = destino.getTempoReal().isEmpty() ? new HoraSistema() :
new HoraSistema(DateUtil.getDataTempoDecorrido(destino.getTempoReal())); new HoraSistema(DateUtil.getDataTempoDecorrido(destino.getTempoReal()));
//desconsidera o tempo para os destinos com sequencia inferior a origem, já que estes já foram calculados //desconsidera o tempo para os destinos com sequencia inferior a origem, já que estes já foram calculados
if (sequenciaOrigem.getOrigem().getSecuencia() > destino.getSecuencia()) { if (sequenciaOrigem.getOrigem().getSecuencia() > destino.getSecuencia()) {
continue; continue;
} }
//faz o calculo para a sequencia do destino para qual o tempo está sendo calculado //faz o calculo para a sequencia do destino para qual o tempo está sendo calculado
if (destino.getSecuencia() == numSeqAtual){ if (destino.getSecuencia() == numSeqAtual){
break; break;
} }
@ -669,12 +666,12 @@ public class TramoRutaServiceImpl implements TramoRutaService {
new BigDecimal(sequenciaOrigem.getKmReal()); new BigDecimal(sequenciaOrigem.getKmReal());
for (ParadaSecuencia destino: sequenciaOrigem.getDestinos()) { for (ParadaSecuencia destino: sequenciaOrigem.getDestinos()) {
//desconsidera a km para os destinos com sequencia inferior a origem, já que estes já foram calculados //desconsidera a km para os destinos com sequencia inferior a origem, já que estes já foram calculados
if (sequenciaOrigem.getOrigem().getSecuencia() > destino.getSecuencia()) { if (sequenciaOrigem.getOrigem().getSecuencia() > destino.getSecuencia()) {
continue; continue;
} }
//faz o calculo para a sequencia do destino para qual a km está sendo calculada //faz o calculo para a sequencia do destino para qual a km está sendo calculada
if (destino.getSecuencia() == numSeqAtual){ if (destino.getSecuencia() == numSeqAtual){
break; break;
} }