199 lines
7.3 KiB
Java
199 lines
7.3 KiB
Java
/*
|
|
* To change this template, choose Tools | Templates
|
|
* and open the template in the editor.
|
|
*/
|
|
package com.rjconsultores.ventaboletos.service.impl;
|
|
|
|
import java.util.ArrayList;
|
|
import java.util.Calendar;
|
|
import java.util.Date;
|
|
import java.util.List;
|
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
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.PricingEspecificoAgencia;
|
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoCanalVendas;
|
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoCategoria;
|
|
import com.rjconsultores.ventaboletos.entidad.PricingEspecificoOcupacion;
|
|
import com.rjconsultores.ventaboletos.service.PricingEspecificoService;
|
|
import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado;
|
|
|
|
/**
|
|
*
|
|
* @author Rafius
|
|
*/
|
|
@Service("pricingEspecificoService")
|
|
public class PricingEspecificoServiceImpl implements PricingEspecificoService {
|
|
|
|
@Autowired
|
|
private PricingEspecificoDAO pricingEspecificoDAO;
|
|
|
|
public List<PricingEspecifico> obtenerTodos() {
|
|
return pricingEspecificoDAO.obtenerTodos();
|
|
}
|
|
|
|
public PricingEspecifico obtenerID(Long id) {
|
|
return pricingEspecificoDAO.obtenerID(id);
|
|
}
|
|
|
|
@Transactional
|
|
public PricingEspecifico suscribir(PricingEspecifico entidad) {
|
|
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
entidad.setFecmodif(Calendar.getInstance().getTime());
|
|
entidad.setActivo(Boolean.TRUE);
|
|
|
|
return pricingEspecificoDAO.suscribir(entidad);
|
|
}
|
|
|
|
@Transactional
|
|
public PricingEspecifico actualizacion(PricingEspecifico entidad) {
|
|
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
entidad.setFecmodif(Calendar.getInstance().getTime());
|
|
entidad.setActivo(Boolean.TRUE);
|
|
|
|
return pricingEspecificoDAO.actualizacion(entidad);
|
|
}
|
|
|
|
@Transactional
|
|
public void borrar(PricingEspecifico entidad) {
|
|
entidad.setUsuarioId(UsuarioLogado.getUsuarioLogado().getUsuarioId());
|
|
entidad.setFecmodif(Calendar.getInstance().getTime());
|
|
entidad.setActivo(Boolean.FALSE);
|
|
|
|
pricingEspecificoDAO.actualizacion(entidad);
|
|
}
|
|
|
|
public List<PricingEspecifico> buscarPorNome(PricingEspecifico 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.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.setPricingEspecificoAgenciasList(getPricingEspecificoAgenciasList(pricingToClone, clonePricing));
|
|
clonePricing.setPricingEspecificoCanalVendasList(getPricingEspecificoCanalVendasList(pricingToClone, clonePricing));
|
|
clonePricing.setPricingEspecificoCategoriaList(getPricingEspecificoCategoriaList(pricingToClone, clonePricing));
|
|
|
|
return suscribir(clonePricing);
|
|
}
|
|
|
|
private List<PricingEspecificoAgencia> getPricingEspecificoAgenciasList(PricingEspecifico pricingToClone, PricingEspecifico clonePricing) {
|
|
|
|
List<PricingEspecificoAgencia> toReturn = new ArrayList<PricingEspecificoAgencia>();
|
|
|
|
for (PricingEspecificoAgencia a : pricingToClone.getPricingEspecificoAgenciasList()) {
|
|
if (a.getActivo()) {
|
|
PricingEspecificoAgencia newPricingAgencia = new PricingEspecificoAgencia();
|
|
|
|
newPricingAgencia.setActivo(true);
|
|
newPricingAgencia.setFecmodif(new Date());
|
|
newPricingAgencia.setPricingEspecifico(clonePricing);
|
|
newPricingAgencia.setPuntoVenta(a.getPuntoVenta());
|
|
newPricingAgencia.setUsuarioId(clonePricing.getUsuarioId());
|
|
|
|
toReturn.add(newPricingAgencia);
|
|
}
|
|
}
|
|
|
|
return toReturn;
|
|
}
|
|
|
|
private List<PricingEspecificoCanalVendas> getPricingEspecificoCanalVendasList(PricingEspecifico pricingToClone, PricingEspecifico clonePricing) {
|
|
|
|
List<PricingEspecificoCanalVendas> toReturn = new ArrayList<PricingEspecificoCanalVendas>();
|
|
|
|
for (PricingEspecificoCanalVendas c : pricingToClone.getPricingEspecificoCanalVendasList()) {
|
|
if (c.getActivo()) {
|
|
PricingEspecificoCanalVendas newCanalVendas = new PricingEspecificoCanalVendas();
|
|
|
|
newCanalVendas.setActivo(true);
|
|
newCanalVendas.setFecmodif(new Date());
|
|
newCanalVendas.setPricingEspecifico(clonePricing);
|
|
newCanalVendas.setTipoPtovta(c.getTipoPtovta());
|
|
newCanalVendas.setUsuarioId(clonePricing.getUsuarioId());
|
|
|
|
toReturn.add(newCanalVendas);
|
|
}
|
|
}
|
|
|
|
return toReturn;
|
|
}
|
|
|
|
private List<PricingEspecificoCategoria> getPricingEspecificoCategoriaList(PricingEspecifico pricingToClone, PricingEspecifico clonePricing) {
|
|
|
|
List<PricingEspecificoCategoria> toReturn = new ArrayList<PricingEspecificoCategoria>();
|
|
|
|
for (PricingEspecificoCategoria c : pricingToClone.getPricingEspecificoCategoriaList()) {
|
|
if (c.getActivo()) {
|
|
PricingEspecificoCategoria newCategoria = new PricingEspecificoCategoria();
|
|
|
|
newCategoria.setActivo(true);
|
|
newCategoria.setFecmodif(new Date());
|
|
newCategoria.setPricingEspecifico(clonePricing);
|
|
newCategoria.setCategoria(c.getCategoria());
|
|
newCategoria.setUsuarioId(clonePricing.getUsuarioId());
|
|
|
|
toReturn.add(newCategoria);
|
|
}
|
|
}
|
|
|
|
return toReturn;
|
|
}
|
|
|
|
private List<PricingEspecificoOcupacion> getPricingEspecificoOcupacion(PricingEspecifico pricingToClone, PricingEspecifico clonePricing){
|
|
|
|
List<PricingEspecificoOcupacion> list = new ArrayList<PricingEspecificoOcupacion>();
|
|
|
|
for(PricingEspecificoOcupacion peo : pricingToClone.getPricingEspecificoOcupacionsList()){
|
|
PricingEspecificoOcupacion newPeo = new PricingEspecificoOcupacion(
|
|
peo.getOcupacioninicial(),
|
|
peo.getOcupacionfinal(),
|
|
peo.getTarifa(),
|
|
peo.getActivo(),
|
|
new Date(),
|
|
UsuarioLogado.getUsuarioLogado().getUsuarioId(),
|
|
peo.getDescuento(),
|
|
clonePricing);
|
|
|
|
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);
|
|
}
|
|
}
|