AdmMono/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java

125 lines
4.4 KiB
Java

package com.rjconsultores.ventaboletos.service;
import com.rjconsultores.ventaboletos.dao.TarifaOficialDAO;
import com.rjconsultores.ventaboletos.entidad.TarifaOficial;
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
import com.rjconsultores.ventaboletos.exception.BusinessException;
public interface TarifaOficialService {
/**
* Gera as tarifas de acordo o cálculo do coeficiente tarifário.<br/>
*
* Fórmula: (KM * Coeficiente Tarifório)
*
* Se o parametro ruta não for informado, será gerado tarifas para todas as
* rutas. <br/>
*
* Se o parametro orgaoConcedenteId não for informado, será gerado tarifas para todos os
* órgãos. <br/>
*
* Obs.: Essa operação apenas gera tarifas que ainda não esão geradas<br/>
*
* @param rutaId
* @param orgaoConcedenteId
* @return A quantidade de registros afetadas
*/
public Integer gerarTarifaPorCoeficiente(Integer rutaId, Integer orgaoConcedenteId);
/**
* Atualiza as tarifas de acordo o cálculo do coeficiente tarifário.<br/>
*
* Fórmula: (KM * Coeficiente Tarifário)
*
* Se o parametro ruta não for informado, seró atualizado as tarifas para
* todas as rutas.<br/>
*
*
* Se o parametro orgaoConcedenteId não for informado, seró atualizado as tarifas para
* todos as órgãos.<br/>
*
* @param rutaId
* @param orgaoConcedenteId
* @return - Quantidade de tarifas atualizadas
*/
public Integer atualizarTarifaPorCoeficiente(Integer rutaId, Integer orgaoConcedenteId);
/**
* Gera as novas tarifas e atualiza as ja existentes
*
* Utiliza os mótodos {@link #gerarTarifaPorCoeficiente(Integer, Integer)} e {@link #atualizarTarifaPorCoeficiente(Integer, Integer)}
*
* @param rudaId
* @param orgaoConcedenteId
*/
public void gerarAtualizarTarifaPorCoeficiente(Integer rudaId, Integer orgaoConcedenteId) throws BusinessException ;
/**
* Copia a tarifa oficial para a tabela de tarifa de acordo com a vigencia especificada.<br/>
*
* Se a tarifa não existe, ela é inserida. Se existe, a tarifa e os componentes do preços são atualizados<br/>
*
* @param vigenciaTarifa
*/
public void copiarParaTarifa(VigenciaTarifa vigenciaTarifa, Boolean calculaPegagio);
/**
* Atualiza a taxa de embarque da entidade TarifaOficial.<br/>
*
* Para o cálculo, é usado a seguinte lógica:<br/>
* - Atualiza de acordo a tabela TAXA_EMBARQUE_PARADA por kilometragem<br/>
* - Atualiza de acordo a tabela TAXA_EMBARQUE por kilometragem<br/>
* - Atualiza de acordo a tabela TAXA_EMBARQUE_PARADA por valor fixo<br/>
*
* A sequencia acima indica a ordem de atualização da taxa de embarque.<br/>
*
* A taxa de embarque mais restritiva fica por último (TAXA_EMBARQUE_PARADA por valor fixo)
*
* @param rutaId - Se informado, será atualizado apenas a taxa de embarque da ruta informada
* @param orgaoConcedenteId - Se informado, será atualizado apenas a taxa de embarque do órgão informado
*/
public void atualizarTaxaEmbarque(Integer rutaId, Integer orgaoConcedenteId);
/**
* Atualiza o seguro de acordo a kilometragem do trecho
*
* @param rutaId - Se informado, será filtrado pela ruta
* @param orgaoId -Se informado, será filtrado pelo orgão
*/
public void atualizarSeguroPorKm(Integer rutaId,Integer orgaoId) throws BusinessException;
/**
* Atualiza o seguro de acordo o valor da tarifa
*
* @param rutaId - Se informado, seró filtrado pela ruta
* @param orgaoId -Se informado, será filtrado pelo orgão
*
*/
public void atualizarSeguroPorTarifa(Integer rutaId, Integer orgaoId) throws BusinessException;
/**
* Executa tanto o {@link #atualizarSeguroPorKm(Integer, Integer)} quanto {@link #atualizarSeguroPorTarifa(Integer, Integer)}
*
* @param rutaId- Se informado, seró filtrado pela ruta
* @param orgaoId-Se informado, será filtrado pelo orgão
* @throws BusinessException
*/
public void atualizarSeguro(Integer rutaId, Integer orgaoId) throws BusinessException;
/**
* See {@link TarifaOficialDAO#aplicarArredondamentoTarifa(Integer, Integer)}
* @param orgaoConcedenteId -Se informado, será filtrado pelo orgão
*/
public void aplicarArredondamentoTarifa(Integer orgaoConcedenteId) ;
public void actualizacion(TarifaOficial tarifaOficial);
public TarifaOficial obtenerID(Integer tarifaOficialId);
public void borrar(TarifaOficial tarifaOficial);
}