daniel.zauli 2015-07-22 17:43:41 +00:00
parent 3e60c52404
commit ddb536e22a
2 changed files with 84 additions and 0 deletions

View File

@ -28,4 +28,6 @@ public interface PerfilService {
public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario); public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario);
public Boolean clonarPerfil(Integer perfilId, String nomePerfil);
} }

View File

@ -6,10 +6,31 @@ package com.rjconsultores.ventaboletos.service.impl;
import com.rjconsultores.ventaboletos.dao.PerfilDAO; import com.rjconsultores.ventaboletos.dao.PerfilDAO;
import com.rjconsultores.ventaboletos.entidad.Perfil; import com.rjconsultores.ventaboletos.entidad.Perfil;
import com.rjconsultores.ventaboletos.entidad.PerfilFuncion;
import com.rjconsultores.ventaboletos.entidad.Pricing;
import com.rjconsultores.ventaboletos.entidad.PricingAsiento;
import com.rjconsultores.ventaboletos.entidad.PricingCategoria;
import com.rjconsultores.ventaboletos.entidad.PricingClase;
import com.rjconsultores.ventaboletos.entidad.PricingCorrida;
import com.rjconsultores.ventaboletos.entidad.PricingDia;
import com.rjconsultores.ventaboletos.entidad.PricingFormapago;
import com.rjconsultores.ventaboletos.entidad.PricingImporte;
import com.rjconsultores.ventaboletos.entidad.PricingMarca;
import com.rjconsultores.ventaboletos.entidad.PricingMercado;
import com.rjconsultores.ventaboletos.entidad.PricingOcupaAntecipa;
import com.rjconsultores.ventaboletos.entidad.PricingPuntoVenta;
import com.rjconsultores.ventaboletos.entidad.PricingRuta;
import com.rjconsultores.ventaboletos.entidad.PricingTipoPtoVta;
import com.rjconsultores.ventaboletos.entidad.PricingTipoServicio;
import com.rjconsultores.ventaboletos.entidad.PricingVigencia;
import com.rjconsultores.ventaboletos.entidad.UsuarioPerfil;
import com.rjconsultores.ventaboletos.service.PerfilService; import com.rjconsultores.ventaboletos.service.PerfilService;
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.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;
@ -66,4 +87,65 @@ public class PerfilServiceImpl implements PerfilService {
public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario) { public List<Perfil> buscaPerfilJerarquia(Perfil perfilUsuario) {
return perfilDAO.buscaPerfilJerarquia(perfilUsuario); return perfilDAO.buscaPerfilJerarquia(perfilUsuario);
} }
@Transactional
public Boolean clonarPerfil(Integer perfilId, String nomePerfil) {
Perfil perfil = this.obtenerID(perfilId);
Perfil clonePerfil = new Perfil();
clonePerfil.setDescperfil(nomePerfil);
// clonePerfil.setActivo(perfil.getActivo()); o método actualizacion ja seta os campos activo usuario e fecmodif
clonePerfil.setIndJerarquia(perfil.getIndJerarquia());
clonePerfil.setPerfilFuncionList(new ArrayList<PerfilFuncion>());
clonePerfil.setUsuarioPerfilList(new ArrayList<UsuarioPerfil>());
clonePerfil = suscribir(clonePerfil);
clonePerfil = percorrerPerfilAtivoParaClonar(perfil, clonePerfil);
actualizacion(clonePerfil);
// inativar(clonePricing);
if (clonePerfil.getPerfilId() != null) {
return true;
} else {
return false;
}
}
private Perfil percorrerPerfilAtivoParaClonar(Perfil perfil, Perfil clonePerfil) {
List<UsuarioPerfil> usuarioPerfilList = new ArrayList<UsuarioPerfil>();
for(UsuarioPerfil usuarioPerfil : perfil.getUsuarioPerfilList()){
UsuarioPerfil cloneUsuarioPerfil = new UsuarioPerfil();
cloneUsuarioPerfil.setActivo(usuarioPerfil.getActivo());
cloneUsuarioPerfil.setFecmodif(Calendar.getInstance().getTime());
cloneUsuarioPerfil.setPerfil(clonePerfil);
cloneUsuarioPerfil.setUsuario(usuarioPerfil.getUsuario());
cloneUsuarioPerfil.setUsuariomodifId(usuarioPerfil.getUsuariomodifId());
cloneUsuarioPerfil.setUsuarioperfilId(usuarioPerfil.getUsuarioperfilId());
usuarioPerfilList.add(cloneUsuarioPerfil);
}
clonePerfil.setUsuarioPerfilList(usuarioPerfilList);
List<PerfilFuncion> perfilFuncionList = new ArrayList<PerfilFuncion>();
for(PerfilFuncion perfilFuncion : perfil.getPerfilFuncionList()){
PerfilFuncion clonePerfilFuncion = new PerfilFuncion();
clonePerfilFuncion.setActivo(perfilFuncion.getActivo());
clonePerfilFuncion.setFecmodif(Calendar.getInstance().getTime());
clonePerfilFuncion.setFuncionSistema(perfilFuncion.getFuncionSistema());
clonePerfilFuncion.setIndLectura(perfilFuncion.getIndLectura());
clonePerfilFuncion.setPerfil(clonePerfil);
clonePerfilFuncion.setUsuarioId(perfilFuncion.getUsuarioId());
perfilFuncionList.add(clonePerfilFuncion);
}
clonePerfil.setPerfilFuncionList(perfilFuncionList);
return clonePerfil;
}
} }