|
|
|
@ -5,6 +5,9 @@ import java.util.ArrayList;
|
|
|
|
|
import java.util.Date;
|
|
|
|
|
import java.util.List;
|
|
|
|
|
|
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
|
|
|
import org.apache.commons.collections.Predicate;
|
|
|
|
|
import org.apache.log4j.Logger;
|
|
|
|
|
import org.hibernate.Criteria;
|
|
|
|
|
import org.hibernate.Query;
|
|
|
|
|
import org.hibernate.SessionFactory;
|
|
|
|
@ -22,12 +25,15 @@ import com.rjconsultores.ventaboletos.constantes.Constantes;
|
|
|
|
|
import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO;
|
|
|
|
|
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO;
|
|
|
|
|
import com.rjconsultores.ventaboletos.dao.util.DBUtil;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.AliasServico;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
|
|
|
|
import com.rjconsultores.ventaboletos.entidad.TarifaMinima;
|
|
|
|
|
import com.rjconsultores.ventaboletos.service.AliasServicoService;
|
|
|
|
|
import com.rjconsultores.ventaboletos.service.RutaService;
|
|
|
|
|
import com.rjconsultores.ventaboletos.vo.corrida.CorridaVO;
|
|
|
|
|
import com.rjconsultores.ventaboletos.vo.corrida.TramoSequenciaVO;
|
|
|
|
|
import com.rjconsultores.ventaboletos.vo.parada.ParadaVO;
|
|
|
|
@ -40,11 +46,15 @@ import com.rjconsultores.ventaboletos.vo.via.ViaVO;
|
|
|
|
|
@Repository("operadorEmbarcadaServicoDAO")
|
|
|
|
|
public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<OperadorEmbarcadaServico, Long> implements OperadorEmbarcadaServicoDAO {
|
|
|
|
|
|
|
|
|
|
private static Logger log = Logger.getLogger(OperadorEmbarcadaServicoHibernateDAO.class);
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private CategoriaDescuentoDAO categoriaDescuentoDAO;
|
|
|
|
|
// @Autowired
|
|
|
|
|
// private MarcaDAO marcaDAO;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
private AliasServicoService aliasServicoService;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@Autowired
|
|
|
|
|
public OperadorEmbarcadaServicoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
|
|
|
|
setSessionFactory(factory);
|
|
|
|
@ -315,7 +325,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
|
private void preencherTramosSequencias(CorridaVO corrida, PuntoVenta puntoVenta, Empresa empresa) {
|
|
|
|
|
private void preencherTramosSequencias(final CorridaVO corrida, PuntoVenta puntoVenta, Empresa empresa) {
|
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
|
|
|
|
|
|
|
|
sb.append(" SELECT");
|
|
|
|
@ -419,16 +429,9 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|
|
|
|
sb.append(" and paradaDestinoId = TRM.DESTINO_ID");
|
|
|
|
|
sb.append(" and rutaId = TA.RUTA_ID");
|
|
|
|
|
sb.append(" and rownum = 1");
|
|
|
|
|
sb.append(" ) as tarifaMinima,");
|
|
|
|
|
sb.append(" aser.aliasorigen_id As aliasorigenId,");
|
|
|
|
|
sb.append(" aser.aliasdestino_id As aliasdestinoId,");
|
|
|
|
|
sb.append(" aori.descparada As descAliasorigen,");
|
|
|
|
|
sb.append(" dori.descparada As descAliasdestino");
|
|
|
|
|
sb.append(" ) as tarifaMinima ");
|
|
|
|
|
sb.append(" FROM RUTA_COMBINACION RC");
|
|
|
|
|
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID");
|
|
|
|
|
sb.append(" left join alias_servico aser on aser.origen_id = trm.origen_id and aser.destino_id = trm.destino_id and aser.ruta_id = rc.ruta_id and aser.corrida_id = :corridaId");
|
|
|
|
|
sb.append(" left join parada aori on aori.parada_id = aser.aliasorigen_id");
|
|
|
|
|
sb.append(" left join parada dori on dori.parada_id = aser.aliasdestino_id");
|
|
|
|
|
sb.append(" JOIN CORRIDA_TRAMO CRT ON CRT.DESTINO_ID = TRM.DESTINO_ID AND CRT.CORRIDA_ID = :corridaId AND CRT.FECCORRIDA = TO_DATE(:feccorrida,'DD/MM/YYYY HH24:MI:SS')");
|
|
|
|
|
sb.append(" JOIN PARADA ORI ON ORI.PARADA_ID = TRM.ORIGEN_ID");
|
|
|
|
|
sb.append(" JOIN CIUDAD ORICID ON ORICID.CIUDAD_ID = ORI.CIUDAD_ID");
|
|
|
|
@ -483,11 +486,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|
|
|
|
sb.append(" TA.IMPORTEOUTROS,");
|
|
|
|
|
sb.append(" TA.IMPORTESEGURO,");
|
|
|
|
|
sb.append(" TA.PRECIO,");
|
|
|
|
|
sb.append(" TA.RUTA_ID,");
|
|
|
|
|
sb.append(" aser.aliasorigen_id,");
|
|
|
|
|
sb.append(" aser.aliasdestino_id,");
|
|
|
|
|
sb.append(" aori.descparada,");
|
|
|
|
|
sb.append(" dori.descparada");
|
|
|
|
|
sb.append(" TA.RUTA_ID");
|
|
|
|
|
sb.append(" ORDER BY");
|
|
|
|
|
sb.append(" CRT.NUMSECUENCIA");
|
|
|
|
|
|
|
|
|
@ -517,10 +516,6 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|
|
|
|
.addScalar("importeSeguro", BigDecimalType.INSTANCE)
|
|
|
|
|
.addScalar("precio", BigDecimalType.INSTANCE)
|
|
|
|
|
.addScalar("tarifaMinima", BigDecimalType.INSTANCE)
|
|
|
|
|
.addScalar("aliasorigenId", IntegerType.INSTANCE)
|
|
|
|
|
.addScalar("aliasdestinoId", IntegerType.INSTANCE)
|
|
|
|
|
.addScalar("descAliasorigen", StringType.INSTANCE)
|
|
|
|
|
.addScalar("descAliasdestino", StringType.INSTANCE)
|
|
|
|
|
.setResultTransformer(Transformers.aliasToBean(TramoSequenciaVO.class));
|
|
|
|
|
|
|
|
|
|
query.setParameter("empresaId", corrida.getEmpresaId());
|
|
|
|
@ -537,9 +532,11 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|
|
|
|
CategoriaDescuento categoriaDescuento = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, corrida.getEmpresaId());
|
|
|
|
|
|
|
|
|
|
List<TramoVO> lsTramo = new ArrayList<TramoVO>();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
List<AliasServico> aliasLs = aliasServicoService.buscarPorRuta(corrida.getRutaId());
|
|
|
|
|
|
|
|
|
|
for (TramoSequenciaVO ts : tramosequencia) {
|
|
|
|
|
ParadaVO origem = new ParadaVO(
|
|
|
|
|
final ParadaVO origem = new ParadaVO(
|
|
|
|
|
ts.getOrigemId(),
|
|
|
|
|
ts.getDescOrigem(),
|
|
|
|
|
ts.getCidadeOrigemId(),
|
|
|
|
@ -548,7 +545,7 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|
|
|
|
ts.getNomeEstadoOrigem(),
|
|
|
|
|
ts.getCveEstadoOrigem());
|
|
|
|
|
|
|
|
|
|
ParadaVO destino = new ParadaVO(
|
|
|
|
|
final ParadaVO destino = new ParadaVO(
|
|
|
|
|
ts.getDestinoId(),
|
|
|
|
|
ts.getDescDestino(),
|
|
|
|
|
ts.getCidadeDestinoId(),
|
|
|
|
@ -588,11 +585,44 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
|
|
|
|
ts.getImporteSeguro(),
|
|
|
|
|
ts.getImportePedagio(),
|
|
|
|
|
ts.getImporteOutros());
|
|
|
|
|
tramo.setAliasdestinoId(ts.getAliasdestinoId());
|
|
|
|
|
tramo.setAliasorigenId(ts.getAliasorigenId());
|
|
|
|
|
tramo.setDescAliasdestino(ts.getDescAliasdestino());
|
|
|
|
|
tramo.setDescAliasorigen(ts.getDescAliasorigen());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
AliasServico aC = null;
|
|
|
|
|
try {
|
|
|
|
|
aC = (AliasServico) CollectionUtils.find(aliasLs, new Predicate() {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean evaluate(Object arg0) {
|
|
|
|
|
AliasServico alias = (AliasServico)arg0;
|
|
|
|
|
|
|
|
|
|
return alias.getCorridaId() != null && alias.getCorridaId().equals(corrida.getCorridaId())
|
|
|
|
|
&& alias.getOrigen().getParadaId().equals(origem.getParadaId())
|
|
|
|
|
&& alias.getDestino().getParadaId().equals(destino.getParadaId());
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
if(aC == null) {
|
|
|
|
|
aC = (AliasServico) CollectionUtils.find(aliasLs, new Predicate() {
|
|
|
|
|
|
|
|
|
|
@Override
|
|
|
|
|
public boolean evaluate(Object arg0) {
|
|
|
|
|
AliasServico alias = (AliasServico)arg0;
|
|
|
|
|
|
|
|
|
|
return alias.getOrigen().getParadaId().equals(origem.getParadaId())
|
|
|
|
|
&& alias.getDestino().getParadaId().equals(destino.getParadaId())
|
|
|
|
|
&& alias.getCorridaId() == null;
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
}catch(Throwable th) {
|
|
|
|
|
log.error("erro ao carrgar o alias",th);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (aC != null) {
|
|
|
|
|
tramo.setAliasdestinoId(aC.getAliasDestino().getParadaId());
|
|
|
|
|
tramo.setAliasorigenId(aC.getAliasOrigen().getParadaId());
|
|
|
|
|
tramo.setDescAliasdestino(aC.getAliasDestino().getDescparada());
|
|
|
|
|
tramo.setDescAliasorigen(aC.getAliasOrigen().getDescparada());
|
|
|
|
|
}
|
|
|
|
|
lsTramo.add(tramo);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|