public object ObterDadosPdf(IEspecificidade especificidade, BancoDeDados banco)
        {
            try
            {
                LaudoVistoriaFundiaria esp = especificidade as LaudoVistoriaFundiaria;
                Laudo laudo = _da.ObterDadosPDF(especificidade.Titulo.Id, banco);

                #region Regularização Fundiaria

                Dominialidade          dominialidade = new DominialidadeBus().ObterPorEmpreendimento(laudo.Empreendimento.Id.GetValueOrDefault());
                RegularizacaoFundiaria regularizacao = new RegularizacaoFundiariaBus().ObterPorEmpreendimento(laudo.Empreendimento.Id.GetValueOrDefault());
                regularizacao.Posses = regularizacao.Posses.Where(x => esp.RegularizacaoDominios.Exists(y => y.DominioId == x.Id)).ToList();

                laudo.RegularizacaoFundiaria = new RegularizacaoFundiariaPDF(regularizacao);

                foreach (var item in laudo.RegularizacaoFundiaria.Posses)
                {
                    item.Dominio = new DominioPDF(dominialidade.Dominios.FirstOrDefault(x => x.Id == item.DominioId));
                }

                #endregion

                return(laudo);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
        public bool Salvar(IEspecificidade especificidade)
        {
            LaudoVistoriaFundiaria    esp = especificidade as LaudoVistoriaFundiaria;
            CaracterizacaoValidar     caracterizacaoValidar = new CaracterizacaoValidar();
            CaracterizacaoBus         caracterizacaoBus     = new CaracterizacaoBus();
            LaudoVistoriaFundiariaBus busLaudo     = new LaudoVistoriaFundiariaBus();
            List <Dependencia>        dependencias = new List <Dependencia>();

            //Genéricas
            RequerimentoAtividade(esp, false, true);

            if (esp.Destinatario <= 0)
            {
                Validacao.Add(Mensagem.LaudoVistoriaFundiariaMsg.DestinatarioObrigatorio);
            }

            if (esp.RegularizacaoDominios.Count <= 0)
            {
                Validacao.Add(Mensagem.LaudoVistoriaFundiariaMsg.RegularizacaoDominioObrigatorio);
            }

            int idCaracterizacao = caracterizacaoBus.Existe(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), eCaracterizacao.RegularizacaoFundiaria);

            if (idCaracterizacao > 0)
            {
                dependencias = caracterizacaoBus.ObterDependencias(idCaracterizacao, eCaracterizacao.RegularizacaoFundiaria, eCaracterizacaoDependenciaTipo.Caracterizacao);
                if (caracterizacaoValidar.DependenciasAlteradas(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault(), (int)eCaracterizacao.RegularizacaoFundiaria, eCaracterizacaoDependenciaTipo.Caracterizacao, dependencias) != String.Empty)
                {
                    Validacao.Add(Mensagem.LaudoVistoriaFundiariaMsg.RegularizacaoFundiariaInvalida);
                }
            }
            else
            {
                Validacao.Add(Mensagem.LaudoVistoriaFundiariaMsg.RegularizacaoFundiariaObrigatorio);
            }

            #region Regularizacao fundiaria

            List <Int32> idsPossesRegularizacao = busLaudo.ObterPossesRegularizacao(especificidade.Titulo.EmpreendimentoId.GetValueOrDefault()).Select(x => Convert.ToInt32(x.Id)).ToList();
            esp.RegularizacaoDominios.ForEach(x =>
            {
                if (!idsPossesRegularizacao.Contains(x.DominioId))
                {
                    Validacao.Add(Mensagem.LaudoVistoriaFundiariaMsg.RegularizacaoDominioInexistente);
                }
            });

            #endregion

            ValidacoesGenericasBus.DataMensagem(esp.DataVistoria, "Laudo_DataVistoria_DataTexto", "vistoria");

            if (busLaudo.ExistePecaTecnica(esp.Atividades.First().Id, esp.ProtocoloReq.Id) <= 0)
            {
                Validacao.Add(Mensagem.LaudoVistoriaFundiariaMsg.PecaTecnicaObrigatorio(esp.Atividades.First().NomeAtividade));
            }

            return(Validacao.EhValido);
        }
        public void Salvar(IEspecificidade especificidade, BancoDeDados banco)
        {
            LaudoVistoriaFundiaria laudo = especificidade as LaudoVistoriaFundiaria;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                _da.Salvar(laudo, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
Exemple #4
0
        public object ObterDadosPdf(IEspecificidade especificidade, BancoDeDados banco)
        {
            try
            {
                LaudoVistoriaFundiaria esp = especificidade as LaudoVistoriaFundiaria;
                Laudo laudo = _da.ObterDadosPDF(especificidade.Titulo.Id, banco);

                #region Regularização Fundiaria

                //Dominialidade dominialidade = new DominialidadeBus().ObterPorEmpreendimento(laudo.Empreendimento.Id.GetValueOrDefault());
                RegularizacaoFundiaria regularizacao = new RegularizacaoFundiariaBus().ObterPorEmpreendimento(laudo.Empreendimento.Id.GetValueOrDefault());
                regularizacao.Posses = regularizacao.Posses.Where(x => esp.RegularizacaoDominios.Exists(y => y.DominioId == x.Id)).OrderBy(x => x.Identificacao).ToList();

                laudo.RegularizacaoFundiaria = new RegularizacaoFundiariaPDF(regularizacao);

                DominioPDF dominio;

                foreach (var item in laudo.RegularizacaoFundiaria.Posses)
                {
                    dominio = new DominioPDF();

                    dominio.Identificacao        = item.Identificacao;
                    dominio.ComprovacaoTexto     = item.ComprovacaoTexto;
                    dominio.NumeroCCIR           = item.NumeroCCIR;
                    dominio.Registro             = item.DescricaoComprovacao;
                    dominio.AreaCroquiDecimal    = Convert.ToDecimal(item.AreaCroqui);
                    dominio.AreaDocumentoDecimal = Convert.ToDecimal(item.AreaPosseDocumento);
                    dominio.AreaCCIR             = item.AreaCCIR.ToString();
                    dominio.DataAtualizacao      = item.DataAtualizacao;
                    dominio.ConfrontacaoNorte    = item.ConfrontacaoNorte;
                    dominio.ConfrontacaoSul      = item.ConfrontacaoSul;
                    dominio.ConfrontacaoLeste    = item.ConfrontacaoLeste;
                    dominio.ConfrontacaoOeste    = item.ConfrontacaoOeste;

                    item.Dominio = dominio;
                }

                #endregion

                return(laudo);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(null);
        }
Exemple #5
0
        public ActionResult LaudoVistoriaFundiaria(EspecificidadeVME especificidade)
        {
            LaudoVistoriaFundiariaBus  _busLaudo = new LaudoVistoriaFundiariaBus();
            List <Protocolos>          lstProcessosDocumentos = _busTitulo.ObterProcessosDocumentos(especificidade.ProtocoloId);
            List <AtividadeSolicitada> lstAtividades          = new List <AtividadeSolicitada>();
            List <PessoaLst>           destinatarios          = new List <PessoaLst>();

            Titulo titulo = new Titulo();
            int    atividadeSelecionada = 0;

            LaudoVistoriaFundiaria laudo = new LaudoVistoriaFundiaria();
            string htmlEspecificidade    = string.Empty;

            if (especificidade.TituloId > 0)
            {
                titulo = _busTitulo.ObterSimplificado(especificidade.TituloId);

                titulo.Atividades = _busTitulo.ObterAtividades(especificidade.TituloId);

                if (titulo.Atividades.Count > 0)
                {
                    atividadeSelecionada = titulo.Atividades[0].Id;
                }

                laudo = _busLaudo.Obter(especificidade.TituloId) as LaudoVistoriaFundiaria;

                if (laudo != null)
                {
                    especificidade.AtividadeProcDocReq = laudo.ProtocoloReq;
                }

                _busLaudo.EhHistorico = especificidade.IsVisualizar;

                if (especificidade.ProtocoloId > 0)
                {
                    if (_busEspecificidade.ExisteProcDocFilhoQueFoiDesassociado(especificidade.TituloId))
                    {
                        lstAtividades     = new List <AtividadeSolicitada>();
                        titulo.Atividades = new List <Atividade>();
                    }
                    else
                    {
                        lstAtividades = _busAtividade.ObterAtividadesLista(especificidade.AtividadeProcDocReq.ToProtocolo());
                    }

                    if (titulo.Situacao.Id == (int)eTituloSituacao.Cadastrado)
                    {
                        destinatarios = _busTitulo.ObterDestinatarios(especificidade.ProtocoloId);
                    }
                    else
                    {
                        destinatarios.Add(new PessoaLst()
                        {
                            Id = laudo.Destinatario, Texto = laudo.DestinatarioNomeRazao, IsAtivo = true
                        });
                    }

                    if (!especificidade.IsVisualizar)
                    {
                        _busEspecificidade.PossuiAtividadeEmAndamento(especificidade.ProtocoloId);
                    }
                }
            }

            if (!Validacao.EhValido)
            {
                return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = string.Empty }, JsonRequestBehavior.AllowGet));
            }

            LaudoVistoriaFundiariaVM vm = new LaudoVistoriaFundiariaVM(
                lstProcessosDocumentos,
                lstAtividades,
                destinatarios,
                _busLaudo.ObterPossesRegularizacao(especificidade.EmpreendimentoId),
                especificidade.AtividadeProcDocReqKey,
                atividadeSelecionada,
                especificidade.IsVisualizar);

            vm.Laudo = laudo;

            if (especificidade.TituloId > 0)
            {
                vm.Atividades.Atividades = titulo.Atividades;
            }

            htmlEspecificidade = ViewModelHelper.RenderPartialViewToString(ControllerContext, "~/Areas/Especificidades/Views/Laudo/LaudoVistoriaFundiaria.ascx", vm);
            return(Json(new { Msg = Validacao.Erros, EhValido = Validacao.EhValido, @Html = htmlEspecificidade }, JsonRequestBehavior.AllowGet));
        }
Exemple #6
0
        internal void Salvar(LaudoVistoriaFundiaria laudo, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Cadastro do Titulo

                eHistoricoAcao acao;
                object         id;

                //Verifica a existencia da especificidade
                Comando comando = bancoDeDados.CriarComando(@"select e.id from {0}esp_laudo_vistoria_fundiaria e where e.titulo = :titulo", EsquemaBanco);
                comando.AdicionarParametroEntrada("titulo", laudo.Titulo.Id, DbType.Int32);

                id = bancoDeDados.ExecutarScalar(comando);

                if (id != null && !Convert.IsDBNull(id))
                {
                    comando = bancoDeDados.CriarComando(@"update {0}esp_laudo_vistoria_fundiaria e set e.titulo = :titulo, e.protocolo = :protocolo,
														e.destinatario = :destinatario, e.data_vistoria = :data_vistoria, e.regularizacao_fundiaria = :regularizacao_fundiaria,
														e.tid = :tid where e.titulo = :titulo"                                                        , EsquemaBanco);

                    acao     = eHistoricoAcao.atualizar;
                    laudo.Id = Convert.ToInt32(id);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}esp_laudo_vistoria_fundiaria(id, titulo, protocolo, destinatario, data_vistoria, regularizacao_fundiaria, tid)
														values ({0}seq_esp_laudo_visto_florestal.nextval, :titulo, :protocolo, :destinatario, :data_vistoria, 
														:regularizacao_fundiaria, :tid) returning id into :id"                                                        , EsquemaBanco);

                    acao = eHistoricoAcao.criar;
                    comando.AdicionarParametroSaida("id", DbType.Int32);
                }

                comando.AdicionarParametroEntrada("titulo", laudo.Titulo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("protocolo", laudo.ProtocoloReq.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("destinatario", laudo.Destinatario, DbType.Int32);
                comando.AdicionarParametroEntrada("data_vistoria", laudo.DataVistoria.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("regularizacao_fundiaria", laudo.RegularizacaoId, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                if (id == null || Convert.IsDBNull(id))
                {
                    laudo    = laudo ?? new LaudoVistoriaFundiaria();
                    laudo.Id = Convert.ToInt32(comando.ObterValorParametro("id"));
                }


                //Regularizacao Dominios
                comando = bancoDeDados.CriarComando("delete from {0}esp_laudo_vist_fund_domin d ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where d.especificidade = :especificidade{0}",
                                                               comando.AdicionarNotIn("and", "d.id", DbType.Int32, laudo.RegularizacaoDominios.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("especificidade", laudo.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #region Regularizacao Dominios

                if (laudo.RegularizacaoDominios != null && laudo.RegularizacaoDominios.Count > 0)
                {
                    foreach (var item in laudo.RegularizacaoDominios)
                    {
                        object regularizacaoDominioTid;

                        comando = bancoDeDados.CriarComando(@"select (case when t.situacao in (1, 2, 4) then 
															(select c.tid from crt_regularizacao_dominio c where c.id = :regularizacao_dominio)
															else (select dominio_tid from esp_laudo_vist_fund_domin where especificidade = 
															(select e.id from esp_laudo_vistoria_fundiaria e where e.titulo = :titulo) 
															and dominio = :regularizacao_dominio) end) tid 
															from tab_titulo t where t.id = :titulo"                                                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("titulo", laudo.Titulo.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("regularizacao_dominio", item.DominioId, DbType.Int32);
                        regularizacaoDominioTid = bancoDeDados.ExecutarScalar(comando);


                        if (item.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update esp_laudo_vist_fund_domin d set d.especificidade = :especificidade, 
																d.dominio = :dominio, d.dominio_tid = :dominio_tid, d.tid = :tid where d.id = :id"                                                                , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into esp_laudo_vist_fund_domin (id, especificidade, dominio, dominio_tid, tid) 
																values(seq_esp_laudo_vist_fund_domin.nextval, :especificidade, :dominio, :dominio_tid, :tid)
																returning id into :id"                                                                , EsquemaBanco);

                            comando.AdicionarParametroSaida("id", DbType.Int32);
                        }

                        comando.AdicionarParametroEntrada("especificidade", laudo.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("dominio", item.DominioId, DbType.Int32);
                        comando.AdicionarParametroEntrada("dominio_tid", regularizacaoDominioTid, DbType.String);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);

                        if (item.Id <= 0)
                        {
                            item.Id = Convert.ToInt32(comando.ObterValorParametro("id"));
                        }
                    }
                }

                #endregion

                #endregion

                Historico.Gerar(Convert.ToInt32(laudo.Titulo.Id), eHistoricoArtefatoEspecificidade.laudovistoriafundiaria, acao, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
Exemple #7
0
        internal LaudoVistoriaFundiaria Obter(int titulo, BancoDeDados banco = null)
        {
            LaudoVistoriaFundiaria especificidade = new LaudoVistoriaFundiaria();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Dados da Especificidade

                Comando comando = bancoDeDados.CriarComando(@"select e.id, e.tid, e.protocolo,  e.data_vistoria, e.regularizacao_fundiaria regularizacao_fundiaria_id, 
															n.numero, n.ano, p.requerimento, p.protocolo protocolo_tipo, e.destinatario, (select distinct nvl(pe.nome, pe.razao_social) 
															from {0}hst_esp_laudo_visto_fundiaria he, {0}hst_pessoa pe where he.destinatario_id = pe.pessoa_id 
															and he.destinatario_tid = pe.tid and pe.data_execucao = (select max(h.data_execucao) 
															from {0}hst_pessoa h where h.pessoa_id = pe.pessoa_id and h.tid = pe.tid) and 
															he.especificidade_id = e.id and not exists(select 1 from {0}lov_historico_artefatos_acoes l 
															where l.id = he.acao_executada and l.acao = 3) and he.titulo_tid = (select ht.tid 
															from {0}hst_titulo ht where ht.titulo_id = e.titulo and ht.data_execucao = (select min(htt.data_execucao) 
															from {0}hst_titulo htt where htt.titulo_id = e.titulo and htt.data_execucao > (select max(httt.data_execucao) 
															from {0}hst_titulo httt where httt.titulo_id = e.titulo and httt.situacao_id = 1)))) destinatario_nome_razao 
															from {0}esp_laudo_vistoria_fundiaria e, {0}tab_titulo_numero n, {0}tab_protocolo p 
															where n.titulo(+) = e.titulo and e.protocolo = p.id(+) and e.titulo = :titulo"                                                            , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        especificidade.Titulo.Id       = titulo;
                        especificidade.Id              = Convert.ToInt32(reader["id"]);
                        especificidade.RegularizacaoId = reader.GetValue <Int32>("regularizacao_fundiaria_id");
                        especificidade.Tid             = reader["tid"].ToString();

                        if (reader["protocolo"] != null && !Convert.IsDBNull(reader["protocolo"]))
                        {
                            especificidade.ProtocoloReq.IsProcesso     = (reader["protocolo_tipo"] != null && Convert.ToInt32(reader["protocolo_tipo"]) == 1);
                            especificidade.ProtocoloReq.RequerimentoId = Convert.ToInt32(reader["requerimento"]);
                            especificidade.ProtocoloReq.Id             = Convert.ToInt32(reader["protocolo"]);
                        }

                        if (reader["destinatario"] != null && !Convert.IsDBNull(reader["destinatario"]))
                        {
                            especificidade.Destinatario          = Convert.ToInt32(reader["destinatario"]);
                            especificidade.DestinatarioNomeRazao = Convert.ToString(reader["destinatario_nome_razao"]);
                        }

                        if (reader["data_vistoria"] != null && !Convert.IsDBNull(reader["data_vistoria"]))
                        {
                            especificidade.DataVistoria.Data = Convert.ToDateTime(reader["data_vistoria"]);
                        }

                        if (reader["numero"] != null && !Convert.IsDBNull(reader["numero"]))
                        {
                            especificidade.Titulo.Numero.Inteiro = Convert.ToInt32(reader["numero"]);
                        }

                        if (reader["ano"] != null && !Convert.IsDBNull(reader["ano"]))
                        {
                            especificidade.Titulo.Numero.Ano = Convert.ToInt32(reader["ano"]);
                        }
                    }

                    reader.Close();
                }

                #endregion

                #region Regularizacao Dominios

                comando = bancoDeDados.CriarComando(@"
				select ed.id, ed.tid, ed.dominio dominio_id, d.comprovacao_texto, d.area_croqui 
				from {0}hst_crt_dominialidade_dominio d, {0}hst_crt_regularizacao_dominio rd, {0}hst_esp_laudo_visto_fundiaria he, {0}esp_laudo_vist_fund_domin ed 
				where d.dominialidade_dominio_id = rd.dominio_id and d.tid = rd.dominio_tid and rd.regularizacao_dominio_id = ed.dominio and rd.tid = ed.dominio_tid 
				and rd.regularizacao_tid = he.regularizacao_fundiaria_tid and he.especificidade_id = ed.especificidade and he.tid = ed.tid  and ed.especificidade = :especificidade 
				order by ed.id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("especificidade", especificidade.Id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    RegularizacaoDominio regularizacaoDominio = null;

                    while (reader.Read())
                    {
                        regularizacaoDominio             = new RegularizacaoDominio();
                        regularizacaoDominio.Id          = Convert.ToInt32(reader["id"]);
                        regularizacaoDominio.DominioId   = Convert.ToInt32(reader["dominio_id"]);
                        regularizacaoDominio.Comprovacao = reader["comprovacao_texto"].ToString();
                        regularizacaoDominio.AreaCroqui  = Convert.ToDecimal(reader["area_croqui"]).ToStringTrunc();
                        regularizacaoDominio.Tid         = reader["tid"].ToString();

                        especificidade.RegularizacaoDominios.Add(regularizacaoDominio);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(especificidade);
        }