示例#1
0
        internal void MergeAssinantesCargos(List <TituloAssinante> assinantesTitulo)
        {
            //Seleciona os assinates
            foreach (TituloAssinante assinante in this.Assinantes)
            {
                // tenta encontrar funcionário do título dentro da lista de funcionários
                TituloAssinante assinanteEncontrado = assinantesTitulo.FirstOrDefault(x => x.FuncionarioId == assinante.FuncionarioId);
                if (assinanteEncontrado != null)
                {
                    assinante.Selecionado          = true;
                    assinante.Id                   = assinanteEncontrado.Id;
                    assinante.FuncionarioCargoId   = assinanteEncontrado.FuncionarioCargoId;
                    assinante.FuncionarioCargoNome = assinanteEncontrado.FuncionarioCargoNome;
                }
            }

            foreach (TituloAssinante assinanteTitulo in assinantesTitulo)
            {
                if (!this.Assinantes.Exists(x => x.FuncionarioId == assinanteTitulo.FuncionarioId))
                {
                    assinanteTitulo.Selecionado = true;
                    this.Assinantes.Add(assinanteTitulo);
                }
            }
        }
示例#2
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);
            }
        }