fixed bug #7192
git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@56926 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
dd1476a8c7
commit
217ce17a26
|
@ -4,7 +4,12 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.dao;
|
package com.rjconsultores.ventaboletos.dao;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -14,4 +19,8 @@ import java.util.List;
|
||||||
public interface PricingEspecificoDAO extends GenericDAO<PricingEspecifico, Long> {
|
public interface PricingEspecificoDAO extends GenericDAO<PricingEspecifico, Long> {
|
||||||
|
|
||||||
public List<PricingEspecifico> buscarPorNome(PricingEspecifico pricingEspecifico);
|
public List<PricingEspecifico> buscarPorNome(PricingEspecifico pricingEspecifico);
|
||||||
|
|
||||||
|
public List<PricingEspecifico> buscarPorNome(String nome);
|
||||||
|
|
||||||
|
public List<PricingEspecifico> buscar(List<Empresa> empresas, List<ClaseServicio> tipoClasses, List<Parada> origens, List<Parada> destinos, Date vigenciaInicial, Date vigenciaFinal);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,9 +5,19 @@
|
||||||
package com.rjconsultores.ventaboletos.dao.hibernate;
|
package com.rjconsultores.ventaboletos.dao.hibernate;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.PricingEspecificoDAO;
|
import com.rjconsultores.ventaboletos.dao.PricingEspecificoDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.OrgaoConcedente;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Ruta;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
||||||
|
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.hibernate.Criteria;
|
import org.hibernate.Criteria;
|
||||||
|
import org.hibernate.Query;
|
||||||
import org.hibernate.SessionFactory;
|
import org.hibernate.SessionFactory;
|
||||||
import org.hibernate.criterion.Restrictions;
|
import org.hibernate.criterion.Restrictions;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -42,4 +52,81 @@ public class PricingEspecificoHibernateDAO extends GenericHibernateDAO<PricingEs
|
||||||
|
|
||||||
return c.list();
|
return c.list();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PricingEspecifico> buscarPorNome(String nome) {
|
||||||
|
Criteria c = getSession().createCriteria(getPersistentClass());
|
||||||
|
c.add(Restrictions.eq("activo", Boolean.TRUE));
|
||||||
|
c.add(Restrictions.eq("nombPricing", nome));
|
||||||
|
|
||||||
|
return c.list();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PricingEspecifico> buscar(List<Empresa> empresas, List<ClaseServicio> tipoClasses, List<Parada> origens, List<Parada> destinos, Date vigenciaInicial, Date vigenciaFinal) {
|
||||||
|
|
||||||
|
StringBuilder hql = new StringBuilder();
|
||||||
|
hql.append("SELECT DISTINCT pe ");
|
||||||
|
hql.append("FROM PricingEspecifico pe ");
|
||||||
|
hql.append(" WHERE pe.activo = 1 ");
|
||||||
|
|
||||||
|
if (!empresas.isEmpty()) {
|
||||||
|
hql.append(" AND pe.marca.empresa.empresaId IN (");
|
||||||
|
for (Empresa e : empresas) {
|
||||||
|
hql.append(e.getEmpresaId() + ",");
|
||||||
|
}
|
||||||
|
hql.deleteCharAt(hql.length() - 1);
|
||||||
|
hql.append(")");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!tipoClasses.isEmpty()) {
|
||||||
|
hql.append(" AND pe.claseServicio.claseservicioId IN (");
|
||||||
|
for (ClaseServicio c : tipoClasses) {
|
||||||
|
hql.append(c.getClaseservicioId() + ",");
|
||||||
|
}
|
||||||
|
hql.deleteCharAt(hql.length() - 1);
|
||||||
|
hql.append(")");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!origens.isEmpty()) {
|
||||||
|
hql.append(" AND pe.parada.paradaId IN (");
|
||||||
|
for (Parada o : origens) {
|
||||||
|
hql.append(o.getParadaId() + ",");
|
||||||
|
}
|
||||||
|
hql.deleteCharAt(hql.length() - 1);
|
||||||
|
hql.append(")");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!destinos.isEmpty()) {
|
||||||
|
hql.append(" AND pe.parada1.paradaId IN (");
|
||||||
|
for (Parada o : origens) {
|
||||||
|
hql.append(o.getParadaId() + ",");
|
||||||
|
}
|
||||||
|
hql.deleteCharAt(hql.length() - 1);
|
||||||
|
hql.append(")");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (vigenciaInicial != null) {
|
||||||
|
hql.append(" AND YEAR(pe.fechorinicio) >= YEAR(:vigenciaInicial) ");
|
||||||
|
hql.append(" AND MONTH(pe.fechorinicio)>= MONTH(:vigenciaInicial) ");
|
||||||
|
hql.append(" AND DAY(pe.fechorinicio) >= DAY(:vigenciaInicial) ");
|
||||||
|
}
|
||||||
|
|
||||||
|
if (vigenciaFinal != null) {
|
||||||
|
hql.append(" AND YEAR(pe.fechorfin) <= YEAR(:vigenciaFinal) ");
|
||||||
|
hql.append(" AND MONTH(pe.fechorfin) <= MONTH(:vigenciaFinal) ");
|
||||||
|
hql.append(" AND DAY(pe.fechorfin) <= DAY(:vigenciaFinal) ");
|
||||||
|
}
|
||||||
|
|
||||||
|
Query query = getSession().createQuery(hql.toString());
|
||||||
|
|
||||||
|
if (vigenciaInicial != null) {
|
||||||
|
query.setDate("vigenciaInicial", vigenciaInicial);
|
||||||
|
}
|
||||||
|
if (vigenciaFinal != null) {
|
||||||
|
query.setDate("vigenciaFinal", vigenciaFinal);
|
||||||
|
}
|
||||||
|
|
||||||
|
return query.list();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ import javax.persistence.Transient;
|
||||||
@Entity
|
@Entity
|
||||||
@SequenceGenerator(name = "PRICING_ESPECIFICO_SEQ", sequenceName = "PRICING_ESPECIFICO_SEQ", allocationSize = 1)
|
@SequenceGenerator(name = "PRICING_ESPECIFICO_SEQ", sequenceName = "PRICING_ESPECIFICO_SEQ", allocationSize = 1)
|
||||||
@Table(name = "PRICING_ESPECIFICO")
|
@Table(name = "PRICING_ESPECIFICO")
|
||||||
public class PricingEspecifico implements Serializable {
|
public class PricingEspecifico implements Serializable, Cloneable {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
@Id
|
@Id
|
||||||
|
@ -275,4 +275,5 @@ public class PricingEspecifico implements Serializable {
|
||||||
}
|
}
|
||||||
return peoList;
|
return peoList;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,7 +4,11 @@
|
||||||
*/
|
*/
|
||||||
package com.rjconsultores.ventaboletos.service;
|
package com.rjconsultores.ventaboletos.service;
|
||||||
|
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -14,4 +18,10 @@ import java.util.List;
|
||||||
public interface PricingEspecificoService extends GenericService<PricingEspecifico, Long> {
|
public interface PricingEspecificoService extends GenericService<PricingEspecifico, Long> {
|
||||||
|
|
||||||
public List<PricingEspecifico> buscarPorNome(PricingEspecifico pricingEspecifico);
|
public List<PricingEspecifico> buscarPorNome(PricingEspecifico pricingEspecifico);
|
||||||
|
|
||||||
|
public List<PricingEspecifico> buscarPorNome(String nome);
|
||||||
|
|
||||||
|
public PricingEspecifico clonarPricing(Long id, String nome);
|
||||||
|
|
||||||
|
public List<PricingEspecifico> buscar(List<Empresa> empresas, List<ClaseServicio> tipoClasses, List<Parada> origens, List<Parada> destinos, Date vigenciaInicial, Date vigenciaFinal);
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,11 +5,20 @@
|
||||||
package com.rjconsultores.ventaboletos.service.impl;
|
package com.rjconsultores.ventaboletos.service.impl;
|
||||||
|
|
||||||
import com.rjconsultores.ventaboletos.dao.PricingEspecificoDAO;
|
import com.rjconsultores.ventaboletos.dao.PricingEspecificoDAO;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.ClaseServicio;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Empresa;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.Parada;
|
||||||
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecifico;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoOcupacion;
|
||||||
|
import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa;
|
||||||
import com.rjconsultores.ventaboletos.service.PricingEspecificoService;
|
import com.rjconsultores.ventaboletos.service.PricingEspecificoService;
|
||||||
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
||||||
|
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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;
|
||||||
|
@ -62,4 +71,59 @@ public class PricingEspecificoServiceImpl implements PricingEspecificoService {
|
||||||
public List<PricingEspecifico> buscarPorNome(PricingEspecifico pricingEspecifico) {
|
public List<PricingEspecifico> buscarPorNome(PricingEspecifico pricingEspecifico) {
|
||||||
return pricingEspecificoDAO.buscarPorNome(pricingEspecifico);
|
return pricingEspecificoDAO.buscarPorNome(pricingEspecifico);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PricingEspecifico> buscarPorNome(String nome) {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public PricingEspecifico clonarPricing(Long id, String nome) {
|
||||||
|
|
||||||
|
PricingEspecifico pricingToClone = obtenerID(id);
|
||||||
|
PricingEspecifico clonePricing = new PricingEspecifico();
|
||||||
|
|
||||||
|
clonePricing.setNombPricing(nome);
|
||||||
|
clonePricing.setCategoria(pricingToClone.getCategoria());
|
||||||
|
clonePricing.setClaseServicio(pricingToClone.getClaseServicio());
|
||||||
|
clonePricing.setCorridaId(pricingToClone.getCorridaId());
|
||||||
|
clonePricing.setFechorfin(pricingToClone.getFechorfin());
|
||||||
|
clonePricing.setFechorinicio(pricingToClone.getFechorinicio());
|
||||||
|
clonePricing.setMarca(pricingToClone.getMarca());
|
||||||
|
clonePricing.setMoneda(pricingToClone.getMoneda());
|
||||||
|
clonePricing.setParada(pricingToClone.getParada());
|
||||||
|
clonePricing.setParada1(pricingToClone.getParada1());
|
||||||
|
clonePricing.setPricingEspecificoOcupacionsList(getPricingEspecificoOcupacion(pricingToClone, clonePricing));
|
||||||
|
clonePricing.setTarifa(pricingToClone.getTarifa());
|
||||||
|
clonePricing.setTarifaredabierto(pricingToClone.getTarifaredabierto());
|
||||||
|
clonePricing.setTipoPtovta(pricingToClone.getTipoPtovta());
|
||||||
|
|
||||||
|
return suscribir(clonePricing);
|
||||||
|
}
|
||||||
|
|
||||||
|
private List<PricingEspecificoOcupacion> getPricingEspecificoOcupacion(PricingEspecifico pricingToClone, PricingEspecifico clonePricing){
|
||||||
|
|
||||||
|
List<PricingEspecificoOcupacion> list = new ArrayList<PricingEspecificoOcupacion>();
|
||||||
|
|
||||||
|
for(PricingEspecificoOcupacion peo : pricingToClone.getPricingEspecificoOcupacionsList()){
|
||||||
|
PricingEspecificoOcupacion newPeo = new PricingEspecificoOcupacion();
|
||||||
|
newPeo.setActivo(peo.getActivo());
|
||||||
|
newPeo.setFecmodif(new Date());
|
||||||
|
newPeo.setOcupacionfinal(peo.getOcupacionfinal());
|
||||||
|
newPeo.setOcupacioninicial(peo.getOcupacioninicial());
|
||||||
|
newPeo.setPricingEspecifico(clonePricing);
|
||||||
|
newPeo.setTarifa(peo.getTarifa());
|
||||||
|
newPeo.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
||||||
|
list.add(newPeo);
|
||||||
|
}
|
||||||
|
|
||||||
|
return list;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<PricingEspecifico> buscar(List<Empresa> empresas, List<ClaseServicio> tipoClasses, List<Parada> origens, List<Parada> destinos, Date vigenciaInicial, Date vigenciaFinal) {
|
||||||
|
return pricingEspecificoDAO.buscar(empresas, tipoClasses, origens, destinos, vigenciaInicial, vigenciaFinal);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue