Пример #1
0
        internal void Editar(SecagemMecanicaGraos caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Secagem Mecanica de Graos

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update crt_sec_mec_graos c set c.empreendimento = :empreendimento, c.atividade = :atividade, c.numero_secadores = :numero_secadores,
															c.geometria_coord_atv_x = :geometria_coord_atv_x, c.geometria_coord_atv_y = :geometria_coord_atv_y, c.geometria_id = :geometria_id, c.geometria_tipo = :geometria_tipo, c.tid = :tid
															where c.id = :id"                                                            , EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", caracterizacao.Atividade, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_secadores", caracterizacao.NumeroSecadores, DbType.Int32);
                comando.AdicionarParametroEntrada("geometria_id", caracterizacao.CoordenadaAtividade.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("geometria_tipo", caracterizacao.CoordenadaAtividade.Tipo, DbType.Int32);
                comando.AdicionarParametroEntrada("geometria_coord_atv_x", caracterizacao.CoordenadaAtividade.CoordX, DbType.Decimal);
                comando.AdicionarParametroEntrada("geometria_coord_atv_y", caracterizacao.CoordenadaAtividade.CoordY, DbType.Decimal);
                comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Limpar os dados do banco

                //Secadores
                comando = bancoDeDados.CriarComando(@"delete from {0}crt_sec_mec_graos_cap_sec c where c.caracterizacao = :caracterizacao", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.Secadores.Select(x => x.Id).ToList()));

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

                bancoDeDados.ExecutarNonQuery(comando);


                //Materias-Prima Florestal Consumida
                comando = bancoDeDados.CriarComando(@"delete from {0}crt_sec_mec_graos_mat_fl_c c where c.caracterizacao = :caracterizacao", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.MateriasPrimasFlorestais.Select(x => x.Id).ToList()));

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

                bancoDeDados.ExecutarNonQuery(comando);


                #endregion

                #region Secadores

                if (caracterizacao.Secadores != null && caracterizacao.Secadores.Count > 0)
                {
                    foreach (Secador item in caracterizacao.Secadores)
                    {
                        if (item.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}crt_sec_mec_graos_cap_sec c set c.caracterizacao = :caracterizacao,
																c.identificador = :identificador, c.capacidade = :capacidade, c.tid = :tid
																where c.id = :id"                                                                , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into {0}crt_sec_mec_graos_cap_sec c (id, caracterizacao, identificador, capacidade, tid)
																values (seq_crt_sec_mec_graos_cap_sec.nextval, :caracterizacao, :identificador, :capacidade, :tid )
																returning c.id into :id"                                                                , EsquemaBanco);

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

                        comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("identificador", item.Identificador, DbType.Int32);
                        comando.AdicionarParametroEntrada("capacidade", item.Capacidade, DbType.Decimal);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #region Materias-Prima Florestal Consumida

                if (caracterizacao.MateriasPrimasFlorestais != null && caracterizacao.MateriasPrimasFlorestais.Count > 0)
                {
                    foreach (MateriaPrima item in caracterizacao.MateriasPrimasFlorestais)
                    {
                        if (item.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}crt_sec_mec_graos_mat_fl_c c set c.caracterizacao = :caracterizacao,
																c.materia_prima_tipo = :materia_prima_tipo, c.unidade = :unidade, 
																c.quantidade =  :quantidade, c.tid = :tid where c.id = :id"                                                                , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@" insert into {0}crt_sec_mec_graos_mat_fl_c c (id, caracterizacao, materia_prima_tipo, unidade, quantidade, tid)
																values (seq_crt_sec_mec_graos_mat_fl_c.nextval, :caracterizacao, :materia_prima_tipo, :unidade, :quantidade, :tid )
																returning c.id into :id"                                                                , EsquemaBanco);

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

                        comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("materia_prima_tipo", item.MateriaPrimaConsumida, DbType.Int32);
                        comando.AdicionarParametroEntrada("unidade", item.Unidade, DbType.Int32);
                        comando.AdicionarParametroEntrada("quantidade", item.Quantidade, DbType.Decimal);

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

                        bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #region Histórico

                Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.secagemmecanicagraos, eHistoricoAcao.atualizar, bancoDeDados, null);

                #endregion

                bancoDeDados.Commit();
            }
        }
Пример #2
0
        internal void Editar(PTVOutro PTV, BancoDeDados banco)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();
                Comando comando = null;

                #region Update

                comando = bancoDeDados.CriarComando(@"
				    update tab_ptv_outrouf set
					tid=:tid,
					numero=:numero,
					data_emissao=:data_emissao,
					data_ativacao=:data_ativacao,
					data_cancelamento=:data_cancelamento,
					situacao=:situacao,
					interessado=:interessado,
					interessado_cnpj_cpf=:interessado_cnpj_cpf,
					interessado_endereco=:interessado_endereco,
					interessado_estado=:interessado_estado,
                    interessado_municipio=:interessado_municipio,
					destinatario=:destinatario,
					valido_ate=:valido_ate,
					resp_tecnico=:resp_tecnico,
					resp_tecnico_num_hab=:resp_tecnico_num_hab,
					estado=:estado,
					municipio=:municipio,
					credenciado=:credenciado,
                    declaracao_adicional=:declaracao_adicional,
                    declaracao_adicional_formatado=:declaracao_adicional_formatado
			        where id=:id"            , Esquema);

                comando.AdicionarParametroEntrada("id", PTV.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("numero", PTV.Numero > 0 ? PTV.Numero : (object)DBNull.Value, DbType.Int64);
                comando.AdicionarParametroEntrada("data_emissao", PTV.DataEmissao.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("data_ativacao", PTV.DataAtivacao.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("data_cancelamento", PTV.DataCancelamento.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("situacao", PTV.Situacao, DbType.Int32);
                comando.AdicionarParametroEntrada("interessado", DbType.String, 120, PTV.Interessado);
                comando.AdicionarParametroEntrada("interessado_cnpj_cpf", DbType.String, 20, PTV.InteressadoCnpjCpf);
                comando.AdicionarParametroEntrada("interessado_endereco", DbType.String, 200, PTV.InteressadoEndereco);
                comando.AdicionarParametroEntrada("interessado_estado", PTV.InteressadoEstadoId, DbType.Int32);
                comando.AdicionarParametroEntrada("interessado_municipio", PTV.InteressadoMunicipioId, DbType.Int32);
                comando.AdicionarParametroEntrada("destinatario", PTV.DestinatarioID, DbType.Int32);
                comando.AdicionarParametroEntrada("valido_ate", PTV.ValidoAte.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("resp_tecnico", DbType.String, 120, PTV.RespTecnico);
                comando.AdicionarParametroEntrada("resp_tecnico_num_hab", DbType.String, 8, PTV.RespTecnicoNumHab);
                comando.AdicionarParametroEntrada("estado", PTV.Estado, DbType.Int32);
                comando.AdicionarParametroEntrada("municipio", PTV.Municipio, DbType.Int32);
                comando.AdicionarParametroEntrada("credenciado", PTV.CredenciadoId, DbType.Int32);
                comando.AdicionarParametroEntrada("declaracao_adicional", PTV.DeclaracaoAdicional, DbType.String);
                comando.AdicionarParametroEntrada("declaracao_adicional_formatado", PTV.DeclaracaoAdicional, DbType.String);


                bancoDeDados.ExecutarNonQuery(comando);
                #endregion

                #region Limpar Dados

                comando = bancoDeDados.CriarComando(@"delete from tab_ptv_outrouf_produto ", UsuarioCredenciado);
                comando.DbCommand.CommandText += String.Format("where ptv = :ptv {0}",
                                                               comando.AdicionarNotIn("and", "id", DbType.Int32, PTV.Produtos.Select(p => p.Id).ToList()));
                comando.AdicionarParametroEntrada("ptv", PTV.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                comando = bancoDeDados.CriarComando(@"delete from tab_ptv_outro_arquivo ", UsuarioCredenciado);
                comando.DbCommand.CommandText += String.Format("where ptv = :ptv {0}",
                                                               comando.AdicionarNotIn("and", "id", DbType.Int32, PTV.Anexos.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("ptv", PTV.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);


                comando = bancoDeDados.CriarComando(@"delete from tab_ptv_outrouf_declaracao ", UsuarioCredenciado);
                comando.DbCommand.CommandText += "where ptv = :ptv";
                comando.AdicionarParametroEntrada("ptv", PTV.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Produto PTV
                //
                //
                PTV.Produtos.ForEach(item =>
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
						update tab_ptv_outrouf_produto set tid = :tid, ptv = :ptv, origem_tipo = :origem_tipo, numero_origem = :numero_origem, 
						cultura = :cultura,cultivar = :cultivar, quantidade = :quantidade, unidade_medida = :unidade_medida where id = :id"                        , UsuarioCredenciado);

                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("ptv", item.PTV, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into tab_ptv_outrouf_produto(id, tid, ptv, origem_tipo, numero_origem, cultura, cultivar, quantidade, unidade_medida)
						values(seq_tab_ptv_outrouf_prod.nextval,:tid,:ptv,:origem_tipo,:numero_origem,:cultura,:cultivar,:quantidade,:unidade_medida)"                        , UsuarioCredenciado);

                        comando.AdicionarParametroEntrada("ptv", PTV.Id, DbType.Int32);
                    }
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    comando.AdicionarParametroEntrada("origem_tipo", item.OrigemTipo, DbType.Int32);
                    comando.AdicionarParametroEntrada("numero_origem", item.OrigemNumero, DbType.Int64);
                    comando.AdicionarParametroEntrada("cultura", item.Cultura, DbType.Int32);
                    comando.AdicionarParametroEntrada("cultivar", item.Cultivar, DbType.Int32);
                    comando.AdicionarParametroEntrada("quantidade", item.Quantidade, DbType.Decimal);
                    comando.AdicionarParametroEntrada("unidade_medida", item.UnidadeMedida, DbType.Int32);

                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                #region Declaracao PTV

                comando = bancoDeDados.CriarComando(@"
				insert into tab_ptv_outrouf_declaracao
					(id, tid, ptv, declaracao_adicional, cultivar, praga)
				values 
					(seq_tab_ptv_outrouf_declaracao.nextval, :tid, :ptv, :declaracao, :cultivar, :praga)"                    , Esquema);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("ptv", PTV.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("declaracao", DbType.Int32);
                comando.AdicionarParametroEntrada("cultivar", DbType.Int32);
                comando.AdicionarParametroEntrada("praga", DbType.Int32);

                PTV.Declaracoes.ForEach(item =>
                {
                    comando.SetarValorParametro("declaracao", item.IdDeclaracao);
                    comando.SetarValorParametro("cultivar", item.IdCultivar);
                    comando.SetarValorParametro("praga", item.IdPraga);

                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                #region Arquivos

                if (PTV.Anexos != null && PTV.Anexos.Count > 0)
                {
                    foreach (Anexo item in PTV.Anexos)
                    {
                        if (item.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update tab_ptv_outro_arquivo a set a.ptv = :ptv, a.arquivo = :arquivo, 
							a.ordem = :ordem, a.descricao = :descricao, a.tid = :tid where a.id = :id"                            , EsquemaBanco);
                            comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into tab_ptv_outro_arquivo a (id, ptv, arquivo, ordem, descricao, tid) 
							values ({0}seq_ptv_arquivo.nextval, :ptv, :arquivo, :ordem, :descricao, :tid)"                            , EsquemaBanco);
                        }

                        comando.AdicionarParametroEntrada("ptv", PTV.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(PTV.Id, eHistoricoArtefato.emitirptvoutro, eHistoricoAcao.atualizar, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
Пример #3
0
        private void Editar(UnidadeConsolidacao unidadeConsolidacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaCredenciadoBanco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update {0}crt_unidade_consolidacao set codigo_uc = :codigo_uc, 
				local_livro_disponivel = :local_livro_disponivel, tipo_apresentacao_produto = :tipo_apresentacao_produto, tid = :tid 
				where id = :id"                , EsquemaCredenciadoBanco);

                comando.AdicionarParametroEntrada("id", unidadeConsolidacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("codigo_uc", unidadeConsolidacao.CodigoUC, DbType.Int64);
                comando.AdicionarParametroEntrada("local_livro_disponivel", DbType.String, 100, unidadeConsolidacao.LocalLivroDisponivel);
                comando.AdicionarParametroEntrada("tipo_apresentacao_produto", DbType.String, 250, unidadeConsolidacao.TipoApresentacaoProducaoFormaIdentificacao);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #region Apagando dados

                //Responsáveis técnicos
                comando = bancoDeDados.CriarComando(@"delete from crt_unida_conso_resp_tec ", EsquemaCredenciadoBanco);
                comando.DbCommand.CommandText += String.Format("where unidade_consolidacao = :unidade_consolidacao {0}",
                                                               comando.AdicionarNotIn("and", "id", DbType.Int32, unidadeConsolidacao.ResponsaveisTecnicos.Select(x => x.IdRelacionamento).ToList()));

                comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                //Cultivares
                comando = bancoDeDados.CriarComando(@"delete from crt_unidade_cons_cultivar c", EsquemaCredenciadoBanco);
                comando.DbCommand.CommandText += String.Format(" where c.unidade_consolidacao = :unidade_consolidacao {0}",
                                                               comando.AdicionarNotIn("and", "c.id", DbType.Int32, unidadeConsolidacao.Cultivares.Select(x => x.IdRelacionamento).ToList()));

                comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Cultivares

                unidadeConsolidacao.Cultivares.ForEach(x =>
                {
                    if (x.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
						update crt_unidade_cons_cultivar set cultivar = :cultivar, capacidade_mes = :capacidade_mes, cultura =:cultura,
						unidade_medida = :unidade_medida, tid = :tid where id = :id_rel"                        , EsquemaCredenciadoBanco);
                        comando.AdicionarParametroEntrada("id_rel", x.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into crt_unidade_cons_cultivar (id, unidade_consolidacao, cultivar, capacidade_mes, unidade_medida, tid, cultura) values 
						(seq_crt_unidade_cons_cultivar.nextval, :unidade_consolidacao, :cultivar, :capacidade_mes, :unidade_medida, :tid, :cultura)"                        , EsquemaCredenciadoBanco);
                        comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("cultivar", x.Id < 1 ? (object)DBNull.Value : x.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("capacidade_mes", x.CapacidadeMes, DbType.Decimal);
                    comando.AdicionarParametroEntrada("unidade_medida", x.UnidadeMedida, DbType.Int32);
                    comando.AdicionarParametroEntrada("cultura", x.CulturaId, DbType.Int32);

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

                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                #region Responsáveis Técnicos

                unidadeConsolidacao.ResponsaveisTecnicos.ForEach(x =>
                {
                    if (x.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
						update crt_unida_conso_resp_tec set responsavel_tecnico =:responsavel_tecnico, numero_hab_cfo_cfoc =:numero_hab_cfo_cfoc, 
						numero_art = :numero_art, art_cargo_funcao = :art_cargo_funcao, data_validade_art = :data_validade_art, tid = :tid
						where id = :id_rel"                        , EsquemaCredenciadoBanco);
                        comando.AdicionarParametroEntrada("id_rel", x.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into crt_unida_conso_resp_tec 
						(id, unidade_consolidacao, responsavel_tecnico, numero_hab_cfo_cfoc, numero_art, art_cargo_funcao, data_validade_art, tid) values 
						(seq_crt_unida_conso_resp_tec.nextval, :unidade_consolidacao, :responsavel_tecnico, :numero_hab_cfo_cfoc, :numero_art, :art_cargo_funcao, :data_validade_art, :tid)"                        , EsquemaCredenciadoBanco);
                        comando.AdicionarParametroEntrada("unidade_consolidacao", unidadeConsolidacao.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("responsavel_tecnico", x.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("numero_hab_cfo_cfoc", x.CFONumero, DbType.String);
                    comando.AdicionarParametroEntrada("numero_art", x.NumeroArt, DbType.String);
                    comando.AdicionarParametroEntrada("art_cargo_funcao", x.ArtCargoFuncao, DbType.Int32);
                    comando.AdicionarParametroEntrada("data_validade_art", x.DataValidadeART, DbType.String);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                    bancoDeDados.ExecutarNonQuery(comando);
                });

                #endregion

                Historico.Gerar(unidadeConsolidacao.Id, eHistoricoArtefatoCaracterizacao.unidadeconsolidacao, eHistoricoAcao.atualizar, bancoDeDados, null);

                bancoDeDados.Commit();
            }
        }
Пример #4
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();
            }
        }
Пример #5
0
        private void Editar(HabilitacaoEmissaoPTV habilitacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"
				update tab_hab_emi_ptv set tid = :tid, situacao = :situacao, funcionario = :funcionario, arquivo = :arquivo, numero_habilitacao = :numero_habilitacao, rg = :rg, numero_matricula = :numero_matricula, 
				profissao = :profissao, orgao_classe = :orgao_classe, registro_orgao_classe = :registro_orgao_classe, uf_habilitacao = :uf_habilitacao, numero_visto_crea = :numero_visto_crea, 
				numero_crea = :numero_crea, telefone_comercial = :telefone_comercial, telefone_residencial = :telefone_residencial, telefone_celular = :telefone_celular, cep = :cep, logradouro = :logradouro, 
				bairro_gleba = :bairro_gleba, estado = :estado, municipio = :municipio, numero = :numero, distrito_localidade = :distrito_localidade, complemento = :complemento 
				where id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("situacao", habilitacao.SituacaoId, DbType.Int32);
                comando.AdicionarParametroEntrada("funcionario", habilitacao.Funcionario.Id > 0 ? habilitacao.Funcionario.Id : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("arquivo", habilitacao.Arquivo.Id > 0 ? habilitacao.Arquivo.Id : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_habilitacao", habilitacao.NumeroHabilitacao, DbType.String);
                comando.AdicionarParametroEntrada("rg", habilitacao.RG, DbType.String);
                comando.AdicionarParametroEntrada("numero_matricula", habilitacao.NumeroMatricula, DbType.String);
                comando.AdicionarParametroEntrada("profissao", habilitacao.Profissao.Id > 0 ? habilitacao.Profissao.Id : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("orgao_classe", habilitacao.Profissao.OrgaoClasseId > 0 ? habilitacao.Profissao.OrgaoClasseId : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("registro_orgao_classe", habilitacao.Profissao.Registro, DbType.String);
                comando.AdicionarParametroEntrada("uf_habilitacao", habilitacao.EstadoRegistro > 0 ? habilitacao.EstadoRegistro : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_visto_crea", DbType.String, 12, habilitacao.NumeroVistoCREA);
                comando.AdicionarParametroEntrada("numero_crea", DbType.String, 12, habilitacao.NumeroCREA);
                comando.AdicionarParametroEntrada("telefone_comercial", habilitacao.TelefoneComercial, DbType.String);
                comando.AdicionarParametroEntrada("telefone_residencial", habilitacao.TelefoneResidencial, DbType.String);
                comando.AdicionarParametroEntrada("telefone_celular", habilitacao.TelefoneCelular, DbType.String);
                comando.AdicionarParametroEntrada("cep", habilitacao.Endereco.Cep, DbType.String);
                comando.AdicionarParametroEntrada("logradouro", habilitacao.Endereco.Logradouro, DbType.String);
                comando.AdicionarParametroEntrada("bairro_gleba", habilitacao.Endereco.Bairro, DbType.String);
                comando.AdicionarParametroEntrada("estado", habilitacao.Endereco.EstadoId > 0 ? habilitacao.Endereco.EstadoId : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("municipio", habilitacao.Endereco.MunicipioId > 0 ? habilitacao.Endereco.MunicipioId : (object)DBNull.Value, DbType.Int32);
                comando.AdicionarParametroEntrada("numero", habilitacao.Endereco.Numero, DbType.String);
                comando.AdicionarParametroEntrada("distrito_localidade", habilitacao.Endereco.DistritoLocalizacao, DbType.String);
                comando.AdicionarParametroEntrada("complemento", habilitacao.Endereco.Complemento, DbType.String);
                comando.AdicionarParametroEntrada("id", habilitacao.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                comando = bancoDeDados.CriarComando(@"delete from tab_hab_emi_ptv_operador ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where habilitacao = :habilitacao {0}", comando.AdicionarNotIn("and", "id", DbType.Int32, habilitacao.Operadores.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("habilitacao", habilitacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                habilitacao.Operadores.ForEach(operador =>
                {
                    if (operador.Id <= 0)
                    {
                        comando = bancoDeDados.CriarComando(@"insert into tab_hab_emi_ptv_operador (id, tid, habilitacao, funcionario) 
						values (seq_tab_hab_emi_ptv_operador.nextval, :tid, :habilitacao, :funcionario)"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("habilitacao", habilitacao.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"update tab_hab_emi_ptv_operador set funcionario =:funcionario, tid =:tid where id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", operador.Id, DbType.Int32);
                    }

                    comando.AdicionarParametroEntrada("funcionario", operador.FuncionarioId > 0 ? operador.FuncionarioId : (object)DBNull.Value, DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                });

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

                bancoDeDados.Commit();
            }
        }
Пример #6
0
        internal void Salvar(TermoCPFARLCR especificidade, 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_cpfarlcr e where e.titulo = :titulo", EsquemaBanco);
                comando.AdicionarParametroEntrada("titulo", especificidade.Titulo.Id, DbType.Int32);
                id = bancoDeDados.ExecutarScalar(comando);

                if (id != null && !Convert.IsDBNull(id))
                {
                    comando = bancoDeDados.CriarComando(@"
					update {0}esp_termo_cpfarlcr e set e.tid = :tid, e.protocolo = :protocolo, e.dominio_cedente = :dominio_cedente, e.emp_receptor = :emp_receptor, 
					e.dominio_receptor = :dominio_receptor, e.numero_averbacao = :numero_averbacao, e.data_emissao = :data_emissao, 
					e.dominialidade = :dominialidade, e.dominialidade_tid = (select d.tid from crt_dominialidade d where d.id = :dominialidade) where e.titulo = :titulo"                    , EsquemaBanco);

                    acao = eHistoricoAcao.atualizar;
                    especificidade.ID = Convert.ToInt32(id);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"
					insert into esp_termo_cpfarlcr (id, tid, titulo, protocolo, dominio_cedente, emp_receptor, dominio_receptor, numero_averbacao, data_emissao, dominialidade, dominialidade_tid) 
					values ({0}seq_esp_termo_cpfarlcr.nextval, :tid, :titulo, :protocolo, :dominio_cedente, :emp_receptor, :dominio_receptor, :numero_averbacao, :data_emissao, 
					:dominialidade, (select d.tid from crt_dominialidade d where d.id = :dominialidade)) returning id into :id"                    , EsquemaBanco);

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

                comando.AdicionarParametroEntrada("titulo", especificidade.Titulo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("protocolo", especificidade.Titulo.Protocolo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("dominio_cedente", especificidade.CedenteDominioID, DbType.Int32);
                comando.AdicionarParametroEntrada("emp_receptor", especificidade.ReceptorEmpreendimentoID, DbType.Int32);
                comando.AdicionarParametroEntrada("dominio_receptor", especificidade.ReceptorDominioID, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_averbacao", DbType.String, 20, especificidade.NumeroAverbacao);
                comando.AdicionarParametroEntrada("data_emissao", especificidade.DataEmissao.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("dominialidade", especificidade.DominialidadeID, DbType.Int32);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #region Reservas Cedente

                comando = bancoDeDados.CriarComando("delete from {0}esp_tcpfarlcr_ced_rese t ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where t.especificidade = :especificidade {0}",
                                                               comando.AdicionarNotIn("and", "t.id", DbType.Int32, especificidade.CedenteARLCompensacao.Select(x => x.IDRelacionamento).ToList()));
                comando.AdicionarParametroEntrada("especificidade", especificidade.ID, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in especificidade.CedenteARLCompensacao)
                {
                    if (item.IDRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}esp_tcpfarlcr_ced_rese t set t.reserva = :reserva, t.tid = :tid where t.id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.IDRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into {0}esp_tcpfarlcr_ced_rese (id, especificidade, reserva, tid) 
						values ({0}seq_esp_tcpfarlcr_ced_rese.nextval, :especificidade, :reserva, :tid)"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("especificidade", especificidade.ID, DbType.Int32);
                    }

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

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                #region Responsáveis do empreendimento cendente

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

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in especificidade.CedenteResponsaveisEmpreendimento)
                {
                    if (item.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}esp_tcpfarlcr_ced_resp t set t.responsavel = :responsavel, t.tid = :tid where t.id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into {0}esp_tcpfarlcr_ced_resp (id, especificidade, responsavel, tid) 
						values ({0}seq_esp_tcpfarlcr_ced_resp.nextval, :especificidade, :responsavel, :tid)"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("especificidade", especificidade.ID, DbType.Int32);
                    }

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

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                #region Responsáveis do empreendimento receptor

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

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in especificidade.ReceptorResponsaveisEmpreendimento)
                {
                    if (item.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}esp_tcpfarlcr_rec_resp t set t.responsavel = :responsavel, t.tid = :tid where t.id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
						insert into {0}esp_tcpfarlcr_rec_resp (id, especificidade, responsavel, tid) 
						values ({0}seq_esp_tcpfarlcr_rec_resp.nextval, :especificidade, :responsavel, :tid)"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("especificidade", especificidade.ID, DbType.Int32);
                    }

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

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                Historico.Gerar(especificidade.Titulo.Id, eHistoricoArtefatoEspecificidade.termocpfarlcr, acao, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
Пример #7
0
        private void Editar(Administrador obj, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update {0}tab_funcionario set nome = :nome, cpf = :cpf, situacao = :situacao, email = :email, tid= :tid where id = :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("nome", DbType.String, 80, obj.Nome);
                comando.AdicionarParametroEntrada("cpf", DbType.String, 14, obj.Cpf);
                comando.AdicionarParametroEntrada("situacao", obj.Situacao, DbType.Int32);
                comando.AdicionarParametroEntrada("email", DbType.String, 250, obj.Email);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("id", obj.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #region Papel

                //Limpar Papel
                comando = bancoDeDados.CriarComando(String.Empty);
                comando.DbCommand.CommandText = String.Format("delete from {1}tab_funcionario_papel c where c.funcionario = :funcionario{0}",
                                                              comando.AdicionarNotIn("and", "c.id", DbType.Int32, obj.Papeis.Select(x => x.IdRelacao).ToList()), EsquemaBanco);

                comando.AdicionarParametroEntrada("funcionario", obj.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                foreach (Papel item in obj.Papeis)
                {
                    if (item.IdRelacao > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}tab_funcionario_papel set tid = :tid where id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.IdRelacao, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}tab_funcionario_papel (id, funcionario, papel, tid) values 
						({0}seq_funcionario_papel.nextval, :funcionario, :papel, :tid)"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("funcionario", obj.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("papel", item.Id, DbType.Int32);
                    }

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

                #endregion

                #region Permissao

                //Limpar Permissao
                comando = bancoDeDados.CriarComando(String.Empty);
                comando.DbCommand.CommandText = String.Format("delete from {1}tab_funcionario_permissao c where c.funcionario = :funcionario{0}",
                                                              comando.AdicionarNotIn("and", "c.id", DbType.Int32, obj.Permissoes.Select(x => x.IdRelacao).ToList()), EsquemaBanco);

                comando.AdicionarParametroEntrada("funcionario", obj.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                foreach (Permissao item in obj.Permissoes)
                {
                    if (item.IdRelacao > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}tab_funcionario_permissao set tid = :tid where id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.IdRelacao, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}tab_funcionario_Permissao (id, funcionario, permissao, tid) values 
						(seq_funcionario_Permissao.nextval, :funcionario, :permissao, :tid)"                        , EsquemaBanco);

                        comando.AdicionarParametroEntrada("funcionario", obj.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("permissao", item.Id, DbType.Int32);
                    }

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

                #endregion

                Historico.Gerar(obj.Id, eHistoricoArtefato.funcionario, eHistoricoAcao.atualizar, bancoDeDados);
                bancoDeDados.Commit();
            }
        }
        public MaterialApreendido Editar(MaterialApreendido materialApreendido, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Apreensão

                Comando comando = bancoDeDados.CriarComando(@"
                                   update tab_fisc_apreensao
                                   set fiscalizacao = :fiscalizacao,
                                       iuf_digital = :eh_digital,
                                       iuf_numero = :iuf_numero,
                                       iuf_data = :iuf_data,
                                       numero_lacres = :numero_lacres,
                                       arquivo = :arquivo,
                                       serie = :serie,
                                       descricao = :descricao,
                                       valor_produtos = :valor_produtos,
                                       valor_produtos_reais = :valor_produtos_reais,
                                       depositario = :depositario,
                                       endereco_logradouro = :endereco_logradouro,
                                       endereco_bairro = :endereco_bairro, 
                                       endereco_distrito = :endereco_distrito,
                                       endereco_estado = :endereco_estado,
                                       endereco_municipio = :endereco_municipio,
                                       opiniao = :opiniao,
                                       tid = :tid
                                   where id = :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.AdicionarParametroEntrada("id", materialApreendido.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

                #region Produtos

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

                foreach (ApreensaoProdutoApreendido produto in materialApreendido.ProdutosApreendidos)
                {
                    if (produto.Id == 0)
                    {
                        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) returning id into :id ", EsquemaBanco);
                        comando.AdicionarParametroSaida("id", DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
                                    update tab_fisc_apreensao_produto
                                    set apreensao = :apreensao,
                                        produto = :produto,
                                        quantidade = :quantidade,
                                        destinacao = :destinacao,
                                        tid = :tid
							        where id = :id "                            , EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", produto.Id, DbType.Int32);
                    }

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

                    bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

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

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

                bancoDeDados.Commit();
            }
            return(materialApreendido);
        }
        internal void Editar(SilviculturaPPFF caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Silvicultura

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update {0}crt_silvicultura_ppff c set c.empreendimento = :empreendimento, c.atividade = :atividade, c.fomento_tipo = :fomento_tipo, c.area_total = :area_total, c.tid = :tid
                    where c.id = :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("atividade", caracterizacao.Atividade, DbType.Int32);
                comando.AdicionarParametroEntrada("fomento_tipo", caracterizacao.FomentoTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("area_total", caracterizacao.AreaTotal, DbType.Decimal);
                comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Limpar os dados do banco

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

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

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Municípios

                if (caracterizacao.Itens != null && caracterizacao.Itens.Count > 0)
                {
                    foreach (SilviculturaPPFFItem item in caracterizacao.Itens)
                    {
                        if (item.Id <= 0)
                        {
                            comando = bancoDeDados.CriarComando(@" insert into {0}crt_sil_ppf_municipio c(id, caracterizacao, municipio, tid) values(seq_crt_sil_ppf_municipio.nextval, 
                                :caracterizacao, :municipio, :tid) returning c.id into :id ", EsquemaBanco);

                            comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                            comando.AdicionarParametroEntrada("municipio", item.Municipio.Id, 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 Histórico

                Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.silviculturappff, eHistoricoAcao.atualizar, bancoDeDados, null);

                #endregion

                bancoDeDados.Commit();
            }
        }
Пример #10
0
        public Notificacao Editar(Notificacao notificacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
                                    update {0}tab_fisc_notificacao t
                                    set t.fiscalizacao = :fiscalizacao,
										t.forma_iuf = :forma_iuf,
                                        t.forma_jiapi = :forma_jiapi,
                                        t.forma_core = :forma_core,
                                        t.forma_iuf_data = :forma_iuf_data,
                                        t.forma_jiapi_data = :forma_jiapi_data,
                                        t.forma_core_data = :forma_core_data,
                                        t.tid = :tid
                                    where t.id = :id", EsquemaBanco);

                comando.AdicionarParametroEntrada("id", notificacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("fiscalizacao", notificacao.FiscalizacaoId, DbType.Int32);
                comando.AdicionarParametroEntrada("forma_iuf", notificacao.FormaIUF, DbType.Int32);
                comando.AdicionarParametroEntrada("forma_jiapi", notificacao.FormaJIAPI, DbType.Int32);
                comando.AdicionarParametroEntrada("forma_core", notificacao.FormaCORE, DbType.Int32);
                comando.AdicionarParametroEntrada("forma_iuf_data", notificacao.DataIUF.Data, DbType.Date);
                comando.AdicionarParametroEntrada("forma_jiapi_data", notificacao.DataJIAPI.Data, DbType.Date);
                comando.AdicionarParametroEntrada("forma_core_data", notificacao.DataCORE.Data, DbType.Date);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #region Anexos

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

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in (notificacao.Anexos ?? new List <Anexo>()))
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
							update {0}tab_fisc_notificacao_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_notificacao_arq a
							  (id, 
							   notificacao, 
							   arquivo, 
							   ordem, 
							   descricao, 
							   tid)
							values
							  ({0}seq_tab_fisc_notificacao_arq.nextval,
							   :notificacao,
							   :arquivo,
							   :ordem,
							   :descricao,
							   :tid)"                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("notificacao", notificacao.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(notificacao.FiscalizacaoId, eHistoricoArtefato.fiscalizacao, eHistoricoAcao.atualizar, bancoDeDados);

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

                bancoDeDados.Commit();
            }
            return(notificacao);
        }
Пример #11
0
        internal void AtribuirExecutor(Relatorio relatorio, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, EsquemaBanco))
            {
                bancoDeDados.IniciarTransacao();

                #region Relatório Personalizado

                Comando comando = bancoDeDados.CriarComando(@"update {0}tab_relatorio_personalizado r set r.tid = :tid where r.id = :id", EsquemaBanco);

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

                bancoDeDados.ExecutarNonQuery(comando);

                #region Limpar os dados do banco

                //Usuarios
                comando = bancoDeDados.CriarComando("delete from {0}tab_relatorio_per_usuarios c ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where c.relatorio = :relatorio{0}",
                                                               comando.AdicionarNotIn("and", "c.usuario", DbType.Int32, relatorio.UsuariosPermitidos.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("relatorio", relatorio.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Usuários

                if (relatorio.UsuariosPermitidos != null && relatorio.UsuariosPermitidos.Count > 0)
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}tab_relatorio_per_usuarios (id, relatorio, usuario, tipo, tid) 
					(select {0}seq_relatorio_per_usuario.nextval, :relatorio, :usuario, :tipo, :tid from dual where not exists
					(select id from {0}tab_relatorio_per_usuarios r where r.usuario = :usuario and r.relatorio = :relatorio))"                    , EsquemaBanco);

                    comando.AdicionarParametroEntrada("relatorio", relatorio.Id, DbType.Int32);
                    comando.AdicionarParametroEntrada("usuario", DbType.Int32);
                    comando.AdicionarParametroEntrada("tipo", DbType.Int32);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    foreach (var item in relatorio.UsuariosPermitidos)
                    {
                        comando.SetarValorParametro("usuario", item.Id);
                        comando.SetarValorParametro("tipo", item.Tipo);
                        bancoDeDados.ExecutarNonQuery(comando);
                    }
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"delete {0}tab_relatorio_per_usuarios p where p.relatorio = :relatorio", EsquemaBanco);
                    comando.AdicionarParametroEntrada("relatorio", relatorio.Id, DbType.Int32);
                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                #endregion

                #region Histórico

                Historico.Gerar(relatorio.Id, eHistoricoArtefato.relatorio, eHistoricoAcao.atribuirusuario, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }
Пример #12
0
        internal void Salvar(LaudoVistoriaFundiaria laudo, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Cadastro do Titulo

                eHistoricoAcao acao;
                object         id;

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

                id = bancoDeDados.ExecutarScalar(comando);

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

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

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

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

                bancoDeDados.ExecutarNonQuery(comando);

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


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

                bancoDeDados.ExecutarNonQuery(comando);

                #region Regularizacao Dominios

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

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

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


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

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

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

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

                        bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #endregion

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

                bancoDeDados.Commit();
            }
        }
Пример #13
0
        internal void Editar(HabilitarEmissaoCFOCFOC habilitar, BancoDeDados banco = null, Executor executor = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region HabilitarEmissaoCFOCFOC

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
				update tab_hab_emi_cfo_cfoc p set p.responsavel_arquivo = :responsavel_arquivo, p.numero_habilitacao = :numero_habilitacao, p.validade_registro = :validade_registro, 
				p.motivo = :motivo, p.observacao = :observacao, p.numero_dua = :numero_dua, p.extensao_habilitacao = :extensao_habilitacao, p.numero_habilitacao_ori = :numero_habilitacao_ori, 
				p.registro_crea = :registro_crea, p.uf = :uf, p.numero_visto_crea = :numero_visto_crea, p.tid = :tid where p.id = :id"                , EsquemaBanco);

                comando.AdicionarParametroEntrada("id", habilitar.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("responsavel_arquivo", (habilitar.Arquivo != null && habilitar.Arquivo.Id > 0) ? habilitar.Arquivo.Id : null, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_habilitacao", DbType.String, 30, habilitar.NumeroHabilitacao);
                comando.AdicionarParametroEntrada("validade_registro", habilitar.ValidadeRegistro, DbType.DateTime);
                comando.AdicionarParametroEntrada("motivo", (habilitar.Motivo.HasValue) ? habilitar.Motivo : null, DbType.Int32);
                comando.AdicionarParametroEntrada("observacao", DbType.String, 250, habilitar.Observacao);
                comando.AdicionarParametroEntrada("numero_dua", DbType.String, 30, habilitar.NumeroDua);
                comando.AdicionarParametroEntrada("extensao_habilitacao", habilitar.ExtensaoHabilitacao, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_habilitacao_ori", DbType.String, 30, (habilitar.ExtensaoHabilitacao == 1) ? habilitar.NumeroHabilitacaoOrigem : null);
                comando.AdicionarParametroEntrada("registro_crea", DbType.String, 30, habilitar.RegistroCrea);
                comando.AdicionarParametroEntrada("uf", habilitar.UF, DbType.Int32);
                comando.AdicionarParametroEntrada("numero_visto_crea", DbType.String, 30, (habilitar.UF != 8) ? habilitar.NumeroVistoCrea : null);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Limpar os dados do banco

                //Pragas
                comando = bancoDeDados.CriarComando(@"delete {0}tab_hab_emi_cfo_cfoc_praga ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where habilitar_emi_id = :id {0}",
                                                               comando.AdicionarNotIn("and", "id", DbType.Int32, habilitar.Pragas.Select(x => x.Id).ToList()));

                comando.AdicionarParametroEntrada("id", habilitar.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Pragas

                if (habilitar.Pragas.Count > 0)
                {
                    habilitar.Pragas.ForEach(item =>
                    {
                        if (item.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"
							update {0}tab_hab_emi_cfo_cfoc_praga a set tid = :tid, a.data_habilitacao_inicial = :data_habilitacao_inicial, 
							a.data_habilitacao_final = :data_habilitacao_final where id = :id"                            , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"
							insert into {0}tab_hab_emi_cfo_cfoc_praga a (id, tid, habilitar_emi_id, praga, data_habilitacao_inicial, data_habilitacao_final)
							values ({0}seq_hab_emi_cfo_cfoc_praga.nextval, :tid, :habilitar, :praga, :data_habilitacao_inicial, :data_habilitacao_final)"                            , EsquemaBanco);

                            comando.AdicionarParametroEntrada("habilitar", habilitar.Id, DbType.Int32);
                            comando.AdicionarParametroEntrada("praga", item.Praga.Id, DbType.Int32);
                        }

                        comando.AdicionarParametroEntrada("data_habilitacao_inicial", item.DataInicialHabilitacao, DbType.DateTime);
                        comando.AdicionarParametroEntrada("data_habilitacao_final", item.DataFinalHabilitacao, DbType.DateTime);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                        bancoDeDados.ExecutarNonQuery(comando);
                    });
                }

                #endregion

                Historico.Gerar(habilitar.Id, eHistoricoArtefato.habilitaremissaocfocfoc, eHistoricoAcao.atualizar, bancoDeDados, executor);

                bancoDeDados.Commit();
            }
        }
Пример #14
0
        internal void Editar(RegistroAtividadeFlorestal caracterizacao, BancoDeDados banco = null)
        {
            int  numero      = 0;
            bool gerarNumero = !caracterizacao.PossuiNumero.Value && !int.TryParse(caracterizacao.NumeroRegistro, out numero);

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Registro Atividade Florestal

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"
				update {0}crt_reg_atividade_florestal t
					set t.empreendimento  = :empreendimento,
						t.numero_registro = "                         + (gerarNumero ? @"{0}reg_atv_florestal_numero.nextval," : @":numero_registro,") + @"
						t.tid             = :tid,
						t.possui_numero   = :possui_numero
					where t.id = :id"                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroEntrada("empreendimento", caracterizacao.EmpreendimentoId, DbType.Int32);
                comando.AdicionarParametroEntrada("possui_numero", caracterizacao.PossuiNumero, DbType.Int32);

                if (!gerarNumero)
                {
                    comando.AdicionarParametroEntrada("numero_registro", caracterizacao.NumeroRegistro, DbType.String);
                }

                comando.AdicionarParametroEntrada("id", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Limpar os dados do banco

                comando = bancoDeDados.CriarComando(@"delete from {0}crt_reg_ati_flo_fonte t where t.caracterizacao = :caracterizacao ", EsquemaBanco);
                comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "t.id", DbType.Int32, caracterizacao.Consumos.SelectMany(x => x.FontesEnergia).Select(y => y.Id).ToList());
                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                comando = bancoDeDados.CriarComando(@"delete from {0}crt_reg_ati_flo_con_tit t where t.caracterizacao = :caracterizacao ", EsquemaBanco);
                comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "t.id", DbType.Int32, caracterizacao.Consumos.Select(x => (x.Licenca ?? new FinalidadeCaracterizacao()).Id).ToList());
                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                comando = bancoDeDados.CriarComando("delete from {0}crt_reg_ati_flo_consumo t where t.caracterizacao = :caracterizacao ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "t.id", DbType.Int32, caracterizacao.Consumos.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Consumos

                if (caracterizacao.Consumos != null && caracterizacao.Consumos.Count > 0)
                {
                    foreach (Consumo consumo in caracterizacao.Consumos)
                    {
                        if (consumo.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}crt_reg_ati_flo_consumo t set 
							t.caracterizacao = :caracterizacao, t.atividade = :atividade, t.possui_licenca = :possui_licenca, t.dua_numero = :dua_numero, t.dua_valor = :dua_valor, 
							t.dua_data_pagamento = :dua_data_pagamento, t.tid = :tid where t.id = :consumo returning t.id into :id"                            , EsquemaBanco);
                            comando.AdicionarParametroEntrada("consumo", consumo.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"
							insert into {0}crt_reg_ati_flo_consumo (id, tid, caracterizacao, atividade, possui_licenca, dua_numero, dua_valor, dua_data_pagamento) 
							values (seq_crt_reg_ati_flo_consumo.nextval, :tid, :caracterizacao, :atividade, :possui_licenca, :dua_numero, :dua_valor, :dua_data_pagamento) 
							returning id into :id "                            , EsquemaBanco);
                        }

                        comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("atividade", consumo.Atividade, DbType.Int32);
                        comando.AdicionarParametroEntrada("possui_licenca", consumo.PossuiLicencaAmbiental, DbType.Int32);
                        comando.AdicionarParametroEntrada("dua_numero", DbType.String, 40, consumo.DUANumero);
                        comando.AdicionarParametroEntrada("dua_valor", consumo.DUAValor, DbType.Decimal);
                        comando.AdicionarParametroEntrada("dua_data_pagamento", consumo.DUADataPagamento.Data, DbType.DateTime);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                        comando.AdicionarParametroSaida("id", DbType.Int32);

                        bancoDeDados.ExecutarNonQuery(comando);

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

                        #region Título

                        if (consumo.Licenca != null)
                        {
                            if (consumo.Licenca.Id > 0)
                            {
                                comando = bancoDeDados.CriarComando(@"update {0}crt_reg_ati_flo_con_tit t set 
								t.emitido_idaf = :emitido_idaf, t.titulo = :titulo, t.titulo_numero = :titulo_numero, t.titulo_modelo = :titulo_modelo, 
								t.titulo_modelo_texto = :titulo_modelo_texto, t.data_validade = :data_validade, t.protocolo_numero = :protocolo_numero, 
								t.data_renovacao = :data_renovacao, t.protocolo_numero_ren = :protocolo_numero_ren, t.orgao_expedicao = :orgao_expedicao, 
								t.tid = :tid where t.id = :id returning t.id into :idLicenca "                                , EsquemaBanco);

                                comando.AdicionarParametroEntrada("id", consumo.Licenca.Id, DbType.Int32);
                            }
                            else
                            {
                                comando = bancoDeDados.CriarComando(@"insert into {0}crt_reg_ati_flo_con_tit (
								id, caracterizacao, consumo, emitido_idaf, titulo, titulo_numero, titulo_modelo, titulo_modelo_texto, data_validade, 
								protocolo_numero, data_renovacao, protocolo_numero_ren, orgao_expedicao, tid) values 
								(seq_crt_reg_ati_flo_con_tit.nextval, :caracterizacao, :consumo, :emitido_idaf, :titulo, :titulo_numero, :titulo_modelo, :titulo_modelo_texto, :data_validade, 
								:protocolo_numero, :data_renovacao, :protocolo_numero_ren, :orgao_expedicao, :tid) returning id into :idLicenca"                                , EsquemaBanco);

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

                            comando.AdicionarParametroEntrada("emitido_idaf", (consumo.Licenca.EmitidoPorInterno.Value ? 1 : 0), DbType.Int32);
                            comando.AdicionarParametroEntrada("titulo", (consumo.Licenca.TituloId.HasValue && consumo.Licenca.TituloId > 0) ? consumo.Licenca.TituloId : null, DbType.Int32);
                            comando.AdicionarParametroEntrada("titulo_numero", DbType.String, 20, consumo.Licenca.TituloNumero);
                            comando.AdicionarParametroEntrada("titulo_modelo", consumo.Licenca.TituloModelo, DbType.Int32);
                            comando.AdicionarParametroEntrada("titulo_modelo_texto", DbType.String, 100, consumo.Licenca.TituloModeloTexto);
                            comando.AdicionarParametroEntrada("data_validade", consumo.Licenca.TituloValidadeData.Data, DbType.DateTime);
                            comando.AdicionarParametroEntrada("protocolo_numero", DbType.String, 20, consumo.Licenca.ProtocoloNumero);
                            comando.AdicionarParametroEntrada("data_renovacao", consumo.Licenca.ProtocoloRenovacaoData.Data, DbType.DateTime);
                            comando.AdicionarParametroEntrada("protocolo_numero_ren", DbType.String, 20, consumo.Licenca.ProtocoloRenovacaoNumero);
                            comando.AdicionarParametroEntrada("orgao_expedicao", DbType.String, 150, consumo.Licenca.OrgaoExpedidor);
                            comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                            comando.AdicionarParametroSaida("idLicenca", DbType.Int32);

                            bancoDeDados.ExecutarNonQuery(comando);

                            consumo.Licenca.Id = Convert.ToInt32(comando.ObterValorParametro("idLicenca"));
                        }

                        #endregion

                        #region Fontes Energia

                        if (consumo.FontesEnergia != null && consumo.FontesEnergia.Count > 0)
                        {
                            foreach (FonteEnergia fonteEnergia in consumo.FontesEnergia)
                            {
                                if (fonteEnergia.Id > 0)
                                {
                                    comando = bancoDeDados.CriarComando(@"update {0}crt_reg_ati_flo_fonte t set t.caracterizacao = :caracterizacao, t.consumo = :consumo, t.tipo =
									:tipo, t.unidade = :unidade, t.qde = :qde, t.qde_floresta_plantada = :qde_floresta_plantada, t.qde_floresta_nativa = :qde_floresta_nativa, 
									t.qde_outro_estado = :qde_outro_estado, t.tid = :tid where t.id = :id returning id into :idFonte "                                    , EsquemaBanco);

                                    comando.AdicionarParametroEntrada("id", fonteEnergia.Id, DbType.Int32);
                                }
                                else
                                {
                                    comando = bancoDeDados.CriarComando(@" insert into {0}crt_reg_ati_flo_fonte (id, caracterizacao, consumo, tipo, unidade, qde, qde_floresta_plantada, 
									qde_floresta_nativa, qde_outro_estado, tid) values (seq_crt_reg_ati_flo_fonte.nextval, :caracterizacao, :consumo, :tipo, :unidade, :qde, 
									:qde_floresta_plantada, :qde_floresta_nativa, :qde_outro_estado, :tid) returning id into :idFonte "                                    , EsquemaBanco);
                                }

                                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                                comando.AdicionarParametroEntrada("consumo", consumo.Id, DbType.Int32);
                                comando.AdicionarParametroEntrada("tipo", fonteEnergia.TipoId, DbType.Int32);
                                comando.AdicionarParametroEntrada("unidade", fonteEnergia.UnidadeId, DbType.Int32);
                                comando.AdicionarParametroEntrada("qde", fonteEnergia.Qde, DbType.Decimal);
                                comando.AdicionarParametroEntrada("qde_floresta_plantada", fonteEnergia.QdeFlorestaPlantada, DbType.Decimal);
                                comando.AdicionarParametroEntrada("qde_floresta_nativa", fonteEnergia.QdeFlorestaNativa, DbType.Decimal);
                                comando.AdicionarParametroEntrada("qde_outro_estado", fonteEnergia.QdeOutroEstado, DbType.Decimal);
                                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                                comando.AdicionarParametroSaida("idFonte", DbType.Int32);

                                bancoDeDados.ExecutarNonQuery(comando);

                                fonteEnergia.Id = Convert.ToInt32(comando.ObterValorParametro("idFonte"));
                            }
                        }

                        #endregion
                    }
                }

                #endregion

                Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.registroatividadeflorestal, eHistoricoAcao.atualizar, bancoDeDados, null);

                bancoDeDados.Commit();
            }
        }
Пример #15
0
        internal void Dependencias(Caracterizacao caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Dependências da caracterização

                Comando comando = bancoDeDados.CriarComando("delete from {0}crt_dependencia c ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where c.dependente_tipo = :dependente_tipo and c.dependente_caracterizacao = :dependente_caracterizacao and c.dependente_id = :dependente_id {0}",
                                                               comando.AdicionarNotIn("and", "c.id", DbType.Int32, caracterizacao.Dependencias.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("dependente_tipo", (int)caracterizacao.DependenteTipo, DbType.Int32);
                comando.AdicionarParametroEntrada("dependente_caracterizacao", (int)caracterizacao.Tipo, DbType.Int32);
                comando.AdicionarParametroEntrada("dependente_id", caracterizacao.Id, DbType.Int32);
                bancoDeDados.ExecutarNonQuery(comando);

                if (caracterizacao.Dependencias != null && caracterizacao.Dependencias.Count > 0)
                {
                    foreach (Dependencia item in caracterizacao.Dependencias)
                    {
                        if (item.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}crt_dependencia d set d.dependencia_tipo = :dependencia_tipo, d.dependente_caracterizacao = :dependente_caracterizacao, 
							d.dependencia_id = :dependencia_id, d.dependencia_tid = :dependencia_tid, d.tid = :tid where d.id = :id"                            , EsquemaBanco);
                            comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into {0}crt_dependencia d (id, dependente_tipo, dependente_caracterizacao, dependente_id, dependencia_tipo, 
							dependencia_caracterizacao, dependencia_id, dependencia_tid, tid) values ({0}seq_crt_dependencia.nextval, :dependente_tipo, :dependente_caracterizacao, 
							:dependente_id, :dependencia_tipo, :dependencia_caracterizacao, :dependencia_id, :dependencia_tid, :tid) returning id into :id_dep"                            , EsquemaBanco);

                            comando.AdicionarParametroEntrada("dependente_tipo", (int)caracterizacao.DependenteTipo, DbType.Int32);
                            comando.AdicionarParametroEntrada("dependente_caracterizacao", (int)caracterizacao.Tipo, DbType.Int32);
                            comando.AdicionarParametroEntrada("dependente_id", caracterizacao.Id, DbType.Int32);

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

                        comando.AdicionarParametroEntrada("dependencia_tipo", item.DependenciaTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("dependencia_caracterizacao", item.DependenciaCaracterizacao, DbType.Int32);
                        comando.AdicionarParametroEntrada("dependencia_id", item.DependenciaId, DbType.Int32);
                        comando.AdicionarParametroEntrada("dependencia_tid", DbType.String, 36, item.DependenciaTid);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);

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

                        Historico.Gerar(item.Id, eHistoricoArtefatoCaracterizacao.dependencia, eHistoricoAcao.atualizar, bancoDeDados);
                    }
                }

                #endregion

                bancoDeDados.Commit();
            }
        }
Пример #16
0
        internal void Salvar(AberturaLivroUnidadeProducao 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_abertura_livro_up 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_abertura_livro_up e set e.tid = :tid, e.protocolo = :protocolo, 
					e.total_paginas_livro = :total_paginas_livro, e.pagina_inicial = :pagina_inicial, e.pagina_final = :pagina_final 
					where e.titulo = :titulo"                    , EsquemaBanco);

                    acao     = eHistoricoAcao.atualizar;
                    termo.Id = Convert.ToInt32(id);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"
					insert into {0}esp_abertura_livro_up (id, tid, titulo, protocolo, total_paginas_livro, pagina_inicial, pagina_final) 
					values ({0}seq_esp_abertura_livro_up.nextval, :tid, :titulo, :protocolo, :total_paginas_livro, :pagina_inicial, :pagina_final) 
					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.Titulo.Protocolo.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("total_paginas_livro", termo.TotalPaginasLivro, DbType.Int32);
                comando.AdicionarParametroEntrada("pagina_inicial", termo.PaginaInicial, DbType.Int32);
                comando.AdicionarParametroEntrada("pagina_final", termo.PaginaFinal, DbType.Int32);
                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

                #region Unidades

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

                foreach (var item in termo.Unidades)
                {
                    if (item.IdRelacionamento > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"update {0}esp_aber_livro_up_unid t set t.unidade = :unidade, t.tid = :tid where t.id = :id", EsquemaBanco);
                        comando.AdicionarParametroEntrada("id", item.IdRelacionamento, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}esp_aber_livro_up_unid (id, especificidade, unidade, tid) 
						values ({0}seq_esp_aber_livro_up_unid.nextval, :especificidade, :unidade, :tid)"                        , EsquemaBanco);
                        comando.AdicionarParametroEntrada("especificidade", termo.Id, DbType.Int32);
                    }

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

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

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

                bancoDeDados.Commit();
            }
        }
Пример #17
0
        internal void Editar(SilviculturaATV caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Silvicultura - Implantação da Atividade de Silvicultura (Fomento)

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"update {0}crt_silvicultura c set c.tid = :tid where c.id = :id", EsquemaBanco);

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

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Limpar os dados do banco

                comando = bancoDeDados.CriarComando("delete from {0}crt_silvicultura_atv_cult t ", EsquemaBanco);
                comando.DbCommand.CommandText += String.Format("where t.caracterizacao = :caracterizacao{0}",
                                                               comando.AdicionarNotIn("and", "t.silvicultura_id", DbType.Int32, caracterizacao.Caracteristicas.Select(x => x.Id).ToList()));
                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                foreach (var item in caracterizacao.Caracteristicas)
                {
                    comando = bancoDeDados.CriarComando("delete from {0}crt_silvicultura_atv_cult t ", EsquemaBanco);
                    comando.DbCommand.CommandText += String.Format("where t.silvicultura_id = :silvicultura_id{0}",
                                                                   comando.AdicionarNotIn("and", "t.id", DbType.Int32, item.Culturas.Select(x => x.Id).ToList()));
                    comando.AdicionarParametroEntrada("silvicultura_id", item.Id, DbType.Int32);

                    bancoDeDados.ExecutarNonQuery(comando);
                }

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

                bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #region Áreas

                foreach (SilviculturaAreaATV area in caracterizacao.Areas)
                {
                    if (area.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
							update {0}crt_silvicultura_atv_areas c
							   set c.tipo = :tipo, 
								   c.valor = :valor, 
								   c.tid = :tid
							 where c.id = :id"                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", area.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
							insert into {0}crt_silvicultura_atv_areas
							  (id, 
							   caracterizacao, 
							   tipo, 
							   valor, 
							   tid)
							values
							  ({0}seq_crt_silvic_atv_areas.nextval,
							   :caracterizacao,
							   :tipo,
							   :valor,
							   :tid)"                            , EsquemaBanco);

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

                    comando.AdicionarParametroEntrada("tipo", area.Tipo, DbType.Int32);
                    comando.AdicionarParametroEntrada("valor", area.Valor, DbType.Decimal);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);
                }

                #endregion

                #region Caracteristicas

                foreach (var item in caracterizacao.Caracteristicas)
                {
                    if (item.Id > 0)
                    {
                        comando = bancoDeDados.CriarComando(@"
								update {0}crt_silvicultura_atv_carac c
								   set c.identificacao         = :identificacao,
									   c.geometria             = :geometria,
									   c.fomento               = :fomento,
									   c.declividade           = :declividade,
									   c.total_requerida       = :total_requerida,
									   c.total_croqui          = :total_croqui,
									   c.total_plant_eucalipto = :total_plant_eucalipto,
									   c.tid                   = :tid
								 where c.id = :id"                                , EsquemaBanco);

                        comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                    }
                    else
                    {
                        comando = bancoDeDados.CriarComando(@"
								insert into {0}crt_silvicultura_atv_carac c
								  (id,
								   caracterizacao,
								   identificacao,
								   geometria,
								   fomento,
								   declividade,
								   total_requerida,
								   total_croqui,
								   total_plant_eucalipto,
								   tid)
								values
								  ({0}seq_crt_silvic_atv_carac.nextval,
								   :caracterizacao,
								   :identificacao,
								   :geometria,
								   :fomento,
								   :declividade,
								   :total_requerida,
								   :total_croqui,
								   :total_plant_eucalipto,
								   :tid)
								returning c.id into :id"                                , EsquemaBanco);

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

                    comando.AdicionarParametroEntrada("identificacao", item.Identificacao, DbType.String);
                    comando.AdicionarParametroEntrada("geometria", item.GeometriaTipo, DbType.Int32);
                    comando.AdicionarParametroEntrada("fomento", item.Fomento, DbType.Int32);
                    comando.AdicionarParametroEntrada("declividade", item.Declividade, DbType.Decimal);
                    comando.AdicionarParametroEntrada("total_requerida", item.TotalRequerida, DbType.Decimal);
                    comando.AdicionarParametroEntrada("total_croqui", item.TotalCroqui, DbType.Decimal);
                    comando.AdicionarParametroEntrada("total_plant_eucalipto", item.TotalPlantadaComEucalipto, DbType.Decimal);
                    comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                    bancoDeDados.ExecutarNonQuery(comando);

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

                    #region Culturas Florestais

                    foreach (CulturaFlorestalATV itemAux in item.Culturas)
                    {
                        if (itemAux.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"
								 update {0}crt_silvicultura_atv_cult c
									set c.caracterizacao  = :caracterizacao,
										c.silvicultura_id = :silvicultura_id,
										c.cultura         = :cultura,
										c.area            = :area,
										c.especificar     = :especificar,
										c.tid             = :tid
								  where c.id = :id"                                , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", itemAux.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"
								insert into {0}crt_silvicultura_atv_cult c
									(id, 
									caracterizacao, 
									silvicultura_id, 
									cultura, 
									area, 
									especificar, 
									tid)
								values
									({0}seq_crt_silvic_atv_cult.nextval,
									:caracterizacao,
									:silvicultura_id,
									:cultura,
									:area,
									:especificar,
									:tid) returning id into :id"                                    , EsquemaBanco);

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

                        comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("silvicultura_id", item.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("cultura", itemAux.CulturaTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("area", itemAux.AreaCultura, DbType.Decimal);
                        comando.AdicionarParametroEntrada("especificar", string.Empty, DbType.String);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);

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

                    #endregion
                }

                #endregion

                #region Histórico

                Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.silviculturaatv, eHistoricoAcao.atualizar, bancoDeDados);

                #endregion

                bancoDeDados.Commit();
            }
        }