From ddb536e22aadaaa6a8c9244168b7fd07b9e20236 Mon Sep 17 00:00:00 2001 From: "daniel.zauli" Date: Wed, 22 Jul 2015 17:43:41 +0000 Subject: [PATCH] FIXES BUG #6484 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Model/trunk/modelWeb@46198 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../ventaboletos/service/PerfilService.java | 2 + .../service/impl/PerfilServiceImpl.java | 82 +++++++++++++++++++ 2 files changed, 84 insertions(+) diff --git a/src/com/rjconsultores/ventaboletos/service/PerfilService.java b/src/com/rjconsultores/ventaboletos/service/PerfilService.java index 4f5b92137..e38060be8 100644 --- a/src/com/rjconsultores/ventaboletos/service/PerfilService.java +++ b/src/com/rjconsultores/ventaboletos/service/PerfilService.java @@ -27,5 +27,7 @@ public interface PerfilService { public List buscar(String dscPerfil); public List buscaPerfilJerarquia(Perfil perfilUsuario); + + public Boolean clonarPerfil(Integer perfilId, String nomePerfil); } diff --git a/src/com/rjconsultores/ventaboletos/service/impl/PerfilServiceImpl.java b/src/com/rjconsultores/ventaboletos/service/impl/PerfilServiceImpl.java index 5ce6c3a3e..aafb62089 100644 --- a/src/com/rjconsultores/ventaboletos/service/impl/PerfilServiceImpl.java +++ b/src/com/rjconsultores/ventaboletos/service/impl/PerfilServiceImpl.java @@ -6,10 +6,31 @@ package com.rjconsultores.ventaboletos.service.impl; import com.rjconsultores.ventaboletos.dao.PerfilDAO; 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.utilerias.UsuarioLogado; + +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; @@ -66,4 +87,65 @@ public class PerfilServiceImpl implements PerfilService { public List buscaPerfilJerarquia(Perfil 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()); + clonePerfil.setUsuarioPerfilList(new ArrayList()); + + + 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 usuarioPerfilList = new ArrayList(); + 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 perfilFuncionList = new ArrayList(); + 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; + } }