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