public bool RequerimentoAtividade(IEspecificidade especificidade, bool solicitado = true, bool jaAssociado = true, bool faseAnterior = false, bool apenasObrigatoriedade = false, bool atividadeAndamento = true) { if (especificidade.ProtocoloReq.RequerimentoId <= 0) { // Msg: O requerimento padrão é obrigatório. Validacao.Add(Mensagem.Especificidade.RequerimentoPradroObrigatoria); } if (especificidade.Atividades == null || especificidade.Atividades.Count == 0 || especificidade.Atividades[0].Id == 0) { // Msg: A atividade é obrigatória. Validacao.Add(Mensagem.Especificidade.AtividadeObrigatoria); } //Retorna se já encontrou erro de obrigatóriedade if (Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.RequerimentoPradroObrigatoria.Texto) || Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.AtividadeObrigatoria.Texto)) { return(false); } //Verifica se o requerimento ainda está no protocolo if (!_da.ValidarRequerimentoAssociado(especificidade.ProtocoloReq.RequerimentoId, especificidade.Titulo.Protocolo.Id, especificidade.ProtocoloReq.Id)) { // Msg: O processo/documento não tem requerimento. // Msg: O requerimento {0} não está mais associado ao processo/documento {1}. Validacao.Add(Mensagem.Especificidade.RequerimentoNaoAssociadoProcesso(especificidade.ProtocoloReq.RequerimentoId, especificidade.ProtocoloReq.Numero)); return(false); } _da.ObterAtividadesNome(especificidade.Atividades); if (especificidade.Atividades != null) { foreach (var item in especificidade.Atividades) { if (!item.Ativada) { Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade)); } } } if (apenasObrigatoriedade) { return(Validacao.EhValido); } if (faseAnterior) { // Msg: O título anterior deve estar encerrado. foreach (var atividadeEsp in especificidade.Atividades) { if (!TituloAnteriorEncerrado(especificidade.ProtocoloReq.Id, atividadeEsp.Id)) { return(false); } } } bool ehValido = true; if (especificidade.Atividades != null) { object retorno = false; foreach (var item in especificidade.Atividades) { if (jaAssociado) { //Validação da existencia de um outro título do mesmo modelo e atividade // Msg: A atividade {2} não pode ser selecionada, pois já está associada ao título {0} - {1}. // Msg: A atividade {1} não pode ser selecionada, pois já está associada a outro título \"{0}\". if (!ValidarAtividadeJaAssociada(especificidade.ProtocoloReq.Id, especificidade.ProtocoloReq.IsProcesso, item.Id, especificidade.Titulo.Id, Convert.ToInt32(especificidade.Titulo.Modelo))) { ehValido = false; continue; } } retorno = _da.ValidarAtividade(item.Id, especificidade.ProtocoloReq.Id, 1); //Em andamento //Validação da situação da atividade e se o protocolo ainda possui a atividade if (Convert.GetTypeCode(retorno) == TypeCode.Boolean) { if (atividadeAndamento && !Convert.ToBoolean(retorno)) { ehValido = false; // Msg: A atividade \"{0}\" deve estar na situação \"em andamento\". Validacao.Add(Mensagem.Especificidade.AtividadeSituacaoInvalida(item.NomeAtividade)); } } else { ehValido = false; // Msg: A atividade \"{0}\" não está mais associada ao {2} {1}. Favor salvar as alterações no título. Validacao.Add(Mensagem.Especificidade.AtividadeNaoAssociadaRequerimento(item.NomeAtividade, especificidade.ProtocoloReq.Numero, especificidade.ProtocoloReq.IsProcesso)); continue; } if (solicitado) { //Validação da solicitação do modelo/atividade no protocolo // Msg: Este modelo de título não foi solicitado para a atividade \"{0}\". retorno = ValidarModeloNaoRequisitado(especificidade.ProtocoloReq.Id, especificidade.ProtocoloReq.IsProcesso, item.Id, Convert.ToInt32(especificidade.Titulo.Modelo)); if (!Convert.ToBoolean(retorno)) { ehValido = false; } } } } return(ehValido); }
public bool DeclaratorioRequerimentoAtividade(IEspecificidade especificidade, bool solicitado = true, bool jaAssociado = true, bool apenasObrigatoriedade = false) { if (especificidade.RequerimentoId <= 0) { // Msg: O requerimento padrão é obrigatório. Validacao.Add(Mensagem.Especificidade.RequerimentoPradroObrigatoria); } if (especificidade.Atividades == null || especificidade.Atividades.Count == 0 || especificidade.Atividades[0].Id == 0) { // Msg: A atividade é obrigatória. Validacao.Add(Mensagem.Especificidade.AtividadeObrigatoria); } //Retorna se já encontrou erro de obrigatóriedade if (Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.RequerimentoPradroObrigatoria.Texto) || Validacao.Erros.Exists(x => x.Texto == Mensagem.Especificidade.AtividadeObrigatoria.Texto)) { return(false); } _da.ObterAtividadesNome(especificidade.Atividades); if (!_da.RequerimentoPossuiEmpreendimento(especificidade.RequerimentoId)) { Validacao.Add(Mensagem.Especificidade.RequerimentoEmpreendimentoObrigatorio(especificidade.Atividades.FirstOrDefault().NomeAtividade)); } else { if (!_da.EmpreendimentoPossuiCaracterizacaoBarragemDis(especificidade.RequerimentoId)) { Validacao.Add(Mensagem.Especificidade.CaracterizacaoBarragemDisNaoCadastrada); } } if (especificidade.Atividades != null) { foreach (var item in especificidade.Atividades) { if (!item.Ativada) { Validacao.Add(Mensagem.AtividadeEspecificidade.AtividadeDesativada(item.NomeAtividade)); } } } if (apenasObrigatoriedade) { return(Validacao.EhValido); } bool ehValido = true; if (especificidade.Atividades != null) { object retorno = false; foreach (var item in especificidade.Atividades) { if (jaAssociado) { //Validação da existencia de um outro título do mesmo modelo e atividade para o mesmo empreendimento if (!DeclaratorioValidarAtividadeJaAssociada(especificidade.RequerimentoId, item.Id, especificidade.Titulo.Id, Convert.ToInt32(especificidade.Titulo.Modelo))) { ehValido = false; continue; } } if (solicitado) { //Validação da solicitação do modelo/atividade no requerimento retorno = DeclaratorioValidarModeloNaoRequisitado(especificidade.RequerimentoId, item.Id, Convert.ToInt32(especificidade.Titulo.Modelo)); if (!Convert.ToBoolean(retorno)) { ehValido = false; } } } } return(ehValido); }