public bool ValidarAcessoAnalisar(PTV eptv) { if (!FuncionarioHabilitadoValido()) { return(false); } FuncionarioBus funcionarioBus = new FuncionarioBus(); if (!funcionarioBus.VerificarFuncionarioContidoSetor((HttpContext.Current.User.Identity as EtramiteIdentity).FuncionarioId, eptv.LocalVistoriaId)) { Validacao.Add(Mensagem.PTV.FuncionarioNaoAlocadoSetor); } return(Validacao.EhValido); }
public bool FuncionarioContidoSetor(int funcionario, int setor, string funcionarioNome, string setorSigla) { try { if (!_busFunc.VerificarFuncionarioContidoSetor(funcionario, setor)) { if (!string.IsNullOrWhiteSpace(funcionarioNome) && !string.IsNullOrWhiteSpace(setorSigla)) { Validacao.Add(Msg.FuncionarioNaoAssociadoSetor(funcionarioNome, setorSigla)); } } } catch (Exception exc) { Validacao.AddErro(exc); } return(Validacao.EhValido); }
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); }