package com.rjconsultores.ventaboletos.service.impl; import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import com.rjconsultores.ventaboletos.dao.OrgaoConcedenteDAO; import com.rjconsultores.ventaboletos.dao.SeguroKmDAO; import com.rjconsultores.ventaboletos.dao.SeguroTarifaDAO; import com.rjconsultores.ventaboletos.dao.TarifaOficialDAO; import com.rjconsultores.ventaboletos.entidad.TarifaOficial; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.service.TarifaOficialService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @Service("tarifaOficialService") public class TarifaOficialServiceImpl implements TarifaOficialService { @Autowired private TarifaOficialDAO tarifaOficialDAO; @Autowired private SeguroKmDAO seguroKmDAO; @Autowired private SeguroTarifaDAO seguroTarifaDAO; @Autowired private OrgaoConcedenteDAO orgaoConcedenteDAO; @Override @Transactional public Integer gerarTarifaPorCoeficiente(Integer rutaId, Integer orgaoConcedenteId, Integer empresaId) { return tarifaOficialDAO.gerarTarifaPorCoeficiente(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedenteId, empresaId); } @Override @Transactional public Integer atualizarTarifaPorCoeficiente(Integer rutaId, Integer orgaoConcedenteId) { return tarifaOficialDAO.atualizarTarifaCoeficiente(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedenteId); } @Override @Transactional public void copiarParaTarifa(VigenciaTarifa vigenciaTarifa, Boolean calculaPegagio, Boolean calculaTarifa, Boolean calculaTaxaEmbarque) { tarifaOficialDAO.copiarParaTarifa(vigenciaTarifa, UsuarioLogado.getUsuarioLogado().getUsuarioId(), calculaPegagio, calculaTarifa, calculaTaxaEmbarque); } @Override @Transactional(rollbackFor = BusinessException.class) public void gerarAtualizarTarifaPorCoeficiente(Integer rudaId, Integer orgaoConcedenteId, Integer empresaId) throws BusinessException { // Limpando a tabela de TARIFA_OFICIAL tarifaOficialDAO.limparTarifasOficiais(); //Gerando as tarifas gerarTarifaPorCoeficiente(rudaId, orgaoConcedenteId, empresaId); } @Override @Transactional public void atualizarTaxaEmbarque(Integer rutaId, Integer orgaoConcedenteId) { tarifaOficialDAO.atualizarTaxaEmbarque(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedenteId); } @Override @Transactional(rollbackFor = BusinessException.class) public void atualizarSeguroPorKm(Integer rutaId, Integer orgaoId) throws BusinessException { tarifaOficialDAO.atualizarSeguroPorKm(rutaId, orgaoId, UsuarioLogado.getUsuarioLogado().getUsuarioId()); } @Override @Transactional(rollbackFor = BusinessException.class) public void atualizarSeguroPorTarifa(Integer rutaId, Integer orgaoId) throws BusinessException { tarifaOficialDAO.atualizarSeguroPorTarifa(rutaId, orgaoId, UsuarioLogado.getUsuarioLogado().getUsuarioId()); } @Override @Transactional(rollbackFor = BusinessException.class) public void atualizarSeguro(Integer rutaId, Integer orgaoId) throws BusinessException { List lsOrgaoId = new ArrayList(); if (orgaoId == null) { lsOrgaoId.addAll(orgaoConcedenteDAO.obtenerTodosIds()); } else { lsOrgaoId.add(orgaoId); } //O seguro por km é preferencial em relação ao por tarifa. for (Integer orgaoConcedenteId : lsOrgaoId) { if (seguroKmDAO.existe(orgaoConcedenteId)) { atualizarSeguroPorKm(rutaId, orgaoConcedenteId); } else if (seguroTarifaDAO.existe(orgaoConcedenteId)) { atualizarSeguroPorTarifa(rutaId, orgaoConcedenteId); } } } @Override @Transactional public void aplicarArredondamentoTarifa(Integer orgaoConcedenteId, Boolean taxaEmbarque) { tarifaOficialDAO.aplicarArredondamentoTarifa(orgaoConcedenteId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), taxaEmbarque); } @Override @Transactional public void actualizacion(TarifaOficial tarifaOficial) { tarifaOficialDAO.actualizacion(tarifaOficial); } @Override public TarifaOficial obtenerID(Integer tarifaOficialId) { return tarifaOficialDAO.obtenerID(tarifaOficialId); } @Override public void borrar(TarifaOficial tarifaOficial) { tarifaOficialDAO.borrar(tarifaOficial); } }