コード例 #1
0
        public async Task <IActionResult> Edit(int id, [Bind("IdFinalidade,TFinalidade")] Finalidade finalidade)
        {
            if (id != finalidade.IdFinalidade)
            {
                return(NotFound());
            }
            var cTCodefindany = _context.Finalidade.Where(b => EF.Property <string>(b, "TFinalidade").Equals(finalidade.TFinalidade));

            if (cTCodefindany.Any())
            {
                ModelState.AddModelError("TFinalidade", string.Format("Esta Finalidade já existe.", finalidade.TFinalidade));
            }
            if (ModelState.IsValid)
            {
                try
                {
                    _context.Update(finalidade);
                    await _context.SaveChangesAsync();
                }
                catch (DbUpdateConcurrencyException)
                {
                    if (!FinalidadeExists(finalidade.IdFinalidade))
                    {
                        return(NotFound());
                    }
                    else
                    {
                        throw;
                    }
                }
                return(RedirectToAction(nameof(Index)));
            }
            return(View(finalidade));
        }
コード例 #2
0
 protected void btnSalvar_Click(object sender, EventArgs e)
 {
     if (IsInvalidForm())
     {
         SendMessage(Message.MSG_REQUIRED_FIELDS, Color.Red);
     }
     else
     {
         try
         {
             Finalidade finalidade = new Finalidade()
             {
                 Descricao = txtDescricao.Text,
                 Origem    = txtOrigem.Text
             };
             finalidadePersistence.Create(finalidade);
             SendMessage(Message.MSG_CREATION_SUCCESS, Color.Green);
             LoadGridView();
             ClearForm();
         }
         catch (Exception ex)
         {
             SendMessage($"{Message.MSG_ERROR} {ex.Message}", Color.Red);
         }
     }
 }
コード例 #3
0
        public List <Finalidade> ConsultarList()
        {
            SQLiteDataReader  dr;
            List <Finalidade> finalidades = new List <Finalidade>();

            StringBuilder sb = new StringBuilder();

            sb.Append(" SELECT id,       ");
            sb.Append("        descricao      ");
            sb.Append("        origem      ");
            sb.Append("  FROM  finalidade ");

            using (var cmd = sqliteConnection.CreateCommand())
            {
                cmd.CommandText = sb.ToString();
                dr = cmd.ExecuteReader();
            }

            if (dr.HasRows)
            {
                while (dr.Read())
                {
                    Finalidade finalidade = new Finalidade()
                    {
                        Id        = (dr[0] == DBNull.Value) ? 0 : int.Parse(dr[0].ToString()),
                        Descricao = dr.GetString(1).ToString(),
                        Origem    = dr.GetString(1).ToString(),
                    };
                    finalidades.Add(finalidade);
                }
            }
            return(finalidades);
        }
コード例 #4
0
        public void CarregarTituloAnteriorSigla(Finalidade item)
        {
            if (Validacao.EhValido && String.IsNullOrWhiteSpace(item.TituloModeloAnteriorSigla))
            {
                TituloModelo tituloModeloAnterior = _tituloModeloBus.ObterSimplificado(item.TituloModeloAnteriorId.Value);

                item.TituloModeloAnteriorSigla = tituloModeloAnterior.Sigla;
            }
        }
 public void Create(Finalidade finalidade)
 {
     sb = new StringBuilder();
     sb.Append("INSERT INTO finalidade (descricao, origem) ");
     sb.Append($"VALUES ('{finalidade.Descricao}', '{finalidade.Origem}');");
     using (connection = new SQLServer())
     {
         connection.ExecuteCommand(sb.ToString());
     }
 }
コード例 #6
0
        private List <Presente> PreparateList(SqlDataReader reader)
        {
            List <Presente> presentes = new List <Presente>();

            while (reader.Read())
            {
                Tipo tipo = new Tipo()
                {
                    Id        = int.Parse(reader["id_tipo"].ToString()),
                    Descricao = reader["descricao_tipo"].ToString()
                };
                Marca marca = new Marca()
                {
                    Id        = int.Parse(reader["id_marca"].ToString()),
                    Descricao = reader["descricao_marca"].ToString()
                };
                Finalidade finalidade = new Finalidade()
                {
                    Id        = int.Parse(reader["id_finalidade"].ToString()),
                    Descricao = reader["descricao_finalidade"].ToString(),
                    Origem    = reader["origem_finalidade"].ToString()
                };
                Fornecedor fornecedor = new Fornecedor()
                {
                    Id            = int.Parse(reader["id_fornecedor"].ToString()),
                    Nome          = reader["nome_fornecedor"].ToString(),
                    Telefone      = reader["telefone_fornecedor"].ToString(),
                    Cidade        = reader["cidade_fornecedor"].ToString(),
                    Estado        = reader["estado_fornecedor"].ToString(),
                    Logradouro    = reader["logradouro_fornecedor"].ToString(),
                    Numero        = reader["numero_fornecedor"].ToString(),
                    Cnpj          = reader["cnpj_fornecedor"].ToString(),
                    Email         = reader["email_fornecedor"].ToString(),
                    ContaCorrente = reader["nome_fornecedor"].ToString(),
                    Agencia       = reader["agencia_fornecedor"].ToString(),
                    Banco         = reader["banco_fornecedor"].ToString()
                };
                Presente presente = new Presente()
                {
                    Id         = int.Parse(reader["id_presente"].ToString()),
                    Descricao  = reader["descricao_presente"].ToString(),
                    Tipo       = tipo,
                    Marca      = marca,
                    Finalidade = finalidade,
                    Cor        = reader["cor_presente"].ToString(),
                    Tamanho    = decimal.Parse(reader["tamanho_presente"].ToString()),
                    Preco      = decimal.Parse(reader["preco_presente"].ToString()),
                    Fornecedor = fornecedor
                };
                presentes.Add(presente);
            }
            return(presentes);
        }
コード例 #7
0
        internal Roteiro ObterRoteirosPorAtividades(Finalidade finalidade, BancoDeDados bancoInterno)
        {
            Roteiro roteiro = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(bancoInterno, EsquemaBanco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
											select c.id, c.nome, c.versao, a.atividade atividade_nome, c.tid
												from {0}tab_roteiro            c,
													{0}tab_roteiro_atividades d,
													{0}tab_atividade          a,
													{0}tab_roteiro_modelos    g
												where c.id = d.roteiro
												and c.id = g.roteiro
												and d.atividade = a.id
												and c.situacao = 1
												and d.atividade = :atividade
												and bitand(c.finalidade, :finalidade) > 0
												and g.modelo = :modelo"                                                , EsquemaBanco);

                if (finalidade.AtividadeSetorId > 0)
                {
                    comando.DbCommand.CommandText += " and a.setor = :setor";
                    comando.AdicionarParametroEntrada("setor", finalidade.AtividadeSetorId, DbType.Int32);
                }

                comando.AdicionarParametroEntrada("atividade", finalidade.AtividadeId, DbType.Int32);
                comando.AdicionarParametroEntrada("finalidade", finalidade.Codigo, DbType.Int32);
                comando.AdicionarParametroEntrada("modelo", finalidade.TituloModelo, DbType.Int32);

                comando.DbCommand.CommandText += " order by c.id";

                #region busca todos os roteiros relacionados com a atividade/modelo/finalidade

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        roteiro                = new Roteiro();
                        roteiro.Tid            = reader["tid"].ToString();
                        roteiro.Id             = Convert.ToInt32(reader["id"]);
                        roteiro.Nome           = reader["nome"].ToString();
                        roteiro.VersaoAtual    = Convert.ToInt32(reader["versao"]);
                        roteiro.AtividadeTexto = reader["atividade_nome"].ToString();
                    }
                    reader.Close();
                }
                #endregion
            }
            return(roteiro);
        }
コード例 #8
0
        internal Finalidade ObterFinalidade(Finalidade finalidade)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@"select lr.id Id, lr.codigo Codigo, lr.texto Texto, tm.nome TituloModeloTexto
				from {0}lov_titulo_finalidade lr, {0}tab_titulo_modelo tm where lr.id = :id and tm.id = :modelo"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", finalidade.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("modelo", finalidade.TituloModelo, DbType.Int32);

                finalidade = bancoDeDados.ObterEntity <Finalidade>(comando);
                return(finalidade);
            }
        }
コード例 #9
0
 protected void btnSalvar_Click(object sender, EventArgs e)
 {
     if (IsInvalidForm())
     {
         SendMessage(Message.MSG_REQUIRED_FIELDS, Color.Red);
     }
     else
     {
         try
         {
             Tipo tipo = new Tipo()
             {
                 Id = int.Parse(ddlTipo.SelectedValue)
             };
             Marca marca = new Marca()
             {
                 Id = int.Parse(ddlMarca.SelectedValue)
             };
             Finalidade finalidade = new Finalidade()
             {
                 Id = int.Parse(ddlFinalidade.SelectedValue)
             };
             Fornecedor fornecedor = new Fornecedor()
             {
                 Id = int.Parse(ddlFornecedor.SelectedValue)
             };
             Presente presente = new Presente()
             {
                 Descricao  = txtDescricao.Text,
                 Tipo       = tipo,
                 Marca      = marca,
                 Finalidade = finalidade,
                 Cor        = txtCor.Text,
                 Tamanho    = decimal.Parse(txtTamanho.Text),
                 Preco      = decimal.Parse(txtPreco.Text),
                 Fornecedor = fornecedor
             };
             presentePersistence.Create(presente);
             SendMessage(Message.MSG_CREATION_SUCCESS, Color.Green);
             LoadGridView();
             ClearForm();
         }
         catch (Exception ex)
         {
             SendMessage($"{Message.MSG_ERROR} {ex.Message}", Color.Red);
         }
     }
 }
コード例 #10
0
        internal String ModeloTituloNaoAdicionadoRoteiro(Finalidade finalidade)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                Comando comando = bancoDeDados.CriarComando(@"select tm.nome from cnf_atividade_atividades caa, cnf_atividade_modelos cam, 
															tab_titulo_modelo tm where caa.atividade = :atividade and cam.configuracao = caa.configuracao and 
															cam.modelo = :modelo and tm.id = cam.modelo and cam.modelo not in (select rm.modelo from 
															tab_roteiro_modelos rm, tab_roteiro_atividades ra where rm.roteiro = ra.roteiro and 
															ra.atividade = :atividade)"                                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("atividade", finalidade.AtividadeId, DbType.Int32);
                comando.AdicionarParametroEntrada("modelo", finalidade.TituloModelo, DbType.Int32);

                return(bancoDeDados.ExecutarScalar <String>(comando));
            }
        }
コード例 #11
0
        private Finalidade setRelations(Finalidade finalidade, int?id)
        {
            var regTratamento = _context.RegTratamento.Where(b => EF.Property <int>(b, "FinalidadeIdFinalidade") == id);

            finalidade.regFinalidade = regTratamento;

            if (finalidade.regFinalidade.Any())
            {
                finalidade.isDeletable = false;
            }
            else
            {
                finalidade.isDeletable = true;
            }
            return(finalidade);
        }
コード例 #12
0
        private List <Finalidade> PreparateList(SqlDataReader reader)
        {
            List <Finalidade> finalidades = new List <Finalidade>();

            while (reader.Read())
            {
                Finalidade finalidade = new Finalidade()
                {
                    Id        = int.Parse(reader["id"].ToString()),
                    Descricao = reader["descricao"].ToString(),
                    Origem    = reader["origem"].ToString()
                };
                finalidades.Add(finalidade);
            }
            return(finalidades);
        }
コード例 #13
0
        public async Task <IActionResult> Create([Bind("IdFinalidade,TFinalidade")] Finalidade finalidade)
        {
            var cTCodefindany = _context.Finalidade.Where(b => EF.Property <string>(b, "TFinalidade").Equals(finalidade.TFinalidade));

            if (cTCodefindany.Any())
            {
                ModelState.AddModelError("TFinalidade", string.Format("Esta Finalidade já existe.", finalidade.TFinalidade));
            }
            if (ModelState.IsValid)
            {
                _context.Add(finalidade);
                await _context.SaveChangesAsync();

                return(RedirectToAction(nameof(Index)));
            }
            return(View(finalidade));
        }
コード例 #14
0
        public List <Finalidade> SelectFinalidade(List <Tuple <string, object, string> > whereParameters)
        {
            List <Finalidade> Finalidades   = new List <Finalidade>();
            List <string>     lstParameters = new List <string>();

            try
            {
                OpenConnection();
                cmd.CommandText = "SELECT * FROM Finalidade";
                cmd.Parameters.Clear();

                if (whereParameters != null)
                {
                    foreach (var item in whereParameters)
                    {
                        cmd.Parameters.AddWithValue("@" + item.Item1, item.Item2);
                        lstParameters.Add(item.Item1 + item.Item3 + "@" + item.Item1);
                    }
                }

                if (lstParameters.Count > 0)
                {
                    cmd.CommandText += " WHERE " + string.Join(" AND ", lstParameters.ToArray());
                }

                cmd.CommandType = System.Data.CommandType.Text;
                reader          = cmd.ExecuteReader();
                while (reader.Read())
                {
                    Finalidade p = new Finalidade();
                    p.ID          = Convert.ToInt32(reader["ID"]);
                    p.Nome        = reader["Nome"].ToString();
                    p.IDCategoria = Convert.ToInt32(reader["IDCategoria"]);
                    Finalidades.Add(p);
                }
            }
            catch (Exception) { throw; }
            finally
            { CloseConnection(); }

            return(Finalidades);
        }
コード例 #15
0
        void CarregarDadosListas(Requerimento requerimento, BancoDeDados bancoInterno)
        {
            requerimento.SituacaoTexto = ListaCredenciadoBus.SituacoesRequerimento.Single(x => x.Id == requerimento.SituacaoId).Texto;

            Atividade  atividade  = new Atividade();
            Finalidade finalidade = new Finalidade();

            requerimento.Atividades.ForEach(x =>
            {
                atividade       = _roteiroBus.ObterAtividade(x, bancoInterno);
                x.NomeAtividade = atividade.NomeAtividade;
                x.SetorId       = atividade.SetorId;
                x.Finalidades.ForEach(y =>
                {
                    finalidade          = _roteiroBus.ObterFinalidade(y, bancoInterno);
                    y.Codigo            = finalidade.Codigo;
                    y.Texto             = finalidade.Texto;
                    y.TituloModeloTexto = finalidade.TituloModeloTexto;
                });
            });
        }
コード例 #16
0
        protected void BtnSalvar_Click(object sender, EventArgs e)
        {
            Finalidade finalidade = new Finalidade()
            {
                Id        = int.Parse(TxtCodigo.Text),
                Descricao = TxtDescricao.Text,
                Origem    = TxtOrigem.Text
            };

            FinalidadeDB finalidadeDB = new FinalidadeDB();
            bool         status       = finalidadeDB.Salvar(finalidade);

            if (status)
            {
                lblMSG.Text = "Salvo com sucesso!";
                LimparComponentes();
            }
            else
            {
                lblMSG.Text = "Erro ao salvar";
            }
        }
コード例 #17
0
        public bool Salvar(Finalidade finalidade)
        {
            try
            {
                string sql = "INSERT INTO finalidade (id, descricao, origem) values (@Id, @Descricao, @Origem)";

                using (var cmd = sqliteConnection.CreateCommand())
                {
                    cmd.CommandText = sql;
                    cmd.Parameters.AddWithValue("@Id", finalidade.Id);
                    cmd.Parameters.AddWithValue("@Descricao", finalidade.Descricao);
                    cmd.Parameters.AddWithValue("@Origem", finalidade.Descricao);

                    cmd.ExecuteNonQuery();
                }
                return(true);
            }
            catch (SqlException)
            {
                throw;
            }
        }
コード例 #18
0
        public void ValidarTituloNumeroOrgaoTexto(Finalidade item, Atividade atividade)
        {
            if (string.IsNullOrWhiteSpace(item.TituloModeloAnteriorTexto))
            {
                Validacao.Add(Msg.TituloAnteriorObrigatorio(item.TituloModeloTexto, atividade.NomeAtividade));
            }

            if (string.IsNullOrWhiteSpace(item.TituloAnteriorNumero))
            {
                Validacao.Add(Msg.NumeroAnteriorObrigatorio(item.TituloModeloTexto, atividade.NomeAtividade));
            }
            else
            {
                if (!(ValidacoesGenericasBus.ValidarMaskNumeroBarraAno(item.TituloAnteriorNumero) || ValidacoesGenericasBus.ValidarNumero(item.TituloAnteriorNumero, 12)))
                {
                    Validacao.Add(Mensagem.Requerimento.TituloAnteriorNumeroInvalido);
                }
            }

            if (string.IsNullOrWhiteSpace(item.OrgaoExpedidor))
            {
                Validacao.Add(Msg.OrgaoExpedidorObrigatorio);
            }
        }
コード例 #19
0
 public Finalidade ObterFinalidade(Finalidade finalidade)
 {
     return(_da.ObterFinalidade(finalidade));
 }
コード例 #20
0
        public void TituloAnteriores(List <Atividade> atividades, List <Atividade> atividadesAtuais, BancoDeDados banco = null)
        {
            AtividadeBus      atividadeBus             = new AtividadeBus();
            TituloBus         tituloBus                = new TituloBus();
            List <Atividade>  lstTituloAntigoAtividade = null;
            List <Finalidade> lstFinalidades           = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Ao Remover titulos anteriores

                if (atividadesAtuais != null && atividadesAtuais.Count > 0)
                {
                    foreach (Atividade atividadeAtual in atividadesAtuais)
                    {
                        lstFinalidades = atividadeAtual.Finalidades.Where(y => (y.Id == 1 || y.Id == 3)).ToList();                        //1 - Nova fase, 3 - Renovacao
                        foreach (Finalidade finalidade in lstFinalidades)
                        {
                            if ((finalidade.TituloAnteriorId ?? 0) == 0)
                            {
                                continue;
                            }

                            lstTituloAntigoAtividade = null;

                            Atividade atividadeNova = atividades.SingleOrDefault(x => x.IdRelacionamento == atividadeAtual.IdRelacionamento);
                            if (atividadeNova == null)
                            {
                                lstTituloAntigoAtividade = tituloBus.ObterAtividades(finalidade.TituloAnteriorId.Value, bancoDeDados);
                            }
                            else
                            {
                                Finalidade finalidadeNova = atividadeNova.Finalidades.SingleOrDefault(x => x.IdRelacionamento == finalidade.IdRelacionamento);
                                if (finalidadeNova != null && (finalidadeNova.TituloAnteriorId ?? 0) <= 0)
                                {
                                    lstTituloAntigoAtividade = tituloBus.ObterAtividades(finalidade.TituloAnteriorId.Value, bancoDeDados);
                                }
                            }

                            if (lstTituloAntigoAtividade != null && lstTituloAntigoAtividade.Count > 0)
                            {
                                foreach (var tituloAnteriorAtividade in lstTituloAntigoAtividade)
                                {
                                    eAtividadeSituacao atividadeSituacao = eAtividadeSituacao.EmAndamento;
                                    if (atividadeBus.VerificarDeferir(tituloAnteriorAtividade, bancoDeDados))
                                    {
                                        atividadeSituacao = eAtividadeSituacao.Deferida;
                                    }
                                    tituloAnteriorAtividade.SituacaoId = (int)atividadeSituacao;
                                    atividadeBus.AlterarSituacao(tituloAnteriorAtividade, bancoDeDados);
                                }
                            }
                        }
                    }
                }

                #endregion

                #region Ao Adicionar titulos anteriores

                lstFinalidades = null;
                foreach (var atividade in atividades)
                {
                    lstFinalidades = atividade.Finalidades.Where(y => (y.Id == 1 || y.Id == 3)).ToList();                    //1 - Novo, 3 - Renovacao
                    foreach (Finalidade finalidade in lstFinalidades)
                    {
                        if ((finalidade.TituloAnteriorId ?? 0) <= 0)
                        {
                            continue;
                        }

                        //1 - Interno
                        if (finalidade.TituloAnteriorTipo == 1)
                        {
                            lstTituloAntigoAtividade = tituloBus.ObterAtividades(finalidade.TituloAnteriorId.Value, bancoDeDados);

                            if (lstTituloAntigoAtividade != null)
                            {
                                //finalidade 1 - Novo = "Nova fase"
                                eAtividadeSituacao atividadeSituacao = (finalidade.Id == 1) ? eAtividadeSituacao.NovaFase : eAtividadeSituacao.EmRenovacao;
                                atividadeBus.AlterarSituacao(lstTituloAntigoAtividade, atividadeSituacao, bancoDeDados);
                            }
                        }
                    }
                }

                #endregion
            }
        }
コード例 #21
0
 public Finalidade ObterFinalidade(Finalidade finalidade, BancoDeDados bancoInterno)
 {
     return(_da.ObterFinalidade(finalidade, bancoInterno));
 }
コード例 #22
0
        internal Requerimento Obter(int id, BancoDeDados bancoCredenciado, bool simplificado = false)
        {
            Requerimento requerimento = new Requerimento();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(bancoCredenciado, UsuarioCredenciado))
            {
                bancoDeDados.IniciarTransacao();

                #region Requerimento

                Comando comando = bancoDeDados.CriarComando(@"select r.id, r.numero, trunc(r.data_criacao) data_criacao, r.interessado, r.tid,
				nvl(p.nome, p.razao_social) interessado_nome, nvl(p.cpf, p.cnpj) interessado_cpf_cnpj, p.tipo interessado_tipo, r.empreendimento, e.codigo empreendimento_codigo, 
				e.cnpj empreendimento_cnpj, e.denominador, e.interno empreendimento_interno, r.situacao, r.agendamento, r.setor, r.informacoes, r.credenciado 
				from {0}tab_requerimento r, {0}tab_pessoa p, {0}tab_empreendimento e where r.interessado = p.id(+) and r.empreendimento = e.id(+) and r.id = :id"                , UsuarioCredenciado);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        requerimento.Id            = id;
                        requerimento.Tid           = reader["tid"].ToString();
                        requerimento.DataCadastro  = Convert.ToDateTime(reader["data_criacao"]);
                        requerimento.IsCredenciado = true;
                        requerimento.CredenciadoId = Convert.ToInt32(reader["credenciado"]);

                        if (reader["setor"] != null && !Convert.IsDBNull(reader["setor"]))
                        {
                            requerimento.SetorId = Convert.ToInt32(reader["setor"]);
                        }

                        if (reader["agendamento"] != null && !Convert.IsDBNull(reader["agendamento"]))
                        {
                            requerimento.AgendamentoVistoria = Convert.ToInt32(reader["agendamento"]);
                        }

                        if (reader["interessado"] != null && !Convert.IsDBNull(reader["interessado"]))
                        {
                            requerimento.Interessado.SelecaoTipo = (int)eExecutorTipo.Credenciado;
                            requerimento.Interessado.Id          = Convert.ToInt32(reader["interessado"]);
                            requerimento.Interessado.Tipo        = Convert.ToInt32(reader["interessado_tipo"]);

                            if (reader["interessado_tipo"].ToString() == "1")
                            {
                                requerimento.Interessado.Fisica.Nome = reader["interessado_nome"].ToString();
                                requerimento.Interessado.Fisica.CPF  = reader["interessado_cpf_cnpj"].ToString();
                            }
                            else
                            {
                                requerimento.Interessado.Juridica.RazaoSocial = reader["interessado_nome"].ToString();
                                requerimento.Interessado.Juridica.CNPJ        = reader["interessado_cpf_cnpj"].ToString();
                            }
                        }

                        if (reader["empreendimento"] != null && !Convert.IsDBNull(reader["empreendimento"]))
                        {
                            requerimento.Empreendimento.SelecaoTipo = (int)eExecutorTipo.Credenciado;
                            requerimento.Empreendimento.Id          = Convert.ToInt32(reader["empreendimento"]);
                            requerimento.Empreendimento.Codigo      = reader.GetValue <int>("empreendimento_codigo");
                            requerimento.Empreendimento.Denominador = reader["denominador"].ToString();
                            requerimento.Empreendimento.CNPJ        = reader["empreendimento_cnpj"].ToString();
                            requerimento.Empreendimento.InternoId   = reader.GetValue <int?>("empreendimento_interno");
                        }

                        if (reader["situacao"] != null && !Convert.IsDBNull(reader["situacao"]))
                        {
                            requerimento.SituacaoId = Convert.ToInt32(reader["situacao"]);
                        }

                        requerimento.Informacoes = reader["informacoes"].ToString();
                    }

                    reader.Close();
                }

                #endregion

                if (requerimento.Id <= 0 || simplificado)
                {
                    return(requerimento);
                }

                #region Atividades

                comando = bancoDeDados.CriarComando(@"select a.id, a.atividade, ta.situacao, a.tid from {0}tab_requerimento_atividade a, tab_atividade ta where ta.id = a.atividade and a.requerimento = :id", UsuarioCredenciado);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Atividade atividade;

                    while (reader.Read())
                    {
                        atividade                  = new Atividade();
                        atividade.Id               = Convert.ToInt32(reader["atividade"]);
                        atividade.SituacaoId       = Convert.ToInt32(reader["situacao"]);
                        atividade.IdRelacionamento = Convert.ToInt32(reader["id"]);
                        atividade.Tid              = reader["tid"].ToString();

                        #region Atividades/Finalidades/Modelos
                        comando = bancoDeDados.CriarComando(@"select a.id, a.finalidade, a.modelo, a.titulo_anterior_tipo, a.titulo_anterior_id,
						a.titulo_anterior_numero, a.modelo_anterior_id, a.modelo_anterior_nome, a.modelo_anterior_sigla, a.orgao_expedidor 
						from {0}tab_requerimento_ativ_finalida a where a.requerimento_ativ = :id"                        , UsuarioCredenciado);

                        comando.AdicionarParametroEntrada("id", atividade.IdRelacionamento, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            Finalidade fin;

                            while (readerAux.Read())
                            {
                                fin = new Finalidade();

                                fin.IdRelacionamento = Convert.ToInt32(readerAux["id"]);


                                fin.OrgaoExpedidor = readerAux["orgao_expedidor"].ToString();

                                if (readerAux["finalidade"] != DBNull.Value)
                                {
                                    fin.Id = Convert.ToInt32(readerAux["finalidade"]);
                                }

                                if (readerAux["modelo"] != DBNull.Value)
                                {
                                    fin.TituloModelo = Convert.ToInt32(readerAux["modelo"]);
                                }

                                if (readerAux["modelo_anterior_id"] != DBNull.Value)
                                {
                                    fin.TituloModeloAnteriorId = Convert.ToInt32(readerAux["modelo_anterior_id"]);
                                }

                                fin.TituloModeloAnteriorTexto = readerAux["modelo_anterior_nome"].ToString();
                                fin.TituloModeloAnteriorSigla = readerAux["modelo_anterior_sigla"].ToString();

                                if (readerAux["titulo_anterior_tipo"] != DBNull.Value)
                                {
                                    fin.TituloAnteriorTipo = Convert.ToInt32(readerAux["titulo_anterior_tipo"]);
                                }

                                if (readerAux["titulo_anterior_id"] != DBNull.Value)
                                {
                                    fin.TituloAnteriorId = Convert.ToInt32(readerAux["titulo_anterior_id"]);
                                }

                                fin.TituloAnteriorNumero = readerAux["titulo_anterior_numero"].ToString();
                                fin.EmitidoPorInterno    = (fin.TituloAnteriorTipo != 3);
                                atividade.Finalidades.Add(fin);
                            }
                            readerAux.Close();
                        }
                        #endregion

                        requerimento.Atividades.Add(atividade);
                    }

                    reader.Close();
                }

                #endregion

                #region Responsáveis

                comando = bancoDeDados.CriarComando(@"select pr.id, pr.responsavel, pr.funcao, nvl(p.nome, p.razao_social) nome, pr.numero_art, 
				nvl(p.cpf, p.cnpj) cpf_cnpj, p.tipo from {0}tab_requerimento_responsavel pr, {0}tab_pessoa p where pr.responsavel = p.id and pr.requerimento = :requerimento"                , UsuarioCredenciado);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ResponsavelTecnico responsavel;
                    while (reader.Read())
                    {
                        responsavel = new ResponsavelTecnico();
                        responsavel.IdRelacionamento = reader.GetValue <int>("id");
                        responsavel.Id        = reader.GetValue <int>("responsavel");
                        responsavel.Funcao    = reader.GetValue <int>("funcao");
                        responsavel.CpfCnpj   = reader.GetValue <string>("cpf_cnpj");
                        responsavel.NomeRazao = reader.GetValue <string>("nome");
                        responsavel.NumeroArt = reader.GetValue <string>("numero_art");

                        if (reader.GetValue <int>("tipo") == PessoaTipo.JURIDICA)
                        {
                            comando = bancoDeDados.CriarComando(@"select pr.id, pr.pessoa, pr.representante, p.nome, p.cpf, p.tipo 
							from {0}tab_pessoa_representante pr, {0}tab_pessoa p where pr.representante = p.id and pr.pessoa = :pessoa"                            , UsuarioCredenciado);

                            comando.AdicionarParametroEntrada("pessoa", responsavel.Id, DbType.Int32);

                            using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                            {
                                Pessoa representante;
                                responsavel.Representantes = new List <Pessoa>();
                                while (readerAux.Read())
                                {
                                    representante             = new Pessoa();
                                    representante.Id          = readerAux.GetValue <int>("representante");
                                    representante.Tipo        = readerAux.GetValue <int>("tipo");
                                    representante.Fisica.Nome = readerAux.GetValue <string>("nome");
                                    representante.Fisica.CPF  = readerAux.GetValue <string>("cpf");
                                    responsavel.Representantes.Add(representante);
                                }
                                readerAux.Close();
                            }
                        }
                        requerimento.Responsaveis.Add(responsavel);
                    }
                    reader.Close();
                }

                #endregion
            }

            return(requerimento);
        }
コード例 #23
0
        public RequerimentoRelatorio Obter(int id)
        {
            RequerimentoRelatorio requerimento = new RequerimentoRelatorio();

            #region Banco do Credenciado

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaBanco))
            {
                #region Requerimento

                Comando comando = bancoDeDados.CriarComando(@"
												select r.id,
												r.credenciado,
												trunc(r.data_criacao) data_criacao,
												r.interessado,
												r.empreendimento,
												r.situacao,
												r.agendamento agendamento,
												to_char(r.data_criacao, 'dd') dia,
												to_char(r.data_criacao, 'MM') mes,
												to_char(r.data_criacao, 'yyyy') ano,
												r.setor,
												r.informacoes,
												p.situacao projeto_digital_situacao,
												(select pe.municipio from {0}tab_pessoa_endereco pe, {0}tab_credenciado c where pe.pessoa = c.pessoa and c.id = r.credenciado) municipio
											from {0}tab_requerimento r, tab_projeto_digital p 
											where r.id = p.requerimento and r.id = :id"                                            , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        requerimento.Id           = id;
                        requerimento.AutorId      = reader.GetValue <int>("credenciado");
                        requerimento.DataCadastro = Convert.ToDateTime(reader["data_criacao"]);
                        requerimento.DiaCadastro  = reader["dia"].ToString();
                        int mes = reader.GetValue <int>("mes");
                        requerimento.MesCadastro              = _configSys.Obter <List <String> >(ConfiguracaoSistema.KeyMeses).ElementAt(mes - 1);
                        requerimento.AnoCadastro              = reader["ano"].ToString();
                        requerimento.MunicipioId              = reader.GetValue <int>("municipio");
                        requerimento.Interessado.Id           = reader.GetValue <int>("interessado");
                        requerimento.Empreendimento.Id        = reader.GetValue <int>("empreendimento");
                        requerimento.ProjetoDigitalSituacaoId = reader.GetValue <int>("projeto_digital_situacao");
                        requerimento.SituacaoId          = reader.GetValue <int>("situacao");
                        requerimento.AgendamentoVistoria = reader["agendamento"].ToString();
                        requerimento.SetorId             = reader.GetValue <int>("setor");
                        requerimento.Informacoes         = reader["informacoes"].ToString();
                    }

                    reader.Close();
                }

                #endregion

                #region Atividades

                comando = bancoDeDados.CriarComando(@"
									select a.id, a.atividade, a.tid
									  from {0}tab_requerimento_atividade a
									 where a.requerimento = :id"                                    , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    RequerimentoAtividadeRelatorio atividade;

                    while (reader.Read())
                    {
                        atividade    = new RequerimentoAtividadeRelatorio();
                        atividade.Id = Convert.ToInt32(reader["atividade"]);
                        atividade.IdRelacionamento = Convert.ToInt32(reader["id"]);

                        #region Atividades/Finalidades/Modelos
                        comando = bancoDeDados.CriarComando(@"
												select a.id,
													   a.finalidade,
													   a.modelo,
													   a.titulo_anterior_tipo,
													   a.titulo_anterior_id,
													   a.titulo_anterior_numero,
													   a.modelo_anterior_id,
													   a.modelo_anterior_nome,
													   a.modelo_anterior_sigla,
													   a.orgao_expedidor
												  from {0}tab_requerimento_ativ_finalida a       
												 where a.requerimento_ativ = :id"                                                , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", atividade.IdRelacionamento, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            Finalidade fin;

                            while (readerAux.Read())
                            {
                                fin = new Finalidade();

                                fin.IdRelacionamento = Convert.ToInt32(readerAux["id"]);

                                fin.OrgaoExpedidor = readerAux["orgao_expedidor"].ToString();

                                if (readerAux["finalidade"] != DBNull.Value)
                                {
                                    fin.Id = Convert.ToInt32(readerAux["finalidade"]);
                                }

                                if (readerAux["modelo"] != DBNull.Value)
                                {
                                    fin.TituloModelo = Convert.ToInt32(readerAux["modelo"]);
                                }

                                if (readerAux["modelo_anterior_id"] != DBNull.Value)
                                {
                                    fin.TituloModeloAnteriorId = Convert.ToInt32(readerAux["modelo_anterior_id"]);
                                }

                                fin.TituloModeloAnteriorTexto = readerAux["modelo_anterior_nome"].ToString();
                                fin.TituloModeloAnteriorSigla = readerAux["modelo_anterior_sigla"].ToString();

                                if (readerAux["titulo_anterior_tipo"] != DBNull.Value)
                                {
                                    fin.TituloAnteriorTipo = Convert.ToInt32(readerAux["titulo_anterior_tipo"]);
                                }

                                if (readerAux["titulo_anterior_id"] != DBNull.Value)
                                {
                                    fin.TituloAnteriorId = Convert.ToInt32(readerAux["titulo_anterior_id"]);
                                }

                                fin.TituloAnteriorNumero = readerAux["titulo_anterior_numero"].ToString();
                                fin.EmitidoPorInterno    = (fin.TituloAnteriorTipo != 3);
                                atividade.Finalidades.Add(fin);
                            }
                            readerAux.Close();
                        }
                        #endregion

                        requerimento.Atividades.Add(atividade);
                    }

                    reader.Close();
                }

                #endregion

                #region Interessado

                comando = bancoDeDados.CriarComando(@"
											select p.id,
												   p.tipo,
												   p.nome,
												   p.cpf,
												   p.rg,
												   p.estado_civil,
												   p.cnpj,
												   p.razao_social,
												   p.nome_fantasia,
												   p.ie,
												   p.apelido,
												   tpp.profissao
											  from {0}tab_pessoa p, {0}tab_pessoa_profissao tpp
											 where p.id = tpp.pessoa(+)
											   and p.id = :id"                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", requerimento.Interessado.Id, DbType.Int32);
                PessoaRelatorio pessoa = new PessoaRelatorio();

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        pessoa.Id   = requerimento.Interessado.Id;
                        pessoa.Tipo = Convert.ToInt32(reader["tipo"]);

                        if (pessoa.IsFisica)
                        {
                            pessoa.Fisica.Nome    = reader["nome"].ToString();
                            pessoa.Fisica.CPF     = reader["cpf"].ToString();
                            pessoa.Fisica.RG      = reader["rg"].ToString();
                            pessoa.Fisica.Apelido = reader["apelido"].ToString();
                        }
                        else                         // juridica
                        {
                            pessoa.Juridica.CNPJ         = reader["cnpj"].ToString();
                            pessoa.Juridica.RazaoSocial  = reader["razao_social"].ToString();
                            pessoa.Juridica.NomeFantasia = reader["nome_fantasia"].ToString();
                            pessoa.Juridica.IE           = reader["ie"].ToString();
                        }
                    }
                    reader.Close();
                }

                #region Meio de Contato

                comando = bancoDeDados.CriarComando(@"select a.id, a.pessoa, a.meio_contato tipo_contato_id, a.valor
					from {0}tab_pessoa_meio_contato a where a.pessoa = :pessoa"                    , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ContatoRelatorio contato;
                    while (reader.Read())
                    {
                        contato             = new ContatoRelatorio();
                        contato.Id          = Convert.ToInt32(reader["id"]);
                        contato.PessoaId    = Convert.ToInt32(reader["pessoa"]);
                        contato.TipoContato = (eTipoContato)Enum.Parse(contato.TipoContato.GetType(), reader["tipo_contato_id"].ToString());
                        contato.Valor       = reader["valor"].ToString();
                        pessoa.MeiosContatos.Add(contato);
                    }
                    reader.Close();
                }

                #endregion

                #region Endereços

                comando = bancoDeDados.CriarComando(@"
													select te.id,
														   te.pessoa,
														   te.cep,
														   te.logradouro,
														   te.bairro,
														   te.estado      estado_id,
														   te.municipio   municipio_id,
														   te.numero,
														   te.complemento,
														   te.distrito
													  from {0}tab_pessoa_endereco te
													 where te.pessoa = :pessoa"                                                    , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        pessoa.Endereco.Id          = Convert.ToInt32(reader["id"]);
                        pessoa.Endereco.Cep         = reader["cep"].ToString();
                        pessoa.Endereco.Logradouro  = reader["logradouro"].ToString();
                        pessoa.Endereco.Bairro      = reader["bairro"].ToString();
                        pessoa.Endereco.EstadoId    = Convert.IsDBNull(reader["estado_id"]) ? 0 : Convert.ToInt32(reader["estado_id"]);
                        pessoa.Endereco.MunicipioId = Convert.IsDBNull(reader["municipio_id"]) ? 0 : Convert.ToInt32(reader["municipio_id"]);
                        pessoa.Endereco.Numero      = reader["numero"].ToString();
                        pessoa.Endereco.Complemento = reader["complemento"].ToString();
                        pessoa.Endereco.Distrito    = reader["distrito"].ToString();
                    }
                    reader.Close();
                }

                #endregion

                requerimento.Interessado = pessoa;

                #endregion

                #region Responsáveis

                comando = bancoDeDados.CriarComando(@"
											select pr.id,
												   pr.responsavel,
												   pr.funcao funcao,
												   pr.numero_art,
												   nvl(p.nome, p.razao_social) nome,
												   nvl(p.cpf, p.cnpj) cpf_cnpj,
												   nvl(p.rg, p.ie) rg_ie,
												   p.tipo,
												   trunc(p.data_nascimento) data_nascimento
											  from {0}tab_requerimento_responsavel pr, {0}tab_pessoa p
											 where pr.responsavel = p.id
											   and pr.requerimento = :requerimento"                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("requerimento", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ResponsavelTecnicoRelatorio responsavel;
                    while (reader.Read())
                    {
                        responsavel             = new ResponsavelTecnicoRelatorio();
                        responsavel.Id          = Convert.ToInt32(reader["responsavel"]);
                        responsavel.FuncaoTexto = reader["funcao"].ToString();
                        responsavel.CpfCnpj     = reader["cpf_cnpj"].ToString();
                        responsavel.RgIe        = reader["rg_ie"].ToString();
                        responsavel.NomeRazao   = reader["nome"].ToString();
                        responsavel.NumeroArt   = reader["numero_art"].ToString();

                        if (reader["data_nascimento"] != null && !Convert.IsDBNull(reader["data_nascimento"]))
                        {
                            responsavel.DataNascimento = Convert.ToDateTime(reader["data_nascimento"]).ToShortDateString();
                        }

                        responsavel.DataVencimento = "Falta";

                        #region Meio de Contato

                        comando = bancoDeDados.CriarComando(@"select a.id, a.pessoa, a.meio_contato tipo_contato_id, a.valor
							from tab_pessoa_meio_contato a
							where a.pessoa = :pessoa"                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("pessoa", responsavel.Id, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            ContatoRelatorio contato;
                            while (readerAux.Read())
                            {
                                contato             = new ContatoRelatorio();
                                contato.Id          = Convert.ToInt32(readerAux["id"]);
                                contato.PessoaId    = Convert.ToInt32(readerAux["pessoa"]);
                                contato.TipoContato = (eTipoContato)Enum.Parse(contato.TipoContato.GetType(), readerAux["tipo_contato_id"].ToString());
                                contato.Valor       = readerAux["valor"].ToString();
                                responsavel.MeiosContatos.Add(contato);
                            }
                            readerAux.Close();
                        }

                        #endregion

                        #region Endereços

                        comando = bancoDeDados.CriarComando(@"
														select te.id,
															   te.pessoa,
															   te.cep,
															   te.logradouro,
															   te.bairro,
															   te.estado      estado_id,
															   te.municipio   municipio_id,
															   te.numero,
															   te.complemento,
															   te.distrito
														  from {0}tab_pessoa_endereco te
														 where te.pessoa = :pessoa"                                                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("pessoa", responsavel.Id, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            while (readerAux.Read())
                            {
                                responsavel.Endereco.Id          = Convert.ToInt32(readerAux["id"]);
                                responsavel.Endereco.Cep         = readerAux["cep"].ToString();
                                responsavel.Endereco.Logradouro  = readerAux["logradouro"].ToString();
                                responsavel.Endereco.Bairro      = readerAux["bairro"].ToString();
                                responsavel.Endereco.EstadoId    = Convert.IsDBNull(readerAux["estado_id"]) ? 0 : Convert.ToInt32(readerAux["estado_id"]);
                                responsavel.Endereco.MunicipioId = Convert.IsDBNull(readerAux["municipio_id"]) ? 0 : Convert.ToInt32(readerAux["municipio_id"]);
                                responsavel.Endereco.Numero      = readerAux["numero"].ToString();
                                responsavel.Endereco.Complemento = readerAux["complemento"].ToString();
                                responsavel.Endereco.Distrito    = readerAux["distrito"].ToString();
                            }
                            readerAux.Close();
                        }

                        #endregion

                        requerimento.Responsaveis.Add(responsavel);
                    }
                    reader.Close();
                }

                #endregion

                #region Empreendimento

                if (requerimento.Empreendimento.Id > 0)
                {
                    comando = bancoDeDados.CriarComando(@"
					select e.id,
							e.codigo,
							e.segmento,
							e.denominador,
							e.cnpj,
							e.atividade,
							e.nome_fantasia,
							e.denominador razao_social
					from tab_empreendimento e
					where e.id = :id"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("id", requerimento.Empreendimento.Id, DbType.Int32);
                    EmpreendimentoRelatorio empreendimento = new EmpreendimentoRelatorio();

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        if (reader.Read())
                        {
                            empreendimento.Id             = requerimento.Empreendimento.Id;
                            empreendimento.Codigo         = reader.GetValue <int>("codigo");
                            empreendimento.CNPJ           = reader["cnpj"].ToString();
                            empreendimento.NomeFantasia   = reader["nome_fantasia"].ToString();
                            empreendimento.Denominador    = reader["denominador"].ToString();
                            empreendimento.SegmentoTexto  = reader["segmento"].ToString();
                            empreendimento.AtividadeTexto = Convert.ToString(reader["atividade"]);
                            empreendimento.NomeRazao      = Convert.ToString(reader["razao_social"]);
                        }

                        reader.Close();
                    }

                    #region Endereços

                    comando = bancoDeDados.CriarComando(@"
											select te.id,
													te.empreendimento,
													te.correspondencia,
													te.cep,
													te.logradouro,
													te.bairro,
													te.estado estado_id,
													te.municipio municipio_id,
													te.numero,
													te.complemento,
													(case
														when te.zona = 1 then
														'Urbana'
														else
														'Rural'
													end) zona,
													te.distrito,
													te.corrego,
													te.complemento
												from tab_empreendimento_endereco te
												where te.empreendimento = :empreendimento"                                                , EsquemaBanco);

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

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        EnderecoRelatorio end;
                        while (reader.Read())
                        {
                            end    = new EnderecoRelatorio();
                            end.Id = Convert.ToInt32(reader["id"]);
                            end.Correspondencia = Convert.IsDBNull(reader["correspondencia"]) ? 0 : Convert.ToInt32(reader["correspondencia"]);
                            end.Cep             = reader["cep"].ToString();
                            end.Logradouro      = reader["logradouro"].ToString();
                            end.Bairro          = reader["bairro"].ToString();
                            end.EstadoId        = Convert.IsDBNull(reader["estado_id"]) ? 0 : Convert.ToInt32(reader["estado_id"]);
                            end.MunicipioId     = Convert.IsDBNull(reader["municipio_id"]) ? 0 : Convert.ToInt32(reader["municipio_id"]);
                            end.Numero          = reader["numero"].ToString();
                            end.Complemento     = reader["complemento"].ToString();
                            end.Corrego         = reader["corrego"].ToString();
                            end.Zona            = reader["zona"].ToString();
                            end.Distrito        = reader["distrito"].ToString();
                            end.Complemento     = reader["complemento"].ToString();
                            empreendimento.Enderecos.Add(end);
                        }
                        reader.Close();
                    }

                    #endregion

                    #region Coordenada

                    comando = bancoDeDados.CriarComando(@"
													select aec.id,
														   aec.tipo_coordenada,
														   aec.datum,
														   aec.easting_utm,
														   aec.northing_utm,
														   aec.fuso_utm,
														   aec.hemisferio_utm,
														   aec.latitude_gms,
														   aec.longitude_gms,
														   aec.latitude_gdec,
														   aec.longitude_gdec,
														   aec.forma_coleta    forma_coleta,
														   aec.local_coleta    local_coleta,
														   aec.datum           datum_texto,
														   aec.hemisferio_utm  hemisferio_utm_texto
													  from {0}tab_empreendimento_coord aec
													 where aec.empreendimento = :empreendimentoid"                                                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("empreendimentoid", empreendimento.Id, DbType.Int32);

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        if (reader.Read())
                        {
                            empreendimento.Coordenada.Id = Convert.ToInt32(reader["id"]);
                            empreendimento.Coordenada.EastingUtmTexto  = Convert.ToString(reader["easting_utm"]);
                            empreendimento.Coordenada.NorthingUtmTexto = Convert.ToString(reader["northing_utm"]);
                            empreendimento.Coordenada.FusoUtm          = Convert.IsDBNull(reader["fuso_utm"]) ? 0 : Convert.ToInt32(reader["fuso_utm"]);
                            empreendimento.Coordenada.HemisferioUtm    = Convert.IsDBNull(reader["hemisferio_utm"]) ? 0 : Convert.ToInt32(reader["hemisferio_utm"]);
                            empreendimento.Coordenada.LatitudeGms      = reader["latitude_gms"].ToString();
                            empreendimento.Coordenada.LongitudeGms     = reader["longitude_gms"].ToString();
                            empreendimento.Coordenada.LatitudeGdec     = Convert.IsDBNull(reader["latitude_gdec"]) ? 0 : Convert.ToDouble(reader["latitude_gdec"]);
                            empreendimento.Coordenada.LongitudeGdec    = Convert.IsDBNull(reader["longitude_gdec"]) ? 0 : Convert.ToDouble(reader["longitude_gdec"]);
                            empreendimento.Coordenada.Datum.Id         = Convert.ToInt32(reader["datum"]);
                            empreendimento.Coordenada.Tipo.Id          = Convert.ToInt32(reader["tipo_coordenada"]);
                            empreendimento.Coordenada.FormaColetaTexto = Convert.ToString(reader["forma_coleta"]);
                            empreendimento.Coordenada.LocalColetaTexto = Convert.ToString(reader["local_coleta"]);
                        }
                        reader.Close();
                    }

                    #endregion

                    #region Meio de Contato

                    comando = bancoDeDados.CriarComando(@"select a.id, a.empreendimento, a.meio_contato tipo_contato_id, a.valor
				  from {0}tab_empreendimento_contato a
				 where a.empreendimento = :empreendimento"                , EsquemaBanco);

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

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        ContatoRelatorio contato;
                        while (reader.Read())
                        {
                            contato             = new ContatoRelatorio();
                            contato.Id          = Convert.ToInt32(reader["id"]);
                            contato.PessoaId    = Convert.ToInt32(reader["empreendimento"]);
                            contato.TipoContato = (eTipoContato)Enum.Parse(contato.TipoContato.GetType(), reader["tipo_contato_id"].ToString());
                            contato.Valor       = reader["valor"].ToString();
                            empreendimento.MeiosContatos.Add(contato);
                        }
                        reader.Close();
                    }

                    #endregion

                    requerimento.Empreendimento = empreendimento;
                }

                #endregion

                #region Elaborador

                comando = bancoDeDados.CriarComando(@"
				select nvl(p.nome, p.razao_social) NomeRazaoSocial, lc.texto TipoTexto 
				from {0}tab_credenciado c, {0}tab_pessoa p, {0}lov_credenciado_tipo lc 
				where c.pessoa = p.id and c.tipo = lc.id and c.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", requerimento.AutorId, DbType.Int32);
                requerimento.UsuarioCredenciado = bancoDeDados.ObterEntity <CredenciadoRelatorio>(comando);

                #endregion
            }

            #endregion

            #region Banco do Interno

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                #region Requerimento

                requerimento.Municipio = ObterMunicipio(requerimento.MunicipioId, bancoDeDados);

                #region Situacao

                Comando comando = bancoDeDados.CriarComando(@"select l.texto situacao_texto from {0}lov_requerimento_situacao l where l.id = :id", EsquemaInterno);

                comando.AdicionarParametroEntrada("id", requerimento.SituacaoId, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        requerimento.SituacaoTexto = reader["situacao_texto"].ToString();
                    }
                    reader.Close();
                }

                #endregion

                #region Agendamento

                if (!string.IsNullOrWhiteSpace(requerimento.AgendamentoVistoria))
                {
                    comando = bancoDeDados.CriarComando(@"select l.texto agendamento from {0}lov_requerimento_agendamento l where l.id = :id", EsquemaInterno);

                    comando.AdicionarParametroEntrada("id", Convert.ToInt32(requerimento.AgendamentoVistoria), DbType.Int32);

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        if (reader.Read())
                        {
                            requerimento.AgendamentoVistoria = reader["agendamento"].ToString();
                        }
                        reader.Close();
                    }
                }

                #endregion

                #region Setor

                if (requerimento.SetorId > 0)
                {
                    comando = bancoDeDados.CriarComando(@"select m.texto from tab_setor_endereco se, lov_municipio m 
						where se.municipio = m.id (+) and se.setor = :setor"                        , EsquemaInterno);

                    comando.AdicionarParametroEntrada("setor", Convert.ToInt32(requerimento.SetorId), DbType.Int32);

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        if (reader.Read())
                        {
                            requerimento.Municipio = reader["texto"].ToString();
                        }
                        reader.Close();
                    }
                }

                #endregion

                #endregion

                if (requerimento.Atividades.Count > 0)
                {
                    #region Atividades

                    comando = bancoDeDados.CriarComando(@"select b.id, b.atividade atividade_texto, b.conclusao from {0}tab_atividade b", EsquemaInterno);

                    comando.DbCommand.CommandText += comando.AdicionarIn("where", "b.id", DbType.Int32, requerimento.Atividades.Select(x => x.Id).ToList());

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        while (reader.Read())
                        {
                            int idr = Convert.ToInt32(reader["id"]);
                            RequerimentoAtividadeRelatorio atividade = requerimento.Atividades.FirstOrDefault(x => x.Id == idr);
                            atividade.NomeAtividade = reader["atividade_texto"].ToString();
                            atividade.Conclusao     = reader.GetValue <string>("conclusao");
                        }

                        reader.Close();
                    }

                    #endregion

                    #region Atividades/Finalidades/Modelos

                    comando = bancoDeDados.CriarComando(@"
							select ltf.texto finalidade_texto, tm.nome modelo_nome
							  from {0}tab_titulo_modelo tm, {0}lov_titulo_finalidade ltf
							 where tm.id = :modelo and ltf.id = :fin"                            , EsquemaInterno);

                    comando.AdicionarParametroEntrada("fin", DbType.Int32);
                    comando.AdicionarParametroEntrada("modelo", DbType.Int32);

                    var finalidades = requerimento.Atividades.SelectMany(x => x.Finalidades);

                    foreach (Finalidade f in finalidades)
                    {
                        comando.SetarValorParametro("fin", f.Id);
                        comando.SetarValorParametro("modelo", f.TituloModelo);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            if (readerAux.Read())
                            {
                                f.Texto             = readerAux["finalidade_texto"].ToString();
                                f.TituloModeloTexto = readerAux["modelo_nome"].ToString();
                            }

                            readerAux.Close();
                        }
                    }

                    #endregion
                }

                #region Interessado

                #region Profissao

                if (!string.IsNullOrWhiteSpace(requerimento.Interessado.Fisica.Profissao))
                {
                    comando = bancoDeDados.CriarComando(@"select texto from {0}tab_profissao where id = :id", EsquemaInterno);

                    comando.AdicionarParametroEntrada("id", Convert.ToInt32(requerimento.Interessado.Fisica.Profissao), DbType.Int32);

                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        if (reader.Read())
                        {
                            requerimento.Interessado.Fisica.Profissao = reader["texto"].ToString();
                        }
                        reader.Close();
                    }
                }

                #endregion

                #region Meios de Contato

                comando = bancoDeDados.CriarComando(@"select b.id, b.texto, b.mascara from {0}tab_meio_contato b", EsquemaInterno);

                comando.DbCommand.CommandText += comando.AdicionarIn("where", "b.id", DbType.Int32, requerimento.Interessado.MeiosContatos.Select(x => x.Id).ToList());

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        int idr      = Convert.ToInt32(reader["id"]);
                        var contatos = requerimento.Interessado.MeiosContatos.Where(x => x.Id == idr).ToList();
                        contatos.ForEach(x =>
                        {
                            x.TipoTexto = reader["texto"].ToString();
                            x.Mascara   = reader.GetValue <string>("mascara");
                        });
                    }

                    reader.Close();
                }

                #endregion

                #region Endereco

                EnderecoRelatorio end = requerimento.Interessado.Endereco;
                end.MunicipioTexto = ObterMunicipio(end.MunicipioId, bancoDeDados);
                end.EstadoSigla    = ObterEstado(end.EstadoId, bancoDeDados);

                #endregion

                #endregion

                #region Responsaveis

                #region Funcao

                comando = bancoDeDados.CriarComando(@"select lf.texto funcao from {0}lov_protocolo_resp_funcao lf where lf.id = :id", EsquemaInterno);
                comando.AdicionarParametroEntrada("id", DbType.Int32);

                foreach (var resp in requerimento.Responsaveis)
                {
                    comando.SetarValorParametro("id", int.Parse(resp.FuncaoTexto));
                    resp.FuncaoTexto = bancoDeDados.ExecutarScalar <string>(comando);
                }

                #endregion

                #region Meios de Contato

                comando = bancoDeDados.CriarComando(@"select b.id, b.texto, b.mascara from {0}tab_meio_contato b", EsquemaInterno);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        int idr      = Convert.ToInt32(reader["id"]);
                        var contatos = requerimento.Responsaveis.SelectMany(x => x.MeiosContatos).Where(x => x.Id == idr).ToList();
                        contatos.ForEach(x =>
                        {
                            x.TipoTexto = reader["texto"].ToString();
                            x.Mascara   = reader.GetValue <string>("mascara");
                        });
                    }

                    reader.Close();
                }

                #endregion

                #region Endereços

                foreach (var endResp in requerimento.Responsaveis.Select(x => x.Endereco))
                {
                    endResp.MunicipioTexto = ObterMunicipio(endResp.MunicipioId, bancoDeDados);
                    endResp.EstadoSigla    = ObterEstado(endResp.EstadoId, bancoDeDados);
                }

                #endregion

                #endregion

                #region Empreendimento

                EmpreendimentoRelatorio emp = requerimento.Empreendimento;

                #region Atividade

                if (!string.IsNullOrWhiteSpace(emp.AtividadeTexto))
                {
                    comando = bancoDeDados.CriarComando(@"select a.atividade from {0}tab_empreendimento_atividade a where a.id = :id", EsquemaInterno);
                    comando.AdicionarParametroEntrada("id", Convert.ToInt32(emp.AtividadeTexto), DbType.Int32);
                    requerimento.Empreendimento.AtividadeTexto = bancoDeDados.ExecutarScalar <string>(comando);
                }

                #endregion

                #region Segmento

                if (!string.IsNullOrWhiteSpace(emp.SegmentoTexto))
                {
                    comando = bancoDeDados.CriarComando(@"select les.texto from {0}lov_empreendimento_segmento les where les.id = :id", EsquemaInterno);
                    comando.AdicionarParametroEntrada("id", Convert.ToInt32(emp.SegmentoTexto), DbType.Int32);
                    requerimento.Empreendimento.SegmentoTexto = bancoDeDados.ExecutarScalar <string>(comando);
                }

                #endregion

                #region Endereços

                foreach (var endEmp in emp.Enderecos)
                {
                    endEmp.MunicipioTexto = ObterMunicipio(endEmp.MunicipioId, bancoDeDados);
                    endEmp.EstadoSigla    = ObterEstado(endEmp.EstadoId, bancoDeDados);
                }

                #endregion

                #region Meios de Contato

                comando = bancoDeDados.CriarComando(@"select b.id, b.texto, b.mascara from tab_meio_contato b", EsquemaInterno);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        int idr      = Convert.ToInt32(reader["id"]);
                        var contatos = emp.MeiosContatos.Where(x => x.Id == idr).ToList();
                        contatos.ForEach(x =>
                        {
                            x.TipoTexto = reader["texto"].ToString();
                            x.Mascara   = reader.GetValue <string>("mascara");
                        });
                    }

                    reader.Close();
                }

                #endregion

                #region Coordenada

                ListaBus bus = new ListaBus();

                emp.Coordenada.DatumTexto = ObterDatum(emp.Coordenada.Datum.Id, bancoDeDados);
                emp.Coordenada.Tipo.Texto = ObterTipoCoordenada(emp.Coordenada.Tipo.Id, bancoDeDados);

                if (!string.IsNullOrWhiteSpace(emp.Coordenada.HemisferioUtmTexto))
                {
                    emp.Coordenada.HemisferioUtmTexto = bus.Hemisferios.FirstOrDefault(x => x.Id == Convert.ToInt32(emp.Coordenada.HemisferioUtmTexto)).Texto;
                }

                if (!string.IsNullOrWhiteSpace(emp.Coordenada.FormaColetaTexto))
                {
                    comando = bancoDeDados.CriarComando(@"select c.texto from {0}lov_empreendimento_forma_colet c where c.id = :id", EsquemaInterno);
                    comando.AdicionarParametroEntrada("id", Convert.ToInt32(emp.Coordenada.FormaColetaTexto), DbType.Int32);
                    emp.Coordenada.FormaColetaTexto = bancoDeDados.ExecutarScalar <string>(comando);
                }

                if (!string.IsNullOrWhiteSpace(emp.Coordenada.LocalColetaTexto))
                {
                    comando = bancoDeDados.CriarComando(@"select c.texto from {0}lov_empreendimento_local_colet c where c.id = :id", EsquemaInterno);
                    comando.AdicionarParametroEntrada("id", Convert.ToInt32(emp.Coordenada.LocalColetaTexto), DbType.Int32);
                    emp.Coordenada.LocalColetaTexto = bancoDeDados.ExecutarScalar <string>(comando);
                }

                #endregion

                #endregion
            }

            #endregion

            return(requerimento);
        }
コード例 #24
0
        public RequerimentoRelatorio Obter(int id)
        {
            RequerimentoRelatorio requerimento = new RequerimentoRelatorio();
            string tid = string.Empty;
            int    hst = 0;
            int    aux = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaBanco))
            {
                #region Obter TID

                Comando comando = bancoDeDados.CriarComando(@"select (case when r.situacao = 3 then 
				(select h.tid from {0}hst_requerimento h where h.data_execucao = (select max(a.data_execucao) from {0}hst_requerimento a where a.requerimento_id = :id and a.situacao_id = 2)) 
				else r.tid end) tid from {0}tab_requerimento r where r.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);
                tid = bancoDeDados.ExecutarScalar <string>(comando);

                #endregion

                #region Requerimento

                comando = bancoDeDados.CriarComando(@"
				select r.id,
					r.autor_id,
					r.interessado_id,
					r.empreendimento_id,
					r.situacao_id,
					r.situacao_texto,
					r.agendamento_texto,
					se.municipio_texto,
					r.setor_id,
					r.informacoes,
					trunc(r.data_criacao) data_criacao,
					to_char(r.data_criacao, 'dd') dia,
					to_char(r.data_criacao, 'MM') mes,
					to_char(r.data_criacao, 'yyyy') ano
				from {0}hst_requerimento r, {0}hst_setor s, {0}hst_setor_endereco se
				where r.setor_id = s.setor_id(+)
				and r.setor_tid = se.tid(+)
				and s.id = se.id_hst
				and r.requerimento_id = :id
				and r.tid = :tid"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, tid);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        hst = reader.GetValue <int>("id");

                        requerimento.Id                  = id;
                        requerimento.AutorId             = reader.GetValue <int>("autor_id");
                        requerimento.Interessado.Id      = reader.GetValue <int>("interessado_id");
                        requerimento.Empreendimento.Id   = reader.GetValue <int>("empreendimento_id");
                        requerimento.SituacaoId          = reader.GetValue <int>("situacao_id");
                        requerimento.SituacaoTexto       = reader.GetValue <string>("situacao_texto");
                        requerimento.AgendamentoVistoria = reader.GetValue <string>("agendamento_texto");
                        requerimento.Municipio           = reader.GetValue <string>("municipio_texto");
                        requerimento.SetorId             = reader.GetValue <int>("setor_id");
                        requerimento.Informacoes         = reader.GetValue <string>("informacoes");
                        requerimento.DataCadastro        = reader.GetValue <DateTime>("data_criacao");
                        requerimento.DiaCadastro         = reader.GetValue <string>("dia");
                        int mes = reader.GetValue <int>("mes");
                        requerimento.MesCadastro = _configSys.Obter <List <String> >(ConfiguracaoSistema.KeyMeses).ElementAt(mes - 1);
                        requerimento.AnoCadastro = reader.GetValue <string>("ano");
                    }

                    reader.Close();
                }

                #endregion

                #region Atividades

                comando = bancoDeDados.CriarComando(@"
									select a.id, a.atividade, a.tid, b.atividade atividade_texto, b.conclusao
									  from {0}tab_requerimento_atividade a, {0}tab_atividade b
									 where a.atividade = b.id
									   and a.requerimento = :id"                                    , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    RequerimentoAtividadeRelatorio atividade;

                    while (reader.Read())
                    {
                        atividade = new RequerimentoAtividadeRelatorio();
                        atividade.IdRelacionamento = Convert.ToInt32(reader["id"]);
                        atividade.Id            = Convert.ToInt32(reader["atividade"]);
                        atividade.NomeAtividade = reader["atividade_texto"].ToString();
                        atividade.Conclusao     = reader["conclusao"].ToString();

                        #region Atividades/Finalidades/Modelos

                        comando = bancoDeDados.CriarComando(@"
												select a.id,
														a.finalidade,
														ltf.texto                finalidade_texto,
														a.modelo,
														tm.nome                  modelo_nome,
														a.titulo_anterior_tipo,
														a.titulo_anterior_id,
														a.titulo_anterior_numero,
														a.modelo_anterior_id,
														a.modelo_anterior_nome,
														a.modelo_anterior_sigla,
														a.orgao_expedidor
													from {0}tab_requerimento_ativ_finalida a,
														 {0}tab_titulo_modelo              tm,
														 {0}lov_titulo_finalidade          ltf
													where a.modelo = tm.id
													and a.finalidade = ltf.id(+)
													and a.requerimento_ativ = :id"                                                    , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", atividade.IdRelacionamento, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            Finalidade fin;

                            while (readerAux.Read())
                            {
                                fin = new Finalidade();
                                fin.IdRelacionamento = Convert.ToInt32(readerAux["id"]);
                                fin.OrgaoExpedidor   = readerAux["orgao_expedidor"].ToString();

                                if (readerAux["finalidade"] != DBNull.Value)
                                {
                                    fin.Id    = Convert.ToInt32(readerAux["finalidade"]);
                                    fin.Texto = readerAux["finalidade_texto"].ToString();
                                }

                                if (readerAux["modelo"] != DBNull.Value)
                                {
                                    fin.TituloModelo      = Convert.ToInt32(readerAux["modelo"]);
                                    fin.TituloModeloTexto = readerAux["modelo_nome"].ToString();
                                }

                                if (readerAux["modelo_anterior_id"] != DBNull.Value)
                                {
                                    fin.TituloModeloAnteriorId = Convert.ToInt32(readerAux["modelo_anterior_id"]);
                                }

                                fin.TituloModeloAnteriorTexto = readerAux["modelo_anterior_nome"].ToString();
                                fin.TituloModeloAnteriorSigla = readerAux["modelo_anterior_sigla"].ToString();

                                if (readerAux["titulo_anterior_tipo"] != DBNull.Value)
                                {
                                    fin.TituloAnteriorTipo = Convert.ToInt32(readerAux["titulo_anterior_tipo"]);
                                }

                                if (readerAux["titulo_anterior_id"] != DBNull.Value)
                                {
                                    fin.TituloAnteriorId = Convert.ToInt32(readerAux["titulo_anterior_id"]);
                                }

                                fin.TituloAnteriorNumero = readerAux["titulo_anterior_numero"].ToString();
                                fin.EmitidoPorInterno    = (fin.TituloAnteriorTipo != 3);
                                atividade.Finalidades.Add(fin);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        requerimento.Atividades.Add(atividade);
                    }

                    reader.Close();
                }

                #endregion

                #region Interessado

                comando = bancoDeDados.CriarComando(@"
				select p.id,
					p.tipo,
					p.cpf,
					p.nome,
					p.rg,
					p.apelido,
					tp.texto profissao,
					p.cnpj,
					p.razao_social,
					p.ie,
					p.nome_fantasia
				from {0}hst_requerimento    r,
					{0}hst_pessoa           p,
					{0}hst_pessoa_profissao pp,
					{0}tab_profissao        tp
				where r.interessado_id = p.pessoa_id
				and r.interessado_tid = p.tid
				and p.data_execucao = (select max(h.data_execucao) from {0}hst_pessoa h where h.pessoa_id = p.pessoa_id and h.tid = p.tid)
				and p.id = pp.id_hst(+)
				and pp.profissao_id = tp.id(+)
				and r.id = :hst"                , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        aux = reader.GetValue <int>("id");

                        requerimento.Interessado.Id   = requerimento.Interessado.Id;
                        requerimento.Interessado.Tipo = reader.GetValue <int>("tipo");

                        if (requerimento.Interessado.IsFisica)
                        {
                            requerimento.Interessado.Fisica.CPF       = reader.GetValue <string>("cpf");
                            requerimento.Interessado.Fisica.Nome      = reader.GetValue <string>("nome");
                            requerimento.Interessado.Fisica.RG        = reader.GetValue <string>("rg");
                            requerimento.Interessado.Fisica.Apelido   = reader.GetValue <string>("apelido");
                            requerimento.Interessado.Fisica.Profissao = reader.GetValue <string>("profissao");
                        }
                        else                         // juridica
                        {
                            requerimento.Interessado.Juridica.CNPJ         = reader.GetValue <string>("cnpj");
                            requerimento.Interessado.Juridica.RazaoSocial  = reader.GetValue <string>("razao_social");
                            requerimento.Interessado.Juridica.IE           = reader.GetValue <string>("ie");
                            requerimento.Interessado.Juridica.NomeFantasia = reader.GetValue <string>("nome_fantasia");
                        }
                    }

                    #region Meio de Contato

                    comando = bancoDeDados.CriarComando(@"select pc.pes_meio_cont_id id, pc.meio_contato_id, c.texto contato_texto, pc.valor
					from {0}hst_pessoa_meio_contato pc, {0}tab_meio_contato c where pc.meio_contato_id = c.id and pc.id_hst = :hst"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("hst", aux, DbType.Int32);

                    using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                    {
                        ContatoRelatorio contato;
                        while (readerAux.Read())
                        {
                            contato             = new ContatoRelatorio();
                            contato.Id          = readerAux.GetValue <int>("id");
                            contato.PessoaId    = requerimento.Interessado.Id;
                            contato.TipoContato = (eTipoContato)Enum.Parse(contato.TipoContato.GetType(), readerAux.GetValue <string>("meio_contato_id"));
                            contato.TipoTexto   = readerAux.GetValue <string>("contato_texto");
                            contato.Valor       = readerAux.GetValue <string>("valor");
                            requerimento.Interessado.MeiosContatos.Add(contato);
                        }

                        readerAux.Close();
                    }

                    #endregion

                    #region Endereços

                    comando = bancoDeDados.CriarComando(@"
					select e.endereco_id id,
						e.cep,
						e.logradouro,
						e.bairro,
						e.estado_id,
						le.sigla estado_sigla,
						e.municipio_id,
						e.municipio_texto,
						e.numero,
						e.complemento,
						e.distrito
					from {0}hst_pessoa_endereco e, {0}lov_estado le
					where e.estado_id = le.id
					and e.id_hst = :hst"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("hst", aux, DbType.Int32);

                    using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                    {
                        if (readerAux.Read())
                        {
                            requerimento.Interessado.Endereco.Id             = readerAux.GetValue <int>("id");
                            requerimento.Interessado.Endereco.Cep            = readerAux.GetValue <string>("cep");
                            requerimento.Interessado.Endereco.Logradouro     = readerAux.GetValue <string>("logradouro");
                            requerimento.Interessado.Endereco.Bairro         = readerAux.GetValue <string>("bairro");
                            requerimento.Interessado.Endereco.EstadoId       = readerAux.GetValue <int>("estado_id");
                            requerimento.Interessado.Endereco.EstadoSigla    = readerAux.GetValue <string>("estado_sigla");
                            requerimento.Interessado.Endereco.MunicipioId    = readerAux.GetValue <int>("municipio_id");
                            requerimento.Interessado.Endereco.MunicipioTexto = readerAux.GetValue <string>("municipio_texto");
                            requerimento.Interessado.Endereco.Numero         = readerAux.GetValue <string>("numero");
                            requerimento.Interessado.Endereco.Complemento    = readerAux.GetValue <string>("complemento");
                            requerimento.Interessado.Endereco.Distrito       = readerAux.GetValue <string>("distrito");
                        }

                        readerAux.Close();
                    }

                    #endregion

                    reader.Close();
                }

                #endregion

                #region Responsáveis

                comando = bancoDeDados.CriarComando(@"
				select p.id,
					r.responsavel_id,
					r.funcao_texto,
					r.numero_art,
					nvl(p.nome, p.razao_social) nome,
					nvl(p.cpf, p.cnpj) cpf_cnpj,
					nvl(p.rg, p.ie) rg_ie,
					p.tipo,
					trunc(p.data_nascimento) data_nascimento
				from {0}hst_requerimento_responsavel r, {0}hst_pessoa p
				where r.responsavel_id = p.pessoa_id
				and r.responsavel_tid = p.tid
				and p.data_execucao = (select max(h.data_execucao) from {0}hst_pessoa h where h.pessoa_id = p.pessoa_id and h.tid = p.tid)
				and r.id_hst = :hst"                , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ResponsavelTecnicoRelatorio responsavel;
                    while (reader.Read())
                    {
                        aux = reader.GetValue <int>("id");

                        responsavel                = new ResponsavelTecnicoRelatorio();
                        responsavel.Id             = reader.GetValue <int>("responsavel_id");
                        responsavel.FuncaoTexto    = reader.GetValue <string>("funcao_texto");
                        responsavel.CpfCnpj        = reader.GetValue <string>("cpf_cnpj");
                        responsavel.RgIe           = reader.GetValue <string>("rg_ie");
                        responsavel.NomeRazao      = reader.GetValue <string>("nome");
                        responsavel.NumeroArt      = reader.GetValue <string>("numero_art");
                        responsavel.DataVencimento = "Falta";

                        if (reader["data_nascimento"] != null && !Convert.IsDBNull(reader["data_nascimento"]))
                        {
                            responsavel.DataNascimento = reader.GetValue <DateTime>("data_nascimento").ToShortDateString();
                        }

                        #region Meio de Contato

                        comando = bancoDeDados.CriarComando(@"select pc.pes_meio_cont_id id, pc.meio_contato_id, c.texto contato_texto, pc.valor
						from {0}hst_pessoa_meio_contato pc, {0}tab_meio_contato c where pc.meio_contato_id = c.id and pc.id_hst = :hst"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("hst", aux, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            ContatoRelatorio contato;
                            while (readerAux.Read())
                            {
                                contato             = new ContatoRelatorio();
                                contato.Id          = readerAux.GetValue <int>("id");
                                contato.PessoaId    = responsavel.Id;
                                contato.TipoContato = (eTipoContato)Enum.Parse(contato.TipoContato.GetType(), readerAux.GetValue <string>("meio_contato_id"));
                                contato.TipoTexto   = readerAux.GetValue <string>("contato_texto");
                                contato.Valor       = readerAux.GetValue <string>("valor");
                                responsavel.MeiosContatos.Add(contato);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        #region Endereços

                        comando = bancoDeDados.CriarComando(@"
						select e.endereco_id id,
							e.cep,
							e.logradouro,
							e.bairro,
							e.estado_id,
							le.sigla estado_sigla,
							e.municipio_id,
							e.municipio_texto,
							e.numero,
							e.complemento,
							e.distrito
						from {0}hst_pessoa_endereco e, {0}lov_estado le
						where e.estado_id = le.id
						and e.id_hst = :hst"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("hst", aux, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            if (readerAux.Read())
                            {
                                responsavel.Endereco.Id             = readerAux.GetValue <int>("id");
                                responsavel.Endereco.Cep            = readerAux.GetValue <string>("cep");
                                responsavel.Endereco.Logradouro     = readerAux.GetValue <string>("logradouro");
                                responsavel.Endereco.Bairro         = readerAux.GetValue <string>("bairro");
                                responsavel.Endereco.EstadoId       = readerAux.GetValue <int>("estado_id");
                                responsavel.Endereco.EstadoSigla    = readerAux.GetValue <string>("estado_sigla");
                                responsavel.Endereco.MunicipioId    = readerAux.GetValue <int>("municipio_id");
                                responsavel.Endereco.MunicipioTexto = readerAux.GetValue <string>("municipio_texto");
                                responsavel.Endereco.Numero         = readerAux.GetValue <string>("numero");
                                responsavel.Endereco.Complemento    = readerAux.GetValue <string>("complemento");
                                responsavel.Endereco.Distrito       = readerAux.GetValue <string>("distrito");
                            }

                            readerAux.Close();
                        }

                        #endregion

                        requerimento.Responsaveis.Add(responsavel);
                    }

                    reader.Close();
                }

                #endregion

                #region Empreendimento

                comando = bancoDeDados.CriarComando(@"
				select e.id,
					e.codigo,
					e.cnpj,
					e.segmento_texto,
					e.denominador,
					e.nome_fantasia,
					a.atividade
				from {0}hst_requerimento            r,
					{0}hst_empreendimento           e,
					{0}hst_empreendimento_atividade a
				where r.empreendimento_id = e.empreendimento_id
				and r.empreendimento_tid = e.tid
				and e.atividade_id = a.atividade_id(+)
				and e.atividade_tid = a.tid(+)
				and r.id = :hst"                , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        aux = reader.GetValue <int>("id");

                        requerimento.Empreendimento.Id             = requerimento.Empreendimento.Id;
                        requerimento.Empreendimento.Codigo         = reader.GetValue <int>("codigo");
                        requerimento.Empreendimento.CNPJ           = reader.GetValue <string>("cnpj");
                        requerimento.Empreendimento.SegmentoTexto  = reader.GetValue <string>("segmento_texto");
                        requerimento.Empreendimento.NomeRazao      = reader.GetValue <string>("denominador");
                        requerimento.Empreendimento.NomeFantasia   = reader.GetValue <string>("nome_fantasia");
                        requerimento.Empreendimento.AtividadeTexto = reader.GetValue <string>("atividade");
                    }

                    #region Endereços

                    comando = bancoDeDados.CriarComando(@"
					select e.endereco_id id,
						e.correspondencia,
						e.cep,
						e.logradouro,
						e.bairro,
						e.estado_id,
						le.sigla estado_sigla,
						e.municipio_id,
						e.municipio_texto,
						e.numero,
						e.complemento,
						e.corrego,
						(case when e.zona = 1 then 'Urbana' else 'Rural' end) zona,
						e.distrito,
						e.complemento
					from {0}hst_empreendimento_endereco e,
						{0}lov_estado                   le
					where e.estado_id = le.id(+)
					and e.id_hst = :hst"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("hst", aux, DbType.Int32);

                    using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                    {
                        EnderecoRelatorio end;
                        while (readerAux.Read())
                        {
                            end    = new EnderecoRelatorio();
                            end.Id = readerAux.GetValue <int>("id");
                            end.Correspondencia = readerAux.GetValue <int>("correspondencia");
                            end.Cep             = readerAux.GetValue <string>("cep");
                            end.Logradouro      = readerAux.GetValue <string>("logradouro");
                            end.Bairro          = readerAux.GetValue <string>("bairro");
                            end.EstadoId        = readerAux.GetValue <int>("estado_id");
                            end.EstadoSigla     = readerAux.GetValue <string>("estado_sigla");
                            end.MunicipioId     = readerAux.GetValue <int>("municipio_id");
                            end.MunicipioTexto  = readerAux.GetValue <string>("municipio_texto");
                            end.Numero          = readerAux.GetValue <string>("numero");
                            end.Complemento     = readerAux.GetValue <string>("complemento");
                            end.Corrego         = readerAux.GetValue <string>("corrego");
                            end.Zona            = readerAux.GetValue <string>("zona");
                            end.Distrito        = readerAux.GetValue <string>("distrito");
                            end.Complemento     = readerAux.GetValue <string>("complemento");
                            requerimento.Empreendimento.Enderecos.Add(end);
                        }

                        readerAux.Close();
                    }

                    #endregion

                    #region Coordenada

                    comando = bancoDeDados.CriarComando(@"
					select ec.coordenada_id,
						ec.tipo_coordenada_id,
						ec.tipo_coordenada_texto,
						ec.datum_id,
						ec.easting_utm,
						ec.northing_utm,
						ec.fuso_utm,
						ec.hemisferio_utm_id,
						ec.latitude_gms,
						ec.longitude_gms,
						ec.latitude_gdec,
						ec.longitude_gdec,
						ec.forma_coleta_texto,
						ec.local_coleta_texto,
						ec.datum_texto,
						ec.hemisferio_utm_texto
					from {0}hst_empreendimento_coord ec
					where ec.id_hst = :hst"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("hst", aux, DbType.Int32);

                    using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                    {
                        if (readerAux.Read())
                        {
                            requerimento.Empreendimento.Coordenada.Id                 = readerAux.GetValue <int>("coordenada_id");
                            requerimento.Empreendimento.Coordenada.Tipo.Id            = readerAux.GetValue <int>("tipo_coordenada_id");
                            requerimento.Empreendimento.Coordenada.Tipo.Texto         = readerAux.GetValue <string>("tipo_coordenada_texto");
                            requerimento.Empreendimento.Coordenada.Datum.Id           = readerAux.GetValue <int>("datum_id");
                            requerimento.Empreendimento.Coordenada.EastingUtm         = readerAux.GetValue <double>("easting_utm");
                            requerimento.Empreendimento.Coordenada.NorthingUtm        = readerAux.GetValue <double>("northing_utm");
                            requerimento.Empreendimento.Coordenada.FusoUtm            = readerAux.GetValue <int>("fuso_utm");
                            requerimento.Empreendimento.Coordenada.HemisferioUtm      = readerAux.GetValue <int>("hemisferio_utm_id");
                            requerimento.Empreendimento.Coordenada.LatitudeGms        = readerAux.GetValue <string>("latitude_gms");
                            requerimento.Empreendimento.Coordenada.LongitudeGms       = readerAux.GetValue <string>("longitude_gms");
                            requerimento.Empreendimento.Coordenada.LatitudeGdec       = readerAux.GetValue <double>("latitude_gdec");
                            requerimento.Empreendimento.Coordenada.LongitudeGdec      = readerAux.GetValue <double>("longitude_gdec");
                            requerimento.Empreendimento.Coordenada.FormaColetaTexto   = readerAux.GetValue <string>("forma_coleta_texto");
                            requerimento.Empreendimento.Coordenada.LocalColetaTexto   = readerAux.GetValue <string>("local_coleta_texto");
                            requerimento.Empreendimento.Coordenada.DatumTexto         = readerAux.GetValue <string>("datum_texto");
                            requerimento.Empreendimento.Coordenada.HemisferioUtmTexto = readerAux.GetValue <string>("hemisferio_utm_texto");
                        }

                        readerAux.Close();
                    }

                    #endregion

                    #region Meio de Contato

                    comando = bancoDeDados.CriarComando(@"select ec.emp_contato_id id, c.id tipo_contato_id, c.texto contato_texto, ec.valor
					from {0}hst_empreendimento_contato ec, {0}tab_meio_contato c where ec.meio_contato_id = c.id and ec.id_hst = :hst"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("hst", aux, DbType.Int32);

                    using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                    {
                        ContatoRelatorio contato;
                        while (readerAux.Read())
                        {
                            contato             = new ContatoRelatorio();
                            contato.Id          = readerAux.GetValue <int>("id");
                            contato.PessoaId    = requerimento.Empreendimento.Id;
                            contato.TipoContato = (eTipoContato)Enum.Parse(contato.TipoContato.GetType(), readerAux.GetValue <string>("tipo_contato_id"));
                            contato.TipoTexto   = readerAux.GetValue <string>("contato_texto");
                            contato.Valor       = readerAux.GetValue <string>("valor");
                            requerimento.Empreendimento.MeiosContatos.Add(contato);
                        }

                        readerAux.Close();
                    }

                    #endregion

                    reader.Close();
                }

                #endregion
            }

            if (requerimento.AutorId > 0)
            {
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                {
                    #region Elaborador

                    Comando comando = bancoDeDados.CriarComando(@"
					select nvl(p.nome, p.razao_social) NomeRazaoSocial, lc.texto TipoTexto 
					from {0}tab_credenciado c, {0}tab_pessoa p, {0}lov_credenciado_tipo lc 
					where c.pessoa = p.id and c.tipo = lc.id and c.id = :id"                    , UsuarioCredenciado);

                    comando.AdicionarParametroEntrada("id", requerimento.AutorId, DbType.Int32);
                    requerimento.UsuarioCredenciado = bancoDeDados.ObterEntity <CredenciadoRelatorio>(comando);

                    #endregion
                }
            }

            return(requerimento);
        }
コード例 #25
0
        public IProtocolo Obter(int id, bool simplificado = false, bool atividades = false, BancoDeDados banco = null)
        {
            Protocolo protocolo = new Protocolo();
            Documento documento = new Documento();

            if (id <= 0)
            {
                return(new Protocolo());
            }

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Protocolo

                Comando comando = bancoDeDados.CriarComando(@"
					select r.id,
						   r.fiscalizacao,
						   f.situacao fiscalizacao_situacao,
						   r.numero,
						   r.ano,
						   r.nome,
						   r.tipo,
						   r.protocolo,
						   trunc(r.data_criacao) data_criacao,
						   r.numero_autuacao,
						   trunc(r.data_autuacao) data_autuacao,
						   r.volume,
						   r.checagem,
						   r.checagem_pendencia,
						   r.requerimento,
						   to_char(tr.data_criacao, 'dd/mm/yyyy') data_requerimento,
						   tr.situacao requerimento_situacao,
						   r.interessado,
						   nvl(p.nome, p.razao_social) interessado_nome,
						   nvl(p.cpf, p.cnpj) interessado_cpf_cnpj,
						   p.tipo interessado_tipo,
						   lpt.texto tipo_texto,
						   r.empreendimento,
						   e.cnpj empreendimento_cnpj,
						   e.denominador,
						   r.situacao,
						   ls.texto situacao_texto,
						   r.protocolo_associado,
						   r.emposse,
						   r.arquivo,
						   r.tid,
						   r.setor,
						   r.setor_criacao, 
						   lfs.texto fiscalizacao_sit_texto,
						   r.interessado_livre,
						   r.interessado_livre_telefone,
						   r.folhas, r.assunto, r.descricao, r.destinatario, r.destinatario_setor, d.id destinatario_id, 
						   d.tid destinatario_tid, d.nome destinatario_nome, s.id destinatario_setor_id, s.sigla destinatario_setor_sigla, s.nome destinatario_setor_nome
					  from {0}tab_protocolo          r,
						   {0}tab_pessoa             p,
						   {0}tab_fiscalizacao       f,
						   {0}tab_empreendimento     e,
						   {0}lov_protocolo_situacao ls,
						   {0}lov_protocolo_tipo     lpt,
						   {0}tab_requerimento       tr,
						   {0}lov_fiscalizacao_situacao lfs,
						   {0}tab_setor				 s,
						   {0}tab_funcionario		 d
					 where r.interessado = p.id(+)
					   and r.empreendimento = e.id(+)
					   and r.situacao = ls.id
					   and lpt.id = r.tipo
					   and r.requerimento = tr.id(+)
					   and r.fiscalizacao = f.id(+)
					   and f.situacao = lfs.id(+)
					   and r.destinatario_setor = s.id(+)
					   and r.destinatario = d.id(+)
					   and r.id = :id"                    , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        #region Dados base

                        protocolo.Id  = id;
                        protocolo.Tid = reader["tid"].ToString();

                        if (reader["fiscalizacao"] != null && !Convert.IsDBNull(reader["fiscalizacao"]))
                        {
                            protocolo.Fiscalizacao.Id            = Convert.ToInt32(reader["fiscalizacao"]);
                            protocolo.Fiscalizacao.SituacaoId    = Convert.ToInt32(reader["fiscalizacao_situacao"]);
                            protocolo.Fiscalizacao.SituacaoTexto = reader.GetValue <string>("fiscalizacao_sit_texto");
                        }

                        if (reader["numero"] != null && !Convert.IsDBNull(reader["numero"]))
                        {
                            protocolo.NumeroProtocolo = Convert.ToInt32(reader["numero"]);
                        }

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

                        protocolo.NumeroAutuacao = reader["numero_autuacao"].ToString();

                        if (reader["data_autuacao"] != null && !Convert.IsDBNull(reader["data_autuacao"]))
                        {
                            protocolo.DataAutuacao.Data = Convert.ToDateTime(reader["data_autuacao"]);
                        }

                        protocolo.DataCadastro.Data = Convert.ToDateTime(reader["data_criacao"]);

                        if (reader["setor"] != null && !Convert.IsDBNull(reader["setor"]))
                        {
                            protocolo.SetorId = Convert.ToInt32(reader["setor"]);
                        }

                        if (reader["setor_criacao"] != null && !Convert.IsDBNull(reader["setor_criacao"]))
                        {
                            protocolo.SetorCriacaoId = Convert.ToInt32(reader["setor_criacao"]);
                        }

                        if (reader["tipo"] != null && !Convert.IsDBNull(reader["tipo"]))
                        {
                            protocolo.Tipo.Id    = Convert.ToInt32(reader["tipo"]);
                            protocolo.Tipo.Texto = reader["tipo_texto"].ToString();
                        }

                        if (reader["volume"] != null && !Convert.IsDBNull(reader["volume"]))
                        {
                            protocolo.Volume = Convert.ToInt32(reader["volume"]);
                        }

                        if (reader["checagem"] != null && !Convert.IsDBNull(reader["checagem"]))
                        {
                            protocolo.ChecagemRoteiro.Id = Convert.ToInt32(reader["checagem"]);
                        }

                        if (reader["requerimento"] != null && !Convert.IsDBNull(reader["requerimento"]))
                        {
                            protocolo.Requerimento.Id            = Convert.ToInt32(reader["requerimento"]);
                            protocolo.Requerimento.SituacaoId    = Convert.ToInt32(reader["requerimento_situacao"]);
                            protocolo.Requerimento.DataCadastro  = Convert.ToDateTime(reader["data_requerimento"]);
                            protocolo.Requerimento.ProtocoloId   = protocolo.Id.Value;
                            protocolo.Requerimento.ProtocoloTipo = 1;
                        }

                        if (reader["interessado"] != null && !Convert.IsDBNull(reader["interessado"]))
                        {
                            protocolo.Interessado.Id   = Convert.ToInt32(reader["interessado"]);
                            protocolo.Interessado.Tipo = Convert.ToInt32(reader["interessado_tipo"]);

                            if (reader["interessado_tipo"].ToString() == "1")
                            {
                                protocolo.Interessado.Fisica.Nome = reader["interessado_nome"].ToString();
                                protocolo.Interessado.Fisica.CPF  = reader["interessado_cpf_cnpj"].ToString();
                            }
                            else
                            {
                                protocolo.Interessado.Juridica.RazaoSocial = reader["interessado_nome"].ToString();
                                protocolo.Interessado.Juridica.CNPJ        = reader["interessado_cpf_cnpj"].ToString();
                            }
                        }

                        if (reader["interessado_livre"] != null && !Convert.IsDBNull(reader["interessado_livre"]))
                        {
                            protocolo.InteressadoLivre = reader["interessado_livre"].ToString();
                        }
                        if (reader["interessado_livre_telefone"] != null && !Convert.IsDBNull(reader["interessado_livre_telefone"]))
                        {
                            protocolo.InteressadoLivreTelefone = reader["interessado_livre_telefone"].ToString();
                        }
                        if (reader["folhas"] != null && !Convert.IsDBNull(reader["folhas"]))
                        {
                            protocolo.Folhas = Convert.ToInt32(reader["folhas"]);
                        }

                        if (reader["empreendimento"] != null && !Convert.IsDBNull(reader["empreendimento"]))
                        {
                            protocolo.Empreendimento.Id          = Convert.ToInt32(reader["empreendimento"]);
                            protocolo.Empreendimento.Denominador = reader["denominador"].ToString();
                            protocolo.Empreendimento.CNPJ        = reader["empreendimento_cnpj"].ToString();
                        }

                        if (reader["emposse"] != null && !Convert.IsDBNull(reader["emposse"]))
                        {
                            protocolo.Emposse.Id = Convert.ToInt32(reader["emposse"]);
                        }

                        if (reader["situacao"] != null && !Convert.IsDBNull(reader["situacao"]))
                        {
                            protocolo.SituacaoId    = Convert.ToInt32(reader["situacao"]);
                            protocolo.SituacaoTexto = reader["situacao_texto"].ToString();
                        }

                        if (reader["arquivo"] != null && !Convert.IsDBNull(reader["arquivo"]))
                        {
                            protocolo.Arquivo.Id = Convert.ToInt32(reader["arquivo"]);
                        }

                        if (reader["protocolo"] != null && !Convert.IsDBNull(reader["protocolo"]))
                        {
                            protocolo.IsProcesso = Convert.ToInt32(reader["protocolo"]) == 1;
                        }

                        #endregion

                        if (!protocolo.IsProcesso)
                        {
                            documento           = new Documento(protocolo);
                            documento.Nome      = reader["nome"].ToString();
                            documento.Assunto   = reader["assunto"].ToString();
                            documento.Descricao = reader["descricao"].ToString();
                            if (reader["destinatario_id"] != null && !Convert.IsDBNull(reader["destinatario_id"]))
                            {
                                documento.Destinatario.Id = Convert.ToInt32(reader["destinatario_id"]);
                            }
                            documento.Destinatario.Nome = reader["destinatario_nome"].ToString();

                            if (reader["destinatario_setor_id"] != null && !Convert.IsDBNull(reader["destinatario_setor_id"]))
                            {
                                documento.DestinatarioSetor.Id = Convert.ToInt32(reader["destinatario_setor_id"]);
                            }
                            documento.DestinatarioSetor.Nome = reader["destinatario_setor_nome"].ToString();

                            if (reader["protocolo_associado"] != null && !Convert.IsDBNull(reader["protocolo_associado"]))
                            {
                                documento.ProtocoloAssociado = new Protocolo(ObterProtocolo(Convert.ToInt32(reader["protocolo_associado"])));
                            }

                            if (reader["checagem_pendencia"] != null && !Convert.IsDBNull(reader["checagem_pendencia"]))
                            {
                                documento.ChecagemPendencia.Id = Convert.ToInt32(reader["checagem_pendencia"]);
                            }
                        }
                    }

                    reader.Close();
                }

                if (simplificado)
                {
                    if (protocolo.IsProcesso)
                    {
                        return(new Processo(protocolo));
                    }
                    else
                    {
                        return(documento);
                    }
                }

                #endregion

                #region Atividades

                comando = bancoDeDados.CriarComando(@"select b.id, b.atividade, a.atividade atividade_texto, b.situacao atividade_situacao_id,
				(select s.texto from lov_atividade_situacao s where s.id = b.situacao) atividade_situacao_texto, a.setor, b.motivo,
				b.tid from {0}tab_atividade a, {0}tab_protocolo_atividades b where a.id = b.atividade and b.protocolo = :id"                , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Atividade atividade;

                    while (reader.Read())
                    {
                        atividade    = new Atividade();
                        atividade.Id = Convert.ToInt32(reader["atividade"]);
                        atividade.IdRelacionamento = Convert.ToInt32(reader["id"]);
                        atividade.Tid           = reader["tid"].ToString();
                        atividade.NomeAtividade = reader["atividade_texto"].ToString();
                        atividade.SituacaoId    = Convert.ToInt32(reader["atividade_situacao_id"]);
                        atividade.SituacaoTexto = reader["atividade_situacao_texto"].ToString();
                        atividade.SetorId       = Convert.ToInt32(reader["setor"]);
                        atividade.Motivo        = reader["motivo"].ToString();

                        #region Atividades/Finalidades/Modelos

                        comando = bancoDeDados.CriarComando(@"select a.id, a.finalidade, ltf.texto finalidade_texto, a.modelo, tm.nome modelo_nome, 
							a.titulo_anterior_tipo, a.titulo_anterior_id, a.titulo_anterior_numero, a.modelo_anterior_id, a.modelo_anterior_nome, a.modelo_anterior_sigla, a.orgao_expedidor
							from {0}tab_protocolo_ativ_finalida a, {0}tab_titulo_modelo tm, {0}lov_titulo_finalidade ltf where a.modelo = tm.id and a.finalidade = ltf.id(+) 
							and a.protocolo_ativ = :id"                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", atividade.IdRelacionamento, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            Finalidade fin;

                            while (readerAux.Read())
                            {
                                fin = new Finalidade();

                                fin.IdRelacionamento = Convert.ToInt32(readerAux["id"]);

                                fin.OrgaoExpedidor = readerAux["orgao_expedidor"].ToString();

                                if (readerAux["finalidade"] != DBNull.Value)
                                {
                                    fin.Id    = Convert.ToInt32(readerAux["finalidade"]);
                                    fin.Texto = readerAux["finalidade_texto"].ToString();
                                }

                                if (readerAux["modelo"] != DBNull.Value)
                                {
                                    fin.TituloModelo      = Convert.ToInt32(readerAux["modelo"]);
                                    fin.TituloModeloTexto = readerAux["modelo_nome"].ToString();
                                }

                                if (readerAux["modelo_anterior_id"] != DBNull.Value)
                                {
                                    fin.TituloModeloAnteriorId = Convert.ToInt32(readerAux["modelo_anterior_id"]);
                                }

                                fin.TituloModeloAnteriorTexto = readerAux["modelo_anterior_nome"].ToString();
                                fin.TituloModeloAnteriorSigla = readerAux["modelo_anterior_sigla"].ToString();

                                if (readerAux["titulo_anterior_tipo"] != DBNull.Value)
                                {
                                    fin.TituloAnteriorTipo = Convert.ToInt32(readerAux["titulo_anterior_tipo"]);
                                }

                                if (readerAux["titulo_anterior_id"] != DBNull.Value)
                                {
                                    fin.TituloAnteriorId = Convert.ToInt32(readerAux["titulo_anterior_id"]);
                                }

                                fin.TituloAnteriorNumero = readerAux["titulo_anterior_numero"].ToString();
                                fin.EmitidoPorInterno    = (fin.TituloAnteriorTipo != 3);

                                atividade.Finalidades.Add(fin);
                            }
                            readerAux.Close();
                        }

                        #endregion

                        protocolo.Atividades.Add(atividade);
                    }

                    reader.Close();
                }

                if (atividades)
                {
                    if (protocolo.IsProcesso)
                    {
                        return(new Processo(protocolo));
                    }
                    else
                    {
                        return(documento);
                    }
                }

                #endregion

                #region Responsáveis

                comando = bancoDeDados.CriarComando(@"select pr.id, pr.responsavel, pr.funcao, nvl(p.nome, p.razao_social) nome, pr.numero_art, 
				nvl(p.cpf, p.cnpj) cpf_cnpj, p.tipo from {0}tab_protocolo_responsavel pr, {0}tab_pessoa p where pr.responsavel = p.id and pr.protocolo = :protocolo"                , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ResponsavelTecnico responsavel;
                    while (reader.Read())
                    {
                        responsavel = new ResponsavelTecnico();
                        responsavel.IdRelacionamento = Convert.ToInt32(reader["id"]);
                        responsavel.Id        = Convert.ToInt32(reader["responsavel"]);
                        responsavel.Funcao    = Convert.ToInt32(reader["funcao"]);
                        responsavel.CpfCnpj   = reader["cpf_cnpj"].ToString();
                        responsavel.NomeRazao = reader["nome"].ToString();
                        responsavel.NumeroArt = reader["numero_art"].ToString();
                        protocolo.Responsaveis.Add(responsavel);
                    }
                    reader.Close();
                }

                #endregion

                #region Assinantes
                comando = bancoDeDados.CriarComando(@"select ta.id, ta.protocolo, f.id func_id, f.nome func_nome, ta.cargo, c.nome cargo_nome, ta.tid from tab_protocolo_assinantes ta, tab_funcionario f, tab_cargo c where 
					ta.funcionario = f.id and ta.cargo = c.id and ta.protocolo = :protocolo"                    , EsquemaBanco);
                comando.AdicionarParametroEntrada("protocolo", id, DbType.Int32);

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        TituloAssinante item = new TituloAssinante();
                        item.Id                   = Convert.ToInt32(reader["id"]);
                        item.Tid                  = reader["tid"].ToString();
                        item.FuncionarioId        = Convert.ToInt32(reader["func_id"]);
                        item.FuncionarioNome      = reader["func_nome"].ToString();
                        item.FuncionarioCargoId   = Convert.ToInt32(reader["cargo"]);
                        item.FuncionarioCargoNome = reader["cargo_nome"].ToString();
                        item.Selecionado          = true;

                        if (reader["cargo"] != null && !Convert.IsDBNull(reader["cargo"]))
                        {
                            item.FuncionarioCargoId = Convert.ToInt32(reader["cargo"]);
                        }

                        documento.Assinantes.Add(item);
                    }
                    reader.Close();
                }
                #endregion
            }

            if (protocolo.IsProcesso)
            {
                return(new Processo(protocolo));
            }
            else
            {
                return(documento);
            }
        }