示例#1
0
        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);
            }
        }
示例#2
0
        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));
        }
示例#3
0
        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));
        }
示例#5
0
        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);
        }