internal void Salvar(LaudoConstatacao laudo, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Cadastrar Dados da Especificidade

                eHistoricoAcao acao;
                object         id;

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

                if (id != null && !Convert.IsDBNull(id))
                {
                    comando  = bancoDeDados.CriarComando(@"update {0}esp_laudo_constatacao e set e.titulo = :titulo, e.protocolo = :protocolo, 
					e.objetivo = :objetivo, e.constatacao_parecer = :constatacao_parecer, e.destinatario = :destinatario, e.data_vistoria = :data_vistoria, 
					e.tid = :tid where e.titulo = :titulo"                    , EsquemaBanco);
                    acao     = eHistoricoAcao.atualizar;
                    laudo.Id = Convert.ToInt32(id);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}esp_laudo_constatacao e (id, titulo, protocolo, objetivo, constatacao_parecer, destinatario, data_vistoria, tid) 
					values ({0}seq_esp_laudo_constatacao.nextval, :titulo, :protocolo, :objetivo, :constatacao_parecer, :destinatario, :data_vistoria, :tid) returning e.id into :id"                    , EsquemaBanco);
                    acao    = eHistoricoAcao.criar;
                    comando.AdicionarParametroSaida("id", DbType.Int32);
                }

                comando.AdicionarParametroEntrada("titulo", laudo.Titulo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("protocolo", laudo.ProtocoloReq.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("destinatario", laudo.Destinatario, DbType.Int32);
                comando.AdicionarParametroEntrada("objetivo", DbType.String, 500, laudo.Objetivo);
                comando.AdicionarParametroEntClob("constatacao_parecer", laudo.Constatacao);
                comando.AdicionarParametroEntrada("data_vistoria", laudo.DataVistoria.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());



                bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #region Histórico

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

                #endregion

                bancoDeDados.Commit();
            }
        }
Ejemplo n.º 2
0
        internal void Salvar(TermoCompromissoAmbiental termo, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Cadastro da Especificidade

                eHistoricoAcao acao;
                object         id;

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

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

                    acao     = eHistoricoAcao.atualizar;
                    termo.Id = Convert.ToInt32(id);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}esp_termo_compr_amb (id, tid, titulo, protocolo, licenca, destinatario, 
														representante, descricao) values ({0}seq_esp_termo_compr_amb.nextval, :tid, :titulo, :protocolo, 
														:licenca, :destinatario, :representante, :descricao) returning id into :id"                                                        , EsquemaBanco);

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

                comando.AdicionarParametroEntrada("titulo", termo.Titulo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("protocolo", termo.ProtocoloReq.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("licenca", termo.Licenca, DbType.Int32);
                comando.AdicionarParametroEntrada("destinatario", termo.Destinatario, DbType.Int32);
                comando.AdicionarParametroEntrada("representante", termo.Representante > 0 ? termo.Representante : (Object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntClob("descricao", termo.Descricao);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                if (id == null || Convert.IsDBNull(id))
                {
                    termo.Id = Convert.ToInt32(comando.ObterValorParametro("id"));
                }

                #endregion

                Historico.Gerar(termo.Titulo.Id, eHistoricoArtefatoEspecificidade.termocompromissoambiental, acao, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
Ejemplo n.º 3
0
        internal void EnviarExterno(Tramitacao tramitacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Enviar processos/documentos

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao a (id, protocolo, tipo, objetivo, situacao, despacho,
				executor, remetente, remetente_setor, destinatario, destinatario_setor, tid, data_envio) values ({0}seq_tramitacao.nextval, :protocolo, :tipo, :objetivo, 
				:situacao, :despacho, :executor, :remetente, :remetente_setor, :destinatario, :destinatario_setor, :tid, sysdate) returning a.id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("protocolo", tramitacao.Protocolo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo", tramitacao.Tipo, DbType.Int32);
                comando.AdicionarParametroEntrada("objetivo", tramitacao.Objetivo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao", tramitacao.SituacaoId, DbType.Int32);
                comando.AdicionarParametroEntClob("despacho", tramitacao.Despacho);
                comando.AdicionarParametroEntrada("executor", tramitacao.Executor.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("remetente", tramitacao.Remetente.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("remetente_setor", tramitacao.RemetenteSetor.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("destinatario", tramitacao.Destinatario.Id > 0 ? (int?)tramitacao.Destinatario.Id : null, DbType.Int32);
                comando.AdicionarParametroEntrada("destinatario_setor", tramitacao.DestinatarioSetor.Id > 0 ? (int?)tramitacao.DestinatarioSetor.Id : null, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                int id = Convert.ToInt32(comando.ObterValorParametro("id"));

                #region Enviar tramitação externa

                comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_externo t (id, tramitacao, orgao, funcionario, tid) 
				values ({0}seq_tramitacao_externo.nextval, :tramitacao, :orgao, :funcionario, :tid) "                , EsquemaBanco);

                comando.AdicionarParametroEntrada("tramitacao", id, DbType.Int32);
                comando.AdicionarParametroEntrada("orgao", tramitacao.OrgaoExterno.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("funcionario", tramitacao.Destinatario.Nome, DbType.String);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #endregion

                #region Histórico

                Historico.Gerar(id, eHistoricoArtefato.tramitacao, eHistoricoAcao.enviarexterno, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
Ejemplo n.º 4
0
        internal int?Criar(TituloCondicionante condicionante, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Condicionante de Título

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_titulo_condicionantes c (id, titulo, situacao, descricao, possui_prazo, prazo, periodicidade, 
				periodo, periodo_tipo, data_vencimento, ordem, tid) values ({0}seq_titulo_condicionantes.nextval, :titulo, :situacao, :descricao, :possui_prazo, :prazo, :periodicidade, 
				:periodo, :periodo_tipo, :data_vencimento, :ordem, :tid) returning c.id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("titulo", condicionante.tituloId, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao", condicionante.Situacao.Id, DbType.Int32);
                comando.AdicionarParametroEntClob("descricao", condicionante.Descricao);
                comando.AdicionarParametroEntrada("possui_prazo", (condicionante.PossuiPrazo) ? 1 : 0, DbType.Int32);
                comando.AdicionarParametroEntrada("prazo", (condicionante.Prazo.HasValue) ? condicionante.Prazo : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("periodicidade", (condicionante.PossuiPeriodicidade) ? 1 : 0, DbType.Int32);
                comando.AdicionarParametroEntrada("periodo", (condicionante.PeriodicidadeValor.HasValue) ? condicionante.PeriodicidadeValor : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("periodo_tipo", (condicionante.PeriodicidadeTipo.Id > 0) ? condicionante.PeriodicidadeTipo.Id : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("data_vencimento", (condicionante.DataVencimento.Data.HasValue) ? condicionante.DataVencimento.Data : (object)DBNull.Value, DbType.DateTime);
                comando.AdicionarParametroEntrada("ordem", condicionante.Ordem, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                condicionante.Id = Convert.ToInt32(comando.ObterValorParametro("id"));

                #endregion

                #region Histórico

                Historico.Gerar(condicionante.Id, eHistoricoArtefato.titulocondicionante, eHistoricoAcao.criar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();

                return(condicionante.Id);
            }
        }
Ejemplo n.º 5
0
        internal void Editar(TituloCondicionante condicionante, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Condicionante de Título

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update {0}tab_titulo_condicionantes c set c.situacao = :situacao, c.descricao = :descricao, c.possui_prazo = :possui_prazo, 
				c.prazo = :prazo, c.periodicidade = :periodicidade, c.periodo = :periodo, c.periodo_tipo = :periodo_tipo, c.data_vencimento = :data_vencimento, c.ordem = :ordem, c.tid = :tid where c.id =: id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", condicionante.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao", condicionante.Situacao.Id, DbType.Int32);
                comando.AdicionarParametroEntClob("descricao", condicionante.Descricao);
                comando.AdicionarParametroEntrada("possui_prazo", (condicionante.PossuiPrazo) ? 1 : 0, DbType.Int32);
                comando.AdicionarParametroEntrada("prazo", (condicionante.Prazo.HasValue) ? condicionante.Prazo : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("periodicidade", (condicionante.PossuiPeriodicidade) ? 1 : 0, DbType.Int32);
                comando.AdicionarParametroEntrada("periodo", (condicionante.PeriodicidadeValor.HasValue) ? condicionante.PeriodicidadeValor : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("periodo_tipo", (condicionante.PeriodicidadeTipo.Id > 0) ? condicionante.PeriodicidadeTipo.Id : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("data_vencimento", (condicionante.DataVencimento.Data.HasValue) ? condicionante.DataVencimento.Data : (object)DBNull.Value, DbType.DateTime);
                comando.AdicionarParametroEntrada("ordem", condicionante.Ordem, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Histórico

                Historico.Gerar(condicionante.Id, eHistoricoArtefato.titulocondicionante, eHistoricoAcao.atualizar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
        internal void Salvar(CertidaoAnuencia certidaoAnuencia, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Título de Certidao de Anuencia

                eHistoricoAcao acao;
                object         id;

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

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

                    acao = eHistoricoAcao.atualizar;
                    certidaoAnuencia.Id = Convert.ToInt32(id);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}esp_certidao_anuencia e (id, titulo, certificacao, protocolo, tid) values
														({0}seq_esp_certidao_anuencia.nextval, :titulo, :certificacao, :protocolo, :tid)
														returning e.id into :id"                                                        , EsquemaBanco);
                    acao    = eHistoricoAcao.criar;
                    comando.AdicionarParametroSaida("id", DbType.Int32);
                }

                comando.AdicionarParametroEntrada("titulo", certidaoAnuencia.Titulo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("protocolo", certidaoAnuencia.ProtocoloReq.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntClob("certificacao", certidaoAnuencia.Certificacao);

                bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #region Destinatário

                comando = bancoDeDados.CriarComando("delete from {0}esp_certidao_anuencia_dest t ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where t.especificidade = :especificidade {0}", comando.AdicionarNotIn("and", "t.id", DbType.Int32, certidaoAnuencia.Destinatarios.Select(x => x.IdRelacionamento).ToList()));
                comando.AdicionarParametroEntrada("especificidade", certidaoAnuencia.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in certidaoAnuencia.Destinatarios)
                {
                    if (item.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}esp_certidao_anuencia_dest t set t.destinatario = :destinatario, t.tid = :tid where t.id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}esp_certidao_anuencia_dest (id, especificidade, destinatario, tid) values ({0}seq_esp_certidao_anuencia_dest.nextval, 
							:especificidade, :destinatario, :tid)"                            , EsquemaBanco);
                        comando.AdicionarParametroEntrada("especificidade", certidaoAnuencia.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("destinatario", item.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                #region Histórico

                Historico.Gerar(Convert.ToInt32(certidaoAnuencia.Titulo.Id), eHistoricoArtefatoEspecificidade.certidaoanuencia, acao, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
        public int Criar(ConsideracaoFinal consideracaoFinal, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
					insert into {0}tab_fisc_consid_final
					  (id,
					   fiscalizacao,
					   descrever,
					   tem_reparacao,
					   reparacao,
					   tem_termo_comp,
					   tem_termo_comp_justificar,
					   tid,
					   arquivo_termo)
					values
					  ({0}seq_tab_fisc_consid_final.nextval,
					   :fiscalizacao,
					   :descrever,
					   :tem_reparacao,
					   :reparacao,
					   :tem_termo_comp,
					   :tem_termo_comp_justificar,
					   :tid,
					   :arquivo_termo)
					returning id into :id"                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("fiscalizacao", consideracaoFinal.FiscalizacaoId, DbType.Int32);
                comando.AdicionarParametroEntClob("descrever", consideracaoFinal.Descrever);
                comando.AdicionarParametroEntrada("tem_reparacao", consideracaoFinal.HaReparacao, DbType.Int32);
                comando.AdicionarParametroEntrada("reparacao", DbType.String, 2000, consideracaoFinal.Reparacao);
                comando.AdicionarParametroEntrada("tem_termo_comp", consideracaoFinal.HaTermoCompromisso, DbType.Int32);
                comando.AdicionarParametroEntrada("tem_termo_comp_justificar", DbType.String, 250, consideracaoFinal.TermoCompromissoJustificar);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("arquivo_termo", (consideracaoFinal.Arquivo ?? new Arquivo()).Id, DbType.Int32);

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

                bancoDeDados.ExecutarNonQuery(comando);

                consideracaoFinal.Id = Convert.ToInt32(comando.ObterValorParametro("id"));

                #region Testemunhas

                foreach (var item in consideracaoFinal.Testemunhas)
                {
                    comando = bancoDeDados.CriarComando(@"
						insert into {0}tab_fisc_consid_final_test
						  (id, 
						   consid_final, 
						   idaf, 
						   testemunha, 
						   nome, 
						   endereco, 
						   tid,
						   testemunha_setor,
                           cpf)
						values
						  ({0}seq_tab_fiscconsidfinaltest.nextval, 
						   :consid_final, 
						   :idaf, 
						   :testemunha, 
						   :nome, 
						   :endereco, 
						   :tid,
						   :testemunha_setor,
                           :cpf)
						returning id into :id"                        , EsquemaBanco);

                    comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("idaf", item.TestemunhaIDAF, DbType.Int32);
                    comando.AdicionarParametroEntrada("testemunha", item.TestemunhaId, DbType.Int32);
                    comando.AdicionarParametroEntrada("nome", DbType.String, 80, item.TestemunhaNome);
                    comando.AdicionarParametroEntrada("endereco", DbType.String, 200, item.TestemunhaEndereco);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    comando.AdicionarParametroEntrada("testemunha_setor", item.TestemunhaSetorId, DbType.Int32);
                    comando.AdicionarParametroEntrada("cpf", item.TestemunhaCPF, DbType.String);
                    comando.AdicionarParametroSaida("id", DbType.Int32);

                    bancoDeDados.ExecutarNonQuery(comando);

                    item.Id = Convert.ToInt32(comando.ObterValorParametro("id"));
                }

                #endregion

                #region Assinantes

                foreach (var item in consideracaoFinal.Assinantes)
                {
                    comando = bancoDeDados.CriarComando(@"
						insert into {0}tab_fisc_consid_final_ass(id, consid_final, funcionario, cargo, tid)
						values ({0}seq_fisc_consid_final_ass.nextval, :consid_final, :funcionario, :cargo, :tid)
						returning id into :id"                        , EsquemaBanco);

                    comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("funcionario", item.FuncionarioId, DbType.Int32);
                    comando.AdicionarParametroEntrada("cargo", item.FuncionarioCargoId, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    comando.AdicionarParametroSaida("id", DbType.Int32);

                    bancoDeDados.ExecutarNonQuery(comando);

                    item.Id = Convert.ToInt32(comando.ObterValorParametro("id"));
                }

                #endregion

                #region Anexos

                foreach (var item in consideracaoFinal.Anexos)
                {
                    comando = bancoDeDados.CriarComando(@"
					 insert into {0}tab_fisc_consid_final_arq a
					   (id, 
						consid_final, 
						arquivo, 
						ordem, 
						descricao, 
						tid)
					 values
					   ({0}seq_fisc_consid_final_arq.nextval,
						:consid_final,
						:arquivo,
						:ordem,
						:descricao,
						:tid)"                        , EsquemaBanco);

                    comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("arquivo", item.Arquivo.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("ordem", item.Ordem, DbType.Int32);
                    comando.AdicionarParametroEntrada("descricao", DbType.String, 100, item.Descricao);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                #region Anexos IUF

                foreach (var item in consideracaoFinal.AnexosIUF)
                {
                    comando = bancoDeDados.CriarComando(@"
					 insert into {0}tab_fisc_consid_final_iuf a
					   (id, 
						consid_final, 
						arquivo, 
						ordem, 
						descricao, 
						tid)
					 values
					   ({0}seq_fisc_consid_final_iuf.nextval,
						:consid_final,
						:arquivo,
						:ordem,
						:descricao,
						:tid)"                        , EsquemaBanco);

                    comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("arquivo", item.Arquivo.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("ordem", item.Ordem, DbType.Int32);
                    comando.AdicionarParametroEntrada("descricao", DbType.String, 100, item.Descricao);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                Historico.Gerar(consideracaoFinal.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, eHistoricoAcao.atualizar, bancoDeDados);

                Consulta.Gerar(consideracaoFinal.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, bancoDeDados);

                bancoDeDados.Commit();
            }
            return(consideracaoFinal.Id);
        }
        public void Editar(ConsideracaoFinal consideracaoFinal, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
				  update {0}tab_fisc_consid_final t
					 set t.descrever                 = :descrever,
						 t.tem_reparacao             = :tem_reparacao,
						 t.reparacao                 = :reparacao,
						 t.tem_termo_comp            = :tem_termo_comp,
						 t.tem_termo_comp_justificar = :tem_termo_comp_justificar,
						 t.tid                       = :tid,
						 t.arquivo_termo             = :arquivo_termo
				   where t.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntClob("descrever", consideracaoFinal.Descrever);
                comando.AdicionarParametroEntrada("tem_reparacao", consideracaoFinal.HaReparacao, DbType.Int32);
                comando.AdicionarParametroEntrada("reparacao", DbType.String, 2000, consideracaoFinal.Reparacao);
                comando.AdicionarParametroEntrada("tem_termo_comp", consideracaoFinal.HaTermoCompromisso, DbType.Int32);
                comando.AdicionarParametroEntrada("tem_termo_comp_justificar", DbType.String, 250, consideracaoFinal.TermoCompromissoJustificar);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("arquivo_termo", (consideracaoFinal.Arquivo ?? new Arquivo()).Id, DbType.Int32);
                comando.AdicionarParametroEntrada("id", consideracaoFinal.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #region Testemunhas

                comando = bancoDeDados.CriarComando("delete from {0}tab_fisc_consid_final_test ra ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where ra.consid_final = :consid_final{0}",
                                                               comando.AdicionarNotIn("and", "ra.id", DbType.Int32, consideracaoFinal.Testemunhas.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in consideracaoFinal.Testemunhas)
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
							update {0}tab_fisc_consid_final_test t
							   set t.idaf				= :idaf, 
								   t.testemunha			= :testemunha, 
								   t.nome				= :nome, 
								   t.endereco			= :endereco, 
								   t.tid				= :tid,
								   t.testemunha_setor	= :testemunha_setor,
                                   t.cpf                = :cpf
							 where t.id = :id"                            , EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
							insert into {0}tab_fisc_consid_final_test
							  (id, 
							   consid_final, 
							   idaf, 
							   testemunha, 
							   nome, 
							   endereco, 
							   tid,
						       testemunha_setor,
                               cpf)
							values
							  ({0}seq_tab_fiscconsidfinaltest.nextval, 
							   :consid_final, 
							   :idaf, 
							   :testemunha, 
							   :nome, 
							   :endereco, 
							   :tid,
						       :testemunha_setor,
                               :cpf)
							returning id into :id"                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);
                        comando.AdicionarParametroSaida("id", DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("idaf", item.TestemunhaIDAF, DbType.Int32);
                    comando.AdicionarParametroEntrada("testemunha", item.TestemunhaId, DbType.Int32);
                    comando.AdicionarParametroEntrada("nome", DbType.String, 80, item.TestemunhaNome);
                    comando.AdicionarParametroEntrada("endereco", DbType.String, 80, item.TestemunhaEndereco);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    comando.AdicionarParametroEntrada("testemunha_setor", item.TestemunhaSetorId, DbType.Int32);
                    comando.AdicionarParametroEntrada("cpf", item.TestemunhaCPF, DbType.String);

                    bancoDeDados.ExecutarNonQuery(comando);

                    item.Id = item.Id > 0 ? item.Id : Convert.ToInt32(comando.ObterValorParametro("id"));
                }

                #endregion

                #region Assinantes

                comando = bancoDeDados.CriarComando("delete from {0}tab_fisc_consid_final_ass ass ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where ass.consid_final = :consid_final{0}",
                                                               comando.AdicionarNotIn("and", "ass.id", DbType.Int32, consideracaoFinal.Assinantes.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in consideracaoFinal.Assinantes)
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
							update {0}tab_fisc_consid_final_ass t
							   set t.funcionario	= :funcionario, 
								   t.cargo			= :cargo, 
								   t.tid			= :tid
							 where t.id = :id"                            , EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into {0}tab_fisc_consid_final_ass(id, consid_final, funcionario, cargo, tid)
						values ({0}seq_fisc_consid_final_ass.nextval, :consid_final, :funcionario, :cargo, :tid)
						returning id into :id"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);
                    }


                    comando.AdicionarParametroEntrada("funcionario", item.FuncionarioId, DbType.Int32);
                    comando.AdicionarParametroEntrada("cargo", item.FuncionarioCargoId, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    comando.AdicionarParametroSaida("id", DbType.Int32);

                    bancoDeDados.ExecutarNonQuery(comando);

                    item.Id = Convert.ToInt32(comando.ObterValorParametro("id"));
                }

                #endregion

                #region Anexos

                comando = bancoDeDados.CriarComando("delete from {0}tab_fisc_consid_final_arq ra ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where ra.consid_final = :consid_final{0}",
                                                               comando.AdicionarNotIn("and", "ra.id", DbType.Int32, consideracaoFinal.Anexos.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in consideracaoFinal.Anexos)
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
							update {0}tab_fisc_consid_final_arq t
							   set t.arquivo   = :arquivo,
								   t.ordem     = :ordem,
								   t.descricao = :descricao,
								   t.tid       = :tid
							 where t.id = :id"                            , EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
							insert into {0}tab_fisc_consid_final_arq a
							  (id, 
							   consid_final, 
							   arquivo, 
							   ordem, 
							   descricao, 
							   tid)
							values
							  ({0}seq_fisc_consid_final_arq.nextval,
							   :consid_final,
							   :arquivo,
							   :ordem,
							   :descricao,
							   :tid)"                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("arquivo", item.Arquivo.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("ordem", item.Ordem, DbType.Int32);
                    comando.AdicionarParametroEntrada("descricao", DbType.String, 100, item.Descricao);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                #region Anexos IUF

                comando = bancoDeDados.CriarComando("delete from {0}tab_fisc_consid_final_iuf ra ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where ra.consid_final = :consid_final{0}",
                                                               comando.AdicionarNotIn("and", "ra.id", DbType.Int32, consideracaoFinal.AnexosIUF.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in consideracaoFinal.AnexosIUF)
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
							update {0}tab_fisc_consid_final_iuf t
							   set t.arquivo   = :arquivo,
								   t.ordem     = :ordem,
								   t.descricao = :descricao,
								   t.tid       = :tid
							 where t.id = :id"                            , EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
							insert into {0}tab_fisc_consid_final_iuf a
							  (id, 
							   consid_final, 
							   arquivo, 
							   ordem, 
							   descricao, 
							   tid)
							values
							  ({0}seq_fisc_consid_final_iuf.nextval,
							   :consid_final,
							   :arquivo,
							   :ordem,
							   :descricao,
							   :tid)"                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("consid_final", consideracaoFinal.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("arquivo", item.Arquivo.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("ordem", item.Ordem, DbType.Int32);
                    comando.AdicionarParametroEntrada("descricao", DbType.String, 100, item.Descricao);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                Historico.Gerar(consideracaoFinal.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, eHistoricoAcao.atualizar, bancoDeDados);

                Consulta.Gerar(consideracaoFinal.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
Ejemplo n.º 9
0
        internal void Arquivar(Tramitacao tramitacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Enviar processos/documentos

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao a (id, protocolo, tipo, objetivo, situacao, despacho,
				executor, remetente, remetente_setor, destinatario_setor, tid, data_envio) values ({0}seq_tramitacao.nextval, :protocolo, :tipo, :objetivo, 
				:situacao, :despacho, :executor, :remetente, :remetente_setor, :destinatario_setor, :tid, sysdate) returning a.id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("protocolo", tramitacao.Protocolo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tipo", tramitacao.Tipo, DbType.Int32);
                comando.AdicionarParametroEntrada("objetivo", tramitacao.Objetivo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao", tramitacao.SituacaoId, DbType.Int32);
                comando.AdicionarParametroEntClob("despacho", tramitacao.Despacho);
                comando.AdicionarParametroEntrada("executor", tramitacao.Executor.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("remetente", tramitacao.Remetente.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("remetente_setor", tramitacao.RemetenteSetor.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("destinatario_setor", tramitacao.DestinatarioSetor.Id > 0 ? (int?)tramitacao.DestinatarioSetor.Id : null, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                int id = Convert.ToInt32(comando.ObterValorParametro("id"));

                #region Arquivar

                comando = bancoDeDados.CriarComando(@"insert into {0}tab_tramitacao_arquivar(id, tramitacao, arquivo, estante, prateleira, tid)
				values ({0}seq_tramitacao_arquivar.nextval, :tramitacao, :arquivo, :estante, :prateleira, :tid)"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("tramitacao", id, DbType.Int32);
                comando.AdicionarParametroEntrada("arquivo", tramitacao.Arquivamento.ArquivoId, DbType.Int32);
                comando.AdicionarParametroEntrada("estante", tramitacao.Arquivamento.EstanteId, DbType.Int32);
                comando.AdicionarParametroEntrada("prateleira", tramitacao.Arquivamento.PrateleiraId, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Atualizar Posse
                comando = bancoDeDados.CriarComandoPlSql(@"begin 
					update {0}tab_protocolo p set p.setor = null, p.emposse = null where p.id = :protocolo; 
					update {0}lst_protocolo p set p.setor_id = null, p.emposse_id = null where p.protocolo_id = :protocolo; 
				end;"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("protocolo", tramitacao.Protocolo.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);
                #endregion

                #endregion

                #region Histórico

                Historico.Gerar(id, eHistoricoArtefato.tramitacao, eHistoricoAcao.arquivar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
Ejemplo n.º 10
0
        internal Acompanhamento Criar(Acompanhamento acompanhamento, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Acompanhamento da Fiscalização

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into tab_acompanhamento_fisc(id, fiscalizacao, numero_sufixo, data_vistoria, situacao, data_situacao, 
				agente_fiscal, setor, area_total, area_florestal_nativa, reserva_legal, possui_area_embargada, opniao_area_embargo, ativ_area_embargada, atviv_area_embargada_especific, uso_area_solo, 
				caract_solo_area_danificada, declividade_media_area, infr_resultou_erosao, infr_resultou_erosao_especific, houve_apreensao_material, opniao_destin_material_apreend, 
				houve_desrespeito_tad, houve_desrespeito_tad_especifi, informacoes_relevante_processo, neces_repar_dano_amb, neces_repar_dano_amb_especific, 
				firmou_termo_comprom, firmou_termo_comprom_especific, arquivo_termo, tid) 
				values (seq_tab_acompanhamento_fisc.nextval, :fiscalizacao, :numero_sufixo, :data_vistoria, 1, :data_situacao, :agente_fiscal, :setor, 
				:area_total, :area_florestal_nativa, :reserva_legal, :possui_area_embargada, :opniao_area_embargo, :ativ_area_embargada, :atviv_area_embargada_especific, :uso_area_solo, 
				:caract_solo_area_danificada, :declividade_media_area, :infr_resultou_erosao, :infr_resultou_erosao_especific, :houve_apreensao_material, :opniao_destin_material_apreend, 
				:houve_desrespeito_tad, :houve_desrespeito_tad_especifi, :informacoes_relevante_processo, :neces_repar_dano_amb, :neces_repar_dano_amb_especific, 
				:firmou_termo_comprom, :firmou_termo_comprom_especific, :arquivo_termo, :tid) returning id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("fiscalizacao", acompanhamento.FiscalizacaoId, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_sufixo", acompanhamento.NumeroSufixo, DbType.String);
                comando.AdicionarParametroEntrada("data_vistoria", acompanhamento.DataVistoria.DataTexto, DbType.Date);
                comando.AdicionarParametroEntrada("data_situacao", acompanhamento.DataVistoria.DataTexto, DbType.Date);
                comando.AdicionarParametroEntrada("agente_fiscal", acompanhamento.AgenteId, DbType.Int32);
                comando.AdicionarParametroEntrada("setor", acompanhamento.SetorId, DbType.Int32);
                comando.AdicionarParametroEntrada("area_total", acompanhamento.AreaTotal, DbType.Decimal);
                comando.AdicionarParametroEntrada("area_florestal_nativa", acompanhamento.AreaFlorestalNativa, DbType.Decimal);
                comando.AdicionarParametroEntrada("reserva_legal", acompanhamento.ReservalegalTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("possui_area_embargada", acompanhamento.PossuiAreaEmbargadaOuAtividadeInterditada.HasValue ? Convert.ToInt32(acompanhamento.PossuiAreaEmbargadaOuAtividadeInterditada.Value): (Object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("opniao_area_embargo", acompanhamento.OpniaoAreaEmbargo, DbType.String);
                comando.AdicionarParametroEntrada("ativ_area_embargada", acompanhamento.AtividadeAreaEmbargada, DbType.Int32);
                comando.AdicionarParametroEntrada("atviv_area_embargada_especific", acompanhamento.AtividadeAreaEmbargadaEspecificarTexto, DbType.String);
                comando.AdicionarParametroEntrada("uso_area_solo", acompanhamento.UsoAreaSoloDescricao, DbType.String);
                comando.AdicionarParametroEntrada("caract_solo_area_danificada", acompanhamento.CaracteristicaSoloAreaDanificada, DbType.Int32);
                comando.AdicionarParametroEntrada("declividade_media_area", acompanhamento.AreaDeclividadeMedia, DbType.Decimal);
                comando.AdicionarParametroEntrada("infr_resultou_erosao", acompanhamento.InfracaoResultouErosao, DbType.Int32);
                comando.AdicionarParametroEntrada("infr_resultou_erosao_especific", acompanhamento.InfracaoResultouErosaoEspecificar, DbType.String);
                comando.AdicionarParametroEntrada("houve_apreensao_material", acompanhamento.HouveApreensaoMaterial.HasValue ? Convert.ToInt32(acompanhamento.HouveApreensaoMaterial.Value) : (Object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("opniao_destin_material_apreend", acompanhamento.OpniaoDestMaterialApreend, DbType.String);
                comando.AdicionarParametroEntrada("houve_desrespeito_tad", acompanhamento.HouveDesrespeitoTAD, DbType.Int32);
                comando.AdicionarParametroEntrada("houve_desrespeito_tad_especifi", acompanhamento.HouveDesrespeitoTADEspecificar, DbType.String);
                comando.AdicionarParametroEntClob("informacoes_relevante_processo", acompanhamento.InformacoesRelevanteProcesso);
                comando.AdicionarParametroEntrada("neces_repar_dano_amb", acompanhamento.RepararDanoAmbiental, DbType.Int32);
                comando.AdicionarParametroEntrada("neces_repar_dano_amb_especific", acompanhamento.RepararDanoAmbientalEspecificar, DbType.String);
                comando.AdicionarParametroEntrada("firmou_termo_comprom", acompanhamento.FirmouTermoRepararDanoAmbiental, DbType.Int32);
                comando.AdicionarParametroEntrada("firmou_termo_comprom_especific", acompanhamento.FirmouTermoRepararDanoAmbientalEspecificar, DbType.String);
                comando.AdicionarParametroEntrada("arquivo_termo", (acompanhamento.Arquivo ?? new Arquivo()).Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);
                acompanhamento.Id = Convert.ToInt32(comando.ObterValorParametro("id"));

                #endregion Acompanhamento da Fiscalização

                #region Assinantes

                foreach (var item in acompanhamento.Assinantes)
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}tab_acomp_fisc_assinante(id, acompanhamento, funcionario, cargo, tid)
					values ({0}seq_tab_acomp_fisc_assinante.nextval, :acompanhamento, :funcionario, :cargo, :tid)"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("acompanhamento", acompanhamento.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("funcionario", item.FuncionarioId, DbType.Int32);
                    comando.AdicionarParametroEntrada("cargo", item.FuncionarioCargoId, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion Assinantes

                #region Anexos

                foreach (var item in acompanhamento.Anexos)
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}tab_acomp_fisc_arquivo a (id, acompanhamento, arquivo, ordem, descricao, tid) 
					values ({0}seq_tab_acomp_fisc_arquivo.nextval, :acompanhamento, :arquivo, :ordem, :descricao, :tid)"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("acompanhamento", acompanhamento.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("arquivo", item.Arquivo.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("ordem", item.Ordem, DbType.Int32);
                    comando.AdicionarParametroEntrada("descricao", DbType.String, 100, item.Descricao);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion Anexos

                Historico.Gerar(acompanhamento.Id, eHistoricoArtefato.acompanhamento, eHistoricoAcao.criar, bancoDeDados);

                bancoDeDados.Commit();
            }

            return(acompanhamento);
        }
Ejemplo n.º 11
0
        internal Acompanhamento Editar(Acompanhamento acompanhamento, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Acompanhamento da Fiscalização

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update tab_acompanhamento_fisc a set a.data_vistoria = :data_vistoria, a.agente_fiscal = :agente_fiscal, 
				a.setor = :setor, a.area_total = :area_total, a.area_florestal_nativa = :area_florestal_nativa, a.reserva_legal = :reserva_legal,  a.possui_area_embargada = :possui_area_embargada,
				a.opniao_area_embargo = :opniao_area_embargo, a.ativ_area_embargada = :ativ_area_embargada, a.atviv_area_embargada_especific = :atviv_area_embargada_especific, 
				a.uso_area_solo = :uso_area_solo, a.caract_solo_area_danificada = :caract_solo_area_danificada, a.declividade_media_area = :declividade_media_area, 
				a.infr_resultou_erosao = :infr_resultou_erosao, a.infr_resultou_erosao_especific = :infr_resultou_erosao_especific,  a.houve_apreensao_material = :houve_apreensao_material,
				a.opniao_destin_material_apreend = :opniao_destin_material_apreend, a.houve_desrespeito_tad = :houve_desrespeito_tad, 
				a.houve_desrespeito_tad_especifi = :houve_desrespeito_tad_especifi, a.informacoes_relevante_processo = :informacoes_relevante_processo, 
				a.neces_repar_dano_amb = :neces_repar_dano_amb, a.neces_repar_dano_amb_especific = :neces_repar_dano_amb_especific, a.firmou_termo_comprom = :firmou_termo_comprom, 
				a.firmou_termo_comprom_especific = :firmou_termo_comprom_especific, a.arquivo_termo = :arquivo_termo, a.tid = :tid where a.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("data_vistoria", acompanhamento.DataVistoria.DataTexto, DbType.Date);
                comando.AdicionarParametroEntrada("agente_fiscal", acompanhamento.AgenteId, DbType.Int32);
                comando.AdicionarParametroEntrada("setor", acompanhamento.SetorId, DbType.Int32);
                comando.AdicionarParametroEntrada("area_total", acompanhamento.AreaTotal, DbType.Decimal);
                comando.AdicionarParametroEntrada("area_florestal_nativa", acompanhamento.AreaFlorestalNativa, DbType.Decimal);
                comando.AdicionarParametroEntrada("reserva_legal", acompanhamento.ReservalegalTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("possui_area_embargada", acompanhamento.PossuiAreaEmbargadaOuAtividadeInterditada.HasValue ? Convert.ToInt32(acompanhamento.PossuiAreaEmbargadaOuAtividadeInterditada.Value) : (Object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("opniao_area_embargo", acompanhamento.OpniaoAreaEmbargo, DbType.String);
                comando.AdicionarParametroEntrada("ativ_area_embargada", acompanhamento.AtividadeAreaEmbargada, DbType.Int32);
                comando.AdicionarParametroEntrada("atviv_area_embargada_especific", acompanhamento.AtividadeAreaEmbargadaEspecificarTexto, DbType.String);
                comando.AdicionarParametroEntrada("uso_area_solo", acompanhamento.UsoAreaSoloDescricao, DbType.String);
                comando.AdicionarParametroEntrada("caract_solo_area_danificada", acompanhamento.CaracteristicaSoloAreaDanificada, DbType.Int32);
                comando.AdicionarParametroEntrada("declividade_media_area", acompanhamento.AreaDeclividadeMedia, DbType.Decimal);
                comando.AdicionarParametroEntrada("infr_resultou_erosao", acompanhamento.InfracaoResultouErosao, DbType.Int32);
                comando.AdicionarParametroEntrada("infr_resultou_erosao_especific", acompanhamento.InfracaoResultouErosaoEspecificar, DbType.String);
                comando.AdicionarParametroEntrada("houve_apreensao_material", acompanhamento.HouveApreensaoMaterial.HasValue ? Convert.ToInt32(acompanhamento.HouveApreensaoMaterial.Value) : (Object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("opniao_destin_material_apreend", acompanhamento.OpniaoDestMaterialApreend, DbType.String);
                comando.AdicionarParametroEntrada("houve_desrespeito_tad", acompanhamento.HouveDesrespeitoTAD, DbType.Int32);
                comando.AdicionarParametroEntrada("houve_desrespeito_tad_especifi", acompanhamento.HouveDesrespeitoTADEspecificar, DbType.String);
                comando.AdicionarParametroEntClob("informacoes_relevante_processo", acompanhamento.InformacoesRelevanteProcesso);
                comando.AdicionarParametroEntrada("neces_repar_dano_amb", acompanhamento.RepararDanoAmbiental, DbType.Int32);
                comando.AdicionarParametroEntrada("neces_repar_dano_amb_especific", acompanhamento.RepararDanoAmbientalEspecificar, DbType.String);
                comando.AdicionarParametroEntrada("firmou_termo_comprom", acompanhamento.FirmouTermoRepararDanoAmbiental, DbType.Int32);
                comando.AdicionarParametroEntrada("firmou_termo_comprom_especific", acompanhamento.FirmouTermoRepararDanoAmbientalEspecificar, DbType.String);
                comando.AdicionarParametroEntrada("arquivo_termo", (acompanhamento.Arquivo ?? new Arquivo()).Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("id", acompanhamento.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion Acompanhamento da Fiscalização

                #region Limpar Dados

                comando = bancoDeDados.CriarComando("delete from {0}tab_acomp_fisc_assinante a ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where a.acompanhamento = :acompanhamento{0}",
                                                               comando.AdicionarNotIn("and", "a.id", DbType.Int32, acompanhamento.Assinantes.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("acompanhamento", acompanhamento.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                comando = bancoDeDados.CriarComando("delete from {0}tab_acomp_fisc_arquivo a ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where a.acompanhamento = :acompanhamento{0}",
                                                               comando.AdicionarNotIn("and", "a.id", DbType.Int32, acompanhamento.Anexos.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("acompanhamento", acompanhamento.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion Limpar Dados

                #region Assinantes

                foreach (var item in acompanhamento.Assinantes)
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}tab_acomp_fisc_assinante t 
						set t.funcionario = :funcionario, t.cargo = :cargo, t.tid = :tid where t.id = :id"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}tab_acomp_fisc_assinante(id, acompanhamento, funcionario, cargo, tid)
						values ({0}seq_tab_acomp_fisc_assinante.nextval, :acompanhamento, :funcionario, :cargo, :tid)"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("acompanhamento", acompanhamento.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("funcionario", item.FuncionarioId, DbType.Int32);
                    comando.AdicionarParametroEntrada("cargo", item.FuncionarioCargoId, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion Assinantes

                #region Anexos

                foreach (var item in acompanhamento.Anexos)
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}tab_acomp_fisc_arquivo t 
						set t.arquivo = :arquivo, t.ordem = :ordem, t.descricao = :descricao, t.tid = :tid where t.id = :id"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}tab_acomp_fisc_arquivo a (id, acompanhamento,  arquivo, ordem, descricao, tid) 
						values ({0}seq_tab_acomp_fisc_arquivo.nextval, :acompanhamento, :arquivo, :ordem, :descricao,:tid)"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("acompanhamento", acompanhamento.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("arquivo", item.Arquivo.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("ordem", item.Ordem, DbType.Int32);
                    comando.AdicionarParametroEntrada("descricao", DbType.String, 100, item.Descricao);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion Anexos

                Historico.Gerar(acompanhamento.Id, eHistoricoArtefato.acompanhamento, eHistoricoAcao.atualizar, bancoDeDados);

                bancoDeDados.Commit();
            }

            return(acompanhamento);
        }
Ejemplo n.º 12
0
        internal void Criar(AnaliseItem analise, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Análise de itens de processo/documento

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_analise a (id, protocolo, checagem, situacao, tid) 
				values ({0}seq_analise.nextval, :protocolo, :checagem, :situacao, :tid) returning a.id into :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("protocolo", analise.Protocolo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("checagem", analise.Checagem.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao", 1, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                analise.Id = Convert.ToInt32(comando.ObterValorParametro("id"));

                #endregion

                #region Roteiros

                if (analise.Roteiros != null && analise.Roteiros.Count > 0)
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}tab_analise_roteiro tc (id, analise, roteiro, roteiro_tid, tid) 
					values ({0}seq_analise_roteiro.nextval, :analise, :roteiro, :roteiro_tid, :tid) returning tc.id into :id"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("analise", analise.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("roteiro", DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    comando.AdicionarParametroSaida("id", DbType.Int32);

                    foreach (Roteiro item in analise.Roteiros)
                    {
                        comando.SetarValorParametro("roteiro", item.Id);
                        comando.AdicionarParametroEntrada("roteiro_tid", DbType.String, 36, item.Tid);
                        bancoDeDados.ExecutarNonQuery(comando);
                        item.IdRelacionamento = Convert.ToInt32(comando.ObterValorParametro("id"));
                    }
                }

                #endregion

                #region Itens

                if (analise.Itens != null && analise.Itens.Count > 0)
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}tab_analise_itens c 
					(id, analise, checagem, item_id, item_tid, descricao, motivo, situacao, tid, avulso, setor) 
					values 
					({0}seq_analise_itens.nextval, :analise, :checagem, :item_id, :item_tid, :descricao, :motivo, :situacao, :tid, :avulso, :setor) 
					returning c.id into :id"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("analise", analise.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("checagem", analise.Checagem.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("item_id", DbType.Int32);
                    comando.AdicionarParametroEntrada("item_tid", DbType.String, 36);
                    comando.AdicionarParametroEntrada("descricao", DbType.String, 500);
                    comando.AdicionarParametroEntrada("motivo", DbType.String);
                    comando.AdicionarParametroEntrada("situacao", DbType.Int32);
                    comando.AdicionarParametroEntrada("setor", DbType.Int32);
                    comando.AdicionarParametroEntrada("avulso", DbType.Int32);

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

                    foreach (Item item in analise.Itens)
                    {
                        comando.SetarValorParametro("item_id", item.Id);
                        comando.SetarValorParametro("item_tid", item.Tid);
                        comando.SetarValorParametro("descricao", item.Descricao);
                        comando.AdicionarParametroEntClob("motivo", item.Motivo);
                        comando.SetarValorParametro("situacao", item.Situacao);
                        comando.SetarValorParametro("setor", item.SetorId);
                        comando.SetarValorParametro("avulso", item.Avulso ? 1 : 0);

                        bancoDeDados.ExecutarNonQuery(comando);
                        item.IdRelacionamento = Convert.ToInt32(comando.ObterValorParametro("id"));
                    }
                }

                #endregion

                #region Histórico

                Historico.Gerar(analise.Id, eHistoricoArtefato.analiseitens, eHistoricoAcao.analisar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
Ejemplo n.º 13
0
        internal void Editar(AnaliseItem analise, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Análise de itens de processo/documento

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update {0}tab_analise a set a.protocolo = :protocolo, 
				a.checagem = :checagem, a.situacao = :situacao, a.atualizado = :atualizado, a.tid = :tid where a.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", analise.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("protocolo", analise.Protocolo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("checagem", analise.Checagem.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("situacao", analise.Situacao, DbType.Int32);
                comando.AdicionarParametroEntrada("atualizado", analise.Atualizado ? 1 : 0, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Limpar os dados do banco

                //Itens da analise

                comando = bancoDeDados.CriarComando("delete from {0}tab_analise_itens c ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where c.analise = :analise{0}",
                                                               comando.AdicionarNotIn("and", "c.id", DbType.Int32, analise.Itens.Select(x => x.IdRelacionamento).ToList()), EsquemaBanco);
                comando.AdicionarParametroEntrada("analise", analise.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Roteiros

                if (analise.Roteiros != null && analise.Roteiros.Count > 0)
                {
                    foreach (Roteiro roteiro in analise.Roteiros)
                    {
                        if (roteiro.IdRelacionamento > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}tab_analise_roteiro c set c.analise  = :analise, c.roteiro = :roteiro, 
							c.roteiro_tid = :roteiro_tid, c.tid = :tid where c.id = :id"                            , EsquemaBanco);
                            comando.AdicionarParametroEntrada("id", roteiro.IdRelacionamento, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into {0}tab_analise_roteiro(id, analise, roteiro, roteiro_tid, tid) 
							values (seq_analise_roteiro.nextval, :analise, :roteiro, :roteiro_tid, :tid)"                            , EsquemaBanco);
                        }

                        comando.AdicionarParametroEntrada("analise", analise.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("roteiro", roteiro.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("roteiro_tid", DbType.String, 36, roteiro.Tid);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);
                    }
                }

                #endregion

                #region Itens

                if (analise.Itens != null && analise.Itens.Count > 0)
                {
                    foreach (Item item in analise.Itens)
                    {
                        if (item.IdRelacionamento > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}tab_analise_itens c set c.analise = :analise, c.checagem = :checagem, c.data_analise = :data_analise,
							c.item_id = :item_id, c.item_tid = :item_tid, c.descricao = :descricao, c.motivo = :motivo, c.situacao = :situacao, c.setor = :setor, c.avulso = :avulso, c.tid = :tid, c.analista = :analista, c.recebido = :recebido
							where c.id = :id"                            , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", item.IdRelacionamento, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into {0}tab_analise_itens c (id, analise, checagem, item_id, item_tid, descricao, motivo, situacao, setor, avulso, tid, data_analise, analista, recebido) 
							values ({0}seq_analise_itens.nextval, :analise, :checagem, :item_id, :item_tid, :descricao, :motivo, :situacao, :setor, :avulso, :tid, :data_analise, :analista, :recebido) returning id into :id"                            , EsquemaBanco);

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

                        comando.AdicionarParametroEntrada("analise", analise.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("checagem", analise.Checagem.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("item_id", item.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("item_tid", DbType.String, 36, item.Tid);

                        if (String.IsNullOrEmpty(item.DataAnalise))
                        {
                            comando.AdicionarParametroEntrada("data_analise", DBNull.Value, DbType.DateTime);
                        }
                        else
                        {
                            comando.AdicionarParametroEntrada("data_analise", Convert.ToDateTime(item.DataAnalise), DbType.DateTime);
                        }

                        comando.AdicionarParametroEntrada("descricao", DbType.String, 500, item.Descricao);
                        comando.AdicionarParametroEntClob("motivo", item.Motivo);
                        comando.AdicionarParametroEntrada("situacao", item.Situacao, DbType.Int32);
                        comando.AdicionarParametroEntrada("setor", item.SetorId, DbType.Int32);
                        comando.AdicionarParametroEntrada("avulso", item.Avulso ? 1 : 0, DbType.Int32);
                        comando.AdicionarParametroEntrada("analista", item.Analista, DbType.String);
                        comando.AdicionarParametroEntrada("recebido", item.Recebido, DbType.Boolean);

                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #region Histórico

                Historico.Gerar(analise.Id, eHistoricoArtefato.analiseitens, eHistoricoAcao.analisar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
        public MaterialApreendido Criar(MaterialApreendido materialApreendido, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Apreensão

                Comando comando = bancoDeDados.CriarComando(@"
                                   insert into tab_fisc_apreensao (id,
                                                            fiscalizacao,
                                                            iuf_digital,
                                                            iuf_numero,
                                                            iuf_data,
                                                            numero_lacres,
                                                            arquivo,
                                                            serie,
                                                            descricao,
                                                            valor_produtos,
                                                            valor_produtos_reais,
                                                            depositario,
                                                            endereco_logradouro,
                                                            endereco_bairro,
                                                            endereco_distrito,
                                                            endereco_estado,
                                                            endereco_municipio,
                                                            opiniao,
                                                            tid)
                                   values (seq_tab_fisc_apreensao.nextval, 
                                          :fiscalizacao,
                                          :eh_digital,
                                          :iuf_numero,
                                          :iuf_data,
                                          :numero_lacres,
                                          :arquivo,
                                          :serie,
                                          :descricao,
                                          :valor_produtos,
                                          :valor_produtos_reais,
                                          :depositario,
                                          :endereco_logradouro,
                                          :endereco_bairro, 
                                          :endereco_distrito,
                                          :endereco_estado,
                                          :endereco_municipio,
                                          :opiniao,
                                          :tid) returning id into :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("fiscalizacao", materialApreendido.FiscalizacaoId, DbType.Int32);
                comando.AdicionarParametroEntrada("eh_digital", materialApreendido.IsDigital, DbType.Boolean);
                comando.AdicionarParametroEntrada("iuf_numero", materialApreendido.NumeroIUF, DbType.String);
                comando.AdicionarParametroEntrada("numero_lacres", materialApreendido.NumeroLacre, DbType.String);
                comando.AdicionarParametroEntrada("serie", materialApreendido.SerieId, DbType.Int32);
                materialApreendido.Depositario.Id = materialApreendido.Depositario.Id == 0 ? null : materialApreendido.Depositario.Id;
                comando.AdicionarParametroEntrada("depositario", materialApreendido.Depositario.Id, DbType.Int32);
                materialApreendido.Depositario.Estado = materialApreendido.Depositario.Estado == 0 ? null : materialApreendido.Depositario.Estado;
                comando.AdicionarParametroEntrada("endereco_estado", materialApreendido.Depositario.Estado, DbType.Int32);
                materialApreendido.Depositario.Municipio = materialApreendido.Depositario.Municipio == 0 ? null : materialApreendido.Depositario.Municipio;
                comando.AdicionarParametroEntrada("endereco_municipio", materialApreendido.Depositario.Municipio, DbType.Int32);
                comando.AdicionarParametroEntrada("valor_produtos", materialApreendido.ValorProdutosExtenso, DbType.String);
                comando.AdicionarParametroEntrada("valor_produtos_reais", materialApreendido.ValorProdutosReais, DbType.Decimal);
                comando.AdicionarParametroEntClob("opiniao", materialApreendido.Opiniao);
                comando.AdicionarParametroEntrada("descricao", materialApreendido.Descricao, DbType.String);
                comando.AdicionarParametroEntrada("endereco_logradouro", materialApreendido.Depositario.Logradouro, DbType.String);
                comando.AdicionarParametroEntrada("endereco_bairro", materialApreendido.Depositario.Bairro, DbType.String);
                comando.AdicionarParametroEntrada("endereco_distrito", materialApreendido.Depositario.Distrito, DbType.String);

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

                if (materialApreendido.Arquivo == null)
                {
                    comando.AdicionarParametroEntrada("arquivo", DBNull.Value, DbType.Int32);
                }
                else
                {
                    comando.AdicionarParametroEntrada("arquivo", materialApreendido.Arquivo.Id, DbType.Int32);
                }

                if (materialApreendido.DataLavratura.IsEmpty)
                {
                    comando.AdicionarParametroEntrada("iuf_data", DBNull.Value, DbType.Date);
                }
                else
                {
                    comando.AdicionarParametroEntrada("iuf_data", materialApreendido.DataLavratura.Data.Value, DbType.Date);
                }

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                materialApreendido.Id = Convert.ToInt32(comando.ObterValorParametro("id"));

                #region Produtos

                comando = bancoDeDados.CriarComando(@"
                           insert into tab_fisc_apreensao_produto (id,
                                                            apreensao,
                                                            produto,
                                                            quantidade,
                                                            destinacao,
                                                            tid)
                           values (seq_tab_fisc_apreensao_produto.nextval,
                                   :apreensao,
                                   :produto,
                                   :quantidade,
                                   :destinacao,
                                   :tid) ", EsquemaBanco);

                comando.AdicionarParametroEntrada("apreensao", materialApreendido.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("produto", DbType.Int32);
                comando.AdicionarParametroEntrada("quantidade", DbType.Int32);
                comando.AdicionarParametroEntrada("destinacao", DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                foreach (ApreensaoProdutoApreendido produto in materialApreendido.ProdutosApreendidos)
                {
                    comando.SetarValorParametro("produto", produto.ProdutoId);
                    comando.SetarValorParametro("quantidade", produto.Quantidade);
                    comando.SetarValorParametro("destinacao", produto.DestinoId);

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                Historico.Gerar(materialApreendido.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, eHistoricoAcao.atualizar, bancoDeDados);

                Consulta.Gerar(materialApreendido.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, bancoDeDados);

                bancoDeDados.Commit();
            }
            return(materialApreendido);
        }