AdmMono/src/com/rjconsultores/ventaboletos/service/impl/PricingEspecificoServiceImp...

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);
}
}