public ActionResult ConsolidarCargosRubi(int?id) { GestaoCompentenciasCargosViewModel model = new GestaoCompentenciasCargosViewModel(); model.CicloAvaliacaoSelecionadoID = id; CarregarInformacoesRubi(model); AssociacaoCargoCompetenciaDAO associacaoCargoCompetenciaDAO = new AssociacaoCargoCompetenciaDAO(); if (model.AssociacoesCargosCompetencias != null) { var associacoesCargoCompetencia = new List <AssociacaoCargoCompetencia>(); foreach (var item in model.AssociacoesCargosCompetencias) { var associacao = associacaoCargoCompetenciaDAO.Obter(id.Value, item.CargoRubiID, item.AreaRubiID, item.SetorRubiID.Value); if (associacao == null) { associacoesCargoCompetencia.Add(new AssociacaoCargoCompetencia { AreaCompetencia = item.AreaCompetencia, AreaCompetenciaID = item.AreaCompetenciaID, AreaRubi = item.AreaRubi, AreaRubiID = item.AreaRubiID, CargoCompetencia = item.CargoCompetencia, CargoCompetenciaID = item.CargoCompetenciaID, CargoRubi = item.CargoRubi, CargoRubiID = item.CargoRubiID, CicloAvaliacao_ID = id.Value, ID = item.ID, SetorCompetencia = item.SetorCompetencia, SetorCompetenciaID = item.SetorCompetenciaID, SetorRubi = item.SetorRubi, SetorRubiID = item.SetorRubiID }); } } associacaoCargoCompetenciaDAO.PersistirColecao(associacoesCargoCompetencia); } CarregarAssociacoesCargoCompetencias(model); model.Pagina = 1; return(View("/Views/CiclosAvaliacao/GestaoCompetenciasCargos.cshtml", model)); }
//[CriacaoMapeamento(typeof(DeItemListaGestaoCompetenciasCargosViewModelParaAssociacaoCargoCompetencia))] //[CriacaoMapeamento(typeof(DeListaItemListaGestaoCompetenciasCargosViewModelParaListaAssociacaoCargoCompetencia))] public ActionResult GestaoCompetenciasCargos(GestaoCompentenciasCargosViewModel model) { if (ModelState.IsValid) { AssociacaoCargoCompetenciaDAO associacaoCargoCompetenciaDAO = new AssociacaoCargoCompetenciaDAO(); CarregarInformacoesSistemaCompentencias(model); if (model.AssociacoesCargosCompetencias != null) { for (int i = (model.Pagina - 1) * 20; i < (((model.Pagina * 20) > model.AssociacoesCargosCompetencias.Count) ? model.AssociacoesCargosCompetencias.Count : (model.Pagina * 20)); i++) { if (model.AssociacoesCargosCompetencias[i].CargoCompetenciaID.HasValue) { model.AssociacoesCargosCompetencias[i].CargoCompetencia = model.CargosCompentencia.First(p => p.Value.Equals(model.AssociacoesCargosCompetencias[i].CargoCompetenciaID.Value.ToString())).Text; } if (model.AssociacoesCargosCompetencias[i].AreaCompetenciaID.HasValue) { model.AssociacoesCargosCompetencias[i].AreaCompetencia = model.AreasCompentencia.First(p => p.Value.Equals(model.AssociacoesCargosCompetencias[i].AreaCompetenciaID.ToString())).Text; } if (model.AssociacoesCargosCompetencias[i].SetorCompetenciaID.HasValue) { model.AssociacoesCargosCompetencias[i].SetorCompetencia = model.SetoresCompentencia.First(p => p.Value.Equals(model.AssociacoesCargosCompetencias[i].SetorCompetenciaID.ToString())).Text; } model.AssociacoesCargosCompetencias[i].CicloAvaliacaoID = model.CicloAvaliacaoSelecionadoID.Value; } var cicloAvaliacaoDAO = new CicloAvaliacaoDAO(); CicloAvaliacao ciclo = cicloAvaliacaoDAO.Obter(model.CicloAvaliacaoSelecionadoID.Value); var associacoesCargoCompetencia = new List <AssociacaoCargoCompetencia>(); for (int i = (model.Pagina - 1) * 20; i < (((model.Pagina * 20) > model.AssociacoesCargosCompetencias.Count) ? model.AssociacoesCargosCompetencias.Count : (model.Pagina * 20)); i++) { associacoesCargoCompetencia.Add(new AssociacaoCargoCompetencia { AreaCompetencia = model.AssociacoesCargosCompetencias[i].AreaCompetencia, AreaCompetenciaID = model.AssociacoesCargosCompetencias[i].AreaCompetenciaID, AreaRubi = model.AssociacoesCargosCompetencias[i].AreaRubi, AreaRubiID = model.AssociacoesCargosCompetencias[i].AreaRubiID, CargoCompetencia = model.AssociacoesCargosCompetencias[i].CargoCompetencia, CargoCompetenciaID = model.AssociacoesCargosCompetencias[i].CargoCompetenciaID, CargoRubi = model.AssociacoesCargosCompetencias[i].CargoRubi, CargoRubiID = model.AssociacoesCargosCompetencias[i].CargoRubiID, CicloAvaliacao_ID = model.AssociacoesCargosCompetencias[i].CicloAvaliacaoID, ID = model.AssociacoesCargosCompetencias[i].ID, SetorCompetencia = model.AssociacoesCargosCompetencias[i].SetorCompetencia, SetorCompetenciaID = model.AssociacoesCargosCompetencias[i].SetorCompetenciaID, SetorRubi = model.AssociacoesCargosCompetencias[i].SetorRubi, SetorRubiID = model.AssociacoesCargosCompetencias[i].SetorRubiID }); } associacaoCargoCompetenciaDAO.PersistirColecao(associacoesCargoCompetencia); #region <<<<< Criar as avaliações dos cargos que sofreram alterações. >>>>> foreach (var item in associacoesCargoCompetencia) { if (item.AreaCompetenciaID.HasValue && item.CargoCompetenciaID.HasValue && item.SetorCompetenciaID.HasValue) { //Pega todos os usuarios do cargo, area e setor var usuariosRubi = new IntegracaoRubi().ListarUSU_V034FAD(item.CargoRubiID, item.AreaRubiID, item.SetorRubiID.Value); if (usuariosRubi != null) { foreach (var usuarioRubi in usuariosRubi) { //Para cada usuario do rubi pegar seu respectivo usuario no competencias var usuarioCompetencia = new UsuarioDAO().Obter(usuarioRubi.NUMCAD, usuarioRubi.NUMEMP); //Caso não exista usuário no competencias, pegar as informações do AD e criar o usuário. if (usuarioCompetencia == null) { PrincipalContext principalContext = new PrincipalContext(ContextType.Domain); DirectorySearcher directorySearcher = new DirectorySearcher(principalContext.ConnectedServer); directorySearcher.Filter = "(&(company=" + usuarioRubi.NUMEMP + ")(department=" + usuarioRubi.NUMCAD + ")" + System.Configuration.ConfigurationManager.ConnectionStrings["ADFilterConnectionString"].ConnectionString + ")"; SearchResult searchResult = directorySearcher.FindOne(); DirectoryEntry directoryEntry = searchResult.GetDirectoryEntry(); if (directoryEntry.Properties.Count > 0) { CadastrarUsuario(directoryEntry.Properties["sAMAccountName"][0].ToString(), usuarioRubi.NUMEMP, usuarioRubi.NUMCAD); usuarioCompetencia = new UsuarioDAO().Obter(usuarioRubi.NUMCAD, usuarioRubi.NUMEMP); } } //Caso exista usuário cadastrado no sistema ou no AD, prosseguir pra criar a sua avaliação e o seu pdi. if (usuarioCompetencia != null) { //Verificar se existe seu gestor cadastrado no competencias, caso não exista cadastrar. var gestor = new UsuarioDAO().Obter(usuarioRubi.USU_LD1CAD.Value, usuarioRubi.USU_LD1EMP.Value); if (gestor == null) { PrincipalContext principalContext = new PrincipalContext(ContextType.Domain); DirectorySearcher directorySearcher = new DirectorySearcher(principalContext.ConnectedServer); directorySearcher.Filter = "(&(company=" + usuarioRubi.USU_LD1EMP.Value + ")(department=" + usuarioRubi.USU_LD1CAD.Value + ")" + System.Configuration.ConfigurationManager.ConnectionStrings["ADFilterConnectionString"].ConnectionString + ")"; SearchResult searchResult = directorySearcher.FindOne(); DirectoryEntry directoryEntry = searchResult.GetDirectoryEntry(); if (directoryEntry.Properties.Count > 0) { CadastrarUsuario(directoryEntry.Properties["sAMAccountName"][0].ToString(), usuarioRubi.USU_LD1EMP.Value, usuarioRubi.USU_LD1CAD.Value); } } //Para cada usuario no competencia verificar se existe uma avaliação criada dentro desse ciclo var avaliacaoColaborador = new AvaliacaoColaboradorDAO().Obter(model.CicloAvaliacaoSelecionadoID.Value, usuarioCompetencia.ID); if (avaliacaoColaborador == null) { if (ciclo.SituacaoCicloAvaliacao_ID.Value < 5) { AvaliacaoColaborador avaliacao = new AvaliacaoColaborador(); AvaliacaoColaboradorDAO avaliacaoColaboradorDAO = new AvaliacaoColaboradorDAO(); avaliacao.DataCriacao = DateTime.Today; avaliacao.CicloAvaliacao_ID = model.CicloAvaliacaoSelecionadoID.Value; avaliacao.Colaborador_ID = usuarioCompetencia.ID; avaliacao.GestorRubi_ID = usuarioRubi.USU_LD1CAD; avaliacao.GestorRubiEmp_ID = usuarioRubi.USU_LD1EMP; if (ciclo.SituacaoCicloAvaliacao_ID.Value == 1 || ciclo.SituacaoCicloAvaliacao_ID.Value == 2) { avaliacao.StatusAvaliacaoColaborador_ID = ciclo.SituacaoCicloAvaliacao_ID.Value; } else if (ciclo.SituacaoCicloAvaliacao_ID.Value == 3) { avaliacao.StatusAvaliacaoColaborador_ID = (int)Enumeradores.StatusAvaliacaoColaborador.ObjetivosMetasDefinidos; } else if (ciclo.SituacaoCicloAvaliacao_ID.Value == 4) { avaliacao.StatusAvaliacaoColaborador_ID = (int)Enumeradores.StatusAvaliacaoColaborador.AutoAvaliacao; } avaliacao.CargoRubiID = item.CargoRubiID; avaliacao.AreaRubiID = item.AreaRubiID; avaliacao.SetorRubiID = item.SetorRubiID; avaliacao.DataUltimaAlteracao = DateTime.Now; avaliacaoColaboradorDAO.Incluir(avaliacao); } } //Para cada usuario no competencia verificar se existe um pdi criado dentro desse ciclo var avaliacaoPdiColaborador = new AvaliacaoPDIColaboradorDAO().Obter(model.CicloAvaliacaoSelecionadoID.Value, usuarioCompetencia.ID); if (avaliacaoPdiColaborador == null) { if (ciclo.SituacaoCicloAvaliacao_ID.Value < 8) { AvaliacaoPDIColaborador avaliacaoPdi = new AvaliacaoPDIColaborador(); AvaliacaoPDIColaboradorDAO avaliacaoPDIColaboradorDAO = new AvaliacaoPDIColaboradorDAO(); avaliacaoPdi.DataCriacao = DateTime.Today; avaliacaoPdi.CicloAvaliacao_ID = model.CicloAvaliacaoSelecionadoID.Value; avaliacaoPdi.Colaborador_ID = usuarioCompetencia.ID; avaliacaoPdi.GestorRubi_ID = usuarioRubi.USU_LD1CAD; avaliacaoPdi.GestorRubiEmp_ID = usuarioRubi.USU_LD1EMP; avaliacaoPdi.StatusPDI_ID = (int)Enumeradores.StatusPDI.Criada; avaliacaoPdi.CargoRubiID = item.CargoRubiID; avaliacaoPdi.AreaRubiID = item.AreaRubiID; avaliacaoPdi.SetorRubiID = item.SetorRubiID; avaliacaoPDIColaboradorDAO.Incluir(avaliacaoPdi); } } } } } } } #endregion } } return(GestaoCompetenciasCargos(model.CicloAvaliacaoSelecionadoID, model.Pagina)); }