public ActionResult ManterCicloAvaliacao(int?id, Enumeradores.AcaoPagina acaoPagina = Enumeradores.AcaoPagina.Criar) { ManterCicloAvaliacaoViewModel model = new ManterCicloAvaliacaoViewModel(); if (id.HasValue) { var cicloAvaliacao = new CicloAvaliacaoDAO().Obter(id.Value); model = Mapper.Map <CicloAvaliacao, ManterCicloAvaliacaoViewModel>(cicloAvaliacao); if (model == null) { return(HttpNotFound()); } else { model.SituacaoCicloAvaliacaoSelecionadoID = cicloAvaliacao.SituacaoCicloAvaliacao_ID.Value; } } model.SituacoesCicloAvaliacao = Mapper.Map <List <SituacaoCicloAvaliacao>, List <SelectListItem> >(new SituacaoCicloAvaliacaoDAO().Listar()); model.AcaoPagina = acaoPagina; return(View(model)); }
public ActionResult EnvioEmails(int cicloID, bool gestores) { var cicloAvaliacao = new CicloAvaliacaoDAO().Obter(cicloID); EnvioEmailsViewModel model = new EnvioEmailsViewModel(); model.CicloAvaliacaoID = cicloID; if (cicloAvaliacao != null) { model.DescricaoCiclo = cicloAvaliacao.Descricao; } model.Gestores = gestores; return(View(model)); }
public ActionResult SobrescreverPeloUltimoCiclo(int?id) { var ciclo = new CicloAvaliacaoDAO().Obter(id.Value); if (ciclo != null) { //Pegar ultimoCiclo var ultimoCiclo = new CicloAvaliacaoDAO().ObterUltimoCiclo(id.Value, ciclo.DataInicioVigencia); //Pegar as associacoes do ultimoCiclo var associacoes = new AssociacaoCargoCompetenciaDAO().ListarPorCicloAvaliacao(ultimoCiclo.ID); AssociacaoCargoCompetenciaDAO associacaoCargoCompetenciaDAO = new AssociacaoCargoCompetenciaDAO(); if (associacoes != null) { foreach (var item in associacoes) { var associacaoCargoCompetencia = new AssociacaoCargoCompetenciaDAO().Obter(id.Value, item.CargoRubiID, item.AreaRubiID, item.SetorRubiID.Value); if (associacaoCargoCompetencia == null) { associacaoCargoCompetencia = new AssociacaoCargoCompetencia(); associacaoCargoCompetencia.CicloAvaliacao_ID = id.Value; associacaoCargoCompetencia.AreaRubiID = item.AreaRubiID; associacaoCargoCompetencia.AreaRubi = item.AreaRubi; associacaoCargoCompetencia.CargoRubiID = item.CargoRubiID; associacaoCargoCompetencia.CargoRubi = item.CargoRubi; associacaoCargoCompetencia.SetorRubiID = item.SetorRubiID; associacaoCargoCompetencia.SetorRubi = item.SetorRubi; associacaoCargoCompetencia.AreaCompetenciaID = item.AreaCompetenciaID; associacaoCargoCompetencia.CargoCompetenciaID = item.CargoCompetenciaID; associacaoCargoCompetencia.SetorCompetenciaID = item.SetorCompetenciaID; associacaoCargoCompetenciaDAO.Incluir(associacaoCargoCompetencia); } else { associacaoCargoCompetencia.AreaCompetenciaID = item.AreaCompetenciaID; associacaoCargoCompetencia.CargoCompetenciaID = item.CargoCompetenciaID; associacaoCargoCompetencia.SetorCompetenciaID = item.SetorCompetenciaID; associacaoCargoCompetenciaDAO.Editar(associacaoCargoCompetencia); } } } } return(GestaoCompetenciasCargos(id, 1)); }
public ActionResult GestaoCompetenciasCargos(int?id, int?pagina = 1) { GestaoCompentenciasCargosViewModel model = new GestaoCompentenciasCargosViewModel(); model.CicloAvaliacaoSelecionadoID = id; model.Pagina = pagina.Value; var ciclo = new CicloAvaliacaoDAO().Obter(id.Value); if (ciclo != null) { model.ExisteUltimoCiclo = new CicloAvaliacaoDAO().ExisteCicloAnteriorEncerrado(id.Value, ciclo.DataInicioVigencia); } CarregarAssociacoesCargoCompetencias(model); return(View("/Views/CiclosAvaliacao/GestaoCompetenciasCargos.cshtml", model)); }
public ActionResult ManterCicloAvaliacao(ManterCicloAvaliacaoViewModel model) { if (!string.IsNullOrEmpty(model.DataInicioVigencia) && !string.IsNullOrEmpty(model.DataFimVigencia)) { if (model.ID.HasValue) { var ciclosAfetados = new CicloAvaliacaoDAO().ListarCiclosSobrepostosQuePossuemEssaData(Convert.ToDateTime(model.DataInicioVigencia), model.ID.Value); if (ciclosAfetados != null && ciclosAfetados.Any()) { ModelState.AddModelError("DataInicioVigencia", "A Data de Início conflita com um intervalo de vigência de outro ciclo de avaliação."); } ciclosAfetados = new CicloAvaliacaoDAO().ListarCiclosSobrepostosQuePossuemEssaData(Convert.ToDateTime(model.DataFimVigencia), model.ID.Value); if (ciclosAfetados != null && ciclosAfetados.Any()) { ModelState.AddModelError("DataFimVigencia", "A Data de Fim conflita com um intervalo de vigência de outro ciclo de avaliação."); } } else { var ciclosAfetados = new CicloAvaliacaoDAO().ListarCiclosSobrepostosQuePossuemEssaData(Convert.ToDateTime(model.DataInicioVigencia)); if (ciclosAfetados != null && ciclosAfetados.Any()) { ModelState.AddModelError("DataInicioVigencia", "A Data de Início conflita com um intervalo de vigência de outro ciclo de avaliação."); } ciclosAfetados = new CicloAvaliacaoDAO().ListarCiclosSobrepostosQuePossuemEssaData(Convert.ToDateTime(model.DataFimVigencia)); if (ciclosAfetados != null && ciclosAfetados.Any()) { ModelState.AddModelError("DataFimVigencia", "A Data de Fim conflita com um intervalo de vigência de outro ciclo de avaliação."); } } if (Convert.ToDateTime(model.DataInicioVigencia) > Convert.ToDateTime(model.DataFimVigencia)) { ModelState.AddModelError("DataFimVigencia", "A Data de Término tem que ser maior que a data de Início."); } } if (string.IsNullOrEmpty(model.DataInicioObjetivosMetas) && !string.IsNullOrEmpty(model.DataTerminoObjetivosMetas)) { ModelState.AddModelError("DataInicioObjetivosMetas", "A Data de Início de Definição de Objetivos e Metas deve ser informada."); } else { if (!string.IsNullOrEmpty(model.DataInicioObjetivosMetas) && string.IsNullOrEmpty(model.DataTerminoObjetivosMetas)) { ModelState.AddModelError("DataTerminoObjetivosMetas", "A Data de Término de Definição de Objetivos e Metas deve ser informada."); } else { if (!string.IsNullOrEmpty(model.DataInicioObjetivosMetas) && !string.IsNullOrEmpty(model.DataTerminoObjetivosMetas)) { if (Convert.ToDateTime(model.DataInicioObjetivosMetas) > Convert.ToDateTime(model.DataTerminoObjetivosMetas)) { ModelState.AddModelError("DataTerminoObjetivosMetas", "A Data de Término tem que ser maior que a data de Início."); } if (!string.IsNullOrEmpty(model.DataInicioVigencia) && !string.IsNullOrEmpty(model.DataFimVigencia)) { if (Convert.ToDateTime(model.DataFimVigencia) < Convert.ToDateTime(model.DataInicioObjetivosMetas) || Convert.ToDateTime(model.DataFimVigencia) < Convert.ToDateTime(model.DataTerminoObjetivosMetas)) { ModelState.AddModelError("DataInicioObjetivosMetas", "A Data de Definição de Objetivos e Metas está fora do período do ciclo de avaliação."); } } } } } if (string.IsNullOrEmpty(model.DataInicioAutoAvaliacao) && !string.IsNullOrEmpty(model.DataTerminoAutoAvaliacao)) { ModelState.AddModelError("DataInicioAutoAvaliacao", "A Data de Início da Auto Avaliação deve ser informada."); } else { if (!string.IsNullOrEmpty(model.DataInicioAutoAvaliacao) && string.IsNullOrEmpty(model.DataTerminoAutoAvaliacao)) { ModelState.AddModelError("DataTerminoAutoAvaliacao", "A Data de Término da Auto Avaliação deve ser informada."); } else { if (!string.IsNullOrEmpty(model.DataInicioAutoAvaliacao) && !string.IsNullOrEmpty(model.DataTerminoAutoAvaliacao)) { if (Convert.ToDateTime(model.DataInicioAutoAvaliacao) > Convert.ToDateTime(model.DataTerminoAutoAvaliacao)) { ModelState.AddModelError("DataTerminoAutoAvaliacao", "A Data de Término tem que ser maior que a data de Início."); } if (!string.IsNullOrEmpty(model.DataInicioVigencia) && !string.IsNullOrEmpty(model.DataFimVigencia)) { if (Convert.ToDateTime(model.DataFimVigencia) < Convert.ToDateTime(model.DataInicioAutoAvaliacao) || Convert.ToDateTime(model.DataFimVigencia) < Convert.ToDateTime(model.DataTerminoAutoAvaliacao)) { ModelState.AddModelError("DataInicioAutoAvaliacao", "A Data da Auto Avaliação está fora do período do ciclo de avaliação."); } } if (!string.IsNullOrEmpty(model.DataTerminoObjetivosMetas)) { if (Convert.ToDateTime(model.DataTerminoObjetivosMetas) > Convert.ToDateTime(model.DataInicioAutoAvaliacao)) { ModelState.AddModelError("DataInicioAutoAvaliacao", "A Data de Início da Auto Avaliação tem que ser maior ou igual a data de Término de Definição de Objetivos e Metas."); } } } } } if (string.IsNullOrEmpty(model.DataInicioAvaliacaoGestor) && !string.IsNullOrEmpty(model.DataTerminoAvaliacaoGestor)) { ModelState.AddModelError("DataInicioAvaliacaoGestor", "A Data de Início da Avaliação do Gestor deve ser informada."); } else { if (!string.IsNullOrEmpty(model.DataInicioAvaliacaoGestor) && string.IsNullOrEmpty(model.DataTerminoAvaliacaoGestor)) { ModelState.AddModelError("DataTerminoAvaliacaoGestor", "A Data de Término da Avaliação do Gestor deve ser informada."); } else { if (!string.IsNullOrEmpty(model.DataInicioAvaliacaoGestor) && !string.IsNullOrEmpty(model.DataTerminoAvaliacaoGestor)) { if (Convert.ToDateTime(model.DataInicioAvaliacaoGestor) > Convert.ToDateTime(model.DataTerminoAvaliacaoGestor)) { ModelState.AddModelError("DataTerminoAvaliacaoGestor", "A Data de Término tem que ser maior que a data de Início."); } if (!string.IsNullOrEmpty(model.DataInicioVigencia) && !string.IsNullOrEmpty(model.DataFimVigencia)) { if (Convert.ToDateTime(model.DataFimVigencia) < Convert.ToDateTime(model.DataInicioAvaliacaoGestor) || Convert.ToDateTime(model.DataFimVigencia) < Convert.ToDateTime(model.DataTerminoAvaliacaoGestor)) { ModelState.AddModelError("DataInicioAutoAvaliacao", "A Data da Avaliação do Gestor está fora do período do ciclo de avaliação."); } } if (!string.IsNullOrEmpty(model.DataTerminoAutoAvaliacao)) { if (Convert.ToDateTime(model.DataTerminoAutoAvaliacao) > Convert.ToDateTime(model.DataInicioAvaliacaoGestor)) { ModelState.AddModelError("DataInicioAvaliacaoGestor", "A Data de Início da Avaliação do Gestor tem que ser maior ou igual a data de Término da Auto Avaliação."); } } } } } if (string.IsNullOrEmpty(model.DataInicioGerenciamentoPDI) && !string.IsNullOrEmpty(model.DataTerminoGerenciamentoPDI)) { ModelState.AddModelError("DataInicioGerenciamentoPDI", "A Data de Início de Gerenciamento de PDI deve ser informada."); } else { if (!string.IsNullOrEmpty(model.DataInicioGerenciamentoPDI) && string.IsNullOrEmpty(model.DataTerminoGerenciamentoPDI)) { ModelState.AddModelError("DataTerminoGerenciamentoPDI", "A Data de Término de Gerenciamento de PDI deve ser informada."); } else { if (!string.IsNullOrEmpty(model.DataInicioGerenciamentoPDI) && !string.IsNullOrEmpty(model.DataTerminoGerenciamentoPDI)) { if (Convert.ToDateTime(model.DataInicioGerenciamentoPDI) > Convert.ToDateTime(model.DataTerminoGerenciamentoPDI)) { ModelState.AddModelError("DataTerminoGerenciamentoPDI", "A Data de Término tem que ser maior que a data de Início."); } } } } if (ModelState.IsValid) { CicloAvaliacaoDAO cicloAvaliacaoDAO = new CicloAvaliacaoDAO(); var cicloAvaliacao = Mapper.Map <ManterCicloAvaliacaoViewModel, CicloAvaliacao>(model); cicloAvaliacao.SituacaoCicloAvaliacao_ID = model.SituacaoCicloAvaliacaoSelecionadoID; if (!model.ID.HasValue) { cicloAvaliacaoDAO.Incluir(cicloAvaliacao); } else { cicloAvaliacaoDAO.Editar(cicloAvaliacao); } return(RedirectToAction("GestaoCiclosAvaliacao")); } model.SituacoesCicloAvaliacao = Mapper.Map <List <SituacaoCicloAvaliacao>, List <SelectListItem> >(new SituacaoCicloAvaliacaoDAO().Listar()); return(View(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)); }