- Validação na remoção/adição de tramos
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@21839 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
d4c0afe45c
commit
a12a58bd7f
|
@ -69,4 +69,13 @@ public interface RutaCombinacionDAO extends GenericDAO<RutaCombinacion, Integer>
|
||||||
public List<TarifaOficialEscalaGroupVO> pesquisaTarifaOficialGroupObj(List<Moneda> lsAddRmvMonedas, List<Marca> lsAddRmvMarcas, List<ClaseServicio> lsAddRmvClaseServico, List<Empresa> lsAddRmvEmpresas, List<Ruta> lsAddRmvRutas, List<VigenciaTarifa> lsAddRmvVigenciaTarifa);
|
public List<TarifaOficialEscalaGroupVO> pesquisaTarifaOficialGroupObj(List<Moneda> lsAddRmvMonedas, List<Marca> lsAddRmvMarcas, List<ClaseServicio> lsAddRmvClaseServico, List<Empresa> lsAddRmvEmpresas, List<Ruta> lsAddRmvRutas, List<VigenciaTarifa> lsAddRmvVigenciaTarifa);
|
||||||
|
|
||||||
public List<Object> pesquisaTarifaOficialObj(List<Moneda> lsAddRmvMonedas, List<Marca> lsAddRmvMarcas, List<ClaseServicio> lsAddRmvClaseServico, List<Empresa> lsAddRmvEmpresas, List<Ruta> lsAddRmvRutas, List<VigenciaTarifa> lsAddRmvVigenciaTarifa);
|
public List<Object> pesquisaTarifaOficialObj(List<Moneda> lsAddRmvMonedas, List<Marca> lsAddRmvMarcas, List<ClaseServicio> lsAddRmvClaseServico, List<Empresa> lsAddRmvEmpresas, List<Ruta> lsAddRmvRutas, List<VigenciaTarifa> lsAddRmvVigenciaTarifa);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indica se existe alguma combinação ativa com o tramo informado
|
||||||
|
* @param tramo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean existeTramo(Tramo tramo);
|
||||||
|
|
||||||
|
public boolean existeTramo(Tramo tramo, ClaseServicio claseServicio);
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,9 +28,7 @@ import org.zkoss.web.fn.ServletFns;
|
||||||
*/
|
*/
|
||||||
public interface TarifaDAO extends GenericDAO<Tarifa, Integer> {
|
public interface TarifaDAO extends GenericDAO<Tarifa, Integer> {
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(Marca marca, Parada origem, Parada destino, Moneda moneda,
|
public List<Tarifa> pesquisar(Marca marca, Parada origem, Parada destino, Moneda moneda,ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa,Categoria categoria, TipoPuntoVenta tipoPuntoVenta);
|
||||||
ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa,
|
|
||||||
Categoria categoria, TipoPuntoVenta tipoPuntoVenta);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* {@link TarifaService#existe(Marca, Tramo, Moneda, ClaseServicio, VigenciaTarifa, Ruta, OrgaoConcedente)}
|
* {@link TarifaService#existe(Marca, Tramo, Moneda, ClaseServicio, VigenciaTarifa, Ruta, OrgaoConcedente)}
|
||||||
|
@ -46,18 +44,27 @@ public interface TarifaDAO extends GenericDAO<Tarifa, Integer> {
|
||||||
*/
|
*/
|
||||||
public boolean existe(Marca marca, Tramo tramo, Moneda moneda, ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Ruta ruta, OrgaoConcedente orgaoConcedente);
|
public boolean existe(Marca marca, Tramo tramo, Moneda moneda, ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Ruta ruta, OrgaoConcedente orgaoConcedente);
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(Marca marca, Tramo tramo, Moneda moneda,
|
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,VigenciaTarifa vigenciaTarifa, Moneda moneda, Ruta ruta);
|
||||||
ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa);
|
|
||||||
|
|
||||||
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,
|
/**
|
||||||
VigenciaTarifa vigenciaTarifa, Moneda moneda);
|
* Lista as tarifas que tem a vigencia informada.<br/>
|
||||||
|
*
|
||||||
|
* As tarifas listadas podem estar ativas ou inativas<br/>
|
||||||
|
*
|
||||||
|
* @param vigencia
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<Tarifa> buscarTarifasAtivasInativasPorVigencia(VigenciaTarifa vigencia);
|
||||||
|
|
||||||
public List<Tarifa> buscarPorVigencia(VigenciaTarifa vigencia);
|
/**
|
||||||
|
* Lista as tarifas que tem a vigencia informada.<br/>
|
||||||
|
*
|
||||||
|
* Só é listado as tarifas ativas<br/>
|
||||||
|
*
|
||||||
|
* @param vigenciaTarifa
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public List<Tarifa> buscarTarifasAtivasPorVigencia(VigenciaTarifa vigenciaTarifa);
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(List<Moneda> lsMoneda, List<Marca> lsMarca,
|
public boolean buscarTarifaExisteTramo(Tramo tramo) ;
|
||||||
List<ClaseServicio> lsClaseServicio, List<Categoria> lsCategoria,
|
|
||||||
List<Empresa> lsEmpresa, List<Ruta> lsRuta,
|
|
||||||
List<TipoPuntoVenta> lsTipoPuntoVenta, List<VigenciaTarifa> lsVigenciaTarifa);
|
|
||||||
|
|
||||||
public List<Tarifa> buscarExisteVigencia(VigenciaTarifa vigenciaTarifa);
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -46,8 +46,7 @@ import org.hibernate.transform.AliasToBeanResultTransformer;
|
||||||
* @author Rafius
|
* @author Rafius
|
||||||
*/
|
*/
|
||||||
@Repository("rutaCombinacionDAO")
|
@Repository("rutaCombinacionDAO")
|
||||||
public class RutaCombinacionHibernateDAO extends GenericHibernateDAO<RutaCombinacion, Integer>
|
public class RutaCombinacionHibernateDAO extends GenericHibernateDAO<RutaCombinacion, Integer> implements RutaCombinacionDAO {
|
||||||
implements RutaCombinacionDAO {
|
|
||||||
|
|
||||||
private static Logger log = LoggerFactory.getLogger(RutaCombinacionHibernateDAO.class);
|
private static Logger log = LoggerFactory.getLogger(RutaCombinacionHibernateDAO.class);
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -755,5 +754,29 @@ public class RutaCombinacionHibernateDAO extends GenericHibernateDAO<RutaCombina
|
||||||
|
|
||||||
return query.list();
|
return query.list();
|
||||||
}
|
}
|
||||||
|
@Override
|
||||||
|
public boolean existeTramo(Tramo tramo) {
|
||||||
|
Criteria c = this.makeCriteria();
|
||||||
|
c.add(Restrictions.eq("tramo", tramo));
|
||||||
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
c.setProjection(Projections.rowCount());
|
||||||
|
|
||||||
|
return HibernateFix.count(c.list()) > 0l;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean existeTramo(Tramo tramo, ClaseServicio claseServicio) {
|
||||||
|
Criteria c = this.makeCriteria();
|
||||||
|
c.add(Restrictions.eq("tramo", tramo));
|
||||||
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
c.setProjection(Projections.rowCount());
|
||||||
|
|
||||||
|
Criteria cRuta = c.createCriteria("ruta");
|
||||||
|
cRuta.add(Restrictions.eq("claseServicio", claseServicio));
|
||||||
|
cRuta.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
|
||||||
|
return HibernateFix.count(c.list()) > 0l;
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -37,8 +37,7 @@ import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
||||||
* @author rodrigo
|
* @author rodrigo
|
||||||
*/
|
*/
|
||||||
@Repository("tarifaDAO")
|
@Repository("tarifaDAO")
|
||||||
public class TarifaHibernateDAO extends GenericHibernateDAO<Tarifa, Integer>
|
public class TarifaHibernateDAO extends GenericHibernateDAO<Tarifa, Integer> implements TarifaDAO {
|
||||||
implements TarifaDAO {
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private RutaDAO rutaDAO;
|
private RutaDAO rutaDAO;
|
||||||
|
@ -57,33 +56,6 @@ public class TarifaHibernateDAO extends GenericHibernateDAO<Tarifa, Integer>
|
||||||
return c.list();
|
return c.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(Marca marca, Tramo tramo, Moneda moneda,ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa) {
|
|
||||||
|
|
||||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
|
||||||
|
|
||||||
if (marca != null) {
|
|
||||||
c.add(Restrictions.eq("marca", marca));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tramo != null) {
|
|
||||||
c.add(Restrictions.eq("tramo", tramo));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (moneda != null) {
|
|
||||||
c.add(Restrictions.eq("moneda", moneda));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (claseServicio != null) {
|
|
||||||
c.add(Restrictions.eq("claseServicio", claseServicio));
|
|
||||||
}
|
|
||||||
|
|
||||||
if (vigenciaTarifa != null) {
|
|
||||||
c.add(Restrictions.eq("vigenciaTarifa", vigenciaTarifa));
|
|
||||||
}
|
|
||||||
|
|
||||||
return c.list();
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean existe(Marca marca, Tramo tramo, Moneda moneda, ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Ruta ruta, OrgaoConcedente orgaoConcedente) {
|
public boolean existe(Marca marca, Tramo tramo, Moneda moneda, ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Ruta ruta, OrgaoConcedente orgaoConcedente) {
|
||||||
|
|
||||||
Validate.notNull(marca);
|
Validate.notNull(marca);
|
||||||
|
@ -157,7 +129,7 @@ public class TarifaHibernateDAO extends GenericHibernateDAO<Tarifa, Integer>
|
||||||
return c.list();
|
return c.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,VigenciaTarifa vigenciaTarifa, Moneda moneda) {
|
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,VigenciaTarifa vigenciaTarifa, Moneda moneda, Ruta ruta) {
|
||||||
|
|
||||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||||
c.add(Restrictions.eq("marca", marca));
|
c.add(Restrictions.eq("marca", marca));
|
||||||
|
@ -169,12 +141,13 @@ public class TarifaHibernateDAO extends GenericHibernateDAO<Tarifa, Integer>
|
||||||
c.add(Restrictions.eq("claseServicio", claseServicio));
|
c.add(Restrictions.eq("claseServicio", claseServicio));
|
||||||
c.add(Restrictions.eq("vigenciaTarifa", vigenciaTarifa));
|
c.add(Restrictions.eq("vigenciaTarifa", vigenciaTarifa));
|
||||||
c.add(Restrictions.eq("moneda", moneda));
|
c.add(Restrictions.eq("moneda", moneda));
|
||||||
|
c.add(Restrictions.eq("ruta", ruta));
|
||||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
|
||||||
return (Tarifa) c.uniqueResult();
|
return (Tarifa) c.uniqueResult();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Tarifa> buscarPorVigencia(VigenciaTarifa vigencia) {
|
public List<Tarifa> buscarTarifasAtivasInativasPorVigencia(VigenciaTarifa vigencia) {
|
||||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||||
|
|
||||||
if (vigencia != null) {
|
if (vigencia != null) {
|
||||||
|
@ -184,67 +157,20 @@ public class TarifaHibernateDAO extends GenericHibernateDAO<Tarifa, Integer>
|
||||||
return c.list();
|
return c.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(List<Moneda> lsMoneda, List<Marca> lsMarca,List<ClaseServicio> lsClaseServicio, List<Categoria> lsCategoria,List<Empresa> lsEmpresa, List<Ruta> lsRuta,List<TipoPuntoVenta> lsTipoPuntoVenta, List<VigenciaTarifa> lsVigenciaTarifa) {
|
public List<Tarifa> buscarTarifasAtivasPorVigencia(VigenciaTarifa vigenciaTarifa) {
|
||||||
|
|
||||||
StringBuilder hql = new StringBuilder(" SELECT T FROM ");
|
|
||||||
hql.append(" Tarifa as T ");
|
|
||||||
hql.append(" inner join T.marca as M ");
|
|
||||||
hql.append(" inner join T.moneda as MON ");
|
|
||||||
hql.append(" inner join T.vigenciaTarifa as VT ");
|
|
||||||
hql.append(" inner join T.claseServicio as CS ");
|
|
||||||
hql.append(" ,RutaCombinacion as RC,RutaEmpresa as RE,Ruta as R ");
|
|
||||||
hql.append(" WHERE T.activo = 1 AND RC.activo = 1 AND RE.activo = 1 AND R.activo = 1 ");
|
|
||||||
hql.append(" AND RC.tramo = T.tramo ");
|
|
||||||
hql.append(" AND RE.ruta = RC.ruta ");
|
|
||||||
hql.append(" AND RE.ruta.rutaId = R.rutaId ");
|
|
||||||
hql.append(" AND R.claseServicio = CS ");
|
|
||||||
|
|
||||||
if (!lsVigenciaTarifa.isEmpty()) {
|
|
||||||
hql.append(" AND VT in (:lsVigencia) ");
|
|
||||||
}
|
|
||||||
if (!lsEmpresa.isEmpty()) {
|
|
||||||
hql.append(" AND RE.empresa in (:lsEmpresa) ");
|
|
||||||
}
|
|
||||||
if (!lsRuta.isEmpty()) {
|
|
||||||
hql.append(" AND RC.ruta in (:lsRuta)");
|
|
||||||
}
|
|
||||||
if (!lsMarca.isEmpty()) {
|
|
||||||
hql.append(" AND M in (:lsMarca) ");
|
|
||||||
}
|
|
||||||
if (!lsMoneda.isEmpty()) {
|
|
||||||
hql.append(" AND MON in (:lsMoneda) ");
|
|
||||||
}
|
|
||||||
if (!lsClaseServicio.isEmpty()) {
|
|
||||||
hql.append(" AND CS in (:lsClaseServicio) ");
|
|
||||||
}
|
|
||||||
|
|
||||||
Query sq = getSession().createQuery(hql.toString());
|
|
||||||
sq.setParameterList("lsVigencia", lsVigenciaTarifa);
|
|
||||||
|
|
||||||
if (!lsEmpresa.isEmpty()) {
|
|
||||||
sq.setParameterList("lsEmpresa", lsEmpresa);
|
|
||||||
}
|
|
||||||
if (!lsRuta.isEmpty()) {
|
|
||||||
sq.setParameterList("lsRuta", lsRuta);
|
|
||||||
}
|
|
||||||
if (!lsMarca.isEmpty()) {
|
|
||||||
sq.setParameterList("lsMarca", lsMarca);
|
|
||||||
}
|
|
||||||
if (!lsMoneda.isEmpty()) {
|
|
||||||
sq.setParameterList("lsMoneda", lsMoneda);
|
|
||||||
}
|
|
||||||
if (!lsClaseServicio.isEmpty()) {
|
|
||||||
sq.setParameterList("lsClaseServicio", lsClaseServicio);
|
|
||||||
}
|
|
||||||
return sq.list();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<Tarifa> buscarExisteVigencia(VigenciaTarifa vigenciaTarifa) {
|
|
||||||
Criteria c = getSession().createCriteria(getPersistentClass());
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||||
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
c.add(Restrictions.eq("vigenciaTarifa", vigenciaTarifa));
|
c.add(Restrictions.eq("vigenciaTarifa", vigenciaTarifa));
|
||||||
|
|
||||||
return c.list();
|
return c.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean buscarTarifaExisteTramo(Tramo tramo) {
|
||||||
|
Criteria c = this.makeCriteria();
|
||||||
|
c.add(Restrictions.eq("tramo", tramo));
|
||||||
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
c.setProjection(Projections.rowCount());
|
||||||
|
|
||||||
|
return (HibernateFix.count(c.list()) > 0);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -58,4 +58,11 @@ public interface RutaCombinacionService extends GenericService<RutaCombinacion,
|
||||||
public HSSFWorkbook gerarTarifaOficialEscala(List<Moneda> lsAddRmvMonedas, List<Marca> lsAddRmvMarcas, List<ClaseServicio> lsAddRmvClaseServico, ArrayList<Categoria> arrayList, List<Empresa> lsAddRmvEmpresas, List<Ruta> lsAddRmvRutas, ArrayList<TipoPuntoVenta> arrayList0, List<VigenciaTarifa> lsAddRmvVigenciaTarifa);
|
public HSSFWorkbook gerarTarifaOficialEscala(List<Moneda> lsAddRmvMonedas, List<Marca> lsAddRmvMarcas, List<ClaseServicio> lsAddRmvClaseServico, ArrayList<Categoria> arrayList, List<Empresa> lsAddRmvEmpresas, List<Ruta> lsAddRmvRutas, ArrayList<TipoPuntoVenta> arrayList0, List<VigenciaTarifa> lsAddRmvVigenciaTarifa);
|
||||||
|
|
||||||
public List<Object> pesquisaTarifaOficialObj(List<Moneda> lsAddRmvMonedas, List<Marca> lsAddRmvMarcas, List<ClaseServicio> lsAddRmvClaseServico, ArrayList<Categoria> arrayList, List<Empresa> lsAddRmvEmpresas, List<Ruta> lsAddRmvRutas, ArrayList<TipoPuntoVenta> arrayList0, List<VigenciaTarifa> lsAddRmvVigenciaTarifa);
|
public List<Object> pesquisaTarifaOficialObj(List<Moneda> lsAddRmvMonedas, List<Marca> lsAddRmvMarcas, List<ClaseServicio> lsAddRmvClaseServico, ArrayList<Categoria> arrayList, List<Empresa> lsAddRmvEmpresas, List<Ruta> lsAddRmvRutas, ArrayList<TipoPuntoVenta> arrayList0, List<VigenciaTarifa> lsAddRmvVigenciaTarifa);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Indica se existe alguma combinação ativa com o tramo informado
|
||||||
|
* @param tramo
|
||||||
|
* @return
|
||||||
|
*/
|
||||||
|
public boolean existeTramo(Tramo tramo);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,9 +4,10 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service;
|
package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.Categoria;
|
import com.rjconsultores.ventaboletos.entidad.Categoria;
|
||||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.Marca;
|
import com.rjconsultores.ventaboletos.entidad.Marca;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Moneda;
|
import com.rjconsultores.ventaboletos.entidad.Moneda;
|
||||||
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
|
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
|
||||||
|
@ -17,7 +18,6 @@ import com.rjconsultores.ventaboletos.entidad.Tarifa;
|
||||||
import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta;
|
import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -25,12 +25,9 @@ import java.util.List;
|
||||||
*/
|
*/
|
||||||
public interface TarifaService extends GenericService<Tarifa, Integer> {
|
public interface TarifaService extends GenericService<Tarifa, Integer> {
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(Marca marca, Parada origem, Parada destino, Moneda moneda,
|
public List<Tarifa> pesquisar(Marca marca, Parada origem, Parada destino, Moneda moneda,ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa,
|
||||||
ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa,
|
|
||||||
Categoria categoria, TipoPuntoVenta tipoPuntoVenta);
|
Categoria categoria, TipoPuntoVenta tipoPuntoVenta);
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(Marca marca, Tramo tramo, Moneda moneda,ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa);
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Método usado para checar se uma tarifa já está cadastrada no sistema.
|
* Método usado para checar se uma tarifa já está cadastrada no sistema.
|
||||||
*
|
*
|
||||||
|
@ -47,16 +44,15 @@ public interface TarifaService extends GenericService<Tarifa, Integer> {
|
||||||
*/
|
*/
|
||||||
public boolean existe(Marca marca, Tramo tramo, Moneda moneda,ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Ruta ruta, OrgaoConcedente orgaoConcedente);
|
public boolean existe(Marca marca, Tramo tramo, Moneda moneda,ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Ruta ruta, OrgaoConcedente orgaoConcedente);
|
||||||
|
|
||||||
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,VigenciaTarifa vigenciaTarifa, Moneda moneda);
|
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,VigenciaTarifa vigenciaTarifa, Moneda moneda, Ruta ruta);
|
||||||
|
|
||||||
public List<Tarifa> buscarPorVigencia(VigenciaTarifa vigencia);
|
public List<Tarifa> buscarPorVigencia(VigenciaTarifa vigencia);
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(List<Moneda> lsMoneda, List<Marca> lsMarca,List<ClaseServicio> lsClaseServicio, List<Categoria> lsCategoria,List<Empresa> lsEmpresa, List<Ruta> lsRuta,List<TipoPuntoVenta> lsTipoPuntoVenta, List<VigenciaTarifa> lsVigenciaTarifa);
|
|
||||||
|
|
||||||
public Boolean podeAlterarTarifaMinima(Tarifa tarifa, Marca marca, Parada origem,Parada destino, ClaseServicio claseServicio, Plaza plaza, Moneda moneda);
|
public Boolean podeAlterarTarifaMinima(Tarifa tarifa, Marca marca, Parada origem,Parada destino, ClaseServicio claseServicio, Plaza plaza, Moneda moneda);
|
||||||
|
|
||||||
public List<Tarifa> buscarExisteVigencia(VigenciaTarifa vigenciaTarifa);
|
public List<Tarifa> buscarExisteVigencia(VigenciaTarifa vigenciaTarifa);
|
||||||
|
|
||||||
public Boolean generarTarifas(VigenciaTarifa vigencia, Marca marca);
|
public Boolean generarTarifas(VigenciaTarifa vigencia, Marca marca);
|
||||||
|
|
||||||
|
public boolean buscarTarifaExisteTramo(Tramo tramo);
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,17 +4,26 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service;
|
package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Via;
|
import com.rjconsultores.ventaboletos.entidad.Via;
|
||||||
import java.util.List;
|
import com.rjconsultores.ventaboletos.exception.BusinessException;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @author Administrador
|
* @author Administrador
|
||||||
*/
|
*/
|
||||||
public interface TramoService extends GenericService<Tramo, Integer> {
|
public interface TramoService {
|
||||||
|
|
||||||
|
|
||||||
|
public List<Tramo> obtenerTodos();
|
||||||
|
|
||||||
|
public Tramo obtenerID(Integer id);
|
||||||
|
|
||||||
|
public void borrar(Tramo entidad) throws BusinessException;
|
||||||
|
|
||||||
public Tramo obtenerPorOrigemDestino(Parada origem, Parada destino);
|
public Tramo obtenerPorOrigemDestino(Parada origem, Parada destino);
|
||||||
|
|
||||||
|
@ -52,5 +61,8 @@ public interface TramoService extends GenericService<Tramo, Integer> {
|
||||||
public void guardarTramosKm(List<Tramo> lsTramos,Via via);
|
public void guardarTramosKm(List<Tramo> lsTramos,Via via);
|
||||||
|
|
||||||
public List<Via> obtenerViasOrigemDestino(Parada origem, Parada destino);
|
public List<Via> obtenerViasOrigemDestino(Parada origem, Parada destino);
|
||||||
|
|
||||||
public List<Tramo> obtenerPorOrigemDestinoFetchLazy(Parada origem, Parada destino) ;
|
public List<Tramo> obtenerPorOrigemDestinoFetchLazy(Parada origem, Parada destino) ;
|
||||||
|
|
||||||
|
public Tramo suscribirActualizar(Tramo tramo) throws BusinessException ;
|
||||||
}
|
}
|
||||||
|
|
|
@ -432,4 +432,9 @@ public class RutaCombinacionServiceImpl implements RutaCombinacionService {
|
||||||
return rutaCombinacionDAO.pesquisaTarifaOficialObj(lsAddRmvMonedas, lsAddRmvMarcas, lsAddRmvClaseServico,
|
return rutaCombinacionDAO.pesquisaTarifaOficialObj(lsAddRmvMonedas, lsAddRmvMarcas, lsAddRmvClaseServico,
|
||||||
lsAddRmvEmpresas, lsAddRmvRutas, lsAddRmvVigenciaTarifa);
|
lsAddRmvEmpresas, lsAddRmvRutas, lsAddRmvVigenciaTarifa);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean existeTramo(Tramo tramo) {
|
||||||
|
return rutaCombinacionDAO.existeTramo(tramo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -88,119 +88,6 @@ public class TarifaServiceImpl implements TarifaService {
|
||||||
th = tarifaHistService.suscribir(th);
|
th = tarifaHistService.suscribir(th);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void cadastrarTarifaMonedaEstrangeira(Tarifa tarifa) {
|
|
||||||
Constante constMonedaNacional =constanteService.buscarPorNomeConstante("MONEDANACIONAL_ID");
|
|
||||||
Integer idMonedaNacional = new Integer(constMonedaNacional.getValorconstante());
|
|
||||||
|
|
||||||
Constante constMonedaEstrangeira = constanteService.buscarPorNomeConstante("MONEDAEXTRANJERA_ID");
|
|
||||||
Integer idMonedaEstrangeira = new Integer(constMonedaEstrangeira.getValorconstante());
|
|
||||||
|
|
||||||
Constante constCalculoTarifa =constanteService.buscarPorNomeConstante("CAMBIO_CALCULO_TARIFA");
|
|
||||||
BigDecimal valorCalculoTarifa = new BigDecimal(constCalculoTarifa.getValorconstante());
|
|
||||||
|
|
||||||
Moneda monedaEstrangeira =monedaService.obtenerID(idMonedaEstrangeira);
|
|
||||||
|
|
||||||
if (monedaEstrangeira == null){
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (tarifa.getMoneda() != null) {
|
|
||||||
if (tarifa.getMoneda().getMonedaId().equals(idMonedaNacional)) {
|
|
||||||
|
|
||||||
Tramo tramo = tarifa.getTramo();
|
|
||||||
ClaseServicio claseServicio = tarifa.getClaseServicio();
|
|
||||||
VigenciaTarifa vigenciaTarifa = tarifa.getVigenciaTarifa();
|
|
||||||
Marca marca = tarifa.getMarca();
|
|
||||||
|
|
||||||
List<Tarifa> lsTarifasEstrangeiraEquivalente =pesquisar(marca, tramo, monedaEstrangeira,claseServicio, vigenciaTarifa);
|
|
||||||
|
|
||||||
// se a tarifa estrangeira nao existe, cria:
|
|
||||||
if (lsTarifasEstrangeiraEquivalente.isEmpty()) {
|
|
||||||
|
|
||||||
Tarifa tarifaEstrangeira = new Tarifa();
|
|
||||||
tarifaEstrangeira.setActivo(Boolean.TRUE);
|
|
||||||
tarifaEstrangeira.setClaseServicio(tarifa.getClaseServicio());
|
|
||||||
tarifaEstrangeira.setFecmodif(Calendar.getInstance().getTime());
|
|
||||||
tarifaEstrangeira.setLsTarifaCategoria(tarifa.getLsTarifaCategoria());
|
|
||||||
tarifaEstrangeira.setLsTarifaTipoptovta(tarifa.getLsTarifaTipoptovta());
|
|
||||||
tarifaEstrangeira.setMarca(tarifa.getMarca());
|
|
||||||
tarifaEstrangeira.setMoneda(monedaEstrangeira);
|
|
||||||
tarifaEstrangeira.setStatustarifa(tarifa.getStatustarifa());
|
|
||||||
tarifaEstrangeira.setTramo(tarifa.getTramo());
|
|
||||||
tarifaEstrangeira.setVigenciaTarifa(tarifa.getVigenciaTarifa());
|
|
||||||
tarifaEstrangeira.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
||||||
|
|
||||||
// Moneda Nacional -> Moneda Estrangeria:
|
|
||||||
BigDecimal precioCambiar = tarifa.getPrecio();
|
|
||||||
precioCambiar = precioCambiar.divide(valorCalculoTarifa, 2, java.math.RoundingMode.HALF_UP);
|
|
||||||
tarifaEstrangeira.setPrecio(precioCambiar);
|
|
||||||
|
|
||||||
BigDecimal precioOriginalCambiar = tarifa.getPreciooriginal();
|
|
||||||
precioOriginalCambiar = precioOriginalCambiar.divide(valorCalculoTarifa, 2, java.math.RoundingMode.HALF_UP);
|
|
||||||
tarifaEstrangeira.setPreciooriginal(precioOriginalCambiar);
|
|
||||||
|
|
||||||
BigDecimal preciorEdAbiertoCambiar = tarifa.getPrecioredabierto();// esse valor tem q vir preenchido ou eu posso desconsiderá-lo?
|
|
||||||
if (preciorEdAbiertoCambiar != null) {
|
|
||||||
preciorEdAbiertoCambiar = preciorEdAbiertoCambiar.divide(valorCalculoTarifa, 2, java.math.RoundingMode.HALF_UP);
|
|
||||||
tarifaEstrangeira.setPrecioredabierto(preciorEdAbiertoCambiar);
|
|
||||||
}
|
|
||||||
|
|
||||||
Boolean podeAlterar = true;
|
|
||||||
podeAlterar =
|
|
||||||
podeAlterarTarifaMinima(tarifaEstrangeira, tarifa.getMarca(),
|
|
||||||
tarifa.getTramo().getOrigem(), tarifa.getTramo().getDestino(),
|
|
||||||
claseServicio, null, tarifaEstrangeira.getMoneda());
|
|
||||||
|
|
||||||
if (podeAlterar) {
|
|
||||||
cadastrarTarifaHistorico(tarifaEstrangeira);
|
|
||||||
|
|
||||||
tarifaDAO.suscribir(tarifaEstrangeira);
|
|
||||||
}
|
|
||||||
|
|
||||||
} else {
|
|
||||||
for (Tarifa tarifaEstrangeira : lsTarifasEstrangeiraEquivalente) {
|
|
||||||
tarifaEstrangeira.setActivo(Boolean.TRUE);
|
|
||||||
tarifaEstrangeira.setClaseServicio(tarifa.getClaseServicio());
|
|
||||||
tarifaEstrangeira.setFecmodif(Calendar.getInstance().getTime());
|
|
||||||
tarifaEstrangeira.setLsTarifaCategoria(tarifa.getLsTarifaCategoria());
|
|
||||||
tarifaEstrangeira.setLsTarifaTipoptovta(tarifa.getLsTarifaTipoptovta());
|
|
||||||
tarifaEstrangeira.setMarca(tarifa.getMarca());
|
|
||||||
tarifaEstrangeira.setMoneda(monedaEstrangeira);
|
|
||||||
tarifaEstrangeira.setStatustarifa(tarifa.getStatustarifa());
|
|
||||||
tarifaEstrangeira.setTramo(tarifa.getTramo());
|
|
||||||
tarifaEstrangeira.setVigenciaTarifa(tarifa.getVigenciaTarifa());
|
|
||||||
tarifaEstrangeira.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
||||||
|
|
||||||
// Moneda Nacional -> Moneda Estrangeria:
|
|
||||||
BigDecimal precioCambiar = tarifa.getPrecio();
|
|
||||||
precioCambiar = precioCambiar.divide(valorCalculoTarifa, 2, java.math.RoundingMode.HALF_UP);
|
|
||||||
tarifaEstrangeira.setPrecio(precioCambiar);
|
|
||||||
|
|
||||||
BigDecimal precioOriginalCambiar = tarifa.getPreciooriginal();
|
|
||||||
precioOriginalCambiar = precioOriginalCambiar.divide(valorCalculoTarifa, 2, java.math.RoundingMode.HALF_UP);
|
|
||||||
tarifaEstrangeira.setPreciooriginal(precioOriginalCambiar);
|
|
||||||
|
|
||||||
BigDecimal preciorEdAbiertoCambiar = tarifa.getPrecioredabierto();
|
|
||||||
if (preciorEdAbiertoCambiar != null) {
|
|
||||||
preciorEdAbiertoCambiar = preciorEdAbiertoCambiar.divide(valorCalculoTarifa, 2, java.math.RoundingMode.HALF_UP);
|
|
||||||
tarifaEstrangeira.setPrecioredabierto(preciorEdAbiertoCambiar);
|
|
||||||
}
|
|
||||||
Boolean podeAlterar = true;
|
|
||||||
podeAlterar =
|
|
||||||
podeAlterarTarifaMinima(tarifaEstrangeira, tarifa.getMarca(),
|
|
||||||
tarifa.getTramo().getOrigem(), tarifa.getTramo().getDestino(),
|
|
||||||
tarifaEstrangeira.getClaseServicio(), null, tarifaEstrangeira.getMoneda());
|
|
||||||
|
|
||||||
if (podeAlterar) {
|
|
||||||
cadastrarTarifaHistorico(tarifaEstrangeira);
|
|
||||||
|
|
||||||
tarifaDAO.suscribir(tarifaEstrangeira);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public Tarifa suscribir(Tarifa entidad) {
|
public Tarifa suscribir(Tarifa entidad) {
|
||||||
|
@ -209,7 +96,6 @@ public class TarifaServiceImpl implements TarifaService {
|
||||||
entidad.setActivo(Boolean.TRUE);
|
entidad.setActivo(Boolean.TRUE);
|
||||||
|
|
||||||
cadastrarTarifaHistorico(entidad);
|
cadastrarTarifaHistorico(entidad);
|
||||||
cadastrarTarifaMonedaEstrangeira(entidad);
|
|
||||||
|
|
||||||
return tarifaDAO.suscribir(entidad);
|
return tarifaDAO.suscribir(entidad);
|
||||||
}
|
}
|
||||||
|
@ -256,11 +142,6 @@ public class TarifaServiceImpl implements TarifaService {
|
||||||
tarifaDAO.actualizacion(entidad);
|
tarifaDAO.actualizacion(entidad);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(Marca marca, Tramo tramo, Moneda moneda,
|
|
||||||
ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa) {
|
|
||||||
return tarifaDAO.pesquisar(marca, tramo, moneda, claseServicio, vigenciaTarifa);
|
|
||||||
}
|
|
||||||
|
|
||||||
public boolean existe(Marca marca, Tramo tramo, Moneda moneda,ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Ruta ruta, OrgaoConcedente orgaoConcedente) {
|
public boolean existe(Marca marca, Tramo tramo, Moneda moneda,ClaseServicio claseServicio, VigenciaTarifa vigenciaTarifa, Ruta ruta, OrgaoConcedente orgaoConcedente) {
|
||||||
return tarifaDAO.existe(marca, tramo, moneda, claseServicio, vigenciaTarifa, ruta, orgaoConcedente);
|
return tarifaDAO.existe(marca, tramo, moneda, claseServicio, vigenciaTarifa, ruta, orgaoConcedente);
|
||||||
}
|
}
|
||||||
|
@ -273,22 +154,14 @@ public class TarifaServiceImpl implements TarifaService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,
|
public Tarifa buscar(Tramo tramo, Marca marca, ClaseServicio claseServicio,
|
||||||
VigenciaTarifa vigenciaTarifa, Moneda moneda) {
|
VigenciaTarifa vigenciaTarifa, Moneda moneda, Ruta ruta) {
|
||||||
return tarifaDAO.buscar(tramo, marca, claseServicio, vigenciaTarifa, moneda);
|
return tarifaDAO.buscar(tramo, marca, claseServicio, vigenciaTarifa, moneda, ruta);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Tarifa> buscarPorVigencia(VigenciaTarifa vigencia) {
|
public List<Tarifa> buscarPorVigencia(VigenciaTarifa vigencia) {
|
||||||
return tarifaDAO.buscarPorVigencia(vigencia);
|
return tarifaDAO.buscarTarifasAtivasInativasPorVigencia(vigencia);
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Tarifa> pesquisar(List<Moneda> lsMoneda, List<Marca> lsMarca,
|
|
||||||
List<ClaseServicio> lsClaseServicio, List<Categoria> lsCategoria,
|
|
||||||
List<Empresa> lsEmpresa, List<Ruta> lsRuta,
|
|
||||||
List<TipoPuntoVenta> lsTipoPuntoVenta, List<VigenciaTarifa> lsVigenciaTarifa) {
|
|
||||||
|
|
||||||
return tarifaDAO.pesquisar(lsMoneda, lsMarca, lsClaseServicio, lsCategoria,
|
|
||||||
lsEmpresa, lsRuta, lsTipoPuntoVenta, lsVigenciaTarifa);
|
|
||||||
}
|
|
||||||
|
|
||||||
public Boolean podeAlterarTarifaMinima(Tarifa tarifa, Marca marca, Parada origem,
|
public Boolean podeAlterarTarifaMinima(Tarifa tarifa, Marca marca, Parada origem,
|
||||||
Parada destino, ClaseServicio claseServicio, Plaza plaza, Moneda moneda) {
|
Parada destino, ClaseServicio claseServicio, Plaza plaza, Moneda moneda) {
|
||||||
|
@ -321,7 +194,7 @@ public class TarifaServiceImpl implements TarifaService {
|
||||||
}
|
}
|
||||||
|
|
||||||
public List<Tarifa> buscarExisteVigencia(VigenciaTarifa vigenciaTarifa) {
|
public List<Tarifa> buscarExisteVigencia(VigenciaTarifa vigenciaTarifa) {
|
||||||
return tarifaDAO.buscarExisteVigencia(vigenciaTarifa);
|
return tarifaDAO.buscarTarifasAtivasPorVigencia(vigenciaTarifa);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Metodo para gerar todas as tarifas possiveis
|
// Metodo para gerar todas as tarifas possiveis
|
||||||
|
@ -353,10 +226,9 @@ public class TarifaServiceImpl implements TarifaService {
|
||||||
tarifa.setTramo(rc.getTramo());
|
tarifa.setTramo(rc.getTramo());
|
||||||
|
|
||||||
// Tramo-Marca-Classe-Vigencia-Moneda
|
// Tramo-Marca-Classe-Vigencia-Moneda
|
||||||
Tarifa existeTarifa = tarifaDAO.buscar(tarifa.getTramo(), tarifa.getMarca(), tarifa.getClaseServicio(),
|
boolean existe = tarifaDAO.existe(tarifa.getMarca(), tarifa.getTramo(), tarifa.getMoneda(), tarifa.getClaseServicio(), tarifa.getVigenciaTarifa(), tarifa.getRuta(), tarifa.getOrgaoConcedente()) ;
|
||||||
tarifa.getVigenciaTarifa(), tarifa.getMoneda());
|
|
||||||
|
|
||||||
if (existeTarifa == null) {
|
if (!existe) {
|
||||||
tarifa.setFecmodif(Calendar.getInstance().getTime());
|
tarifa.setFecmodif(Calendar.getInstance().getTime());
|
||||||
tarifa.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
tarifa.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
tarifa.setActivo(Boolean.TRUE);
|
tarifa.setActivo(Boolean.TRUE);
|
||||||
|
@ -370,9 +242,14 @@ public class TarifaServiceImpl implements TarifaService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.debug("ERRO:" + e);
|
log.debug("ERRO al generar tarifas" , e);
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean buscarTarifaExisteTramo(Tramo tramo) {
|
||||||
|
return tarifaDAO.buscarTarifaExisteTramo(tramo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,17 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service.impl;
|
package com.rjconsultores.ventaboletos.service.impl;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Calendar;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import org.apache.commons.collections.CollectionUtils;
|
||||||
|
import org.apache.commons.collections.Predicate;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.dao.RutaCombinacionDAO;
|
||||||
import com.rjconsultores.ventaboletos.dao.TramoDAO;
|
import com.rjconsultores.ventaboletos.dao.TramoDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
|
@ -11,15 +22,11 @@ import com.rjconsultores.ventaboletos.entidad.Tramo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
|
import com.rjconsultores.ventaboletos.entidad.TramoServicio;
|
||||||
import com.rjconsultores.ventaboletos.entidad.TramoTiempo;
|
import com.rjconsultores.ventaboletos.entidad.TramoTiempo;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Via;
|
import com.rjconsultores.ventaboletos.entidad.Via;
|
||||||
|
import com.rjconsultores.ventaboletos.exception.BusinessException;
|
||||||
|
import com.rjconsultores.ventaboletos.service.EsquemaCorridaService;
|
||||||
|
import com.rjconsultores.ventaboletos.service.TarifaService;
|
||||||
import com.rjconsultores.ventaboletos.service.TramoService;
|
import com.rjconsultores.ventaboletos.service.TramoService;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
import java.math.BigDecimal;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Calendar;
|
|
||||||
import java.util.List;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.stereotype.Service;
|
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
|
@ -30,6 +37,12 @@ public class TramoServiceImpl implements TramoService {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private TramoDAO tramoDAO;
|
private TramoDAO tramoDAO;
|
||||||
|
@Autowired
|
||||||
|
private RutaCombinacionDAO rutaCombinacionDAO;
|
||||||
|
@Autowired
|
||||||
|
private EsquemaCorridaService esquemaCorridaService;
|
||||||
|
@Autowired
|
||||||
|
private TarifaService tarifaService;
|
||||||
|
|
||||||
public List<Tramo> obtenerTodos() {
|
public List<Tramo> obtenerTodos() {
|
||||||
return tramoDAO.obtenerTodos();
|
return tramoDAO.obtenerTodos();
|
||||||
|
@ -39,29 +52,26 @@ public class TramoServiceImpl implements TramoService {
|
||||||
return tramoDAO.obtenerID(id);
|
return tramoDAO.obtenerID(id);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
@Transactional(rollbackFor = BusinessException.class)
|
||||||
public Tramo suscribir(Tramo entidad) {
|
public void borrar(Tramo entidad) throws BusinessException {
|
||||||
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
||||||
entidad.setFecmodif(Calendar.getInstance().getTime());
|
|
||||||
entidad.setActivo(Boolean.TRUE);
|
|
||||||
|
|
||||||
return tramoDAO.suscribir(entidad);
|
|
||||||
|
boolean rutaOcupaTramo = rutaCombinacionDAO.existeTramo(entidad);
|
||||||
|
if (rutaOcupaTramo){
|
||||||
|
throw new BusinessException("editarTramosController.MSG.borrarFalse");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
boolean existeEsquemaCorrida = esquemaCorridaService.buscarEsquemaCorridaExisteTramo(entidad);
|
||||||
public Tramo actualizacion(Tramo entidad) {
|
if (existeEsquemaCorrida){
|
||||||
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
throw new BusinessException("editarTramosController.MSG.borrarFalse");
|
||||||
entidad.setFecmodif(Calendar.getInstance().getTime());
|
}
|
||||||
entidad.setActivo(Boolean.TRUE);
|
|
||||||
|
boolean existeTarifa = tarifaService.buscarTarifaExisteTramo(entidad);
|
||||||
return tramoDAO.actualizacion(entidad);
|
if (existeTarifa){
|
||||||
|
throw new BusinessException("editarTramosController.MSG.borrarFalse");
|
||||||
}
|
}
|
||||||
|
|
||||||
@Transactional
|
|
||||||
public void borrar(Tramo entidad) {
|
|
||||||
entidad = tramoDAO.obtenerID(entidad.getTramoId());
|
entidad = tramoDAO.obtenerID(entidad.getTramoId());
|
||||||
|
|
||||||
|
|
||||||
if (entidad.getLsTramoTiempo() != null) {
|
if (entidad.getLsTramoTiempo() != null) {
|
||||||
for (TramoTiempo tramo : entidad.getLsTramoTiempo()) {
|
for (TramoTiempo tramo : entidad.getLsTramoTiempo()) {
|
||||||
tramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
tramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
@ -155,4 +165,98 @@ public class TramoServiceImpl implements TramoService {
|
||||||
public List<Tramo> obtenerPorOrigemDestinoFetchLazy(Parada origem, Parada destino) {
|
public List<Tramo> obtenerPorOrigemDestinoFetchLazy(Parada origem, Parada destino) {
|
||||||
return tramoDAO.obtenerPorOrigemDestinoFetchLazy(origem, destino);
|
return tramoDAO.obtenerPorOrigemDestinoFetchLazy(origem, destino);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional(rollbackFor = BusinessException.class)
|
||||||
|
public Tramo suscribirActualizar(Tramo tramo) throws BusinessException {
|
||||||
|
|
||||||
|
Tramo tramoBusqueda = buscar(tramo.getOrigem(), tramo.getDestino(), tramo.getVia());
|
||||||
|
|
||||||
|
if (tramo.getOrigem().equals(tramo.getDestino())) {
|
||||||
|
throw new BusinessException("editarTramosController.MSG.OrigemDestinoIguais");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((tramoBusqueda != null) && (tramo.getTramoId() == null)) {
|
||||||
|
throw new BusinessException("MSG.Registro.Existe.Origem.Destino.Via");
|
||||||
|
}
|
||||||
|
|
||||||
|
if ((tramoBusqueda != null) && (!tramo.equals(tramoBusqueda))) {
|
||||||
|
throw new BusinessException("MSG.Registro.Existe.Origem.Destino.Via");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (tramo.getTramoId() != null) {
|
||||||
|
boolean rutaOcupaTramo = rutaCombinacionDAO.existeTramo(tramo);
|
||||||
|
|
||||||
|
if (rutaOcupaTramo) {
|
||||||
|
Tramo tramoOriginal = tramoDAO.obtenerID(tramo.getTramoId());
|
||||||
|
|
||||||
|
if (!tramo.getVia().equals(tramoOriginal.getVia())) {
|
||||||
|
throw new BusinessException("TramoServiceImpl.msg.validacionVia");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!tramo.getOrigem().equals(tramoOriginal.getOrigem())) {
|
||||||
|
throw new BusinessException("TramoServiceImpl.msg.validacionOrigen");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!tramo.getDestino().equals(tramoOriginal.getDestino())) {
|
||||||
|
throw new BusinessException("TramoServiceImpl.msg.validacionDestino");
|
||||||
|
}
|
||||||
|
|
||||||
|
// Validación: No es posible quitar ClaseServicio de un tramo que esta asociado a una ruta e esa ruta tenga la misma clase de servicio
|
||||||
|
// Esa validación tambien permite que el usuario quite una clase y la agregue de nuevo con otro tiempo de recorrido
|
||||||
|
List<TramoServicio> lsTramoServicioOriginal = tramoOriginal.getTramoServicioList();
|
||||||
|
for (final TramoServicio ts : lsTramoServicioOriginal) {
|
||||||
|
boolean existe = CollectionUtils.exists(tramo.getTramoServicioList(), new Predicate() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean evaluate(Object o) {
|
||||||
|
TramoServicio t = (TramoServicio) o;
|
||||||
|
if (t.getActivo()) {
|
||||||
|
return t.getClaseServicio().equals(ts.getClaseServicio());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!existe) {
|
||||||
|
if (rutaCombinacionDAO.existeTramo(tramo, ts.getClaseServicio())) {
|
||||||
|
throw new BusinessException("TramoServiceImpl.msg.validacionTramoServicio");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
List<TramoTiempo> lsTramoTiempoOriginal = tramoOriginal.getLsTramoTiempo();
|
||||||
|
for (final TramoTiempo tt : lsTramoTiempoOriginal) {
|
||||||
|
boolean existe = CollectionUtils.exists(tramo.getLsTramoTiempo(), new Predicate() {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean evaluate(Object o) {
|
||||||
|
TramoTiempo t = (TramoTiempo) o;
|
||||||
|
if (t.getActivo()) {
|
||||||
|
return t.getClaseServicio().equals(tt.getClaseServicio());
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!existe) {
|
||||||
|
if (rutaCombinacionDAO.existeTramo(tramo, tt.getClaseServicio())) {
|
||||||
|
throw new BusinessException("TramoServiceImpl.msg.validacionTramoTiempo");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
tramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
tramo.setFecmodif(Calendar.getInstance().getTime());
|
||||||
|
tramo.setActivo(Boolean.TRUE);
|
||||||
|
|
||||||
|
if (tramo.getTramoId() == null) {
|
||||||
|
return tramoDAO.suscribir(tramo);
|
||||||
|
} else {
|
||||||
|
return tramoDAO.actualizacion(tramo);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,6 +13,7 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.dao.TramoDAO;
|
||||||
import com.rjconsultores.ventaboletos.dao.TramoServicioDAO;
|
import com.rjconsultores.ventaboletos.dao.TramoServicioDAO;
|
||||||
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
import com.rjconsultores.ventaboletos.entidad.Parada;
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
|
@ -34,6 +35,8 @@ public class TramoServicioServiceImpl implements TramoServicioService {
|
||||||
private TramoServicioDAO tramoServicioDAO;
|
private TramoServicioDAO tramoServicioDAO;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TramoService tramoService;
|
private TramoService tramoService;
|
||||||
|
@Autowired
|
||||||
|
private TramoDAO tramoDAO;
|
||||||
|
|
||||||
public List<TramoServicio> obtenerTodos() {
|
public List<TramoServicio> obtenerTodos() {
|
||||||
return tramoServicioDAO.obtenerTodos();
|
return tramoServicioDAO.obtenerTodos();
|
||||||
|
@ -104,8 +107,11 @@ public class TramoServicioServiceImpl implements TramoServicioService {
|
||||||
tramo.setDestino(destino);
|
tramo.setDestino(destino);
|
||||||
tramo.setKmReal(kmsReal);
|
tramo.setKmReal(kmsReal);
|
||||||
tramo.setVia(via);
|
tramo.setVia(via);
|
||||||
|
tramo.setActivo(Boolean.TRUE);
|
||||||
|
tramo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
tramo.setFecmodif(new java.util.Date());
|
||||||
|
|
||||||
tramo = tramoService.suscribir(tramo);
|
tramo = tramoDAO.suscribir(tramo);
|
||||||
}
|
}
|
||||||
tramoServicio = new TramoServicio();
|
tramoServicio = new TramoServicio();
|
||||||
tramoServicio.setClaseServicio(claseServicio);
|
tramoServicio.setClaseServicio(claseServicio);
|
||||||
|
|
Loading…
Reference in New Issue