gleimar 2012-08-28 15:04:06 +00:00
parent 58b41bafab
commit da2434c3d6
6 changed files with 99 additions and 16 deletions

View File

@ -0,0 +1,30 @@
package com.rjconsultores.ventaboletos.dao.hibernate;
import org.hibernate.SQLQuery;
import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Repository;
import com.rjconsultores.ventaboletos.dao.SeguroKmDAO;
import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
import com.rjconsultores.ventaboletos.entidad.SeguroKm;
@Repository("seguroKmDAO")
public class SeguroKmHibernateDAO extends GenericHibernateDAO<SeguroKm, Integer> implements SeguroKmDAO {
@Autowired
private SQLBuilder sqlBuilder;
@Autowired
public SeguroKmHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
setSessionFactory(factory);
}
@Override
public void atualizarSeguroPorKm(Integer rutaId, Integer orgaoId, Integer usuarioId) {
SQLQuery query = getSession().createSQLQuery(sqlBuilder.getSQLAtualizarSeguroPorKm(rutaId, usuarioId, orgaoId));
query.executeUpdate();
}
}

View File

@ -26,7 +26,7 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
@Override @Override
public Integer gerarTarifaPorCoeficiente(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) { public Integer gerarTarifaPorCoeficiente(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
String sql = sqlBuilder.getSQLTarifaOficial1(rutaId, usuarioId, orgaoConcedenteId); String sql = sqlBuilder.getSQLGerarTarifaOficial(rutaId, usuarioId, orgaoConcedenteId);
int qtd = getSession().createSQLQuery(sql).executeUpdate(); int qtd = getSession().createSQLQuery(sql).executeUpdate();
@ -36,7 +36,7 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO<TarifaOficial
@Override @Override
public Integer atualizarTarifaCoeficiente(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) { public Integer atualizarTarifaCoeficiente(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
String sql = sqlBuilder.getSQLTarifaOficial2(rutaId,usuarioId, orgaoConcedenteId); String sql = sqlBuilder.getSQLAtualizarTarifaOficial(rutaId,usuarioId, orgaoConcedenteId);
int qtd = getSession().createSQLQuery(sql).executeUpdate(); int qtd = getSession().createSQLQuery(sql).executeUpdate();

View File

@ -23,15 +23,15 @@ public class TaxaEmbarqueHibernateDAO extends GenericHibernateDAO<Object, Intege
@Override @Override
public void atualizarTaxaEmbarque(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) { public void atualizarTaxaEmbarque(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
// Atualizo a taxa de embarque de acordo a parada e km // Atualizo a taxa de embarque de acordo a parada e km
SQLQuery query = getSession().createSQLQuery(sqlBuilder.getSQLTaxaEmbarque1(rutaId, usuarioId, orgaoConcedenteId)); SQLQuery query = getSession().createSQLQuery(sqlBuilder.getAtualizarTaxaEmbarquePorKmParada(rutaId, usuarioId, orgaoConcedenteId));
query.executeUpdate(); query.executeUpdate();
// Atualizo a taxa de embarque de acordo a km do orgao // Atualizo a taxa de embarque de acordo a km do orgao
query = getSession().createSQLQuery(sqlBuilder.getSQLTaxaEmbarque2(rutaId, usuarioId, orgaoConcedenteId)); query = getSession().createSQLQuery(sqlBuilder.getSQLAtualizarTaxaEmbarquePorKmOrgao(rutaId, usuarioId, orgaoConcedenteId));
query.executeUpdate(); query.executeUpdate();
// Atualizo a taxa de embarque de acordo a parada e valor fixo // Atualizo a taxa de embarque de acordo a parada e valor fixo
query = getSession().createSQLQuery(sqlBuilder.getSQLTaxaEmbarque3(rutaId, usuarioId, orgaoConcedenteId)); query = getSession().createSQLQuery(sqlBuilder.getSQLAtualizarTaxaEmbarquePorParadaFixo(rutaId, usuarioId, orgaoConcedenteId));
query.executeUpdate(); query.executeUpdate();
} }

View File

@ -14,12 +14,17 @@ package com.rjconsultores.ventaboletos.dao.sqlbuilder;
*/ */
public interface SQLBuilder { public interface SQLBuilder {
public String getSQLTarifaOficial1(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId); public String getSQLGerarTarifaOficial(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLTarifaOficial2(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId); public String getSQLAtualizarTarifaOficial(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getAtualizarTaxaEmbarquePorKmParada(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLAtualizarTaxaEmbarquePorKmOrgao(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLAtualizarTaxaEmbarquePorParadaFixo(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLAtualizarSeguroPorKm(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLTaxaEmbarque1(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLTaxaEmbarque2(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
public String getSQLTaxaEmbarque3(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId);
} }

View File

@ -5,7 +5,7 @@ import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder;
public class SQLBuilderOracle implements SQLBuilder { public class SQLBuilderOracle implements SQLBuilder {
@Override @Override
public String getSQLTarifaOficial1(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId) { public String getSQLGerarTarifaOficial(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId) {
StringBuilder sb = new StringBuilder(); StringBuilder sb = new StringBuilder();
sb.append("INSERT "); sb.append("INSERT ");
sb.append("INTO "); sb.append("INTO ");
@ -97,7 +97,7 @@ public class SQLBuilderOracle implements SQLBuilder {
} }
@Override @Override
public String getSQLTarifaOficial2(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) { public String getSQLAtualizarTarifaOficial(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
StringBuilder sb = new StringBuilder(""); StringBuilder sb = new StringBuilder("");
sb.append("UPDATE TARIFA_OFICIAL SET PRECIO = "); sb.append("UPDATE TARIFA_OFICIAL SET PRECIO = ");
@ -154,7 +154,7 @@ public class SQLBuilderOracle implements SQLBuilder {
} }
@Override @Override
public String getSQLTaxaEmbarque1(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) { public String getAtualizarTaxaEmbarquePorKmParada(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
StringBuilder sb = new StringBuilder(""); StringBuilder sb = new StringBuilder("");
sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = "); sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = ");
sb.append("( "); sb.append("( ");
@ -196,7 +196,7 @@ public class SQLBuilderOracle implements SQLBuilder {
} }
@Override @Override
public String getSQLTaxaEmbarque2(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) { public String getSQLAtualizarTaxaEmbarquePorKmOrgao(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
StringBuilder sb = new StringBuilder(""); StringBuilder sb = new StringBuilder("");
sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = "); sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = ");
sb.append("coalesce( "); sb.append("coalesce( ");
@ -240,7 +240,7 @@ public class SQLBuilderOracle implements SQLBuilder {
} }
@Override @Override
public String getSQLTaxaEmbarque3(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) { public String getSQLAtualizarTaxaEmbarquePorParadaFixo(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
StringBuilder sb = new StringBuilder(""); StringBuilder sb = new StringBuilder("");
sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = "); sb.append("update tarifa_oficial set IMPORTETAXAEMBARQUE = ");
@ -274,4 +274,44 @@ public class SQLBuilderOracle implements SQLBuilder {
return sb.toString(); return sb.toString();
} }
@Override
public String getSQLAtualizarSeguroPorKm(Integer rutaId, Integer usuarioId, Integer orgaoConcedenteId) {
StringBuilder sb = new StringBuilder("");
sb.append("update tarifa_oficial set IMPORTESEGURO = ");
sb.append("( ");
sb.append("select ");
sb.append(" sk.VALORTAXA ");
sb.append("from ");
sb.append(" tarifa_oficial tao ");
sb.append(" inner join tramo t on t.tramo_id = tao.tramo_id ");
sb.append(" inner join seguro_km sk on sk.KMATE >= t.CANTKMREAL and sk.activo = 1 and tao.ORGAOCONCEDENTE_ID = sk.ORGAOCONCEDENTE_ID ");
sb.append("where ");
sb.append(" sk.kmate= ");
sb.append(" (select min(sk1.KMATE) ");
sb.append(" from ");
sb.append(" seguro_km sk1 ");
sb.append(" where ");
sb.append(" sk1.KMATE >= t.CANTKMREAL and sk1.activo = 1 ");
sb.append(" ) ");
sb.append(" and tao.marca_id = tarifa_oficial.marca_id ");
sb.append(" and tao.orgaoconcedente_id = tarifa_oficial.orgaoconcedente_id ");
sb.append(" and tao.claseservicio_id=tarifa_oficial.claseservicio_id ");
sb.append(" and tao.moneda_id = tarifa_oficial.moneda_id ");
sb.append(" and tao.ruta_id = tarifa_oficial.ruta_id ");
sb.append(" and tao.tramo_id = tarifa_oficial.tramo_id ");
sb.append(") ");
sb.append(", usuario_id = ").append(usuarioId).append(",fecmodif = sysdate ");
sb.append(" ");
sb.append("where ");
sb.append(" tarifa_oficial.activo = 1 ");
if (rutaId != null){
sb.append(" and tarifa_oficial.ruta_id = ").append(rutaId);
}
if (orgaoConcedenteId != null){
sb.append(" and tarifa_oficial.orgaoconcedente_id = ").append(orgaoConcedenteId);
}
return sb.toString();
}
} }

View File

@ -1,21 +1,29 @@
package com.rjconsultores.ventaboletos.service.impl; package com.rjconsultores.ventaboletos.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import com.rjconsultores.ventaboletos.dao.SeguroKmDAO;
import com.rjconsultores.ventaboletos.exception.BusinessException; import com.rjconsultores.ventaboletos.exception.BusinessException;
import com.rjconsultores.ventaboletos.service.SeguroService; import com.rjconsultores.ventaboletos.service.SeguroService;
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
@Service("seguroService") @Service("seguroService")
public class SeguroServiceImpl implements SeguroService{ public class SeguroServiceImpl implements SeguroService{
@Autowired
private SeguroKmDAO seguroKmDAO;
@Override @Override
@Transactional
public void atualizarSeguroPorKm(Integer rutaId, Integer orgaoId) throws BusinessException { public void atualizarSeguroPorKm(Integer rutaId, Integer orgaoId) throws BusinessException {
if (orgaoId == null){ if (orgaoId == null){
throw new BusinessException("SeguroServiceImpl.msg.validacion.orgaoObligatorio"); throw new BusinessException("SeguroServiceImpl.msg.validacion.orgaoObligatorio");
} }
seguroKmDAO.atualizarSeguroPorKm(rutaId, orgaoId, UsuarioLogado.getUsuarioLogado().getUsuarioId());
} }