public void Salvar(AnaliseItem analise, bool atualizarRoteiro = false) { try { //Validação proposta pela analista if (!atualizarRoteiro) { VerificarProtocolo(analise.ProtocoloPai); } if (Validacao.EhValido && _validar.Salvar(analise, atualizarRoteiro)) { int setorId = _daProtocolo.ObterSetor(analise.Protocolo.Id ?? 0); Funcionario func = _busFuncionario.Obter(_busFuncionario.User.FuncionarioId); // para cada item que foi alterado da análise, atualiza sua DataAnalise para NOW foreach (Item item in analise.Itens) { if (item.Editado || item.IsAtualizado) { item.Analista = func.Nome; item.DataAnalise = DateTime.Now.ToString(); item.SetorId = setorId; } if (item.Situacao != (int)eAnaliseItemSituacao.Reprovado && item.Situacao != (int)eAnaliseItemSituacao.Dispensado) { item.Motivo = String.Empty; } if (!item.Avulso && item.Tipo != (int)eRoteiroItemTipo.ProjetoDigital && (item.IdRelacionamento < 1 || item.IsAtualizado)) { item.Motivo = "Atualização de versão do roteiro orientativo."; } item.IsAtualizado = false; item.Editado = false; } GerenciadorTransacao.ObterIDAtual(); using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bancoDeDados.IniciarTransacao(); _da.Salvar(analise, bancoDeDados); bancoDeDados.Commit(); } } } catch (Exception exc) { Validacao.AddErro(exc); } }
public ActionResult AlterarFuncionario(int id) { if (HttpContext.User != null && HttpContext.User.Identity.IsAuthenticated) { EditarVM viewModel = new EditarVM(); EtramiteIdentity func = User.Identity as EtramiteIdentity; if (func == null || func.FuncionarioTipo != 3) // se não for "funcionário" mostra mensagem { Validacao.Add(Mensagem.Funcionario.SemPermissao); } else { if (_bus.VerificarAlterarFuncionario(func.FuncionarioId)) { viewModel.Funcionario = _bus.Obter(func.FuncionarioId); } } return(View("AlterarFuncionario", viewModel)); } return(Redirect(FormsAuthentication.LoginUrl)); }
public ActionResult VerificarCPF(string cpf) { Funcionario funcionario = null; if (_bus.VerificarCPF(cpf)) { funcionario = _busFuncionario.Obter(cpf); if (funcionario == null) { Validacao.Add(Mensagem.Funcionario.Inexistente); } } return(Json(new { @Msg = Validacao.Erros, @EhValido = Validacao.EhValido, @Funcionario = funcionario })); }
public ActionResult Criar(FuncionarioVM funcVM) { Funcionario funcionario = _bus.Obter(funcVM.Cpf) ?? new Funcionario(); funcionario.Usuario.Login = (funcVM.Login ?? string.Empty).Trim(); funcionario.Cpf = (funcVM.Cpf ?? string.Empty).Trim(); funcionario.Nome = (funcVM.Nome ?? string.Empty).Trim(); funcionario.Email = (funcVM.Email ?? string.Empty).Trim(); funcionario.Arquivo.ContentType = funcVM.ArquivoContentType; funcionario.Arquivo.Extensao = funcVM.ArquivoExtensao; funcionario.Arquivo.Id = funcVM.ArquivoId; funcionario.Arquivo.Nome = funcVM.ArquivoNome; funcionario.Arquivo.TemporarioNome = funcVM.ArquivoTemporarioNome; funcVM.ListaCargos = funcVM.ListaCargos ?? new List <String>(); funcVM.ListaSetores = funcVM.ListaSetores ?? new List <Setor>(); funcVM.papeis = funcVM.papeis ?? new List <PapeisVME>(); funcionario.Cargos.RemoveAll(x => !funcVM.ListaCargos.Exists(y => y == x.Id.ToString())); funcionario.Cargos.AddRange( _busLista.Cargos .Where(x => funcVM.ListaCargos.Contains(x.Id.ToString()) && !funcionario.Cargos.Exists(y => y.Id == x.Id))); funcVM.ListaSetores.ForEach(x => x.Nome = _busLista.SetoresComSigla.Single(y => y.Id == x.Id).Nome); funcionario.Setores.RemoveAll(x => !funcVM.ListaSetores.Exists(y => y.Id == x.Id)); funcionario.Setores.AddRange( funcVM.ListaSetores .Where(x => !funcionario.Setores.Exists(y => y.Id == x.Id))); foreach (var item in funcVM.papeis) { if (item.IsAtivo) { if (!funcionario.Papeis.Exists(x => x.Id == item.Papel.Id) && _bus.PapeisFuncionario.Exists(y => y.Id == item.Papel.Id)) { funcionario.Papeis.Add(_bus.PapeisFuncionario.Single(y => y.Id == item.Papel.Id)); } } else { funcionario.Papeis.RemoveAll(x => x.Id == item.Papel.Id); } } if (_bus.Salvar(funcionario, funcVM.Senha, funcVM.ConfirmarSenha)) { return(RedirectToAction("Criar", Validacao.QueryParamSerializer())); } CriarVM viewModel = new CriarVM(_busLista.Cargos, _busLista.SetoresComSigla); viewModel.Funcionario = funcionario; viewModel.CpfValido = true; viewModel.Papeis = _bus.PapeisFuncionario. Select(x => new PapeisVME() { Papel = x, IsAtivo = viewModel.Funcionario.Papeis.Any(y => y.Id == x.Id) }).ToList(); viewModel.TextoPermissoes = TextoPermissoes(viewModel.Papeis); return(View(viewModel)); }
private bool Assinantes(Titulo titulo) { if (titulo == null) { return(false); } //Obrigatoriedade de assinante conforme configuração if (titulo.Modelo.Assinantes != null && titulo.Modelo.Assinantes.Count > 0) { // valida se título deve ter ao menos um assinante Dominio if (titulo.Assinantes != null && titulo.Assinantes.Count() <= 0) { Validacao.Add(Mensagem.Titulo.AssinanteObrigatorio); return(false); } } else { // valida se título deve ter ao menos um assinante Dominio if (titulo.Assinantes != null && titulo.Assinantes.Count() > 0) { Validacao.Add(Mensagem.Titulo.AssinanteDesmarcar); return(false); } //Não há mais validações de assinantes return(true); } List <FuncionarioLst> lstCnfFuncRespSetor = new List <FuncionarioLst>(); FuncionarioLst respSetor = null; foreach (Assinante configAssinante in titulo.Modelo.Assinantes.Where(x => x.TipoId == 1)) { respSetor = _funcionarioBus.ObterResponsavelSetor(configAssinante.SetorId); if (respSetor != null) { lstCnfFuncRespSetor.Add(_funcionarioBus.ObterResponsavelSetor(configAssinante.SetorId)); } } //Validar configuração de regras do modelo. if (lstCnfFuncRespSetor.Count == 0 && titulo.Modelo.Assinantes.Exists(x => x.TipoId == 1)) { Validacao.Add(Mensagem.Titulo.AssinanteSetorSemResponsavel); return(false); } foreach (TituloAssinante assinante in titulo.Assinantes) { //Assinante configurado como Responsavel no modelo if (lstCnfFuncRespSetor.Any(x => x.Id == assinante.FuncionarioId)) { continue; } //Assinante configurado como qualquer funcionario do setor using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia()) { bool noSetor = false; foreach (Assinante configAssinante in titulo.Modelo.Assinantes.Where(x => x.TipoId == 2)) { if (_funcionarioBus.VerificarFuncionarioContidoSetor(assinante.FuncionarioId, configAssinante.SetorId, bancoDeDados)) { noSetor = true; break; } } if (noSetor) { continue; } } Validacao.Add(Mensagem.Titulo.AssinanteInvalidoDesmarcar(_funcionarioBus.Obter(assinante.FuncionarioId).Nome)); } if (titulo.Assinantes != null && titulo.Assinantes.Count > 0) { // valida se há algum assinante sem cargo escolhido foreach (TituloAssinante assinante in titulo.Assinantes) { if (assinante.FuncionarioCargoId <= 0) { Validacao.Add(Mensagem.Titulo.AssinanteCargoObrigatorio); } } } return(Validacao.EhValido); }