public void Destinatario(int protocolo, List <DestinatarioEspecificidade> destinatarios, string campo = "ddlDestinatarioEsp")
        {
            if (destinatarios == null || destinatarios.Count == 0 || destinatarios.Any(x => x.Id == 0))
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioObrigatorio(campo));
                return;
            }

            List <PessoaLst> lstDestinatarios = _da.ObterInteressados(protocolo);

            destinatarios.ForEach(x =>
            {
                if (!lstDestinatarios.Any(des => des.Id == x.Id))
                {
                    Validacao.Add(Mensagem.Especificidade.DestinatarioDesassociado(campo, x.Nome));
                }
            });
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            TermoCPFARLDa         _da = new TermoCPFARLDa();
            EspecificidadeDa      _daEspecificidade     = new EspecificidadeDa();
            DominialidadeDa       _daDominialidade      = new DominialidadeDa();
            CaracterizacaoBus     caracterizacaoBus     = new CaracterizacaoBus();
            CaracterizacaoValidar caracterizacaoValidar = new CaracterizacaoValidar();
            List <Dependencia>    dependencias          = new List <Dependencia>();
            TermoCPFARL           esp             = especificidade as TermoCPFARL;
            List <Caracterizacao> caracterizacoes = caracterizacaoBus.ObterCaracterizacoesEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault());
            List <PessoaLst>      destinatarios   = _daEspecificidade.ObterInteressados(esp.ProtocoloReq.Id);
            List <ReservaLegal>   reservas;
            int idCaracterizacao;
            int tipo;

            RequerimentoAtividade(esp);

            if (esp.Atividades[0].Id != ConfiguracaoAtividade.ObterId((int)eAtividadeCodigo.ReservaLegal))
            {
                Validacao.Add(Mensagem.TermoCPFARLMsg.AtividadeInvalida(esp.Atividades[0].NomeAtividade));
            }

            if (esp.Destinatarios.Count == 0)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioObrigatorio("Termo_Destinatario"));
            }
            else
            {
                esp.Destinatarios.ForEach(x =>
                {
                    if (destinatarios.SingleOrDefault(y => y.Id == x.Id) == null)
                    {
                        Validacao.Add(Mensagem.Especificidade.DestinatarioDesassociado("Termo_Destinatario", x.Nome));
                    }
                    else
                    {
                        tipo = _daEspecificidade.ObterDadosPessoa(x.Id).Tipo;
                        if (tipo == 3 || tipo == 4)
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.DestinatarioNaoPermitido);
                        }
                    }
                });
            }

            idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.Dominialidade);
            if (idCaracterizacao > 0)
            {
                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.Dominialidade, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.TermoCPFARLMsg.CaracterizacaoDeveEstarValida(caracterizacoes.Single(x => x.Tipo == eCaracterizacao.Dominialidade).Nome));
                }
                else
                {
                    reservas = new List <ReservaLegal>();

                    Dominialidade dominialidade = _daDominialidade.ObterPorEmpreendimento(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(0));
                    dominialidade.Dominios.ForEach(x => { x.ReservasLegais.ForEach(reserva => { reservas.Add(reserva); }); });

                    if (reservas == null || reservas.Count == 0)
                    {
                        Validacao.Add(Mensagem.TermoCPFARLMsg.ArlInexistente);
                    }
                    else
                    {
                        if (reservas.Exists(x => x.SituacaoVegetalId == (int)eReservaLegalSituacaoVegetal.NaoCaracterizada || x.SituacaoVegetalId == (int)eReservaLegalSituacaoVegetal.EmUso))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.ARLSituacaoVegetalInvalida);
                        }

                        if (reservas.Exists(x => x.SituacaoId != (int)eReservaLegalSituacao.Proposta))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.DominioSituacaoInvalida);
                        }

                        if (reservas.Exists(x => x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoMatriculaCedente ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoMatriculaReceptora ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoEmpreendimentoCedente ||
                                            x.LocalizacaoId == (int)eReservaLegalLocalizacao.CompensacaoEmpreendimentoReceptora))
                        {
                            Validacao.Add(Mensagem.TermoCPFARLMsg.LocalizacaoInvalida);
                        }
                    }
                }
            }
            else
            {
                Validacao.Add(Mensagem.TermoCPFARLMsg.DominialidadeInexistente);
            }

            return(Validacao.EhValido);
        }
Esempio n. 3
0
        public bool Salvar(IEspecificidade especificidade)
        {
            OutrosConclusaoTransferenciaDominio esp = especificidade as OutrosConclusaoTransferenciaDominio;

            if (esp.Destinatarios.Count < 1)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioObrigatorio("ddlDestinatarios"));
            }

            if (esp.Responsaveis.Count < 1)
            {
                Validacao.Add(Mensagem.Especificidade.ResponsavelObrigatorio("ddlResponsaveis"));
            }

            if (esp.Interessados.Count < 1)
            {
                Validacao.Add(Mensagem.Especificidade.InteressadoObrigatorio("ddlInteressados"));
            }

            List <PessoaEspecificidade> lstValida = null;

            esp.Destinatarios.ForEach(x =>
            {
                lstValida = new List <PessoaEspecificidade>();
                lstValida.AddRange(esp.Destinatarios.Where(y => x.Id == y.Id).ToList());
                if (lstValida.Count > 1)
                {
                    Validacao.Add(Mensagem.Especificidade.DestinatarioJaAdicionado);
                }
            });

            esp.Interessados.ForEach(x =>
            {
                lstValida = new List <PessoaEspecificidade>();
                lstValida.AddRange(esp.Interessados.Where(y => x.Id == y.Id).ToList());
                if (lstValida.Count > 1)
                {
                    Validacao.Add(Mensagem.Especificidade.InteressadoJaAdicionado);
                }
            });

            esp.Responsaveis.ForEach(x =>
            {
                lstValida = new List <PessoaEspecificidade>();
                lstValida.AddRange(esp.Responsaveis.Where(y => x.Id == y.Id).ToList());
                if (lstValida.Count > 1)
                {
                    Validacao.Add(Mensagem.Especificidade.ResponsavelJaAdicionado);
                }
            });

            foreach (PessoaEspecificidade pessoa in esp.Responsaveis)
            {
                for (int i = 0; i < esp.Interessados.Count; i++)
                {
                    if (esp.Interessados[i].Id == pessoa.Id)
                    {
                        Validacao.Add(new EspecificidadeMsg().InteressadoIgualResponsavel);
                        return(Validacao.EhValido);
                    }
                }
            }

            #region Verificar lista de pessoas desassociadas

            List <PessoaEspecificidade> destinatarios = PessoasDesassociadas(esp.Destinatarios, _daEspecificidade.ObterInteressados(esp.ProtocoloReq.Id));
            List <PessoaEspecificidade> responsaveis  = PessoasDesassociadas(esp.Responsaveis, _daEspecificidade.ObterEmpreendimentoResponsaveis(esp.Titulo.EmpreendimentoId.GetValueOrDefault()));
            List <PessoaEspecificidade> interessados  = PessoasDesassociadas(esp.Interessados, _daEspecificidade.ObterInteressados(esp.ProtocoloReq.Id));

            if (destinatarios.Count > 0)
            {
                Validacao.Add(Mensagem.Especificidade.DestinatarioNaoAssociadoMais(Mensagem.Concatenar(destinatarios.Select(x => x.Nome).ToList())));
            }

            if (responsaveis.Count > 0)
            {
                Validacao.Add(Mensagem.Especificidade.ResponsavelNaoAssociadoMais(Mensagem.Concatenar(responsaveis.Select(x => x.Nome).ToList())));
            }

            if (interessados.Count > 0)
            {
                Validacao.Add(Mensagem.Especificidade.InteressadoNaoAssociadoMais(Mensagem.Concatenar(interessados.Select(x => x.Nome).ToList())));
            }

            #endregion

            RequerimentoAtividade(esp);

            return(Validacao.EhValido);
        }