diff --git a/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java b/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java index ecf55a549..2fd4705ff 100644 --- a/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/TarifaOficialDAO.java @@ -26,7 +26,7 @@ public interface TarifaOficialDAO extends GenericDAO { * @param orgaoConcedenteId TODO * @return TODO */ - public Integer gerarTarifaPorCoeficiente(Integer ruta, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas); + public Integer gerarTarifaPorCoeficiente(Integer ruta, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas,Integer[] lsCasetaPeaje); public Integer gerarTarifaArtesp(Integer ruta, Integer usuarioId, Integer orgaoConcedenteId, List idsEmpresas); diff --git a/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaOficialHibernateDAO.java b/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaOficialHibernateDAO.java index 9ea5f56aa..0ff4f5eef 100644 --- a/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaOficialHibernateDAO.java +++ b/src/com/rjconsultores/ventaboletos/dao/hibernate/TarifaOficialHibernateDAO.java @@ -51,9 +51,9 @@ public class TarifaOficialHibernateDAO extends GenericHibernateDAO idsEmpresas) { + public Integer gerarTarifaPorCoeficiente(Integer rutaId, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas, Integer[] lsCasetaPeaje) { - String sql = sqlBuilder.getSQLGerarTarifaOficial(rutaId, usuarioId, orgaoConcedente, idsEmpresas); + String sql = sqlBuilder.getSQLGerarTarifaOficial(rutaId, usuarioId, orgaoConcedente, idsEmpresas,lsCasetaPeaje); int qtd = getSession().createSQLQuery(sql).executeUpdate(); diff --git a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java index dd14a663b..53bc7793f 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/SQLBuilder.java @@ -21,7 +21,7 @@ import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente; */ public interface SQLBuilder { - public String getSQLGerarTarifaOficial(Integer codRuta, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas); + public String getSQLGerarTarifaOficial(Integer codRuta, Integer usuarioId, OrgaoConcedente orgaoConcedente, List idsEmpresas, Integer[] listCasetaPeaje); public String getSQLGerarTabelaZerada(Integer codRuta, Integer usuarioId, Integer orgaoConcedenteId, List idsEmpresas, List lsParadaId); diff --git a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java index 78419233a..27c389397 100644 --- a/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java +++ b/src/com/rjconsultores/ventaboletos/dao/sqlbuilder/impl/SQLBuilderOracle.java @@ -5,6 +5,8 @@ import java.util.Date; import java.util.List; import java.util.Map; +import org.apache.commons.lang.StringUtils; + import com.rjconsultores.ventaboletos.constantes.Constantes; import com.rjconsultores.ventaboletos.constantes.TipoSeguro; import com.rjconsultores.ventaboletos.dao.sqlbuilder.SQLBuilder; @@ -245,7 +247,7 @@ public class SQLBuilderOracle implements SQLBuilder { @Override public String getSQLGerarTarifaOficial(final Integer codRuta, final Integer usuarioId, - final OrgaoConcedente orgaoConcedente, final List idsEmpresas) { + final OrgaoConcedente orgaoConcedente, final List idsEmpresas,Integer[] listCasetaPeaje) { StringBuilder sb = new StringBuilder(); sb.append(" INSERT "); @@ -374,8 +376,12 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" inner join estado e on e.estado_id = c.estado_id "); sb.append(" inner join MARCA_CLASESERVICIO mc on "); sb.append(" mc.CLASESERVICIO_ID = r.CLASESERVICIO_ID and ma.marca_id = mc.marca_id "); + if(null !=listCasetaPeaje) { + sb.append(" inner join peaje p on p.ruta_id=r.ruta_id and p.origen_id=po.parada_id and p.destino_id=pd.parada_id and p.orgaoconcedente_id =oc.orgaoconcedente_id "); + } sb.append(" inner join CLASE_SERVICIO cl on cl.claseservicio_id = r.CLASESERVICIO_ID, "); sb.append(" moneda m "); + sb.append(" "); sb.append("where "); sb.append(" rc.activo = 1 "); @@ -406,7 +412,11 @@ public class SQLBuilderOracle implements SQLBuilder { sb.append(" oc.orgaoconcedente_id, r.ruta_id) "); sb.append(" not in (select tao.tramo_id,tao.marca_id,tao.CLASESERVICIO_ID, "); sb.append(" tao.moneda_id,tao.orgaoconcedente_id, tao.ruta_id "); - sb.append(" from tarifa_oficial tao where tao.activo = 1) "); + sb.append(" from tarifa_oficial tao where tao.activo = 1) "); + if(null !=listCasetaPeaje) { + sb.append(" and p.activo=1 "); + sb.append(" and p.casetapeaje_id in ( " + StringUtils.join(listCasetaPeaje,",") + ") "); + } return sb.toString(); } diff --git a/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java b/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java index ed71bfafa..153d7b815 100644 --- a/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java +++ b/src/com/rjconsultores/ventaboletos/service/TarifaOficialService.java @@ -36,7 +36,7 @@ public interface TarifaOficialService { * @param orgaoConcedenteId * @return A quantidade de registros afetadas */ - public Integer gerarTarifaPorCoeficiente(Integer rutaId, OrgaoConcedente orgaoConcedente, List idsEmpresas); + public Integer gerarTarifaPorCoeficiente(Integer rutaId, OrgaoConcedente orgaoConcedente, List idsEmpresas,Integer[] lsCasetaPeaje); /** @@ -67,7 +67,7 @@ public interface TarifaOficialService { * @param empresaId * @throws BusinessException */ - public void gerarAtualizarTarifa(List lsRuta, OrgaoConcedente orgaoConcedenteId, List lsEmpresaSelected) throws BusinessException; + public void gerarAtualizarTarifa(List lsRuta, OrgaoConcedente orgaoConcedenteId, List lsEmpresaSelected, Integer[] lsCasetaPeaje) throws BusinessException; /** * Copia a tarifa oficial para a tabela de tarifa de acordo com a vigencia especificada.
diff --git a/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java index ee29bcecf..4becd08e7 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/TarifaOficialServiceImpl.java @@ -63,8 +63,8 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Override @Transactional - public Integer gerarTarifaPorCoeficiente(Integer rutaId, OrgaoConcedente orgaoConcedente, List idsEmpresas) { - return tarifaOficialDAO.gerarTarifaPorCoeficiente(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedente, idsEmpresas); + public Integer gerarTarifaPorCoeficiente(Integer rutaId, OrgaoConcedente orgaoConcedente, List idsEmpresas,Integer[] lsCasetaPeaje) { + return tarifaOficialDAO.gerarTarifaPorCoeficiente(rutaId, UsuarioLogado.getUsuarioLogado().getUsuarioId(), orgaoConcedente, idsEmpresas,lsCasetaPeaje ); } @Override @@ -82,7 +82,7 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { @Override @Transactional(rollbackFor = BusinessException.class) - public void gerarAtualizarTarifa(List lsRuta, OrgaoConcedente orgaoConcedente, List lsEmpresaSelected) throws BusinessException { + public void gerarAtualizarTarifa(List lsRuta, OrgaoConcedente orgaoConcedente, List lsEmpresaSelected, Integer[] lsCasetaPeaje) throws BusinessException { // Limpando a tabela de TARIFA_OFICIAL tarifaOficialDAO.limparTarifasOficiais(lsEmpresaSelected); @@ -109,7 +109,7 @@ public class TarifaOficialServiceImpl implements TarifaOficialService { // Gerando as tarifas pelo coeficiente if (orgaoConcedente == null || (orgaoConcedente.getOrgaoConcedenteId() == null || orgaoConcedente.getOrgaoConcedenteId() != OrgaoConcedente.CODIGO_ARTESP)) { - Integer qtdTarifaCoeficiente = gerarTarifaPorCoeficiente(rutaId, orgaoConcedente, idsEmpresas); + Integer qtdTarifaCoeficiente = gerarTarifaPorCoeficiente(rutaId, orgaoConcedente, idsEmpresas,lsCasetaPeaje); log.info("qtdTarifaCoeficiente=" + qtdTarifaCoeficiente); }