public IList<ServicoLocacao> PesquisarPorCliente(int id)
 {
     using (BancoDeDados db = new BancoDeDados())
     {
         return db.Locacao.Include("Jogo").Include("Cliente").Where(l => l.Cliente.Id == id).ToList();
     }
 }
 public IList<Cliente> BuscarTodos()
 {
     using (var db = new BancoDeDados())
     {
         return db.Cliente.ToList();
     }
 }
 public Jogo BuscarPorId(int id)
 {
     using (var db = new BancoDeDados())
     {
         return db.Jogo.Find(id);
     }
 }
 public Usuario BuscarPorEmail(string email)
 {
     using (var db = new BancoDeDados())
     {
         return db.Usuario.FirstOrDefault(u => u.Email == email);
     }
 }
 public Usuario BuscarPorEmail(string email)
 {
     using (BancoDeDados db = new BancoDeDados())
     {
         return db.Usuario.Include("Permissoes").Where(u => u.Email == email).FirstOrDefault();
     }
 }
 public IList<Usuario> BuscarTodos()
 {
     using (BancoDeDados db = new BancoDeDados())
     {
         return db.Usuario.ToList();
     }
 }
 public ServicoLocacao PesquisarPorJogo(int id)
 {
     using (BancoDeDados db = new BancoDeDados())
     {
         return db.Locacao.Include("Jogo").Include("Cliente").Where(l => l.Jogo.Id == id).FirstOrDefault();
     }
 }
 public IList<Jogo> BuscarPorNome(string nome)
 {
     using (var db = new BancoDeDados())
     {
         return db.Jogo.Where(j => j.Nome.Contains(nome)).ToList();
     }
 }
 public IList<Jogo> BuscarTodos()
 {
     using (var db = new BancoDeDados())
     {
         return db.Jogo.ToList();
     }
 }
 public IList<Cliente> BuscarPorNome(string nome)
 {
     using (var db = new BancoDeDados())
     {
         return db.Cliente.Where(cli => cli.Nome.Contains(nome)).ToList();
     }
 }
 public Locacao BuscarPorId(int id)
 {
     using (var db = new BancoDeDados())
     {
         return db.Locacao.FirstOrDefault(m => m.Id == id);
     }
 }
 public int BuscarIdPorIdJogo(int id)
 {
     using (var db = new BancoDeDados())
     {
         return db.Locacao.FirstOrDefault(m => m.IdJogo == id).Id;
     }
 }
 public int Criar(Usuario user)
 {
     using (BancoDeDados db = new BancoDeDados())
     {
         db.Entry(user).State = System.Data.Entity.EntityState.Added;
         return db.SaveChanges();
     }
 }
 public int Criar(Jogo jogo)
 {
     using (var db = new BancoDeDados())
     {
         db.Entry(jogo).State = System.Data.Entity.EntityState.Added;
         return db.SaveChanges();
     }
 }
 public Locacao BuscarJogoLivre(int idJogo)
 {
     using (var db = new BancoDeDados())
     {
         var b = db.Locacao.SingleOrDefault(m => m.Id == idJogo && m.DataDevolucao == null);
         return b;
     }
 }
 public int Atualizar(Locacao locacao)
 {
     using (var db = new BancoDeDados())
     {
         db.Entry(locacao).State = System.Data.Entity.EntityState.Modified;
         return db.SaveChanges();
     }
 }
 public Usuario BuscarUsuarioPorEmail(string email)
 {
     Usuario usuario;
     using (var db = new BancoDeDados())
     {
         usuario = db.Usuario.Include("Permissoes").FirstOrDefault(user => user.Email == email);
         return usuario;
     }
 }
示例#18
0
        static void Main(string[] args)
        {
            using (var db = new BancoDeDados())
            {
                Jogo jogo = db.Jogo.First(j => j.Id == 1);

                Console.ReadLine();
            }
        }
 public int Excluir(int id)
 {
     using (var db = new BancoDeDados())
     {
         Jogo jogo = db.Jogo.Find(id);
         db.Entry(jogo).State = System.Data.Entity.EntityState.Deleted;
         return db.SaveChanges();
     }
 }
        public int Excluir(string email)
        {
            Usuario user = new Usuario()
            {
                Email = email
            };

            using (BancoDeDados db = new BancoDeDados())
            {
                db.Entry(user).State = System.Data.Entity.EntityState.Deleted;
                return db.SaveChanges();
            }
        }
        public decimal Devolver(ServicoLocacao locacao)
        {
            using (BancoDeDados db = new BancoDeDados())
            {
                JogoRepositorio jogoRepositorio = new JogoRepositorio();
                jogoRepositorio.DevolverJogo(locacao.IdJogo);

                decimal valor = locacao.CalcularValor();
                db.Entry(locacao).State = System.Data.Entity.EntityState.Deleted;
                db.SaveChanges();

                return valor;
            }
        }
        public bool Locar(Jogo jogo, Cliente cliente)
        {
            if (ClientePodeLocar(cliente) && JogoLocavel(jogo))
            {
                ServicoLocacao locacao = new ServicoLocacao(jogo, cliente);
                JogoRepositorio jogoRepositorio = new JogoRepositorio();

                jogoRepositorio.LocarJogo(jogo.Id);

                using (var db = new BancoDeDados())
                {
                    db.Entry(locacao).State = System.Data.Entity.EntityState.Added;
                    return db.SaveChanges() == 1;
                }
            }
            return false;
        }
 public void Iniciar()
 {
     AutoMapperRegister.RegisterMappings();
     banco = new BancoDeDados();
     repositorioDePermissoes = new Repositorio<Permissao, PermissaoMap>();
 }
示例#24
0
        internal bool AtualizarRascunho(FeicaoGeometria geoFeicao, int objectid, string tabelaRascunho, string primaryKey, int idLayerFeicao)
        {
            OracleConnection         connection  = null;
            OracleTransaction        transaction = null;
            OracleCommand            comando     = null;
            FonteFeicaoOracleSpatial destino     = null;

            try
            {
                if (geoFeicao == null)
                {
                    throw new ApplicationException("Referência nula do objeto");
                }
                string schemaUsuario = ConfigurationManager.AppSettings["SchemaUsuarioGeo"].ToUpper();

                BancoDeDados bancoDeDados = BancoDeDadosFactory.CriarBancoDeDados("StringConexaoGeo");

                destino = GetConexao(bancoDeDados);
                destino.Abrir();

                connection = destino.Conexao;
                if (connection != null)
                {
                    transaction = connection.BeginTransaction();
                }

                comando = new OracleCommand("delete from " + tabelaRascunho + " t where t." + primaryKey + " = :objectid and t.feicao = :feicao ", connection);
                comando.Parameters.Add("objectid", OracleDbType.Int32);
                comando.Parameters["objectid"].Value = objectid;
                comando.Parameters.Add("feicao", OracleDbType.Int32);
                comando.Parameters["feicao"].Value = idLayerFeicao;
                comando.ExecuteNonQuery();

                ClasseFeicao  classeDestino          = destino.ObterClasseFeicao(tabelaRascunho);
                FeicaoAdapter adpt                   = new FeicaoAdapter(classeDestino);
                OperadorFeicaoOracleSpatial operador = (OperadorFeicaoOracleSpatial)destino.ObterOperadorFeicao(tabelaRascunho);
                TecnoGeo.Geografico.Feicao  feicao   = classeDestino.CriarFeicao();
                decimal          srid                = GetSrid();
                OperacaoEspacial operacao            = new OperacaoEspacialTransformacao(new CampoGeometrico(), srid, srid);

                feicao.Geometria = geoFeicao.RetornarGeometria();

                if (feicao.Geometria == null)
                {
                    throw new ApplicationException("Referência nula da geometria");
                }

                foreach (AtributoFeicao a in geoFeicao.Atributos)
                {
                    if (feicao.Atributos.IndiceDe(a.Nome.ToUpper()) < 0)
                    {
                        continue;
                    }
                    switch (a.Tipo)
                    {
                    case AtributoFeicao.TipoAtributo.Manual:
                        feicao.Atributos[a.Nome.ToUpper()].Valor = a.Valor;
                        break;

                    case AtributoFeicao.TipoAtributo.Sequencia:
                        adpt.Adaptadores[a.Nome.ToUpper()].Origem = TipoOrigem.Sequencia;
                        adpt.Adaptadores[a.Nome.ToUpper()].Valor  = a.Valor.ToString();
                        break;
                    }
                }

                feicao.Atributos["FEICAO"].Valor = idLayerFeicao;

                operador.Inserir(adpt.Transformar(feicao), operacao);
                transaction.Commit();
            }
            catch
            {
                if (transaction != null)
                {
                    transaction.Rollback();
                }
                throw;
            }
            finally
            {
                if (transaction != null)
                {
                    transaction.Dispose();
                }
                if (destino != null)
                {
                    destino.Fechar();
                }
                if (connection != null)
                {
                    connection.Close();
                    connection.Dispose();
                }
            }
            return(true);
        }
示例#25
0
        public void AlterarEtapaTemporario(int projetoDigitalId, eProjetoDigitalEtapaImportacao etapaImportacao, BancoDeDados banco)
        {
            GerenciadorTransacao.ObterIDAtual();

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

                _da.AlterarEtapaTemporario(projetoDigitalId, etapaImportacao, bancoDeDados);

                bancoDeDados.Commit();
            }
        }
 public object ObterDadosPdfTitulo(int empreendimento, int atividade, IEspecificidade especificidade, BancoDeDados banco = null)
 {
     return(_da.ObterDadosPdfTitulo(empreendimento, atividade, banco));
 }
 public bool CopiarDadosCredenciado(Dependencia caracterizacao, int empreendimentoInternoId, BancoDeDados bancoDeDados, BancoDeDados bancoCredenciado = null)
 {
     throw new NotImplementedException();
 }
示例#28
0
        public void GerenciarVencimentoCFOCFOCPTV(List <ConfiguracaoServico> configuracoes, BancoDeDados banco)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                ConfiguracaoServico configuracao = configuracoes.SingleOrDefault(x => x.Id == (int)eServico.VencimentoCFOCFOCPTV) ?? new ConfiguracaoServico();

                try
                {
                    DateTime inicio = configuracao.DataInicioExecucao ?? DateTime.MinValue;

                    if (configuracao == null || configuracao.Id <= 0 || configuracao.EmExecucao || (DateTime.Now - inicio) < configuracao.Intervalo)
                    {
                        return;
                    }

                    //Coloca o serviço em execução
                    configuracao.EmExecucao = true;
                    _da.EditarConfiguracao(configuracao, bancoDeDados);

                    #region Alterar situação CFO/CFOC/PTV

                    var    list   = _da.ObterVencimentosCFOCFOCPTV(bancoDeDados);
                    object tipo   = "";
                    object id     = 0;
                    var    itemId = 0;

                    foreach (var item in list)
                    {
                        item.TryGetValue("TIPO", out tipo);
                        item.TryGetValue("ID", out id);
                        itemId = Convert.ToInt32(id);

                        switch (tipo.ToString())
                        {
                        case "CFO":

                            //GerenciadorTransacao.ObterIDAtual();
                            //Não sei se precisa disso

                            using (var conDB = BancoDeDados.ObterInstancia(_da.UsuarioCredenciado))
                            {
                                conDB.IniciarTransacao();

                                _da.AlterarSituacaoCFO(itemId, conDB);

                                conDB.Commit();
                            }

                            break;

                        case "CFOC":

                            //GerenciadorTransacao.ObterIDAtual();
                            //Não sei se precisa disso

                            using (var conDB = BancoDeDados.ObterInstancia(_da.UsuarioCredenciado))
                            {
                                conDB.IniciarTransacao();

                                _da.AlterarSituacaoCFOC(itemId, conDB);

                                conDB.Commit();
                            }

                            break;

                        case "PTV":

                            _da.AlterarSituacaoPTV(itemId, bancoDeDados);

                            break;

                        case "PTV_UF":

                            _da.AlterarSituacaoPTVOutroUF(itemId, bancoDeDados);

                            break;
                        }
                    }

                    #endregion

                    //Para a execução do serviço
                    configuracao.EmExecucao = false;
                    _da.EditarConfiguracao(configuracao, bancoDeDados);
                }
                catch (Exception exc)
                {
                    //finaliza o serviço em execução
                    //configuracao.EmExecucao = false;
                    //_da.EditarConfiguracao(configuracao, bancoDeDados);
                    throw exc;
                }
            }
        }
示例#29
0
 public static void Todos(BancoDeDados.ConsultaSqlCallback callback)
 {
     BancoDeDados.NovaConsultaSql(SelectEstoqueTodosProdutos, callback);
 }
示例#30
0
        private void Criar(Cultura cultura, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Cultura

                Comando comando = bancoDeDados.CriarComando(@"insert into {0}tab_cultura (id, texto, tid) values (seq_cultura.nextval, :cultura, :tid) returning id into :id", EsquemaBanco);

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

                bancoDeDados.ExecutarNonQuery(comando);

                cultura.Id = comando.ObterValorParametro <int>("id");

                if (cultura.LstCultivar.Count > 0)
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}tab_cultura_cultivar(id, cultivar, cultura, tid) 
													      values({0}seq_cultura_cultivar.nextval, :cultivar, :cultura, :tid) returning id into :id"                                                    , EsquemaBanco);

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

                    //Insert Configurações Adicional
                    Comando cmdCultivarConfiguracao = bancoDeDados.CriarComando(@"
					insert into {0}tab_cultivar_configuracao(id, tid, cultivar, praga, tipo_producao, declaracao_adicional)
					values({0}seq_cultura_cultivar_config.nextval, :tid, :cultivar, :praga, :tipo_producao, :declaracao_adicional)"                    , EsquemaBanco);

                    foreach (Cultivar item in cultura.LstCultivar)
                    {
                        comando.SetarValorParametro("cultivar", item.Nome);

                        bancoDeDados.ExecutarNonQuery(comando);

                        cultura.Cultivar.Id = comando.ObterValorParametro <int>("id");

                        item.LsCultivarConfiguracao.ForEach(x =>
                        {
                            cmdCultivarConfiguracao.AdicionarParametroEntrada("cultivar", cultura.Cultivar.Id, DbType.Int32);
                            cmdCultivarConfiguracao.AdicionarParametroEntrada("praga", x.PragaId, DbType.Int32);
                            cmdCultivarConfiguracao.AdicionarParametroEntrada("tipo_producao", x.TipoProducaoId, DbType.Int32);
                            cmdCultivarConfiguracao.AdicionarParametroEntrada("declaracao_adicional", x.DeclaracaoAdicionalId, DbType.Int32);
                            cmdCultivarConfiguracao.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                            bancoDeDados.ExecutarNonQuery(cmdCultivarConfiguracao);
                        });
                    }
                }

                #endregion

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

                bancoDeDados.Commit();
            }
        }
示例#31
0
        public ProjetoDigital AlterarEtapa(int projetoDigitalId, eProjetoDigitalEtapa etapa, BancoDeDados banco = null)
        {
            try
            {
                ProjetoDigital projetoDigital = new ProjetoDigital();

                GerenciadorTransacao.ObterIDAtual();
                using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco, UsuarioCredenciado))
                {
                    bancoDeDados.IniciarTransacao();

                    projetoDigital = Obter(idProjeto: projetoDigitalId, banco: bancoDeDados);

                    if (projetoDigital != null && projetoDigital.Id > 0 && projetoDigital.Etapa != (int)etapa)
                    {
                        projetoDigital.Etapa = (int)etapa;

                        Salvar(projetoDigital, bancoDeDados);

                        bancoDeDados.Commit();
                    }
                }

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

            return(null);
        }
示例#32
0
        internal Resultados <CulturaListarResultado> Filtrar(Filtro <CulturaListarFiltro> filtro)
        {
            Resultados <CulturaListarResultado> retorno = new Resultados <CulturaListarResultado>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
            {
                string     comandtxt    = string.Empty;
                string     esquemaBanco = (string.IsNullOrEmpty(EsquemaBanco) ? "" : EsquemaBanco + ".");
                Comando    comando      = bancoDeDados.CriarComando("");
                List <int> culturas     = new List <int>();

                #region Adicionando Filtros

                if (!string.IsNullOrEmpty(filtro.Dados.Cultivar))
                {
                    if (filtro.Dados.StraggCultivar)
                    {
                        comandtxt = comando.FiltroAndLike("cc.cultivar", "cultivar", filtro.Dados.Cultivar, true, true);

                        comando.DbCommand.CommandText = String.Format(@"select distinct cc.cultura from tab_cultura_cultivar cc where cc.id > 0" + comandtxt, esquemaBanco);
                        culturas = bancoDeDados.ExecutarList <int>(comando);

                        comando   = bancoDeDados.CriarComando("");
                        comandtxt = string.Empty;
                    }
                    else
                    {
                        comandtxt = comando.FiltroAndLike("cc.cultivar", "cultivar", filtro.Dados.Cultivar, true, true);
                    }
                }

                comandtxt += comando.FiltroAndLike("c.texto", "cultura", filtro.Dados.Cultura, true, true);

                comandtxt += comando.AdicionarIn("and", "c.id", DbType.Int32, culturas);

                List <String> ordenar = new List <String>();
                List <String> colunas = new List <String>()
                {
                    "cultura", "cultivar"
                };

                if (filtro.OdenarPor > 0)
                {
                    ordenar.Add(colunas.ElementAtOrDefault(filtro.OdenarPor - 1));
                }
                else
                {
                    ordenar.Add("cultura");
                }

                #endregion

                #region Quantidade de registro do resultado

                if (filtro.Dados.StraggCultivar)
                {
                    comando.DbCommand.CommandText = String.Format(@"select count(*) from tab_cultura c where c.id > 0" + comandtxt, esquemaBanco);
                }
                else
                {
                    comando.DbCommand.CommandText = String.Format(@"select count(*) from(select c.id, c.texto cultura, cc.cultivar 
					from {0}tab_cultura c, {0}tab_cultura_cultivar cc where cc.cultura = c.id "                     + comandtxt + ")", esquemaBanco);
                }

                retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando));

                comando.AdicionarParametroEntrada("menor", filtro.Menor);
                comando.AdicionarParametroEntrada("maior", filtro.Maior);

                if (filtro.Dados.StraggCultivar)
                {
                    comandtxt = String.Format(@"select c.id, c.texto cultura, stragg(cc.cultivar) cultivar from {0}tab_cultura c, {0}tab_cultura_cultivar cc
					where cc.cultura(+) = c.id "                     + comandtxt + " group by c.id, c.texto " + DaHelper.Ordenar(colunas, ordenar), esquemaBanco);
                }
                else
                {
                    comandtxt = String.Format(@"select c.id, c.texto cultura, cc.cultivar, cc.id cultivar_id from {0}tab_cultura c, {0}tab_cultura_cultivar cc 
					where cc.cultura = c.id "                     + comandtxt + " group by c.id, c.texto, cc.cultivar, cc.id" + DaHelper.Ordenar(colunas, ordenar), esquemaBanco);
                }

                comando.DbCommand.CommandText = @"select * from (select a.*, rownum rnum from ( " + comandtxt + @") a) where rnum <= :maior and rnum >= :menor";

                #endregion

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    CulturaListarResultado item;

                    while (reader.Read())
                    {
                        item          = new CulturaListarResultado();
                        item.Id       = reader.GetValue <int>("id");
                        item.Cultura  = reader.GetValue <string>("cultura");
                        item.Cultivar = reader.GetValue <string>("cultivar");

                        if (!filtro.Dados.StraggCultivar)
                        {
                            item.CultivarId = reader.GetValue <string>("cultivar_id");
                        }

                        retorno.Itens.Add(item);
                    }

                    reader.Close();
                }
            }

            return(retorno);
        }
示例#33
0
        internal Cultura Obter(int id)
        {
            Cultura cultura = new Cultura();

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

                Comando comando = bancoDeDados.CriarComando(@"select t.id, t.texto, t.tid from {0}tab_cultura t where t.id = :id", EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        cultura.Id   = id;
                        cultura.Nome = reader.GetValue <string>("texto");
                        cultura.Tid  = reader.GetValue <string>("tid");
                    }

                    reader.Close();
                }

                #endregion

                #region Cultivar

                comando.DbCommand.CommandText = @" select cc.id, cc.cultivar nome, cc.tid from tab_cultura_cultivar cc where cc.cultura = :id";
                cultura.LstCultivar           = bancoDeDados.ObterEntityList <Cultivar>(comando);

                #endregion

                #region Cultivar_Configurações

                comando = bancoDeDados.CriarComando(@"
				select t.id, t.tid, t.cultivar, t.praga PragaId, p.nome_cientifico || nvl2(p.nome_comum,' - '||p.nome_comum,'') as PragaTexto, t.tipo_producao TipoProducaoId,
				lt.texto as TipoProducaoTexto, t.declaracao_adicional DeclaracaoAdicionalId, ld.texto as DeclaracaoAdicionalTexto
				from {0}tab_cultivar_configuracao t, {0}tab_praga p, lov_cultivar_tipo_producao lt, lov_cultivar_declara_adicional ld
				where p.id = t.praga and lt.id = t.tipo_producao and ld.id = t.declaracao_adicional and t.cultivar = :id"                , EsquemaBanco);

                cultura.LstCultivar.ForEach(x =>
                {
                    comando.AdicionarParametroEntrada("id", x.Id, DbType.Int32);
                    using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                    {
                        while (reader.Read())
                        {
                            x.LsCultivarConfiguracao.Add(new CultivarConfiguracao()
                            {
                                Id                       = reader.GetValue <int>("id"),
                                Tid                      = reader.GetValue <string>("tid"),
                                Cultivar                 = reader.GetValue <int>("cultivar"),
                                PragaId                  = reader.GetValue <int>("PragaId"),
                                PragaTexto               = reader.GetValue <string>("PragaTexto"),
                                TipoProducaoId           = reader.GetValue <int>("TipoProducaoId"),
                                TipoProducaoTexto        = reader.GetValue <string>("TipoProducaoTexto"),
                                DeclaracaoAdicionalId    = reader.GetValue <int>("DeclaracaoAdicionalId"),
                                DeclaracaoAdicionalTexto = reader.GetValue <string>("DeclaracaoAdicionalTexto")
                            });
                        }

                        reader.Close();
                    }
                });

                #endregion
            }

            return(cultura);
        }
示例#34
0
        private void Editar(Cultura cultura, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                bancoDeDados.IniciarTransacao();

                #region Cultura

                Comando comando         = comando = bancoDeDados.CriarComando(@"update tab_cultura set texto = :cultura, tid = :tid where id = :id", EsquemaBanco);
                Comando cmdConfiguracao = null;

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

                bancoDeDados.ExecutarNonQuery(comando);

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

                if (cultura.LstCultivar != null && cultura.LstCultivar.Count > 0)
                {
                    int idCultivar = 0;
                    foreach (Cultivar item in cultura.LstCultivar)
                    {
                        if (item.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}tab_cultura_cultivar c set c.cultivar = :cultivar, c.tid = :tid  where c.id = :id", EsquemaBanco);
                            comando.AdicionarParametroEntrada("id", item.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into {0}tab_cultura_cultivar(id, cultivar, cultura, tid) 
							values ({0}seq_cultura_cultivar.nextval, :cultivar, :cultura, :tid) returning id into :id"                            , EsquemaBanco);
                            comando.AdicionarParametroEntrada("cultura", cultura.Id, DbType.Int32);
                            comando.AdicionarParametroSaida("id", DbType.Int32);
                        }

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

                        bancoDeDados.ExecutarNonQuery(comando);

                        if (item.Id < 0)
                        {
                            idCultivar = comando.ObterValorParametro <int>("id");
                        }

                        //Cultura_Cultivar_Configuracões
                        comando = bancoDeDados.CriarComando(@"delete from {0}tab_cultivar_configuracao t where t.cultivar = :cultivar", EsquemaBanco);
                        comando.AdicionarParametroEntrada("cultivar", item.Id, DbType.Int32);
                        comando.DbCommand.CommandText += comando.AdicionarNotIn("and", "t.id", DbType.Int32, item.LsCultivarConfiguracao.Select(xx => xx.Id).ToList());
                        bancoDeDados.ExecutarNonQuery(comando);

                        cmdConfiguracao = null;
                        if (item.LsCultivarConfiguracao != null)
                        {
                            item.LsCultivarConfiguracao.ForEach(x =>
                            {
                                if (x.Id > 0)
                                {
                                    cmdConfiguracao = bancoDeDados.CriarComando(@"update tab_cultivar_configuracao t set t.cultivar = :cultivar, t.praga = :praga, 
								    t.tipo_producao = :tipo_producao, t.declaracao_adicional =:declaracao_adicional, t.tid = :tid where t.id = :id"                                , EsquemaBanco);
                                    cmdConfiguracao.AdicionarParametroEntrada("cultivar", x.Cultivar, DbType.Int32);
                                    cmdConfiguracao.AdicionarParametroEntrada("id", x.Id, DbType.Int32);
                                }
                                else
                                {
                                    cmdConfiguracao = bancoDeDados.CriarComando(@"
									insert into {0}tab_cultivar_configuracao(id, tid, cultivar, praga, tipo_producao, declaracao_adicional)
									values({0}seq_cultura_cultivar_config.nextval, :tid, :cultivar, :praga, :tipo_producao, :declaracao_adicional)"                                    , EsquemaBanco);

                                    if (item.Id < 0)
                                    {
                                        cmdConfiguracao.AdicionarParametroEntrada("cultivar", idCultivar, DbType.Int32);
                                    }
                                    else
                                    {
                                        cmdConfiguracao.AdicionarParametroEntrada("cultivar", x.Cultivar, DbType.Int32);
                                    }
                                }

                                cmdConfiguracao.AdicionarParametroEntrada("praga", x.PragaId, DbType.Int32);
                                cmdConfiguracao.AdicionarParametroEntrada("tipo_producao", x.TipoProducaoId, DbType.Int32);
                                cmdConfiguracao.AdicionarParametroEntrada("declaracao_adicional", x.DeclaracaoAdicionalId, DbType.Int32);
                                cmdConfiguracao.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                                bancoDeDados.ExecutarNonQuery(cmdConfiguracao);
                            });
                        }
                    }
                }

                #endregion

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

                bancoDeDados.Commit();
            }
        }
示例#35
0
 /// <summary>
 /// Retorna um tabela com todos cargos da empresa.
 /// </summary>
 /// <param name="callback">Uma expressão lambda com um SqlDataReader como parâmetro.</param>
 public static void Todos(BancoDeDados.ConsultaSqlCallback callback)
 {
     BancoDeDados.NovaConsultaSql(SelectTiposDeCargosTodos, callback);
 }
示例#36
0
        public ProjetoDigital Obter(int idProjeto = 0, int idRequerimento = 0, string tid = null, BancoDeDados banco = null)
        {
            try
            {
                ProjetoDigital projeto;

                if (String.IsNullOrWhiteSpace(tid))
                {
                    projeto = _da.Obter(idProjeto, idRequerimento, banco);
                }
                else
                {
                    projeto = _da.Obter(idProjeto, banco, tid);
                }

                projeto.Dependencias = ObterDependencias(idProjeto);

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

            return(null);
        }
示例#37
0
        public bool Salvar(Documento documento)
        {
            try
            {
                documento.Emposse.Id = User.FuncionarioId;

                if (documento.Arquivo == null)
                {
                    documento.Arquivo = new Arquivo();
                }

                bool isEdicao = (documento.Id > 0);

                if (_validar.Salvar(documento))
                {
                    #region Arquivos/Diretorio

                    if (documento.Arquivo.Id != null && documento.Arquivo.Id == 0)
                    {
                        ArquivoBus _busArquivo = new ArquivoBus(eExecutorTipo.Interno);
                        documento.Arquivo = _busArquivo.Copiar(documento.Arquivo);
                    }

                    #endregion

                    #region Setar Valores

                    ListaBus      listaBus     = new ListaBus();
                    ProtocoloTipo configuracao = listaBus.TiposDocumento.FirstOrDefault(x => x.Id == documento.Tipo.Id);

                    documento.ProtocoloAssociado = (configuracao.PossuiProcesso || configuracao.ProcessoObrigatorio) ? documento.ProtocoloAssociado : new Protocolo();
                    documento.ChecagemPendencia  = (configuracao.PossuiChecagemPendencia || configuracao.ChecagemPendenciaObrigatorio) ? documento.ChecagemPendencia : new ChecagemPendencia();
                    documento.ChecagemRoteiro    = (configuracao.PossuiChecagemRoteiro || configuracao.ChecagemRoteiroObrigatorio) ? documento.ChecagemRoteiro : new ChecagemRoteiro();
                    documento.Requerimento       = (configuracao.PossuiRequerimento || configuracao.RequerimentoObrigatorio) ? documento.Requerimento : new Requerimento();

                    #endregion

                    GerenciadorTransacao.ObterIDAtual();

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

                        #region Arquivos/Banco

                        if (documento.Arquivo.Id == 0)
                        {
                            ArquivoDa _arquivoDa = new ArquivoDa();
                            _arquivoDa.Salvar(documento.Arquivo, User.FuncionarioId, User.Name, User.Login, (int)eExecutorTipo.Interno, User.FuncionarioTid, bancoDeDados);
                        }

                        #endregion

                        ChecagemPendenciaBus _checagemPendenciaBus = new ChecagemPendenciaBus();

                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoDeDadosCredenciado.IniciarTransacao();

                            #region Alterar Situacao Requerimento

                            if (documento.Id.HasValue)
                            {
                                Documento docOriginal = _da.ObterSimplificado(documento.Id.Value) as Documento;
                                docOriginal.Requerimento = _busRequerimento.ObterSimplificado(docOriginal.Requerimento.Id);

                                if (docOriginal.Requerimento.Id != documento.Requerimento.Id)
                                {
                                    AlterarRequerimentoSituacao(docOriginal, banco: bancoDeDados);

                                    if (docOriginal.Requerimento.IsRequerimentoDigital)
                                    {
                                        CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                        carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao()
                                        {
                                            Requerimento = docOriginal.Requerimento
                                        }, bancoDeDadosCredenciado);

                                        if (!_busProjetoDigital.AlterarSituacao(docOriginal.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado))
                                        {
                                            bancoDeDados.Rollback();
                                            return(false);
                                        }
                                    }
                                }
                            }

                            #endregion

                            Documento documentoOriginal = new Documento();
                            if (documento.Id != null && documento.Id.GetValueOrDefault() > 0)
                            {
                                documentoOriginal = ObterSimplificado(documento.Id.Value);
                            }

                            #region Titulo

                            if (documento.ChecagemPendencia.Id > 0 && documento.Id.GetValueOrDefault() == 0)
                            {
                                documento.ChecagemPendencia = _checagemPendenciaBus.Obter(documento.ChecagemPendencia.Id);

                                TituloBus tituloBus = new TituloBus();
                                Titulo    titulo    = tituloBus.Obter(documento.ChecagemPendencia.TituloId);

                                if (titulo.Situacao.Id != 5)                                //5 - Encerrado
                                {
                                    titulo.DataEncerramento.Data = DateTime.Now;
                                    titulo.MotivoEncerramentoId  = 7;                                   //Encerrado
                                    TituloSituacaoBus tituloSituacaoBus = new TituloSituacaoBus();
                                    tituloSituacaoBus.AlterarSituacao(titulo, (int)eAlterarSituacaoAcao.Encerrar, bancoDeDados);

                                    if (Validacao.EhValido)
                                    {
                                        Validacao.Erros.Clear();
                                    }
                                }

                                #region Itens da Analise

                                AnaliseItensBus busAnalise = new AnaliseItensBus(new AnaliseItensValidar());

                                AnaliseItem analiseItem = busAnalise.ObterAnaliseTitulo(documento.ChecagemPendencia.TituloId);
                                analiseItem = busAnalise.Obter(analiseItem.Id, bancoDeDados);
                                //int setorId = _busProc.ObterSetor(analiseItem.Protocolo.Id);

                                foreach (Item item in analiseItem.Itens)
                                {
                                    if (documento.ChecagemPendencia.Itens.Exists(x => x.Id == item.Id))
                                    {
                                        item.Analista = User.Name;
                                        item.Situacao = (int)eAnaliseItemSituacao.Recebido;
                                        item.Motivo   = String.Empty;
                                        item.Recebido = true;
                                        item.Editado  = true;
                                        //item.SetorId = setorId;
                                        item.DataAnalise = DateTime.Now.ToString();
                                    }
                                }

                                AnaliseItensDa _daAnalise = new AnaliseItensDa();
                                _daAnalise.Salvar(analiseItem, bancoDeDados);

                                #endregion
                            }

                            #endregion

                            #region Atividade

                            List <Atividade> lstAtividadesAtual = null;
                            if ((documento.Id ?? 0) > 0)
                            {
                                lstAtividadesAtual = _da.ObterAtividades(documento.Id.GetValueOrDefault(), bancoDeDados).Atividades;
                            }

                            if (documento.Atividades != null && documento.Atividades.Count > 0)
                            {
                                documento.Atividades.ForEach(x =>
                                {
                                    x.Protocolo.Id         = documento.Id.GetValueOrDefault();
                                    x.Protocolo.IsProcesso = false;
                                });

                                AtividadeBus atividadeBus = new AtividadeBus();
                                atividadeBus.AlterarSituacaoProcDoc(documento.Atividades, lstAtividadesAtual, bancoDeDados);
                                atividadeBus.TituloAnteriores(documento.Atividades, lstAtividadesAtual, bancoDeDados);
                            }

                            #endregion

                            _da.Salvar(documento, bancoDeDados);

                            #region Checagens

                            // cadastrando, seta situação da checagem de itens de roteiro/pendencia como protocolada
                            if (documentoOriginal.Id.GetValueOrDefault() <= 0)
                            {
                                _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados); //protocolada

                                documento.ChecagemPendencia.SituacaoId = 2;                                   //protocolada
                                _checagemPendenciaBus.AlterarSituacao(documento.ChecagemPendencia, bancoDeDados);
                            }
                            else                             // editando documento
                            {                                // se checagem de itens de roteiro foi alterada, setar o status da antiga como finalizada e setar o status da nova como protocolada
                                if (documento.ChecagemRoteiro.Id != documentoOriginal.ChecagemRoteiro.Id)
                                {
                                    _busCheckList.AlterarSituacao(documentoOriginal.ChecagemRoteiro.Id, 1, bancoDeDados);                            //finalizada
                                    _busCheckList.AlterarSituacao(documento.ChecagemRoteiro.Id, 2, bancoDeDados);                                    //protocolada
                                }
                            }

                            #endregion

                            documento.Requerimento = _busRequerimento.ObterSimplificado(documento.Requerimento.Id);

                            if (documento.Requerimento.IsRequerimentoDigital)
                            {
                                CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                                carSolicitacaoCredenciadoBus.AssociarProtocolo(new CARSolicitacao()
                                {
                                    Requerimento = documento.Requerimento
                                }, bancoDeDadosCredenciado);

                                if (documentoOriginal.Requerimento.Id != documento.Requerimento.Id)
                                {
                                    if (!_busProjetoDigital.AlterarSituacao(documento.Requerimento.Id, eProjetoDigitalSituacao.AguardandoAnalise, bancoDeDadosCredenciado))
                                    {
                                        bancoDeDados.Rollback();
                                        return(false);
                                    }
                                }
                            }

                            AlterarRequerimentoSituacao(documento, 3, bancoDeDados);                            // Protocolado

                            #region Fiscalizacao

                            if (isEdicao && documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id && documentoOriginal.Fiscalizacao.Id > 0)
                            {
                                documentoOriginal.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.CadastroConcluido;
                                documentoOriginal.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                documentoOriginal.Fiscalizacao.SituacaoAtualTipo     = documento.Fiscalizacao.SituacaoId;

                                _busFiscalizacao.AlterarSituacaoProcDoc(documentoOriginal.Fiscalizacao, bancoDeDados);
                            }

                            if (documento.Fiscalizacao.Id != documentoOriginal.Fiscalizacao.Id)
                            {
                                documento.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.Protocolado;
                                documento.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;
                                documento.Fiscalizacao.SituacaoAtualTipo     = documento.Fiscalizacao.SituacaoId;

                                _busFiscalizacao.AlterarSituacaoProcDoc(documento.Fiscalizacao, bancoDeDados);
                            }

                            #endregion

                            //sempre no final esse if
                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(false);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        bancoDeDados.Commit();
                    }

                    Mensagem msgSucesso = Mensagem.Documento.Salvar(documento.Numero);
                    if (isEdicao)
                    {
                        msgSucesso = Mensagem.Documento.Editar;
                    }

                    Validacao.Add(msgSucesso);
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
示例#38
0
        internal InformacaoCorteInformacao ObterInformacaoItem(int id, BancoDeDados banco = null)
        {
            InformacaoCorteInformacao informacaoCorte = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Informacao de Corte Informacao

                Comando comando = bancoDeDados.CriarComando(@"select i.arvores_isoladas_restante, i.area_corte_restante, i.data_informacao, i.tid
															from crt_inf_corte_inf i where i.id = :id order by i.id"                                                            , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        informacaoCorte     = new InformacaoCorteInformacao();
                        informacaoCorte.Id  = id;
                        informacaoCorte.Tid = reader["tid"].ToString();

                        if (reader["data_informacao"] != null && !Convert.IsDBNull(reader["data_informacao"]))
                        {
                            informacaoCorte.DataInformacao.DataTexto = Convert.ToDateTime(reader["data_informacao"]).ToShortDateString();
                        }

                        if (reader["arvores_isoladas_restante"] != null && !Convert.IsDBNull(reader["arvores_isoladas_restante"]))
                        {
                            informacaoCorte.ArvoresIsoladasRestantes = Convert.ToDecimal(reader["arvores_isoladas_restante"]).ToString("N0");
                        }

                        if (reader["area_corte_restante"] != null && !Convert.IsDBNull(reader["area_corte_restante"]))
                        {
                            informacaoCorte.AreaCorteRestante = Convert.ToDecimal(reader["area_corte_restante"]).ToString("N4");
                        }

                        #region Especies

                        comando = bancoDeDados.CriarComando(@"select e.id, e.especie, le.texto especie_texto, e.especie_especificar_texto, 
															e.arvores_isoladas, e.area_corte, e.idade_plantio, e.tid from crt_inf_corte_inf_especie e, 
															lov_crt_silvicultura_cult_fl le where le.id = e.especie 
															and e.inf_corte_inf = :inf_corte_inf order by e.id"                                                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("inf_corte_inf", informacaoCorte.Id, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            Especie especie = null;

                            while (readerAux.Read())
                            {
                                especie                  = new Especie();
                                especie.Id               = Convert.ToInt32(readerAux["id"]);
                                especie.EspecieTipo      = Convert.ToInt32(readerAux["especie"]);
                                especie.EspecieTipoTexto = readerAux["especie_texto"].ToString();

                                especie.Tid = readerAux["tid"].ToString();

                                if (readerAux["arvores_isoladas"] != null && !Convert.IsDBNull(readerAux["arvores_isoladas"]))
                                {
                                    especie.ArvoresIsoladas = Convert.ToDecimal(readerAux["arvores_isoladas"]).ToString("N0");
                                }

                                if (readerAux["area_corte"] != null && !Convert.IsDBNull(readerAux["area_corte"]))
                                {
                                    especie.AreaCorte = Convert.ToDecimal(readerAux["area_corte"]).ToString("N4");
                                }

                                if (readerAux["idade_plantio"] != null && !Convert.IsDBNull(readerAux["idade_plantio"]))
                                {
                                    especie.IdadePlantio = Convert.ToDecimal(readerAux["idade_plantio"]).ToString("N0");
                                }

                                if (readerAux["especie_especificar_texto"] != null && !Convert.IsDBNull(readerAux["especie_especificar_texto"]))
                                {
                                    especie.EspecieEspecificarTexto = readerAux["especie_especificar_texto"].ToString();
                                    especie.EspecieTipoTexto        = especie.EspecieEspecificarTexto;
                                }

                                informacaoCorte.Especies.Add(especie);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        #region Produtos

                        comando = bancoDeDados.CriarComando(@"select p.id, p.produto, lp.texto produto_texto, p.destinacao_material, 
															lm.texto destinacao_material_texto, p.quantidade, p.tid 
															from {0}crt_inf_corte_inf_produto p, {0}lov_crt_produto lp, 
															{0}lov_crt_inf_corte_inf_dest_mat lm where lp.id = p.produto 
															and lm.id = p.destinacao_material and p.inf_corte_inf = :inf_corte_inf order by p.id"                                                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("inf_corte_inf", informacaoCorte.Id, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            Produto produto = null;

                            while (readerAux.Read())
                            {
                                produto                     = new Produto();
                                produto.Id                  = Convert.ToInt32(readerAux["id"]);
                                produto.ProdutoTipo         = Convert.ToInt32(readerAux["produto"]);
                                produto.ProdutoTipoTexto    = readerAux["produto_texto"].ToString();
                                produto.DestinacaoTipo      = Convert.ToInt32(readerAux["destinacao_material"]);
                                produto.DestinacaoTipoTexto = readerAux["destinacao_material_texto"].ToString();

                                if (readerAux["quantidade"] != null && !Convert.IsDBNull(readerAux["quantidade"]))
                                {
                                    produto.Quantidade = Convert.ToDecimal(readerAux["quantidade"]).ToString("N2");
                                }

                                produto.Tid = readerAux["tid"].ToString();

                                informacaoCorte.Produtos.Add(produto);
                            }

                            readerAux.Close();
                        }

                        #endregion
                    }

                    reader.Close();
                }

                #endregion
            }

            return(informacaoCorte);
        }
 public FRMSolicitarEmail(BancoDeDados bancoDeDados)
 {
     InitializeComponent();
     this.bancoDeDados = bancoDeDados;
 }
示例#40
0
        internal int?Criar(InformacaoCorte caracterizacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Informacao de Corte

                bancoDeDados.IniciarTransacao();

                Comando comando = bancoDeDados.CriarComando(@"insert into {0}crt_informacao_corte(id, empreendimento, tid) 
															values({0}seq_crt_informacao_corte.nextval, :empreendimento, :tid) returning id into :id"                                                            , EsquemaBanco);

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

                bancoDeDados.ExecutarNonQuery(comando);

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

                #region Informacao de Corte Informacao

                comando = bancoDeDados.CriarComando(@"insert into {0}crt_inf_corte_inf(id, caracterizacao, arvores_isoladas_restante, 
													area_corte_restante, data_informacao, tid) values({0}seq_crt_inf_corte_inf.nextval,
													:caracterizacao, :arvores_isoladas_restante, :area_corte_restante,  
													:data_informacao, :tid) returning id into :id"                                                    , EsquemaBanco);

                comando.AdicionarParametroEntrada("caracterizacao", caracterizacao.Id, DbType.Int32);
                comando.AdicionarParametroEntrada("arvores_isoladas_restante", caracterizacao.InformacaoCorteInformacao.ArvoresIsoladasRestantes, DbType.Decimal);
                comando.AdicionarParametroEntrada("area_corte_restante", caracterizacao.InformacaoCorteInformacao.AreaCorteRestante, DbType.Decimal);
                comando.AdicionarParametroEntrada("data_informacao", caracterizacao.InformacaoCorteInformacao.DataInformacao.DataTexto, DbType.DateTime);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());
                comando.AdicionarParametroSaida("id", DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

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

                #region Especies

                if (caracterizacao.InformacaoCorteInformacao.Especies != null && caracterizacao.InformacaoCorteInformacao.Especies.Count > 0)
                {
                    foreach (Especie especie in caracterizacao.InformacaoCorteInformacao.Especies)
                    {
                        comando = bancoDeDados.CriarComando(@"insert into {0}crt_inf_corte_inf_especie(id, inf_corte_inf, especie, 
															especie_especificar_texto, arvores_isoladas, area_corte, idade_plantio, tid)
															values({0}seq_crt_inf_corte_inf_especie.nextval, :inf_corte_inf, 
															:especie, :especie_especificar_texto, :arvores_isoladas, :area_corte, :idade_plantio, 
															:tid)"                                                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("inf_corte_inf", caracterizacao.InformacaoCorteInformacao.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("especie", especie.EspecieTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("especie_especificar_texto", String.IsNullOrWhiteSpace(especie.EspecieEspecificarTexto) ? (Object)DBNull.Value: especie.EspecieEspecificarTexto, DbType.String);
                        comando.AdicionarParametroEntrada("arvores_isoladas", especie.ArvoresIsoladas, DbType.Decimal);
                        comando.AdicionarParametroEntrada("area_corte", especie.AreaCorte, DbType.Decimal);
                        comando.AdicionarParametroEntrada("idade_plantio", especie.IdadePlantio, DbType.Decimal);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);
                    }
                }

                #endregion

                #region Produtos

                if (caracterizacao.InformacaoCorteInformacao.Produtos != null && caracterizacao.InformacaoCorteInformacao.Produtos.Count > 0)
                {
                    foreach (Produto produto in caracterizacao.InformacaoCorteInformacao.Produtos)
                    {
                        comando = bancoDeDados.CriarComando(@"insert into crt_inf_corte_inf_produto(id, inf_corte_inf, produto,
															destinacao_material, quantidade, tid) values({0}seq_crt_inf_corte_inf_produto.nextval, 
															:inf_corte_inf, :produto, :destinacao_material, :quantidade, :tid)"                                                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("inf_corte_inf", caracterizacao.InformacaoCorteInformacao.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("produto", produto.ProdutoTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("destinacao_material", produto.DestinacaoTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("quantidade", produto.Quantidade, DbType.Decimal);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);
                    }
                }

                #endregion

                #endregion

                #endregion

                #region Histórico

                Historico.Gerar(caracterizacao.Id, eHistoricoArtefatoCaracterizacao.informacaocorte, eHistoricoAcao.criar, bancoDeDados, null);

                #endregion

                bancoDeDados.Commit();

                return(caracterizacao.Id);
            }
        }
        public Suinocultura ObterPorEmpreendimento(int EmpreendimentoId, bool simplificado = false, BancoDeDados banco = null)
        {
            Suinocultura caracterizacao = null;

            try
            {
                caracterizacao = _da.ObterPorEmpreendimento(EmpreendimentoId, simplificado: simplificado);
                caracterizacao.Dependencias = _busCaracterizacao.ObterDependencias(caracterizacao.Id, eCaracterizacao.Suinocultura, eCaracterizacaoDependenciaTipo.Caracterizacao);
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(caracterizacao);
        }
示例#42
0
        private InformacaoCorte ObterHistorico(int id, BancoDeDados banco = null, string tid = null, bool simplificado = false)
        {
            InformacaoCorte caracterizacao    = new InformacaoCorte();
            int             hst               = 0;
            int             hst_inf_corte_inf = 0;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Informacao de Corte

                Comando comando = bancoDeDados.CriarComando(@"select c.id, c.empreendimento_id, c.tid 
															from {0}hst_crt_informacao_corte c where c.caracterizacao = :id and c.tid = :tid"                                                            , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    if (reader.Read())
                    {
                        caracterizacao.Id = id;
                        caracterizacao.EmpreendimentoId = Convert.ToInt32(reader["empreendimento_id"]);
                        caracterizacao.Tid = reader["tid"].ToString();
                        hst = Convert.ToInt32(reader["id"]);
                    }

                    reader.Close();
                }

                #endregion

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

                #region Informacoes

                comando = bancoDeDados.CriarComando(@"select i.id, i.inf_corte_inf, i.arvores_isoladas_restante, i.area_corte_restante, i.data_informacao, i.tid
													from hst_crt_inf_corte_inf i where i.caracterizacao = :caracterizacao and i.id_hst = :hst"                                                    , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    InformacaoCorteInformacao informacaoCorte = null;

                    while (reader.Read())
                    {
                        informacaoCorte    = new InformacaoCorteInformacao();
                        informacaoCorte.Id = Convert.ToInt32(reader["inf_corte_inf"]);
                        informacaoCorte.ArvoresIsoladasRestantes = reader["arvores_isoladas_restante"].ToString();
                        informacaoCorte.AreaCorteRestante        = reader["area_corte_restante"].ToString();
                        informacaoCorte.DataInformacao.DataTexto = Convert.ToDateTime(reader["data_informacao"]).ToShortDateString();
                        informacaoCorte.Tid = reader["tid"].ToString();
                        hst_inf_corte_inf   = Convert.ToInt32(reader["id"]);

                        #region Especies

                        comando = bancoDeDados.CriarComando(@"select e.especie_entidade_id, e.especie_id, e.especie_texto, e.especie_especificar_texto, 
															e.arvores_isoladas, e.area_corte, e.idade_plantio, e.tid from hst_crt_inf_corte_inf_especie e
															where e.id_hst = :hst_inf_corte_inf"                                                            , EsquemaBanco);

                        comando.AdicionarParametroEntrada("inf_corte_inf", informacaoCorte.Id, DbType.Int32);
                        comando.AdicionarParametroEntrada("hst_inf_corte_inf", hst_inf_corte_inf, DbType.Int32);

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            Especie especie = null;

                            while (readerAux.Read())
                            {
                                especie                  = new Especie();
                                especie.Id               = Convert.ToInt32(readerAux["especie_entidade_id"]);
                                especie.EspecieTipo      = Convert.ToInt32(readerAux["especie_id"]);
                                especie.EspecieTipoTexto = readerAux["especie_texto"].ToString();
                                especie.ArvoresIsoladas  = readerAux["arvores_isoladas"].ToString();
                                especie.AreaCorte        = readerAux["area_corte"].ToString();
                                especie.Tid              = readerAux["tid"].ToString();

                                if (readerAux["especie_especificar_texto"] != null && !Convert.IsDBNull(readerAux["especie_especificar_texto"]))
                                {
                                    especie.EspecieEspecificarTexto = readerAux["especie_especificar_texto"].ToString();
                                }

                                if (readerAux["idade_plantio"] != null && !Convert.IsDBNull(readerAux["idade_plantio"]))
                                {
                                    especie.IdadePlantio = Convert.ToDecimal(readerAux["idade_plantio"]).ToString("N0");
                                }

                                informacaoCorte.Especies.Add(especie);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        #region Produtos

                        comando = bancoDeDados.CriarComando(@"select p.id, p.produto_entidade_id, p.produto_id, p.produto_texto, p.destinacao_material_id, 
															p.destinacao_material_texto, p.quantidade, p.tid 
															from {0}hst_crt_inf_corte_inf_produto p
															where p.id_hst = :hst_inf_corte_inf"                                                            , EsquemaBanco);

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

                        using (IDataReader readerAux = bancoDeDados.ExecutarReader(comando))
                        {
                            Produto produto = null;

                            while (readerAux.Read())
                            {
                                produto                     = new Produto();
                                produto.Id                  = Convert.ToInt32(readerAux["produto_entidade_id"]);
                                produto.ProdutoTipo         = Convert.ToInt32(readerAux["produto_id"]);
                                produto.ProdutoTipoTexto    = readerAux["produto_texto"].ToString();
                                produto.DestinacaoTipo      = Convert.ToInt32(readerAux["destinacao_material_id"]);
                                produto.DestinacaoTipoTexto = readerAux["destinacao_material_texto"].ToString();
                                produto.Quantidade          = readerAux["quantidade"].ToString();
                                produto.Tid                 = readerAux["tid"].ToString();

                                informacaoCorte.Produtos.Add(produto);
                            }

                            readerAux.Close();
                        }

                        #endregion

                        caracterizacao.InformacoesCortes.Add(informacaoCorte);
                    }

                    reader.Close();
                }

                #endregion
            }

            return(caracterizacao);
        }
 public List <int> ObterAtividadesCaracterizacao(int empreendimento, BancoDeDados banco = null)
 {
     //Para o caso da coluna da atividade estar na tabela principal
     return(_busCaracterizacao.ObterAtividades(empreendimento, Caracterizacao.Tipo));
 }
        internal UnidadeProducaoRelatorio Obter(int projetoDigitalId)
        {
            UnidadeProducaoRelatorio unidade = null;

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(EsquemaBancoCredenciado))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.id, c.propriedade_codigo, c.local_livro, e.denominador, e.cnpj, ee.cep, ee.logradouro, ee.bairro,  ee.distrito,
				ee.numero, lm.texto municipio_texto, le.sigla estado_sigla,  ee.corrego,  ee.complemento, tp.situacao projeto_situacao from crt_unidade_producao c, tab_empreendimento e,
				tab_empreendimento_endereco ee, lov_municipio lm, lov_estado le, tab_projeto_digital tp where e.id = tp.empreendimento and c.empreendimento = e.id and e.id = 
				ee.empreendimento  and ee.correspondencia = 0 and le.id = ee.estado and lm.id = ee.municipio and tp.id = :id"                , EsquemaBancoCredenciado);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        unidade    = new UnidadeProducaoRelatorio();
                        unidade.Id = reader.GetValue <int>("id");
                        unidade.CodigoPropriedade          = reader.GetValue <Int64>("propriedade_codigo").ToString("D4");
                        unidade.LocalLivro                 = reader.GetValue <string>("local_livro");
                        unidade.Empreendimento.Denominador = reader.GetValue <string>("denominador");
                        unidade.Empreendimento.CNPJ        = reader.GetValue <string>("cnpj");
                        unidade.Situacao = (eProjetoDigitalSituacao)reader.GetValue <int>("projeto_situacao");
                        unidade.Empreendimento.Enderecos.Add(new EnderecoRelatorio()
                        {
                            Cep             = reader.GetValue <string>("cep"),
                            Logradouro      = reader.GetValue <string>("logradouro"),
                            Bairro          = reader.GetValue <string>("bairro"),
                            Distrito        = reader.GetValue <string>("distrito"),
                            Numero          = reader.GetValue <string>("numero"),
                            MunicipioTexto  = reader.GetValue <string>("municipio_texto"),
                            EstadoSigla     = reader.GetValue <string>("estado_sigla"),
                            Corrego         = reader.GetValue <string>("corrego"),
                            Complemento     = reader.GetValue <string>("complemento"),
                            Correspondencia = 0
                        });
                    }

                    reader.Close();
                }

                #region Unidade de produção

                comando = bancoDeDados.CriarComando(@"select c.id, c.codigo_up, cc.easting_utm, cc.northing_utm, c.area,  cu.cultivar, tc.texto cultura, c.data_plantio_ano_producao,
				 c.estimativa_quant_ano, lc.texto estimativa from crt_unidade_producao_unidade  c, crt_unidade_producao_un_coord cc, tab_cultura_cultivar cu, lov_crt_uni_prod_uni_medida lc,
				 tab_cultura tc where  tc.id(+) = cu.cultura and c.estimativa_unid_medida = lc.id and c.cultivar = cu.id(+) and c.id = cc.unidade_producao_unidade and c.unidade_producao = :unidade"                , EsquemaBancoCredenciado);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    UnidadeProducaoItemRelatorio item;
                    while (reader.Read())
                    {
                        item               = new UnidadeProducaoItemRelatorio();
                        item.Id            = reader.GetValue <int>("id");
                        item.CodigoUP      = reader.GetValue <string>("codigo_up");
                        item.Latitude      = reader.GetValue <string>("easting_utm");
                        item.Longitude     = reader.GetValue <string>("northing_utm");
                        item.AreaHa        = reader.GetValue <string>("area");
                        item.CultivarNome  = reader.GetValue <string>("cultivar");
                        item.CulturaNome   = reader.GetValue <string>("cultura");
                        item.DataPlantio   = reader.GetValue <string>("data_plantio_ano_producao");
                        item.QuantidadeAno = reader.GetValue <string>("estimativa_quant_ano");
                        item.UnidadeMedida = reader.GetValue <string>("estimativa");
                        unidade.UP.Add(item);
                    }

                    reader.Close();
                }

                #endregion

                #region Produtores

                comando = bancoDeDados.CriarComando(@"select nvl(p.nome, p.razao_social) nome, nvl(p.cpf, p.cnpj) cpf_cnpj, e.cep, e.logradouro, e.bairro, e.distrito, e.numero, lm.texto municipio_texto, le.sigla estado_sigla,
					e.complemento, (select m.valor from tab_pessoa_meio_contato m where m.pessoa = p.id and m.meio_contato = 1) tel_residencial, (select m.valor from tab_pessoa_meio_contato m where m.pessoa = p.id and m.meio_contato = 2) tel_celular,
					(select m.valor from tab_pessoa_meio_contato m where m.pessoa = p.id and m.meio_contato = 3) tel_fax, (select m.valor from tab_pessoa_meio_contato m where m.pessoa = p.id and m.meio_contato = 4) tel_comercial,
					(select m.valor from tab_pessoa_meio_contato m where m.pessoa = p.id and m.meio_contato = 5) email from crt_unidade_prod_un_produtor c , tab_pessoa p, tab_pessoa_endereco e, lov_municipio lm, lov_estado le
					where c.produtor = p.id and p.id = e.pessoa and e.municipio = lm.id and e.estado = le.id and c.unidade_producao_unidade in 
					(select id from crt_unidade_producao_unidade where unidade_producao = :unidade)"                    , EsquemaBancoCredenciado);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    PessoaRelatorio produtor = null;
                    while (reader.Read())
                    {
                        if (unidade.Produtores.Exists(x => x.CPFCNPJ == reader.GetValue <string>("cpf_cnpj")))
                        {
                            continue;
                        }

                        produtor = new PessoaRelatorio();
                        produtor.NomeRazaoSocial         = reader.GetValue <string>("nome");
                        produtor.CPFCNPJ                 = reader.GetValue <string>("cpf_cnpj");
                        produtor.Endereco.Cep            = reader.GetValue <string>("cep");
                        produtor.Endereco.Logradouro     = reader.GetValue <string>("logradouro");
                        produtor.Endereco.Bairro         = reader.GetValue <string>("bairro");
                        produtor.Endereco.Distrito       = reader.GetValue <string>("distrito");
                        produtor.Endereco.Numero         = reader.GetValue <string>("numero");
                        produtor.Endereco.MunicipioTexto = reader.GetValue <string>("municipio_texto");
                        produtor.Endereco.EstadoSigla    = reader.GetValue <string>("estado_sigla");
                        produtor.Endereco.Complemento    = reader.GetValue <string>("complemento");
                        produtor.MeiosContatos.Add(new ContatoRelatorio()
                        {
                            Valor = reader.GetValue <string>("tel_residencial"), TipoContato = eTipoContato.TelefoneResidencial
                        });
                        produtor.MeiosContatos.Add(new ContatoRelatorio()
                        {
                            Valor = reader.GetValue <string>("tel_celular"), TipoContato = eTipoContato.TelefoneCelular
                        });
                        produtor.MeiosContatos.Add(new ContatoRelatorio()
                        {
                            Valor = reader.GetValue <string>("tel_fax"), TipoContato = eTipoContato.TelefoneFax
                        });
                        produtor.MeiosContatos.Add(new ContatoRelatorio()
                        {
                            Valor = reader.GetValue <string>("tel_comercial"), TipoContato = eTipoContato.TelefoneComercial
                        });
                        produtor.MeiosContatos.Add(new ContatoRelatorio()
                        {
                            Valor = reader.GetValue <string>("email"), TipoContato = eTipoContato.Email
                        });
                        unidade.Produtores.Add(produtor);
                    }

                    reader.Close();
                }

                #endregion

                #region Responsaveis Tecnicos

                comando = bancoDeDados.CriarComando(@"select r.unidade_producao_unidade, nvl(p.nome, p.razao_social) nome, h.numero_habilitacao, 
				(select t.extensao_habilitacao from {0}tab_hab_emi_cfo_cfoc t where t.responsavel = c.id) extensao_habilitacao 
				from {0}crt_unidade_prod_un_resp_tec r, {0}tab_credenciado c, {0}tab_pessoa p, 
				{1}tab_hab_emi_cfo_cfoc h where  r.responsavel_tecnico = h.responsavel and r.responsavel_tecnico = c.id and c.pessoa = p.id and r.unidade_producao_unidade 
				in (select id from {0}crt_unidade_producao_unidade where unidade_producao = :unidade)"                , EsquemaBancoCredenciado, EsquemaBanco);
                comando.AdicionarParametroEntrada("unidade", unidade.Id, DbType.Int32);

                bool extensao = false;
                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    ResponsavelTecnicoRelatorio item = null;

                    while (reader.Read())
                    {
                        extensao = reader.GetValue <bool>("extensao_habilitacao");

                        item                   = new ResponsavelTecnicoRelatorio();
                        item.NomeRazao         = reader.GetValue <string>("nome");
                        item.NumeroHabilitacao = extensao ? reader.GetValue <string>("numero_habilitacao") + " - ES" : reader.GetValue <string>("numero_habilitacao");
                        unidade.UP.Single(x => x.Id == reader.GetValue <int>("unidade_producao_unidade")).Responsaveis.Add(item);
                    }

                    reader.Close();
                }

                #endregion Responsaveis Tecnicos
            }

            return(unidade);
        }
示例#45
0
        internal bool Cadastrar(FeicaoGeometria geoFeicao, string tabelaRascunho, int idLayerFeicao)
        {
            BancoDeDados bancoDeDados = null;

            if (geoFeicao == null)
            {
                throw new ApplicationException("Referência nula do objeto");
            }

            string schemaUsuario = ConfigurationManager.AppSettings["SchemaUsuarioGeo"].ToUpper();

            bancoDeDados = BancoDeDadosFactory.CriarBancoDeDados("StringConexaoGeo");
            FonteFeicaoOracleSpatial    destino  = GetConexao(bancoDeDados);
            OperadorFeicaoOracleSpatial operador = null;

            try
            {
                destino.Abrir();

                ClasseFeicao  classeDestino = destino.ObterClasseFeicao(tabelaRascunho);
                FeicaoAdapter adpt          = new FeicaoAdapter(classeDestino);

                operador = (OperadorFeicaoOracleSpatial)destino.ObterOperadorFeicao(schemaUsuario + "." + tabelaRascunho);
                Tecnomapas.TecnoGeo.Geografico.Feicao feicao = classeDestino.CriarFeicao();

                feicao.Geometria = geoFeicao.RetornarGeometria();

                if (feicao.Geometria == null)
                {
                    throw new ApplicationException("Referência nula da geometria");
                }

                foreach (AtributoFeicao a in geoFeicao.Atributos)
                {
                    if (feicao.Atributos.IndiceDe(a.Nome.ToUpper()) < 0)
                    {
                        continue;
                    }
                    switch (a.Tipo)
                    {
                    case AtributoFeicao.TipoAtributo.Manual:
                        feicao.Atributos[a.Nome.ToUpper()].Valor = a.Valor;
                        break;

                    case AtributoFeicao.TipoAtributo.Sequencia:
                        adpt.Adaptadores[a.Nome.ToUpper()].Origem = TipoOrigem.Sequencia;
                        adpt.Adaptadores[a.Nome.ToUpper()].Valor  = a.Valor.ToString();
                        break;
                    }
                }
                feicao.Atributos["FEICAO"].Valor = idLayerFeicao;

                decimal          srid     = GetSrid();
                OperacaoEspacial operacao = new OperacaoEspacialTransformacao(new CampoGeometrico(), srid, srid);

                operador.Inserir(adpt.Transformar(feicao), operacao);

                operador.Fechar();
            }
            finally
            {
                destino.Fechar();
            }
            return(true);
        }
示例#46
0
        internal PatioLavagem ObterPorEmpreendimento(int empreendimento, bool simplificado = false, BancoDeDados banco = null)
        {
            PatioLavagem caracterizacao = new PatioLavagem();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select s.id from {0}crt_patio_lavagem s where s.empreendimento = :empreendimento", EsquemaBanco);
                comando.AdicionarParametroEntrada("empreendimento", empreendimento, DbType.Int32);

                object valor = bancoDeDados.ExecutarScalar(comando);

                if (valor != null && !Convert.IsDBNull(valor))
                {
                    caracterizacao = Obter(Convert.ToInt32(valor), bancoDeDados, simplificado);
                }
            }

            return(caracterizacao);
        }
示例#47
0
        internal void AtualizarAtributos(List <AtributoFeicao> atributos, string schema, string tabela, int id, string colunaPK)
        {
            Comando     comando = null;
            IDataReader reader  = null;

            try
            {
                BancoDeDados banco = BancoDeDadosFactory.CriarBancoDeDados("StringConexaoGeo");

                string sqlQuery = @"select t.column_name coluna_nome,  (case t.char_length when 0 then t.data_type else t.data_type end) tipo, nvl(t.char_length,0) tamanho from 
            all_tab_cols t where t.owner=upper('" + schema.ToUpper() + @"') and t.table_name = upper('" + tabela + @"') and t.column_name not like '%$%' and t.data_type<>'BLOB'
            and t.column_name not like upper('geometry') and t.column_name not like upper('" + colunaPK + @"')";

                comando = banco.GetComandoSql(sqlQuery);
                List <ColunaLayerFeicao> colunas = new List <ColunaLayerFeicao>();

                reader = banco.ExecutarReader(comando);

                while (reader.Read())
                {
                    ColunaLayerFeicao coluna = new ColunaLayerFeicao();
                    coluna.Coluna  = Convert.ToString(reader["coluna_nome"]);
                    coluna.Tamanho = Convert.ToInt32(reader["tamanho"]);
                    coluna.Alias   = Convert.ToString(reader["tipo"]);
                    colunas.Add(coluna);
                }

                if (reader != null)
                {
                    reader.Close();
                    reader.Dispose();
                    reader = null;
                }
                if (comando != null)
                {
                    comando.Dispose();
                    comando = null;
                }
                int    qtdColunas = colunas.Count;
                string valores    = string.Empty;
                comando = banco.GetComandoSql(" ");
                for (int j = 0; j < qtdColunas; j++)
                {
                    for (int i = 0; i < atributos.Count; i++)
                    {
                        if (Convert.ToString(atributos[i].Nome).ToUpper() == colunas[j].Coluna.ToUpper() && Convert.ToString(atributos[i].Valor) != null)
                        {
                            valores += colunas[j].Coluna + " = :coluna" + j.ToString() + " , ";
                            if (colunas[j].Alias.ToUpper() == "NUMBER")
                            {
                                comando.AdicionarParametroEntrada("coluna" + j.ToString(), atributos[i].Valor, DbType.Decimal);
                            }
                            else
                            {
                                comando.AdicionarParametroEntrada("coluna" + j.ToString(), atributos[i].Valor, DbType.String);
                            }
                        }
                    }
                }

                if (valores != string.Empty)
                {
                    valores = valores.Substring(0, (valores.Length - 2));
                    comando.DBCommand.CommandText += "update " + tabela + " set " + valores + " where " + colunaPK + " = :id";
                    comando.AdicionarParametroEntrada("id", id, DbType.Int32);
                    banco.ExecutarNonQuery(comando);
                }
            }
            finally
            {
                if (reader != null)
                {
                    reader.Close();
                    reader.Dispose();
                }
                if (comando != null)
                {
                    comando.Dispose();
                }
            }
        }
示例#48
0
        internal CaracterizacaoPDF ObterDadosPdfTitulo(int empreendimento, int atividade, BancoDeDados banco)
        {
            CaracterizacaoPDF caract = new CaracterizacaoPDF();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                Comando comando = bancoDeDados.CriarComando(@"select c.geometria_coord_atv_x, c.geometria_coord_atv_y, c.area_total 
															from {0}crt_patio_lavagem c where c.empreendimento = :empreendimento 
															and c.atividade = :atividade"                                                            , EsquemaBanco);

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

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    while (reader.Read())
                    {
                        if (reader["geometria_coord_atv_x"] != null && !Convert.IsDBNull(reader["geometria_coord_atv_x"]))
                        {
                            caract.EastingLongitude = Convert.ToDecimal(reader["geometria_coord_atv_x"]).ToString("F2");
                            caract.NorthingLatitude = Convert.ToDecimal(reader["geometria_coord_atv_y"]).ToString("F2");
                        }

                        if (reader["area_total"] != null && !Convert.IsDBNull(reader["area_total"]))
                        {
                            caract.Campos.Add(new CaracterizacaoCampoPDF()
                            {
                                Nome = "Área total (m²)", Valor = Convert.ToDecimal(reader["area_total"]).ToStringTrunc(4)
                            });
                        }
                    }

                    reader.Close();
                }
            }

            return(caract);
        }
示例#49
0
        public Atualizacao Sincronizar(List<string> atualizacoes, DateTime ultimaSincronizacao, string identificacao)
        {
            BancoDeDados bd = new BancoDeDados();
            try
            {
                if (bd.BeginTransaction())
                {
                    foreach (string sql in atualizacoes)
                    {
                        NpgsqlCommand comando = new NpgsqlCommand(sql);
                        bd.NonQuery(comando);
                    }

                    Atualizacao atualizacao = new Atualizacao();
                    bool buscarIds = false;

                    #region Identificacao
                    NpgsqlCommand command = new NpgsqlCommand("SELECT id FROM celular WHERE identificacao = '" + identificacao + "'");
                    DataSet ds = bd.Query(command);
                    if (ds == null) return null;
                    DataTableReader dtr = ds.CreateDataReader();

                    if (dtr.Read())
                    {
                        atualizacao.idCelular = dtr.GetInt32(0);
                        if (ultimaSincronizacao.Ticks == 0)
                            buscarIds = true;
                    }
                    else
                    {
                        command = new NpgsqlCommand("INSERT INTO celular(identificacao) VALUES ('" + identificacao + "')");
                        bd.NonQuery(command);
                        command = new NpgsqlCommand("SELECT id FROM celular WHERE identificacao = '" + identificacao + "'");
                        ds = bd.Query(command);
                        if (ds == null) return null;
                        dtr = ds.CreateDataReader();
                        dtr.Read();
                        atualizacao.idCelular = dtr.GetInt32(0);
                    }
                    #endregion

                    #region Cliente
                    command = new NpgsqlCommand(@"SELECT id, nome, cpf, rua, numero, bairro, cidade, uf, cep, complemento, telefone, email, ativo, alteracao
            FROM cliente WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null) return null;
                    dtr = ds.CreateDataReader();
                    List<ClienteWS> clientes = new List<ClienteWS>();

                    while (dtr.Read())
                    {
                        clientes.Add(new ClienteWS()
                        {
                            Id = dtr.GetString(0),
                            Nome = dtr.GetString(1),
                            Cpf = dtr.GetString(2),
                            Rua = dtr.GetString(3),
                            Numero = dtr.GetString(4),
                            Bairro = dtr.GetString(5),
                            Cidade = dtr.GetString(6),
                            Uf = dtr.GetString(7),
                            Cep = (dtr.IsDBNull(8) || string.IsNullOrWhiteSpace(dtr.GetString(8))) ? null : dtr.GetString(8),
                            Complemento = (dtr.IsDBNull(9) || string.IsNullOrWhiteSpace(dtr.GetString(9))) ? null : dtr.GetString(9),
                            Telefone = (dtr.IsDBNull(10) || string.IsNullOrWhiteSpace(dtr.GetString(10))) ? null : dtr.GetString(10),
                            Email = (dtr.IsDBNull(11) || string.IsNullOrWhiteSpace(dtr.GetString(11))) ? null : dtr.GetString(11),
                            Ativo = dtr.GetBoolean(12)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(13))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(13);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int id = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdCliente == null || atualizacao.maxIdCliente < id))
                                atualizacao.maxIdCliente = id;
                        }
                    }

                    atualizacao.clientes = clientes;
                    #endregion

                    #region Produto
                    command = new NpgsqlCommand(@"SELECT id, nome, estoque, valor, ativo, alteracao
            FROM produto WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null) return null;
                    dtr = ds.CreateDataReader();
                    List<ProdutoWS> produtos = new List<ProdutoWS>();

                    while (dtr.Read())
                    {
                        produtos.Add(new ProdutoWS()
                        {
                            Id = dtr.GetInt32(0),
                            Nome = dtr.GetString(1),
                            Estoque = dtr.GetDecimal(2),
                            Valor = dtr.GetDecimal(3),
                            Ativo = dtr.GetBoolean(4)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(5))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(5);
                        }
                    }

                    atualizacao.produtos = produtos;
                    #endregion

                    #region Pedido
                    command = new NpgsqlCommand(@"SELECT id, id_cliente, id_vendedor, valor, data_emissao, data_pagamento, observacoes, alteracao
            FROM pedido WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null) return null;
                    dtr = ds.CreateDataReader();
                    List<PedidoWS> pedidos = new List<PedidoWS>();

                    while (dtr.Read())
                    {
                        pedidos.Add(new PedidoWS()
                        {
                            Id = dtr.GetString(0),
                            IdCliente = dtr.GetString(1),
                            IdVendedor = dtr.GetInt32(2),
                            Valor = dtr.GetDecimal(3),
                            DataEmissao = dtr.GetDateTime(4),
                            DataPagamento = dtr.GetDateTime(5),
                            Observacoes = dtr.GetString(6)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(7))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(7);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int id = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdPedido == null || atualizacao.maxIdPedido < id))
                                atualizacao.maxIdPedido = id;
                        }
                    }

                    atualizacao.pedidos = pedidos;
                    #endregion

                    #region Produtos Pedido
                    command = new NpgsqlCommand(@"SELECT id, id_pedido, id_produto, valor, quantidade, quantidade_entregue, alteracao
            FROM produto_pedido WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null) return null;
                    dtr = ds.CreateDataReader();
                    List<ProdutoPedidoWS> produtospedido = new List<ProdutoPedidoWS>();

                    while (dtr.Read())
                    {
                        produtospedido.Add(new ProdutoPedidoWS()
                        {
                            Id = dtr.GetString(0),
                            IdPedido = dtr.GetString(1),
                            IdProduto = dtr.GetInt32(2),
                            Valor = dtr.GetDecimal(3),
                            Quantidade = dtr.GetDecimal(4),
                            QuantidadeEntregue = dtr.GetDecimal(5)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(6))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(6);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int id = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdProdutoPedido == null || atualizacao.maxIdProdutoPedido < id))
                                atualizacao.maxIdProdutoPedido = id;
                        }
                    }

                    atualizacao.produtospedido = produtospedido;
                    #endregion

                    #region Receber
                    command = new NpgsqlCommand(@"SELECT id, id_pedido, ordem, valor, vencimento, pagamento, alteracao
            FROM receber WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null) return null;
                    dtr = ds.CreateDataReader();
                    List<ReceberWS> receber = new List<ReceberWS>();

                    while (dtr.Read())
                    {
                        receber.Add(new ReceberWS()
                        {
                            Id = dtr.GetString(0),
                            IdPedido = dtr.GetString(1),
                            Ordem = dtr.GetInt32(2),
                            Valor = dtr.GetDecimal(3),
                            Vencimento = dtr.GetDateTime(4),
                            Pagamento = dtr.GetDateTime(5),
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(6))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(6);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int id = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdReceber == null || atualizacao.maxIdReceber < id))
                                atualizacao.maxIdReceber = id;
                        }
                    }

                    atualizacao.receber = receber;
                    #endregion

                    #region Anotacao
                    command = new NpgsqlCommand(@"SELECT id, id_pedido, data, data_ultima_alteracao, texto, alteracao
            FROM anotacao WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null) return null;
                    dtr = ds.CreateDataReader();
                    List<AnotacaoWS> anotacoes = new List<AnotacaoWS>();

                    while (dtr.Read())
                    {
                        anotacoes.Add(new AnotacaoWS()
                        {
                            Id = dtr.GetString(0),
                            IdPedido = dtr.GetString(1),
                            Data = dtr.GetDateTime(2),
                            DataUltimaAlteracao = dtr.GetDateTime(3),
                            Texto = dtr.GetString(4)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(5))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(5);
                        }
                        if (buscarIds)
                        {
                            string[] aux = dtr.GetString(0).Split('/');
                            int id = Convert.ToInt32(aux[1]);
                            if (atualizacao.idCelular == Convert.ToInt32(aux[0]) && (atualizacao.maxIdAnotacao == null || atualizacao.maxIdAnotacao < id))
                                atualizacao.maxIdAnotacao = id;
                        }
                    }

                    atualizacao.anotacoes = anotacoes;
                    #endregion

                    #region Vendedor
                    command = new NpgsqlCommand(@"SELECT id, nome, alteracao
            FROM vendedor WHERE alteracao > @alt ORDER BY Id");
                    command.Parameters.Add("alt", NpgsqlDbType.Timestamp).Value = ultimaSincronizacao;
                    ds = bd.Query(command);
                    if (ds == null) return null;
                    dtr = ds.CreateDataReader();
                    List<VendedorWS> vendedores = new List<VendedorWS>();

                    while (dtr.Read())
                    {
                        vendedores.Add(new VendedorWS()
                        {
                            Id = dtr.GetInt32(0),
                            Nome = dtr.GetString(1)
                        });
                        if (atualizacao.dtAtualizado == null || atualizacao.dtAtualizado < dtr.GetDateTime(2))
                        {
                            atualizacao.dtAtualizado = dtr.GetDateTime(2);
                        }
                    }

                    atualizacao.vendedores = vendedores;
                    #endregion

                    if (bd.CommitTransaction())
                        return atualizacao;
                    else
                        bd.RollbackTransaction();
                }
            }catch(Exception)
            {
                bd.RollbackTransaction();
            }
            return null;
        }
        internal Resultados <Profissao> Filtrar(Filtro <ProfissaoListarFiltros> filtros, BancoDeDados banco = null)
        {
            Resultados <Profissao> retorno = new Resultados <Profissao>();

            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                string  comandtxt = string.Empty;
                Comando comando   = bancoDeDados.CriarComando("");

                #region Adicionando Filtros

                comandtxt += comando.FiltroAndLike("p.texto", "texto", filtros.Dados.Texto, true, true);

                List <String> ordenar = new List <String>()
                {
                    "texto"
                };
                List <String> colunas = new List <String>()
                {
                    "texto"
                };

                #endregion

                if (!string.IsNullOrEmpty(filtros.Dados.Texto))
                {
                    comandtxt += @" union all select p.id, p.texto, p.codigo, p.tid, p.origem, o.texto origem_texto, max(trunc(metaphone.jaro_winkler(:filtro_fonetico,p.texto),5)) 
								similaridade from tab_profissao p, lov_profissao_origem o where p.origem = o.id and p.texto_fonema like upper('%' || upper(metaphone.gerarCodigo(:filtro_fonetico)) || '%') 
								and metaphone.jaro_winkler(:filtro_fonetico,p.texto) >= to_number(:limite_similaridade) group by p.id, p.texto, p.codigo, p.tid, p.origem, o.texto"                                ;

                    comando.AdicionarParametroEntrada("filtro_fonetico", filtros.Dados.Texto, DbType.String);
                    comando.AdicionarParametroEntrada("limite_similaridade", ConfiguracaoSistema.LimiteSimilaridade, DbType.String);
                    colunas[0] = "similaridade";
                    ordenar[0] = "similaridade";
                }

                #region Executa a pesquisa nas tabelas
                comando.DbCommand.CommandText = "select count(*) from (select p.id, p.texto, p.codigo, p.tid, p.origem, o.texto origem_texto, 0 similaridade from tab_profissao p, lov_profissao_origem o where p.origem = o.id " + comandtxt + ")";

                retorno.Quantidade = Convert.ToInt32(bancoDeDados.ExecutarScalar(comando));

                comando.AdicionarParametroEntrada("menor", filtros.Menor);
                comando.AdicionarParametroEntrada("maior", filtros.Maior);

                comandtxt = String.Format(@"select p.id, p.texto, p.codigo, p.tid, p.origem, o.texto origem_texto, 1 similaridade 
				from tab_profissao p, lov_profissao_origem o where p.origem = o.id {0} {1}"                , comandtxt, DaHelper.Ordenar(colunas, ordenar, !string.IsNullOrEmpty(filtros.Dados.Texto)));

                comando.DbCommand.CommandText = @"select * from (select a.*, rownum rnum from ( " + comandtxt + @") a) where rnum <= :maior and rnum >= :menor";

                #endregion

                using (IDataReader reader = bancoDeDados.ExecutarReader(comando))
                {
                    Profissao profissao;

                    while (reader.Read())
                    {
                        profissao    = new Profissao();
                        profissao.Id = Convert.ToInt32(reader["id"]);

                        if (retorno.Itens.Exists(x => x.Id == profissao.Id))
                        {
                            continue;
                        }

                        profissao.Tid      = reader["tid"].ToString();
                        profissao.Texto    = reader["texto"].ToString();
                        profissao.Codigo   = reader["codigo"].ToString();
                        profissao.OrigemId = Convert.ToInt32(reader["origem"]);

                        retorno.Itens.Add(profissao);
                    }

                    reader.Close();
                }
            }

            return(retorno);
        }
示例#51
0
        public bool Excluir(int id)
        {
            try
            {
                if (_validar.Excluir(id))
                {
                    GerenciadorTransacao.ObterIDAtual();

                    using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia())
                    {
                        ChecagemPendenciaBus _checagemPendenciaBus = new ChecagemPendenciaBus();
                        Documento            doc = _da.ObterAtividades(id) as Documento;

                        #region Atividades

                        AtividadeBus atividadeBus = new AtividadeBus();
                        atividadeBus.TituloAnteriores(new List <Atividade>(), doc.Atividades, bancoDeDados);

                        #endregion

                        _da.Excluir(id, bancoDeDados);

                        AlterarRequerimentoSituacao(doc, banco: bancoDeDados);

                        if (doc.ChecagemRoteiro.Id > 0)
                        {
                            _busCheckList.AlterarSituacao(doc.ChecagemRoteiro.Id, 1, bancoDeDados);
                        }

                        if (doc.ChecagemPendencia.Id > 0)
                        {
                            doc.ChecagemPendencia.SituacaoId = 1;                            //finalizada
                            _checagemPendenciaBus.AlterarSituacao(doc.ChecagemPendencia, bancoDeDados);
                        }

                        if (doc.Fiscalizacao.Id > 0)
                        {
                            doc.Fiscalizacao.SituacaoNovaTipo      = (int)eFiscalizacaoSituacao.CadastroConcluido;
                            doc.Fiscalizacao.SituacaoNovaData.Data = DateTime.Now;

                            _busFiscalizacao.AlterarSituacaoProcDoc(doc.Fiscalizacao, bancoDeDados);
                        }

                        using (BancoDeDados bancoDeDadosCredenciado = BancoDeDados.ObterInstancia(UsuarioCredenciado))
                        {
                            bancoDeDadosCredenciado.IniciarTransacao();

                            //CARSolicitacaoBus carSolicitacaoCredenciadoBus = new CARSolicitacaoBus();
                            //carSolicitacaoCredenciadoBus.DesassociarProtocolo(new CARSolicitacao() { Requerimento = doc.Requerimento });

                            _busProjetoDigital.AlterarSituacao(doc.Requerimento.Id, eProjetoDigitalSituacao.AguardandoProtocolo, bancoDeDadosCredenciado);

                            if (!Validacao.EhValido)
                            {
                                bancoDeDadosCredenciado.Rollback();
                                bancoDeDados.Rollback();
                                return(false);
                            }

                            bancoDeDadosCredenciado.Commit();
                        }

                        Validacao.Add(Mensagem.Documento.Excluir);
                        bancoDeDados.Commit();
                    }
                }
            }
            catch (Exception exc)
            {
                Validacao.AddErro(exc);
            }

            return(Validacao.EhValido);
        }
示例#52
0
 public void AlterarRequerimentoSituacao(Documento documento, int situacao = 2, BancoDeDados banco = null)        // 2 Finalizado
 {
     if (documento.Requerimento.Id > 0)
     {
         _busRequerimento.AlterarSituacao(new Requerimento()
         {
             Id = documento.Requerimento.Id, SituacaoId = situacao
         }, banco);
     }
 }
示例#53
0
        internal void Editar(InformacaoCorteInformacao informacao, BancoDeDados banco = null)
        {
            using (BancoDeDados bancoDeDados = BancoDeDados.ObterInstancia(banco))
            {
                #region Informacao de Corte

                bancoDeDados.IniciarTransacao();

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

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

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Limpar os dados do banco

                #region Especies

                comando = bancoDeDados.CriarComando(@"delete from {0}crt_inf_corte_inf_especie e
													where e.inf_corte_inf = :inf_corte_inf"                                                    , EsquemaBanco);

                comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "e.id", DbType.Int32, informacao.Especies.Select(x => x.Id).ToList()));

                comando.AdicionarParametroEntrada("inf_corte_inf", informacao.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #region Produtos

                comando = bancoDeDados.CriarComando(@"delete from {0}crt_inf_corte_inf_produto p
													where p.inf_corte_inf = :inf_corte_inf"                                                    , EsquemaBanco);

                comando.DbCommand.CommandText += String.Format(" {0}", comando.AdicionarNotIn("and", "p.id", DbType.Int32, informacao.Produtos.Select(x => x.Id).ToList()));

                comando.AdicionarParametroEntrada("inf_corte_inf", informacao.Id, DbType.Int32);

                bancoDeDados.ExecutarNonQuery(comando);

                #endregion

                #endregion

                #region Informacao de Corte Informacao

                if (informacao.Id > 0)
                {
                    comando = bancoDeDados.CriarComando(@"update {0}crt_inf_corte_inf i set i.caracterizacao = :caracterizacao, 
														i.arvores_isoladas_restante = :arvores_isoladas_restante, 
														i.area_corte_restante = :area_corte_restante, 
														i.data_informacao = :data_informacao, i.tid = :tid 
														where i.id = :id"                                                        , EsquemaBanco);

                    comando.AdicionarParametroEntrada("id", informacao.Id, DbType.Int32);
                }
                else
                {
                    comando = bancoDeDados.CriarComando(@"insert into {0}crt_inf_corte_inf(id, caracterizacao, arvores_isoladas_restante, 
														area_corte_restante, data_informacao, tid) values({0}seq_crt_inf_corte_inf.nextval,
														:caracterizacao, :arvores_isoladas_restante, :area_corte_restante, 
														:data_informacao, :tid) returning id into :id"                                                        , EsquemaBanco);

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

                comando.AdicionarParametroEntrada("caracterizacao", informacao.CaracterizacaoId, DbType.Int32);
                comando.AdicionarParametroEntrada("arvores_isoladas_restante", informacao.ArvoresIsoladasRestantes, DbType.Decimal);
                comando.AdicionarParametroEntrada("area_corte_restante", informacao.AreaCorteRestante, DbType.Decimal);
                comando.AdicionarParametroEntrada("data_informacao", informacao.DataInformacao.DataTexto, DbType.DateTime);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                bancoDeDados.ExecutarNonQuery(comando);

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

                #region Especies

                if (informacao.Especies != null && informacao.Especies.Count > 0)
                {
                    foreach (Especie especie in informacao.Especies)
                    {
                        if (especie.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0}crt_inf_corte_inf_especie e set e.especie = :especie, 
																e.especie_especificar_texto = :especie_especificar_texto, 
																e.arvores_isoladas = :arvores_isoladas, e.area_corte = :area_corte, e.idade_plantio = :idade_plantio, 
																e.tid = :tid where e.id = :id"                                                                , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", especie.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into {0}crt_inf_corte_inf_especie(id, inf_corte_inf, especie, 
																especie_especificar_texto, arvores_isoladas, area_corte, idade_plantio, tid)
																values({0}seq_crt_inf_corte_inf_especie.nextval, :inf_corte_inf, 
																:especie, :especie_especificar_texto, :arvores_isoladas, :area_corte, :idade_plantio, 
																:tid)"                                                                , EsquemaBanco);

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

                        comando.AdicionarParametroEntrada("especie", especie.EspecieTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("especie_especificar_texto", String.IsNullOrWhiteSpace(especie.EspecieEspecificarTexto) ? (Object)DBNull.Value : especie.EspecieEspecificarTexto, DbType.String);
                        comando.AdicionarParametroEntrada("arvores_isoladas", especie.ArvoresIsoladas, DbType.Decimal);
                        comando.AdicionarParametroEntrada("area_corte", especie.AreaCorte, DbType.Decimal);
                        comando.AdicionarParametroEntrada("idade_plantio", especie.IdadePlantio, DbType.Decimal);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);
                    }
                }

                #endregion

                #region Produtos

                if (informacao.Produtos != null && informacao.Produtos.Count > 0)
                {
                    foreach (Produto produto in informacao.Produtos)
                    {
                        if (produto.Id > 0)
                        {
                            comando = bancoDeDados.CriarComando(@"update {0} crt_inf_corte_inf_produto p set p.produto = :produto, 
																p.destinacao_material = :destinacao_material, p.quantidade = :quantidade, 
																p.tid = :tid where p.id = :id"                                                                , EsquemaBanco);

                            comando.AdicionarParametroEntrada("id", produto.Id, DbType.Int32);
                        }
                        else
                        {
                            comando = bancoDeDados.CriarComando(@"insert into crt_inf_corte_inf_produto(id, inf_corte_inf, produto,
																destinacao_material, quantidade, tid) values({0}seq_crt_inf_corte_inf_produto.nextval, 
																:inf_corte_inf, :produto, :destinacao_material, :quantidade, :tid)"                                                                , EsquemaBanco);

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

                        comando.AdicionarParametroEntrada("produto", produto.ProdutoTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("destinacao_material", produto.DestinacaoTipo, DbType.Int32);
                        comando.AdicionarParametroEntrada("quantidade", produto.Quantidade, DbType.Decimal);
                        comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                        bancoDeDados.ExecutarNonQuery(comando);
                    }
                }

                #endregion

                #endregion

                #region Histórico

                Historico.Gerar(informacao.CaracterizacaoId, eHistoricoArtefatoCaracterizacao.informacaocorte, eHistoricoAcao.atualizar, bancoDeDados, null);

                #endregion

                bancoDeDados.Commit();
            }
        }
        internal void Salvar(LaudoVistoriaFlorestal 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_florestal 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_florestal e set e.titulo = :titulo, e.protocolo = :protocolo, 
					e.destinatario = :destinatario, e.responsavel = :responsavel, e.conclusao = :conclusao, e.caracterizacao = :caracterizacao, 
					e.data_vistoria = :data_vistoria, e.objetivo = :objetivo, e.consideracao = :consideracao, e.restricao = :restricao, 
					e.descricao_parecer = :descricao_parecer, e.parecer_desfavoravel = :parecer_desfavoravel, 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_florestal(id, titulo, protocolo, destinatario, responsavel, conclusao, caracterizacao, 
					data_vistoria, objetivo, consideracao, restricao, descricao_parecer, parecer_desfavoravel, tid) values ({0}seq_esp_laudo_visto_florestal.nextval, :titulo, :protocolo, :destinatario, 
					:responsavel, :conclusao, :caracterizacao, :data_vistoria, :objetivo, :consideracao, :restricao, :descricao_parecer, :parecer_desfavoravel, :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("conclusao", laudo.Conclusao, DbType.Int32);
                comando.AdicionarParametroEntrada("caracterizacao", laudo.Caracterizacao, DbType.Int32);
                comando.AdicionarParametroEntrada("data_vistoria", laudo.DataVistoria.Data, DbType.DateTime);
                comando.AdicionarParametroEntrada("objetivo", DbType.String, 500, laudo.Objetivo);
                comando.AdicionarParametroEntrada("restricao", DbType.String, 1000, laudo.Restricao);
                comando.AdicionarParametroEntrada("tid", DbType.String, 36, GerenciadorTransacao.ObterIDAtual());

                comando.AdicionarParametroEntClob("consideracao", laudo.Consideracao);
                comando.AdicionarParametroEntClob("descricao_parecer", laudo.ParecerDescricao);
                comando.AdicionarParametroEntClob("parecer_desfavoravel", laudo.ParecerDescricaoDesfavoravel);


                if (laudo.Responsavel <= 0)
                {
                    comando.AdicionarParametroEntrada("responsavel", DBNull.Value, DbType.Int32);
                }
                else
                {
                    comando.AdicionarParametroEntrada("responsavel", laudo.Responsavel, DbType.Int32);
                }

                bancoDeDados.ExecutarNonQuery(comando);

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

                #endregion

                #region Histórico

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

                #endregion

                bancoDeDados.Commit();
            }
        }