From 706fd8407e6bfaa1e2526e7f1359dc1df4571ef0 Mon Sep 17 00:00:00 2001 From: "alexandre.lima" Date: Fri, 14 Jul 2017 19:10:36 +0000 Subject: [PATCH] Fixes Bug #0009192 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@71393 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/TarifaOficialServiceImpl.java | 51 ++++++++++++++++--- 1 file changed, 44 insertions(+), 7 deletions(-) diff --git a/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java index de0d4a609..388ef313b 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java @@ -9,6 +9,7 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import com.rjconsultores.ventaboletos.constantes.TipoSeguro; import com.rjconsultores.ventaboletos.dao.OrgaoConcedenteDAO; import com.rjconsultores.ventaboletos.dao.SeguroKmDAO; import com.rjconsultores.ventaboletos.dao.SeguroTarifaDAO; @@ -50,9 +51,9 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Override @Transactional - public void copiarParaTarifa(VigenciaTarifa vigenciaTarifa, Boolean calculaPegagio, Boolean calculaTarifa, Boolean calculaTaxaEmbarque, Boolean calculaSeguro,Empresa empresa, OrgaoConcedente orgaoConcedente) { + public void copiarParaTarifa(VigenciaTarifa vigenciaTarifa, Boolean calculaPegagio, Boolean calculaTarifa, Boolean calculaTaxaEmbarque, Boolean calculaSeguro, Boolean calculaTPP,Empresa empresa, OrgaoConcedente orgaoConcedente) { tarifaOficialDAO.copiarParaTarifa(vigenciaTarifa, UsuarioLogado.getUsuarioLogado().getUsuarioId(), - calculaPegagio, calculaTarifa, calculaTaxaEmbarque, calculaSeguro, empresa, orgaoConcedente); + calculaPegagio, calculaTarifa, calculaTaxaEmbarque, calculaSeguro, calculaTPP, empresa, orgaoConcedente); } @Override @@ -143,10 +144,14 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Override @Transactional(rollbackFor = BusinessException.class) - public void atualizarSeguroPorKm(Integer rutaId, Integer orgaoId) throws BusinessException { - - tarifaOficialDAO.atualizarSeguroPorKm(rutaId, orgaoId, UsuarioLogado.getUsuarioLogado().getUsuarioId()); + public void atualizarSeguroPorKm(Integer rutaId, Integer orgaoId, TipoSeguro tipoSeguro) throws BusinessException { + tarifaOficialDAO.atualizarSeguroPorKm(rutaId, orgaoId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), tipoSeguro); + } + @Override + @Transactional(rollbackFor = BusinessException.class) + public void atualizarSeguroPorKmTPP(Integer rutaId, Integer orgaoId, TipoSeguro tipoSeguro) throws BusinessException { + tarifaOficialDAO.atualizarPrecioPorTPP(rutaId, orgaoId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), tipoSeguro); } @Override @@ -157,7 +162,7 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Override @Transactional(rollbackFor = BusinessException.class) - public void atualizarSeguro(List lsRuta, Integer orgaoId) throws BusinessException { + public void atualizarSeguro(List lsRuta, Integer orgaoId, TipoSeguro tipoSeguro) throws BusinessException { List lsOrgaoId = new ArrayList(); @@ -180,7 +185,7 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { //O seguro por km é preferencial em relação ao por tarifa. for (Integer orgaoConcedenteId : lsOrgaoId) { if (seguroKmDAO.existe(orgaoConcedenteId)) { - atualizarSeguroPorKm(rutaId, orgaoConcedenteId); + atualizarSeguroPorKm(rutaId, orgaoConcedenteId, tipoSeguro); } else if (seguroTarifaDAO.existe(orgaoConcedenteId)) { atualizarSeguroPorTarifa(rutaId, orgaoConcedenteId); } @@ -188,6 +193,38 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { x--; }while(x > 0); } + + @Override + @Transactional(rollbackFor = BusinessException.class) + public void atualizarSeguroTPP(List lsRuta, Integer orgaoId, TipoSeguro tipoSeguro) throws BusinessException { + + List lsOrgaoId = new ArrayList(); + + if (orgaoId == null) { + lsOrgaoId.addAll(orgaoConcedenteDAO.obtenerTodosIds()); + } else { + lsOrgaoId.add(orgaoId); + } + + int x = 0; + if(lsRuta != null && !lsRuta.isEmpty()){ + x = lsRuta.size(); + } + + do{ + Integer rutaId = null; + if(lsRuta != null && !lsRuta.isEmpty()){ + rutaId = lsRuta.get(x-1).getRutaId(); + } + //O seguro por km é preferencial em relação ao por tarifa. + for (Integer orgaoConcedenteId : lsOrgaoId) { + if (seguroKmDAO.existe(orgaoConcedenteId)) { + atualizarSeguroPorKmTPP(rutaId, orgaoConcedenteId, tipoSeguro); + } + } + x--; + }while(x > 0); + } @Override @Transactional