fixes bug#20993

dev: Valvevir
qua:

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@104454 d1611594-4594-4d17-8e1d-87c2c4800839
master
fabio 2020-11-23 18:10:37 +00:00
parent b991bdc601
commit 66c4d7e156
1 changed files with 36 additions and 0 deletions

View File

@ -1,5 +1,6 @@
package com.rjconsultores.ventaboletos.rest.service;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;
@ -8,9 +9,15 @@ import org.apache.commons.collections.Predicate;
import org.springframework.stereotype.Service;
import com.rjconsultores.routing.ReadOnlyConnection;
import com.rjconsultores.ventaboletos.constantes.Constantes;
import com.rjconsultores.ventaboletos.dao.AliasServicoDAO;
import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO;
import com.rjconsultores.ventaboletos.dao.ParadaDAO;
import com.rjconsultores.ventaboletos.dao.TarifaMinimaDAO;
import com.rjconsultores.ventaboletos.dao.TramoDAO;
import com.rjconsultores.ventaboletos.dao.hibernate.ConstanteHibernateDAO;
import com.rjconsultores.ventaboletos.entidad.AliasServico;
import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento;
import com.rjconsultores.ventaboletos.rest.bean.ParamsSincronizarTramo;
import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO;
import com.rjconsultores.ventaboletos.vo.tramo.TramoTarifaVO;
@ -34,14 +41,43 @@ public class SincronizarTramoService {
@ReadOnlyConnection
public List<TramoVO> buscarListaTramosPorId(CorridaVO corridaVO) throws Exception {
TramoDAO tramoDAO = (TramoDAO)AppContext.getApplicationContext().getBean("tramoDAO");
ParadaDAO paradaDAO = (ParadaDAO)AppContext.getApplicationContext().getBean("paradaDAO");
TarifaMinimaDAO tarifaMinimaDAO = (TarifaMinimaDAO)AppContext.getApplicationContext().getBean("tarifaMinimaDAO");
AliasServicoDAO aliasServicoDAO = (AliasServicoDAO)AppContext.getApplicationContext().getBean("aliasServicoDAO");
CategoriaDescuentoDAO categoriaDescuentoDAO = (CategoriaDescuentoDAO)AppContext.getApplicationContext().getBean("categoriaDescuentoDAO");
ConstanteHibernateDAO constanteDAO = (ConstanteHibernateDAO)AppContext.getApplicationContext().getBean("constanteDAO");
List<TramoVO> listaTramoVO = tramoDAO.buscarListaPorIds(corridaVO.getListTramos(), corridaVO.getChaveCorrida() );
boolean isTarifaMinimaHabilitado = Boolean.getBoolean(constanteDAO.buscarPorNomeConstante("isTarifaMinimaHabilitado").getValorconstante());
CategoriaDescuento categoriaDescuento = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, corridaVO.getEmpresaId());
List<AliasServico> aliasLs = aliasServicoDAO.buscarPorRuta( corridaVO.getRutaId() );
final Integer corridaId = Integer.valueOf( corridaVO.getChaveCorrida().split(";")[0] );
Integer praca = null;
for (TramoVO vo : listaTramoVO) {
//caso valide que algum cliente use mais de uma praça no cadastro, passar a buscar praça a cada tramo
if( praca == null ) {
praca = paradaDAO.buscarPorId(vo.getOrigemId()).getCiudad().getPlaza().getPlazaId();
}
if(isTarifaMinimaHabilitado && Boolean.FALSE.equals( categoriaDescuento.getIndnaoaplicatarifaminima()) ) {
BigDecimal tarifaMinima = tarifaMinimaDAO.obtenerTarifaMinima(
corridaVO.getClaseServicioId(),
corridaVO.getMarcaId(),
vo.getOrigemId(),
vo.getDestinoId(),
praca,
vo.getMonedaId(),
corridaVO.getRutaId(),
Constantes.CATEGORIA_NORMAL);
if( tarifaMinima !=null && tarifaMinima.compareTo(vo.getValorTarifa()) > 0) {
vo.setValorTarifa(tarifaMinima);
}
}
if( aliasLs != null && !aliasLs.isEmpty() ) {
final Integer origemId = vo.getOrigemId();
final Integer destinoId = vo.getDestinoId();