Exemplo n.º 1
0
        public RegularizacaoFundiaria MergiarGeo(RegularizacaoFundiaria caracterizacaoAtual)
        {
            RegularizacaoFundiaria regularizacaoGeo = ObterDadosGeo(caracterizacaoAtual.EmpreendimentoId);

            caracterizacaoAtual.Dependencias = _busCaracterizacao.ObterDependenciasAtual(caracterizacaoAtual.EmpreendimentoId, eCaracterizacao.RegularizacaoFundiaria, eCaracterizacaoDependenciaTipo.Caracterizacao);

            List <Posse> removerPosse = new List <Posse>();

            foreach (Posse posseAtual in caracterizacaoAtual.Posses)
            {
                if (!regularizacaoGeo.Posses.Exists(x => posseAtual.Identificacao == x.Identificacao))
                {
                    removerPosse.Add(posseAtual);
                }
            }
            caracterizacaoAtual.Posses.RemoveAll(x => removerPosse.Exists(y => y.Identificacao == x.Identificacao));;

            foreach (Posse posse in regularizacaoGeo.Posses)
            {
                if (!caracterizacaoAtual.Posses.Exists(x => x.Identificacao == posse.Identificacao))
                {
                    caracterizacaoAtual.Posses.Add(posse);
                }
                else
                {
                    Posse posseAtual = caracterizacaoAtual.Posses.Single(x => x.Identificacao == posse.Identificacao);
                    posseAtual.ComprovacaoTexto = posse.ComprovacaoTexto;
                    posseAtual.AreaCroqui       = posse.AreaCroqui;
                    posseAtual.Zona             = posse.Zona;
                }
            }

            return(caracterizacaoAtual);
        }
        public ActionResult VisualizarPosse(int id, int empreendimento, Posse posse, List <Dominio> matriculas)
        {
            RegularizacaoFundiaria caracterizacao = new RegularizacaoFundiaria();

            caracterizacao.Matriculas = matriculas ?? new List <Dominio>();
            caracterizacao.Posse      = posse;

            RegularizacaoFundiariaVM vm = new RegularizacaoFundiariaVM(caracterizacao, _listaBus.RegularizacaoFundiariaRelacaoTrabalho, _listaBus.RegularizacaoFundiariaTipoLimite, _listaBus.RegularizacaoFundiariaTipoRegularizacao, _listaBus.RegularizacaoFundiariaTipoUso, _listaBus.RegularizacaoFundiariaHomologacao, true);

            return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros, @Html = ViewModelHelper.RenderPartialViewToString(ControllerContext, "RegularizacaoFundiariaPartial", vm) }, JsonRequestBehavior.AllowGet));
        }
        internal Outros ObterDadosPDF(int titulo, BancoDeDados banco = null)
        {
            Outros outros    = new Outros();
            int    dominioId = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Dados do Titulo

                DadosPDF dados = DaEsp.ObterDadosTitulo(titulo, bancoDeDados);

                outros.Titulo = dados.Titulo;
                outros.Titulo.SetorEndereco = DaEsp.ObterEndSetor(outros.Titulo.SetorId);
                outros.Protocolo            = dados.Protocolo;
                outros.Empreendimento       = dados.Empreendimento;

                #endregion

                #region Especificidade

                Comando comando = bancoDeDados.CriarComando(@"
				select e.valor_terreno, e.dominio, e.is_inalienabilidade, lm.texto municipio_gleba_texto 
				from {0}esp_out_legitima_terr_devolut e, {0}lov_municipio lm where lm.id(+) = e.municipio_gleba and e.titulo = :titulo "                , EsquemaBanco);

                comando.AdicionarParametroEntrada("titulo", titulo, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        dominioId                 = reader.GetValue <int>("dominio");
                        outros.ValorTerreno       = reader.GetValue <decimal>("valor_terreno").ToString("N2");
                        outros.IsInalienabilidade = reader.GetValue <bool>("is_inalienabilidade");
                        outros.Municipio          = reader.GetValue <string>("municipio_gleba_texto");
                    }

                    reader.Close();
                }

                #endregion

                #region Destinatarios

                comando = bancoDeDados.CriarComando(@" select d.destinatario from {0}esp_out_legitima_destinatario d, {0}esp_out_legitima_terr_devolut e 
				where d.especificidade = e.id and e.titulo = :tituloId "                , EsquemaBanco);
                comando.AdicionarParametroEntrada("tituloId", titulo, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        var pessoa = DaEsp.ObterDadosPessoa(reader.GetValue <int>("destinatario"), banco: bancoDeDados);
                        outros.Destinatarios.Add(pessoa);
                        outros.Titulo.AssinanteSource.Add(new AssinanteDefault {
                            Cargo = "Titulado", Nome = pessoa.NomeRazaoSocial
                        });
                    }

                    reader.Close();
                }

                #endregion

                #region Dominialidade

                DominialidadeBus dominialidadeBus = new DominialidadeBus();
                outros.Dominialidade = new DominialidadePDF(dominialidadeBus.ObterPorEmpreendimento(outros.Empreendimento.Id.GetValueOrDefault(), banco: bancoDeDados));

                #endregion

                #region Regularizacao Fundiaria

                RegularizacaoFundiaria regularizacao = new RegularizacaoFundiariaBus().ObterPorEmpreendimento(outros.Empreendimento.Id.GetValueOrDefault());
                Posse posse = regularizacao.Posses.SingleOrDefault(x => x.Id.GetValueOrDefault() == dominioId);

                if (posse != null)
                {
                    PossePDF possePDF = new PossePDF(posse);
                    outros.RegularizacaoFundiaria.Posses.Add(possePDF);
                    outros.RegularizacaoFundiaria.Posse = possePDF;
                    outros.Dominio = outros.Dominialidade.Dominios.SingleOrDefault(x => x.Id == possePDF.DominioId);
                }

                #endregion
            }

            return(outros);
        }
        public bool Posse(Posse posse, int empreendimentoId)
        {
            if (string.IsNullOrWhiteSpace(posse.Identificacao))
            {
                Validacao.Add(Mensagem.RegularizacaoFundiaria.CampoObrigatorio);
            }

            if (posse.AreaCroqui <= 0)
            {
                Validacao.Add(Mensagem.RegularizacaoFundiaria.CampoObrigatorio);
            }

            if (posse.AreaRequerida <= 0)
            {
                Validacao.Add(Mensagem.RegularizacaoFundiaria.AreaRequeridaObrigatoria);
            }

            if (posse.RegularizacaoTipo <= 0)
            {
                Validacao.Add(Mensagem.RegularizacaoFundiaria.TipoRegularizacaoObrigatorio);
            }

            #region Dominios Avulsos

            if (!posse.PossuiDominioAvulso.HasValue)
            {
                Validacao.Add(Mensagem.RegularizacaoFundiaria.PossuiDominioAvulsoObrigatorio);
            }

            if (posse.PossuiDominioAvulsoBool)
            {
                if (posse.DominiosAvulsos == null || posse.DominiosAvulsos.Count <= 0)
                {
                    Validacao.Add(Mensagem.RegularizacaoFundiaria.DominioAvulsoObrigatorio);
                }
                else
                {
                    posse.DominiosAvulsos.ForEach(dominio => {
                        DominioAvulso(posse.DominiosAvulsos.Where(x => x != dominio).ToList(), dominio);
                    });
                }
            }

            #endregion

            #region Transmitentes

            if (posse.Transmitentes.Count(x => x.TempoOcupacao <= 0) > 0)
            {
                Validacao.Add(Mensagem.RegularizacaoFundiaria.TempoDeOcupacaoObrigatorio);
            }

            if (posse.Transmitentes.Count(x => x.Transmitente.Id <= 0) > 0)
            {
                Validacao.Add(Mensagem.RegularizacaoFundiaria.TrasmitenteObrigatorio);
            }

            if (posse.Transmitentes.Any(x => posse.Transmitentes.Count(y => y.Transmitente.Id == x.Transmitente.Id) > 1))
            {
                Validacao.Add(Mensagem.RegularizacaoFundiaria.TrasmitenteJaAdicionado);
            }

            #endregion

            if (_da.EmpreendimentoZonaAlterada(empreendimentoId, posse.Zona))
            {
                Validacao.Add(Mensagem.Caracterizacao.SegmentoEmpreendimentoAlterado);
                return(Validacao.EhValido);
            }


            #region Zona Rural

            if (posse.Zona == (int)eZonaLocalizacao.Rural)
            {
                if (posse.UsoAtualSolo.Count <= 0)
                {
                    Validacao.Add(Mensagem.RegularizacaoFundiaria.UsoSoloObrigatorio);
                }

                if (posse.UsoAtualSolo.Count(x => x.AreaPorcentagem <= 0) > 0)
                {
                    Validacao.Add(Mensagem.RegularizacaoFundiaria.UsoSoloTipoObrigatorio);
                }

                int porcentagem = posse.UsoAtualSolo.Sum(x => x.AreaPorcentagem);
                if (porcentagem > 100)
                {
                    Validacao.Add(Mensagem.RegularizacaoFundiaria.UsoSoloLimitePorcentagem);
                }

                if (posse.RelacaoTrabalho <= 0)
                {
                    Validacao.Add(Mensagem.RegularizacaoFundiaria.RelacaoTrabalhoObrigatorio);
                }

                if (string.IsNullOrWhiteSpace(posse.Benfeitorias))
                {
                    Validacao.Add(Mensagem.RegularizacaoFundiaria.BenfeitoriasEdificacoesObrigatorio);
                }
            }

            #endregion

            #region Opções

            foreach (Opcao opcao in posse.Opcoes)
            {
                switch (opcao.TipoEnum)
                {
                case eTipoOpcao.TerrenoDevoluto:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.TerrenoDevolutoObrigatorio);
                        break;
                    }

                    if (String.IsNullOrEmpty(opcao.Outro) || opcao.Outro == "0")
                    {
                        if (opcao.Valor == 0)
                        {
                            Validacao.Add(Mensagem.RegularizacaoFundiaria.EspecificarDominialidadeObrigatorio);
                        }
                        else
                        {
                            Validacao.Add(Mensagem.RegularizacaoFundiaria.HomologacaoAprovadaObrigatoria);
                        }
                    }
                    break;

                case eTipoOpcao.RequerenteResideNaPosse:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.RequerenteResidePosseObrigatorio);
                    }

                    ValidacoesGenericasBus.DataMensagem(new DateTecno()
                    {
                        DataTexto = opcao.Outro
                    }, "DataArquisicao", "aquisição ou ocupação");
                    break;

                case eTipoOpcao.ExisteLitigio:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.ExisteLitigioObrigatorio);
                        break;
                    }

                    if (opcao.Valor == 1 && String.IsNullOrEmpty(opcao.Outro))
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.NomeLitigioObrigatorio);
                    }
                    break;

                case eTipoOpcao.SobrepoeSeDivisa:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.SobrepoeFaixaDivisaObrigatorio);
                        break;
                    }

                    if (opcao.Valor == 1 && opcao.Outro == "0")
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.AQuemPertenceLimiteObrigatorio);
                    }
                    break;

                case eTipoOpcao.BanhadoPorRioCorrego:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.BanhadoRioCorregoObrigatorio);
                        break;
                    }

                    if (opcao.Valor == 1 && String.IsNullOrEmpty(opcao.Outro))
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.NomeRioCorregoObrigatorio);
                    }
                    break;

                case eTipoOpcao.PossuiNascente:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.PossuiNascenteObrigatorio);
                    }
                    break;

                case eTipoOpcao.RedeAgua:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.RedeAguaObrigatorio);
                    }
                    break;

                case eTipoOpcao.RedeEsgoto:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.RedeEsgotoObrigatorio);
                    }
                    break;

                case eTipoOpcao.LuzEletrica:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.LuzEletricaDomiciliarObrigatorio);
                    }
                    break;

                case eTipoOpcao.IluminacaoPublica:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.IluminacaoViaPublicaObrigatorio);
                    }
                    break;

                case eTipoOpcao.RedeTelefonica:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.RedeTelefonicaObrigatorio);
                    }
                    break;

                case eTipoOpcao.Calcada:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.CalcadaObrigatorio);
                    }
                    break;

                case eTipoOpcao.Pavimentacao:

                    if (!opcao.Valor.HasValue)
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.PavimentacaoObrigatorio);
                        break;
                    }

                    if (opcao.Valor == 1 && String.IsNullOrEmpty(opcao.Outro))
                    {
                        Validacao.Add(Mensagem.RegularizacaoFundiaria.TipoPavimentacaoObrigatorio);
                    }
                    break;
                }
            }

            #endregion

            return(Validacao.EhValido);
        }
Exemplo n.º 5
0
        public PossePDF(Posse posse, List <Dominio> matriculasAnexas = null)
        {
            _lstLimite        = EntitiesBus.ObterRegularizacaoFundiariaTipoLimite();
            _relacoesTrabalho = EntitiesBus.ObterRegularizacaoFundiariaRelacaoTrabalho();

            ComprovacaoTexto        = posse.ComprovacaoTexto;
            AreaRequerida           = posse.AreaRequerida.ToStringTrunc();
            Zona                    = posse.Zona;
            AreaCroquiDecimal       = posse.AreaCroqui;
            AreaPerimetroDecimal    = posse.Perimetro;
            Opcoes                  = posse.Opcoes;
            Observacoes             = posse.Observacoes;
            BenfeitoriasEdificacoes = posse.Benfeitorias;
            DominioId               = posse.Dominio;
            Dominio                 = new DominioPDF(posse.DominioPosse);
            RelacaoTrabalho         = posse.RelacaoTrabalho;

            #region Lists

            if (matriculasAnexas != null)
            {
                foreach (var item in matriculasAnexas)
                {
                    Matriculas.Add(new DominioPDF(item));
                }

                foreach (var item in posse.DominiosAvulsos)
                {
                    Matriculas.Add(new DominioPDF(item));
                }
            }

            foreach (var item in posse.Transmitentes)
            {
                Transmitentes.Add(new TransmitentePDF(item));
            }

            foreach (var item in posse.UsoAtualSolo)
            {
                UsosSolo.Add(new UsoAtualSoloPDF(item));
            }

            foreach (var item in posse.Edificacoes)
            {
                Edificacoes.Add(new EdificacaoPDF(item));
            }

            #endregion

            #region Opcoes

            Opcao opcaoTerrenoDevolutivo = (Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.TerrenoDevoluto) ?? new Opcao());
            TerrenoDevolutivo = OpcaoResposta(opcaoTerrenoDevolutivo.Valor);

            if (Convert.ToBoolean(opcaoTerrenoDevolutivo.Valor))
            {
                TerrenoDevolutivoEspecificar = string.Empty;
            }
            else
            {
                TerrenoDevolutivoEspecificar = opcaoTerrenoDevolutivo.Outro;
            }

            RequerenteResideNaPosse = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.RequerenteResideNaPosse) ?? new Opcao()).Valor);
            RequerenteResideNaPosseDataAquisicao = (Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.RequerenteResideNaPosse) ?? new Opcao()).Outro;
            ExisteLitigio     = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.ExisteLitigio) ?? new Opcao()).Valor);
            ExisteLitigioNome = (Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.ExisteLitigio) ?? new Opcao()).Outro;
            SobrepoeSeDivisa  = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.SobrepoeSeDivisa) ?? new Opcao()).Valor);
            SobrepoeSeDivisaPertenceLimite = (_lstLimite.FirstOrDefault(y => y.Id == (Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.SobrepoeSeDivisa) ?? new Opcao()).Outro) ?? new Lista()).Texto;
            BanhadoPorRioCorrego           = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.BanhadoPorRioCorrego) ?? new Opcao()).Valor);
            BanhadoPorRioCorregoNome       = (Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.BanhadoPorRioCorrego) ?? new Opcao()).Outro;
            PossuiNascente    = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.PossuiNascente) ?? new Opcao()).Valor);
            RedeAgua          = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.RedeAgua) ?? new Opcao()).Valor);
            RedeEsgoto        = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.RedeEsgoto) ?? new Opcao()).Valor);
            RedeTelefonica    = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.RedeTelefonica) ?? new Opcao()).Valor);
            LuzEletrica       = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.LuzEletrica) ?? new Opcao()).Valor);
            IluminacaoPublica = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.IluminacaoPublica) ?? new Opcao()).Valor);
            Calcada           = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.Calcada) ?? new Opcao()).Valor);
            Pavimentacao      = OpcaoResposta((Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.Pavimentacao) ?? new Opcao()).Valor);
            PavimentacaoTipo  = (Opcoes.FirstOrDefault(x => x.TipoEnum == eTipoOpcao.Pavimentacao) ?? new Opcao()).Outro;

            #endregion
        }
 public ActionResult ValidarPosse(Posse posse, int empreendimentoId)
 {
     _validar.Posse(posse, empreendimentoId);
     return(Json(new { @EhValido = Validacao.EhValido, @Msg = Validacao.Erros }, JsonRequestBehavior.AllowGet));
 }