Verificar a possibilidade de melhorar o tempo de sincronismo do Operador na Embarcada
bug#14740 dev:trevezani qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@94877 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
a033f594c9
commit
c71e52ad7f
|
@ -20,11 +20,9 @@ import org.springframework.stereotype.Repository;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
import com.rjconsultores.ventaboletos.constantes.Constantes;
|
||||||
import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO;
|
import com.rjconsultores.ventaboletos.dao.CategoriaDescuentoDAO;
|
||||||
import com.rjconsultores.ventaboletos.dao.MarcaDAO;
|
|
||||||
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO;
|
import com.rjconsultores.ventaboletos.dao.OperadorEmbarcadaServicoDAO;
|
||||||
import com.rjconsultores.ventaboletos.dao.util.DBUtil;
|
import com.rjconsultores.ventaboletos.dao.util.DBUtil;
|
||||||
import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento;
|
import com.rjconsultores.ventaboletos.entidad.CategoriaDescuento;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Marca;
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
|
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
|
import com.rjconsultores.ventaboletos.entidad.OperadorEmbarcadaServico;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
import com.rjconsultores.ventaboletos.entidad.PuntoVenta;
|
||||||
|
@ -43,8 +41,8 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private CategoriaDescuentoDAO categoriaDescuentoDAO;
|
private CategoriaDescuentoDAO categoriaDescuentoDAO;
|
||||||
@Autowired
|
// @Autowired
|
||||||
private MarcaDAO marcaDAO;
|
// private MarcaDAO marcaDAO;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
public OperadorEmbarcadaServicoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
public OperadorEmbarcadaServicoHibernateDAO(@Qualifier("sessionFactory") SessionFactory factory) {
|
||||||
|
@ -324,7 +322,82 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
sb.append(" TA.IMPORTEPEDAGIO AS importePedagio,");
|
sb.append(" TA.IMPORTEPEDAGIO AS importePedagio,");
|
||||||
sb.append(" TA.IMPORTEOUTROS AS importeOutros,");
|
sb.append(" TA.IMPORTEOUTROS AS importeOutros,");
|
||||||
sb.append(" TA.IMPORTESEGURO AS importeSeguro,");
|
sb.append(" TA.IMPORTESEGURO AS importeSeguro,");
|
||||||
sb.append(" TA.PRECIO AS precio");
|
sb.append(" TA.PRECIO AS precio,");
|
||||||
|
sb.append(" TA.RUTA_ID as rutaId,");
|
||||||
|
sb.append(" (");
|
||||||
|
sb.append(" select IMPORTETARIFA");
|
||||||
|
sb.append(" from (");
|
||||||
|
sb.append(" select");
|
||||||
|
sb.append(" tmx.TARIFAMINIMA_ID as TARIFAMINIMA_ID,");
|
||||||
|
sb.append(" tmx.ACTIVO as ACTIVO,");
|
||||||
|
sb.append(" tmx.CLASESERVICIO_ID as CLASESERVICIO_ID,");
|
||||||
|
sb.append(" tmx.COEFICIENTETARIFA_ID as COEFICIENTETARIFA_ID,");
|
||||||
|
sb.append(" tmx.DESTINO_ID as DESTINO_ID,");
|
||||||
|
sb.append(" tmx.FECMODIF as FECMODIF,");
|
||||||
|
sb.append(" tmx.IMPORTETARIFA as IMPORTETARIFA,");
|
||||||
|
sb.append(" tmx.MARCA_ID as MARCA_ID,");
|
||||||
|
sb.append(" tmx.MONEDA_ID as MONEDA_ID,");
|
||||||
|
sb.append(" tmx.ORGAOCONCEDENTE_ID as ORGAOCONCEDENTE_ID,");
|
||||||
|
sb.append(" tmx.ORIGEN_ID as ORIGEN_ID,");
|
||||||
|
sb.append(" tmx.PLAZA_ID as PLAZA_ID,");
|
||||||
|
sb.append(" tmx.REGIONMETROPOLITANA_ID as REGIONMETROPOLITANA_ID,");
|
||||||
|
sb.append(" tmx.RUTA_ID as RUTA_ID,");
|
||||||
|
sb.append(" tmx.USUARIO_ID as USUARIO_ID,");
|
||||||
|
sb.append(" tmx.VIGENCIATARIFA_ID as VIGENCIATARIFA_ID,");
|
||||||
|
sb.append(" ocx.ORGAOCONCEDENTE_ID as orgaoConcedenteId,");
|
||||||
|
sb.append(" paradaOrigem.PARADA_ID as paradaOrigemId,");
|
||||||
|
sb.append(" paradaDestino.PARADA_ID as paradaDestinoId,");
|
||||||
|
sb.append(" ruta.ruta_id as rutaId");
|
||||||
|
sb.append(" from TARIFA_MINIMA tmx");
|
||||||
|
sb.append(" join PARADA paradaOrigem on paradaOrigem.activo = 1");
|
||||||
|
sb.append(" join PARADA paradaDestino on paradaDestino.activo = 1");
|
||||||
|
sb.append(" join RUTA ruta on ruta.activo = 1");
|
||||||
|
sb.append(" left outer join ORGAO_CONCEDENTE ocx on tmx.ORGAOCONCEDENTE_ID=ocx.ORGAOCONCEDENTE_ID ");
|
||||||
|
sb.append(" left outer join TARIFA_MINIMA_CATEGORIA tmcx on tmx.TARIFAMINIMA_ID=tmcx.TARIFAMINIMA_ID and tmcx.ACTIVO = 1 ");
|
||||||
|
sb.append(" left outer join VIGENCIA_TARIFA vtx on tmx.VIGENCIATARIFA_ID=vtx.VIGENCIATARIFA_ID ");
|
||||||
|
sb.append(" left outer join REGION_METROPOLITANA rmx on tmx.REGIONMETROPOLITANA_ID=rmx.REGIONMETROPOLITANA_ID ");
|
||||||
|
sb.append(" left outer join PARADA prmox on rmx.REGIONMETROPOLITANA_ID=prmox.REGIONMETROPOLITANA_ID ");
|
||||||
|
sb.append(" left outer join PARADA prmdx on rmx.REGIONMETROPOLITANA_ID=prmdx.REGIONMETROPOLITANA_ID ");
|
||||||
|
sb.append(" where tmx.ACTIVO=1 ");
|
||||||
|
sb.append(" and (prmox.PARADA_ID in (paradaOrigem.PARADA_ID, -1) or prmox.PARADA_ID is null) ");
|
||||||
|
sb.append(" and (prmdx.PARADA_ID in (paradaDestino.PARADA_ID, -1) or prmdx.PARADA_ID is null) ");
|
||||||
|
sb.append(" and (tmx.ORIGEN_ID in (paradaOrigem.PARADA_ID, -1) or tmx.ORIGEN_ID is null) ");
|
||||||
|
sb.append(" and (tmx.DESTINO_ID in (paradaDestino.PARADA_ID, -1) or tmx.DESTINO_ID is null) ");
|
||||||
|
sb.append(" and (tmx.PLAZA_ID in (:plazaId, -1)) ");
|
||||||
|
sb.append(" and (tmx.CLASESERVICIO_ID in (:claseservicioId, -1)) ");
|
||||||
|
sb.append(" and (tmx.MARCA_ID in (:marcaId, -1)) ");
|
||||||
|
sb.append(" and (tmcx.TARIFAMINIMACATEGORIA_ID is null or tmcx.CATEGORIA_ID in (:categoriaId, -1)) ");
|
||||||
|
sb.append(" and tmx.MONEDA_ID=:moneda");
|
||||||
|
sb.append(" and (ocx.ORGAOCONCEDENTE_ID is null or ocx.ORGAOCONCEDENTE_ID=-1 or ocx.ORGAOCONCEDENTE_ID=(");
|
||||||
|
sb.append(" select distinct rx.ORGAOCONCEDENTE_ID");
|
||||||
|
sb.append(" from RUTA rx ");
|
||||||
|
sb.append(" left outer join RUTA_COMBINACION rcx on rx.RUTA_ID=rcx.RUTA_ID ");
|
||||||
|
sb.append(" left outer join TRAMO tx on rcx.TRAMO_ID=tx.TRAMO_ID ");
|
||||||
|
sb.append(" left outer join ORGAO_TRAMO otx on tx.TRAMO_ID=otx.TRAMO_ID ");
|
||||||
|
sb.append(" where");
|
||||||
|
sb.append(" rcx.RUTA_ID=ruta.RUTA_ID");
|
||||||
|
sb.append(" and (");
|
||||||
|
sb.append(" (tmx.COEFICIENTETARIFA_ID in (otx.COEFICIENTETARIFA1_ID,otx.COEFICIENTETARIFA2_ID,otx.COEFICIENTETARIFA3_ID))");
|
||||||
|
sb.append(" and tx.ORIGEN_ID=paradaOrigem.parada_id ");
|
||||||
|
sb.append(" and tx.DESTINO_ID=paradaDestino.parada_id");
|
||||||
|
sb.append(" or tmx.COEFICIENTETARIFA_ID is null");
|
||||||
|
sb.append(" )");
|
||||||
|
sb.append(" )");
|
||||||
|
sb.append(" )");
|
||||||
|
sb.append(" and (SYSDATE between vtx.FECINICIOVIGENCIA and vtx.FECFINVIGENCIA)");
|
||||||
|
sb.append(" order by");
|
||||||
|
sb.append(" tmx.PLAZA_ID desc,");
|
||||||
|
sb.append(" tmx.ORIGEN_ID desc,");
|
||||||
|
sb.append(" tmx.DESTINO_ID desc,");
|
||||||
|
sb.append(" tmx.CLASESERVICIO_ID desc,");
|
||||||
|
sb.append(" tmx.MARCA_ID desc");
|
||||||
|
sb.append(" )");
|
||||||
|
sb.append(" where");
|
||||||
|
sb.append(" paradaOrigemId = TRM.ORIGEN_ID");
|
||||||
|
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(" FROM RUTA_COMBINACION RC");
|
sb.append(" FROM RUTA_COMBINACION RC");
|
||||||
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_ID");
|
sb.append(" JOIN TRAMO TRM ON TRM.TRAMO_ID = RC.TRAMO_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 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')");
|
||||||
|
@ -373,7 +446,8 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
sb.append(" TA.IMPORTEPEDAGIO,");
|
sb.append(" TA.IMPORTEPEDAGIO,");
|
||||||
sb.append(" TA.IMPORTEOUTROS,");
|
sb.append(" TA.IMPORTEOUTROS,");
|
||||||
sb.append(" TA.IMPORTESEGURO,");
|
sb.append(" TA.IMPORTESEGURO,");
|
||||||
sb.append(" TA.PRECIO");
|
sb.append(" TA.PRECIO,");
|
||||||
|
sb.append(" TA.RUTA_ID");
|
||||||
sb.append(" ORDER BY");
|
sb.append(" ORDER BY");
|
||||||
sb.append(" CRT.NUMSECUENCIA");
|
sb.append(" CRT.NUMSECUENCIA");
|
||||||
|
|
||||||
|
@ -402,15 +476,22 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
.addScalar("importeOutros", BigDecimalType.INSTANCE)
|
.addScalar("importeOutros", BigDecimalType.INSTANCE)
|
||||||
.addScalar("importeSeguro", BigDecimalType.INSTANCE)
|
.addScalar("importeSeguro", BigDecimalType.INSTANCE)
|
||||||
.addScalar("precio", BigDecimalType.INSTANCE)
|
.addScalar("precio", BigDecimalType.INSTANCE)
|
||||||
|
.addScalar("tarifaMinima", BigDecimalType.INSTANCE)
|
||||||
.setResultTransformer(Transformers.aliasToBean(TramoSequenciaVO.class));
|
.setResultTransformer(Transformers.aliasToBean(TramoSequenciaVO.class));
|
||||||
|
|
||||||
query.setParameter("marcaId", corrida.getMarcaId());
|
query.setParameter("marcaId", corrida.getMarcaId());
|
||||||
query.setParameter("rutaId", corrida.getRutaId());
|
query.setParameter("rutaId", corrida.getRutaId());
|
||||||
query.setParameter("corridaId", corrida.getCorridaId());
|
query.setParameter("corridaId", corrida.getCorridaId());
|
||||||
query.setParameter("feccorrida", corrida.getFeccorrida() + " 00:00:00");
|
query.setParameter("feccorrida", corrida.getFeccorrida() + " 00:00:00");
|
||||||
|
query.setParameter("plazaId", puntoVenta.getColonia().getCiudad().getPlaza().getPlazaId());
|
||||||
|
query.setParameter("claseservicioId", corrida.getClaseServicioId());
|
||||||
|
query.setParameter("categoriaId", Constantes.CATEGORIA_NORMAL);
|
||||||
|
query.setParameter("moneda", puntoVenta.getMoneda().getMonedaId());
|
||||||
|
|
||||||
List<TramoSequenciaVO> tramosequencia = query.list();
|
List<TramoSequenciaVO> tramosequencia = query.list();
|
||||||
|
|
||||||
|
CategoriaDescuento categoriaDescuento = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, corrida.getMarcaId());
|
||||||
|
|
||||||
List<TramoVO> lsTramo = new ArrayList<TramoVO>();
|
List<TramoVO> lsTramo = new ArrayList<TramoVO>();
|
||||||
|
|
||||||
for (TramoSequenciaVO ts : tramosequencia) {
|
for (TramoSequenciaVO ts : tramosequencia) {
|
||||||
|
@ -436,10 +517,20 @@ public class OperadorEmbarcadaServicoHibernateDAO extends GenericHibernateDAO<Op
|
||||||
ts.getViaId(),
|
ts.getViaId(),
|
||||||
ts.getNomeVia());
|
ts.getNomeVia());
|
||||||
|
|
||||||
Marca marca = marcaDAO.obtenerID(corrida.getMarcaId().shortValue());
|
// Marca marca = marcaDAO.obtenerID(corrida.getMarcaId().shortValue());
|
||||||
CategoriaDescuento catdesc = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, marca.getEmpresa().getEmpresaId());
|
// CategoriaDescuento catdesc = categoriaDescuentoDAO.pesquisarPorCategoriaEmpresa(Constantes.CATEGORIA_NORMAL, marca.getEmpresa().getEmpresaId());
|
||||||
BigDecimal tarifaMinima = obtenerTarifaMinima(corrida.getClaseServicioId(), corrida.getMarcaId(), origem.getParadaId(), destino.getParadaId(),
|
// BigDecimal tarifaMinima = obtenerTarifaMinima(corrida.getClaseServicioId(), corrida.getMarcaId(), origem.getParadaId(), destino.getParadaId(),
|
||||||
puntoVenta, corrida.getRutaId(), Constantes.CATEGORIA_NORMAL, catdesc.getIndnaoaplicatarifaminima());
|
// puntoVenta, corrida.getRutaId(), Constantes.CATEGORIA_NORMAL, catdesc.getIndnaoaplicatarifaminima());
|
||||||
|
|
||||||
|
BigDecimal tarifaMinima = ts.getTarifaMinima();
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Não aplica tarifa minina quando configurado no tipo de passagem
|
||||||
|
* Mantis #10704
|
||||||
|
*/
|
||||||
|
if (tarifaMinima == null || (categoriaDescuento.getIndnaoaplicatarifaminima() != null && categoriaDescuento.getIndnaoaplicatarifaminima())) {
|
||||||
|
tarifaMinima = BigDecimal.ZERO;
|
||||||
|
}
|
||||||
|
|
||||||
TramoVO tramo = new TramoVO(
|
TramoVO tramo = new TramoVO(
|
||||||
ts.getTramoId(),
|
ts.getTramoId(),
|
||||||
|
|
|
@ -27,6 +27,7 @@ public class TramoSequenciaVO {
|
||||||
private BigDecimal importeOutros;
|
private BigDecimal importeOutros;
|
||||||
private BigDecimal importeSeguro;
|
private BigDecimal importeSeguro;
|
||||||
private BigDecimal precio;
|
private BigDecimal precio;
|
||||||
|
private BigDecimal tarifaMinima;
|
||||||
|
|
||||||
public TramoSequenciaVO() {
|
public TramoSequenciaVO() {
|
||||||
|
|
||||||
|
@ -223,4 +224,12 @@ public class TramoSequenciaVO {
|
||||||
public void setPrecio(BigDecimal precio) {
|
public void setPrecio(BigDecimal precio) {
|
||||||
this.precio = precio;
|
this.precio = precio;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public BigDecimal getTarifaMinima() {
|
||||||
|
return tarifaMinima;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setTarifaMinima(BigDecimal tarifaMinima) {
|
||||||
|
this.tarifaMinima = tarifaMinima;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue