gleimar 2012-08-27 20:10:05 +00:00
parent bd16c14bee
commit 909ad4400d
6 changed files with 44 additions and 31 deletions

View File

@ -6,23 +6,25 @@ import com.rjconsultores.ventaboletos.service.TarifaOficialService;
public interface TarifaOficialDAO {
/**
* See {@link TarifaOficialService#gerarTarifaANTT(Integer)}
* See {@link TarifaOficialService#gerarTarifaPorCoeficiente(Integer)}
* @param ruta
* @param usuarioId TODO
* @param orgaoConcedenteId TODO
* @return TODO
*/
public Integer gerarTarifaANTT(Integer ruta, Integer usuarioId);
public Integer gerarTarifaPorCoeficiente(Integer ruta, Integer usuarioId, Integer orgaoConcedenteId);
/**
* See {@link TarifaOficialService#atualizarTarifaANTT(Integer)}
* See {@link TarifaOficialService#atualizarTarifaPorCoeficiente(Integer)}
* @param rutaId
* @param usuarioId TODO
* @param orgaoConcedenteId TODO
* @return TODO
*/
public Integer atualizarTarifaANTT(Integer rutaId, Integer usuarioId);
public Integer atualizarTarifaCoeficiente(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
/**
* * See {@link TarifaOficialService#copiarParaTarifa(VigenciaTarifa)}
* See {@link TarifaOficialService#copiarParaTarifa(VigenciaTarifa)}
* @param vigenciaTarifa
* @param usuarioId TODO
*/

View File

@ -24,9 +24,9 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
}
@Override
public Integer gerarTarifaANTT(Integer rutaId, Integer usuarioId) {
public Integer gerarTarifaPorCoeficiente(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
String sql = sqlBuilder.getSQLTarifaOficial1(rutaId, usuarioId);
String sql = sqlBuilder.getSQLTarifaOficial1(rutaId, usuarioId, orgaoConcedenteId);
int qtd = getSession().createSQLQuery(sql).executeUpdate();
@ -34,9 +34,9 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
}
@Override
public Integer atualizarTarifaANTT(Integer rutaId, Integer usuarioId) {
public Integer atualizarTarifaCoeficiente(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
String sql = sqlBuilder.getSQLTarifaOficial2(rutaId,usuarioId);
String sql = sqlBuilder.getSQLTarifaOficial2(rutaId,usuarioId, orgaoConcedenteId);
int qtd = getSession().createSQLQuery(sql).executeUpdate();

View File

@ -14,9 +14,9 @@ package com.rjconsultores.ventaboletos.dao.sqlbuilder;
*/
public interface SQLBuilder {
public String getSQLTarifaOficial1(Integer codRuta, Integer usuarioId);
public String getSQLTarifaOficial1(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLTarifaOficial2(Integer rutaId, Integer usuarioId);
public String getSQLTarifaOficial2(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLTaxaEmbarque1(Integer rutaId, Integer usuarioId);
public String getSQLTaxaEmbarque2(Integer rutaId, Integer usuarioId);

View File

@ -5,7 +5,7 @@ import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
public class SQLBuilderOracle implements SQLBuilder {
@Override
public String getSQLTarifaOficial1(Integer codRuta, Integer usuarioId) {
public String getSQLTarifaOficial1(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId) {
StringBuilder sb = new StringBuilder();
sb.append("INSERT ");
sb.append("INTO ");
@ -82,7 +82,9 @@ public class SQLBuilderOracle implements SQLBuilder {
sb.append(" and r.activo = 1 ");
sb.append(" and tc.activo = 1 ");
sb.append(" and m.moneda_id = 1 ");
sb.append(" and oc.orgaoconcedente_id = 3 ");
if (orgaoConcedenteId != null){
sb.append(" and oc.orgaoconcedente_id = ").append(orgaoConcedenteId);
}
sb.append(" and ");
sb.append(" (t.tramo_id, ");
sb.append(" mc.marca_id, ");
@ -95,7 +97,7 @@ public class SQLBuilderOracle implements SQLBuilder {
}
@Override
public String getSQLTarifaOficial2(Integer rutaId, Integer usuarioId) {
public String getSQLTarifaOficial2(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
StringBuilder sb = new StringBuilder("");
sb.append("UPDATE TARIFA_OFICIAL SET PRECIO = ");
@ -126,7 +128,9 @@ public class SQLBuilderOracle implements SQLBuilder {
sb.append(" and r.activo = 1 ");
sb.append(" and tc.activo = 1 ");
sb.append(" and m.moneda_id = 1 ");
sb.append(" and oc.orgaoconcedente_id = 3 ");
if (orgaoConcedenteId != null){
sb.append(" and oc.orgaoconcedente_id = ").append(orgaoConcedenteId);
}
sb.append(" and t.tramo_id = TARIFA_OFICIAL.tramo_id ");
sb.append(" and mc.marca_id = TARIFA_OFICIAL.marca_id ");
sb.append(" and r.CLASESERVICIO_ID = TARIFA_OFICIAL.CLASESERVICIO_ID ");
@ -142,7 +146,9 @@ public class SQLBuilderOracle implements SQLBuilder {
if (rutaId != null){
sb.append(" and ruta_id = ").append(rutaId);
}
if (orgaoConcedenteId != null){
sb.append(" and orgaoconcedente_id = ").append(orgaoConcedenteId);
}
return sb.toString();
}

View File

@ -6,38 +6,43 @@ import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
public interface TarifaOficialService {
/**
* Gera as tarifas de acordo o cálculo da ANTT.<br/>
* 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 da ANTT.<br/>
* rutas. <br/>
*
* Obs.: Essa operção apenas gera tarifas que ainda não estão geradas<br/>
*
* @param rutaId
* @return A quantidade de registros afetadas
*/
public Integer gerarTarifaANTT(Integer rutaId);
public Integer gerarTarifaPorCoeficiente(Integer rutaId);
/**
* Atualiza as tarifas de acordo o cálculo da ANTT<br/>
* 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 da ANTT.<br/>
* todas as rutas.<br/>
*
* @param rutaId
* @return TODO
*/
public Integer atualizarTarifaANTT(Integer rutaId);
public Integer atualizarTarifaPorCoeficiente(Integer rutaId);
/**
* Gera as novas tarifas e atualiza as já existentes
*
* Utiliza os métodos {@link #gerarTarifaANTT(Integer)} e {@link #atualizarTarifaANTT(Integer)}
* Utiliza os métodos {@link #gerarTarifaPorCoeficiente(Integer)} e {@link #atualizarTarifaPorCoeficiente(Integer)}
*
* @param rudaId
* @param orgaoConcedenteId
* @return - Retorna o total de registros inseridos + atualizados
*/
public Integer gerarAtualizarTarifaANTT(Integer rudaId);
public Integer gerarAtualizarTarifaPorCoeficiente(Integer rudaId, Integer orgaoConcedenteId);
/**
* Copia a tarifa oficial para a tabela de tarifa de acordo com a vigencia especificada

View File

@ -17,14 +17,14 @@ public class TarifaOficialServiceImpl implements TarifaOficialService {
@Override
@Transactional
public Integer gerarTarifaANTT(Integer rutaId) {
return tarifaOficialDAO.gerarTarifaANTT(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId());
public Integer gerarTarifaPorCoeficiente(Integer rutaId) {
return tarifaOficialDAO.gerarTarifaPorCoeficiente(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), null);
}
@Override
@Transactional
public Integer atualizarTarifaANTT(Integer rutaId) {
return tarifaOficialDAO.atualizarTarifaANTT(rutaId,UsuarioLogado.getUsuarioLogado().getUsuarioId());
public Integer atualizarTarifaPorCoeficiente(Integer rutaId) {
return tarifaOficialDAO.atualizarTarifaCoeficiente(rutaId,UsuarioLogado.getUsuarioLogado().getUsuarioId(), null);
}
@Override
@ -35,10 +35,10 @@ public class TarifaOficialServiceImpl implements TarifaOficialService {
@Override
@Transactional
public Integer gerarAtualizarTarifaANTT(Integer rudaId) {
public Integer gerarAtualizarTarifaPorCoeficiente(Integer rudaId, Integer orgaoConcedenteId) {
Integer qtd = gerarTarifaANTT(rudaId);
qtd += atualizarTarifaANTT(rudaId);
Integer qtd = gerarTarifaPorCoeficiente(rudaId);
qtd += atualizarTarifaPorCoeficiente(rudaId);
return qtd;
}