static void Main() { string nomeProcesso = Process.GetCurrentProcess().ProcessName; Process[] processos = Process.GetProcessesByName(nomeProcesso); if (processos.Length > 1) { MessageBox.Show( "Este programa já está em execução.", "Programa em execução", MessageBoxButtons.OK, MessageBoxIcon.Information); Application.Exit(); } else { LogSistema.AdicionarEvento("Sistema iniciado"); Application.EnableVisualStyles(); Application.SetCompatibleTextRenderingDefault(false); VerificarPrimeiraExecucao(); Application.Run(new FrmInicial()); } }
public Funcionario Buscar(ulong codigo) { Funcionario res = null; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" select codigo, nome, usuario, senha, comissionado, funcao, salario, ultimo_pagamento from funcionario where codigo = @Codigo;"; com.Parameters.Add(new NpgsqlParameter("@Codigo", NpgsqlDbType.Bigint)); com.Parameters["@Codigo"].Value = codigo; using (NpgsqlDataReader reader = com.ExecuteReader()) { if (reader.HasRows) { reader.Read(); res = new Funcionario { Codigo = Convert.ToUInt64(reader["codigo"].ToString()), Nome = reader["nome"].ToString(), Usuario = reader["usuario"].ToString(), Senha = reader["senha"].ToString(), Comissionado = Convert.ToBoolean(reader["comissionado"].ToString()), Funcao = reader["funcao"].ToString(), Salario = Convert.ToSingle(reader["salario"].ToString()), UltimoPagamento = Convert.ToDateTime(reader["ultimo_pagamento"].ToString()) }; } } } } catch (Exception ex) { res = null; LogSistema.AdicionarEvento($"Erro ao pesquisar por Funcionario: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public Caixa Inserir(Caixa entidade, ulong usuario = Util.Usuario.SISTEMA) { Caixa res = null; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" insert into caixa (valor_em_caixa, data) values (@ValorEmCaixa, @Data) returning codigo;"; com.Parameters.Add(new NpgsqlParameter("@ValorEmCaixa", NpgsqlDbType.Real)); com.Parameters.Add(new NpgsqlParameter("@Data", NpgsqlDbType.Date)); com.Parameters["@ValorEmCaixa"].Value = entidade.ValorEmCaixa; com.Parameters["@Data"].Value = entidade.Data; Object retorno = com.ExecuteScalar(); if (retorno == null) { res = null; } else { UInt64 codigo = Convert.ToUInt64(retorno.ToString()); res = entidade; res.Codigo = codigo; Util.DAOLog.Inserir(usuario, Util.Tabela.Caixa, Util.Acao.INSERT, com); LogSistema.AdicionarEvento($"Caixa de código '{codigo}' inserida com sucesso"); } } } catch (Exception ex) { res = null; LogSistema.AdicionarEvento($"Erro ao inserir novo Caixa: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public List <Funcionario> ListarTodos() { List <Funcionario> res = null; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" select codigo, nome, usuario, senha, comissionado, funcao, salario, ultimo_pagamento from funcionario;"; using (NpgsqlDataReader reader = com.ExecuteReader()) { if (reader.HasRows) { res = new List <Funcionario>(); while (reader.Read()) { Funcionario linha = new Funcionario { Codigo = Convert.ToUInt64(reader["codigo"].ToString()), Nome = reader["nome"].ToString(), Usuario = reader["usuario"].ToString(), Senha = reader["senha"].ToString(), Comissionado = Convert.ToBoolean(reader["comissionado"].ToString()), Funcao = reader["funcao"].ToString(), Salario = Convert.ToSingle(reader["salario"].ToString()), UltimoPagamento = Convert.ToDateTime(reader["ultimo_pagamento"].ToString()) }; res.Add(linha); } } } } } catch (Exception ex) { res = null; LogSistema.AdicionarEvento($"Erro ao listar Funcionarios: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public List <Caixa> BuscarPorData(DateTime data) { List <Caixa> res = null; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" select codigo, valor_em_caixa, data from caixa where data = @Data;"; com.Parameters.Add(new NpgsqlParameter("@Data", NpgsqlDbType.Date)); com.Parameters["@Data"].Value = data; using (NpgsqlDataReader reader = com.ExecuteReader()) { if (reader.HasRows) { res = new List <Caixa>(); while (reader.Read()) { Caixa linha = new Caixa { Codigo = Convert.ToUInt64(reader["codigo"].ToString()), ValorEmCaixa = Convert.ToSingle(reader["valor_em_caixa"].ToString()), Data = Convert.ToDateTime(reader["data"].ToString()) }; res.Add(linha); } } } } } catch (Exception ex) { res = null; LogSistema.AdicionarEvento($"Erro ao pesquisar por Caixas: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public bool Atualizar(Caixa entidade, ulong usuario = Util.Usuario.SISTEMA) { bool res = false; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" update caixa set valor_em_caixa = @ValorEmCaixa , data = @Data where codigo = @Codigo;"; com.Parameters.Add(new NpgsqlParameter("@ValorEmCaixa", NpgsqlDbType.Real)); com.Parameters.Add(new NpgsqlParameter("@Data", NpgsqlDbType.Date)); com.Parameters.Add(new NpgsqlParameter("@Codigo", NpgsqlDbType.Bigint)); com.Parameters["@ValorEmCaixa"].Value = entidade.ValorEmCaixa; com.Parameters["@Data"].Value = entidade.Data; com.Parameters["@Codigo"].Value = entidade.Codigo; if (com.ExecuteNonQuery() > 0) { res = true; Util.DAOLog.Inserir(usuario, Util.Tabela.Caixa, Util.Acao.UPDATE, com); LogSistema.AdicionarEvento($"Caixa de código '{entidade.Codigo}' atualizada com sucesso"); } else { res = false; } } } catch (Exception ex) { res = false; LogSistema.AdicionarEvento($"Erro ao atualizar Caixa: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public bool AtualizarSenha(ulong codigo, string senha, ulong usuario) { bool res = false; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" update funcionario set senha = @Senha where codigo = @Codigo;"; com.Parameters.Add(new NpgsqlParameter("@Senha", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Codigo", NpgsqlDbType.Bigint)); senha = MPCConfigManager.GerarSenha(senha); com.Parameters["@Senha"].Value = senha; com.Parameters["@Codigo"].Value = codigo; if (com.ExecuteNonQuery() > 0) { res = true; Util.DAOLog.Inserir(usuario, Util.Tabela.Funcionario, Util.Acao.UPDATE, com); LogSistema.AdicionarEvento($"Senha de Funcionario de código '{codigo}' atualizada com sucesso"); } else { res = false; } } } catch (Exception ex) { res = false; LogSistema.AdicionarEvento($"Erro ao atualizar senha de Funcionario: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public static int VerificarFuncaoBD(string nome) { int res = 0; VerificarConexao(); if (con.State != ConnectionState.Open) { res = -1; return(res); } try { using (NpgsqlCommand comando = con.CreateCommand()) { comando.CommandType = CommandType.Text; comando.CommandText = $"select '{nome}'::regproc;"; using (NpgsqlDataReader reader = comando.ExecuteReader()) { if (reader.HasRows) { res = 0; } else { res = -2; } } } } catch (NpgsqlException ex) { res = -3; LogSistema.AdicionarEvento($"Erro ao verificar a existência de função: {ex.Message}"); } catch (DbException ex) { res = -4; LogSistema.AdicionarEvento($"Erro ao verificar a existência de função: {ex.Message}"); } catch (Exception ex) { res = -5; LogSistema.AdicionarEvento($"Erro genérico ao verificar a existência de função: {ex.Message}"); } return(res); }
public bool Remover(ulong codigo, ulong usuario) { bool res = false; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" delete from funcionario where codigo = @Codigo;"; com.Parameters.Add(new NpgsqlParameter("@Codigo", NpgsqlDbType.Bigint)); com.Parameters["@Codigo"].Value = codigo; if (com.ExecuteNonQuery() > 0) { res = true; Util.DAOLog.Inserir(usuario, Util.Tabela.Funcionario, Util.Acao.DELETE, com); LogSistema.AdicionarEvento($"Funcionario de código '{codigo}' removido com sucesso"); } else { res = false; } } } catch (Exception ex) { res = false; LogSistema.AdicionarEvento($"Erro ao remover Funcionario: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public static bool Inserir(ulong usuario, string tabela, string acao, DbCommand codigoExecutado) { bool res = true; try { NpgsqlConnection conexao = ConexaoBanco.GetConnection(); ConexaoBanco.AbrirConexao(); if (ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" insert into log (usuario, tabela, acao, codigo_executado) values (@Usuario, @Tabela, @Acao, @CodigoExecutado);"; com.Parameters.Add(new NpgsqlParameter("@Usuario", NpgsqlDbType.Bigint)); com.Parameters.Add(new NpgsqlParameter("@Tabela", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Acao", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@CodigoExecutado", NpgsqlDbType.Varchar)); com.Parameters["@Usuario"].Value = usuario; com.Parameters["@Tabela"].Value = tabela; com.Parameters["@Acao"].Value = acao; com.Parameters["@CodigoExecutado"].Value = GetGeneratedQuery(codigoExecutado); int retorno = com.ExecuteNonQuery(); if (retorno == 0) { throw new Exception("Não foi possível fazer a inclusão"); } } } catch (Exception ex) { res = false; LogSistema.AdicionarEvento($"Erro ao adicionar ao log: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public static string Buscar() { string res = null; try { NpgsqlConnection conexao = ConexaoBanco.GetConnection(); ConexaoBanco.AbrirConexao(); if (ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" select senha from super_usuario where codigo = @Codigo;"; com.Parameters.Add(new NpgsqlParameter("@Codigo", NpgsqlDbType.Bigint)); com.Parameters["@Codigo"].Value = codigo; using (NpgsqlDataReader reader = com.ExecuteReader()) { if (reader.HasRows) { reader.Read(); res = reader["senha"].ToString(); } } } } catch (Exception ex) { res = null; LogSistema.AdicionarEvento($"Erro ao pesquisar por Funcionario: {ex.Message}"); } finally { ConexaoBanco.FecharConexao(); } return(res); }
public static int SetDefaultSchema() { int res = 0; try { res = SetSchema(MPCConfigManager.GetEsquemaPadrao()); } catch (Exception ex) { res = -5; LogSistema.AdicionarEvento($"Erro genérico na definição do esquema do banco de dados: {ex.Message}"); } return(res); }
public static void FecharConexao() { VerificarConexao(); if (con.State == ConnectionState.Open) { try { con.Close(); } catch (Exception ex) { LogSistema.AdicionarEvento($"Erro no fechamento da conexão com o banco de dados: {ex.Message}"); } } }
public static void AbrirConexao() { VerificarConexao(); if (con.State == ConnectionState.Closed) { try { con.Open(); } catch (Exception ex) { LogSistema.AdicionarEvento($"Erro na abertura da conexão com o banco de dados: {ex.Message}"); } } }
private static void VerificarConexao() { if (con == null) { try { con = new NpgsqlConnection(MPCConfigManager.GetDBOpcaoMPC()); LogSistema.AdicionarEvento("Banco de dados conectado"); } catch (Exception ex) { LogSistema.AdicionarEvento($"Erro no acesso ao banco de dados: {ex.Message}"); } } }
public static int SetSchema(string schema) { int res = 0; VerificarConexao(); if (con.State != ConnectionState.Open) { res = -1; return(res); } try { using (NpgsqlCommand comando = con.CreateCommand()) { comando.CommandType = CommandType.Text; comando.CommandText = $"set search_path to {schema};"; comando.ExecuteNonQuery(); } } catch (NpgsqlException ex) { res = -2; LogSistema.AdicionarEvento($"Erro na definição do esquema do banco de dados: {ex.Message}"); } catch (DbException ex) { res = -3; LogSistema.AdicionarEvento($"Erro na definição do esquema do banco de dados: {ex.Message}"); } catch (Exception ex) { res = -4; LogSistema.AdicionarEvento($"Erro genérico na definição do esquema do banco de dados: {ex.Message}"); } return(res); }
public FrmGerencia() { InitializeComponent(); BtnPlusMinus pmButton = new BtnPlusMinus(indice) { Location = new Point(PosXBotao, PosYInicial + MetadeLinha) }; UCtrlItemVenda itVenda = new UCtrlItemVenda(indice) { Location = new Point(PosXItVenda, PosYInicial) }; pmButton.Click += new EventHandler(NumLinhasAlterado); itVenda.AdcionarEventoPreco(new EventHandler(ParcialAlterado)); pnlVenda.Controls.Add(pmButton); pnlVenda.Controls.Add(itVenda); listItVenda.Add(new TuplaItemVenda(pmButton, itVenda)); LogSistema.AdicionarEvento("Sistema de gerência aberto"); }
public List <Caixa> BuscarEntreDatas(DateTime inicio, DateTime fim) { List <Caixa> res = null; if (inicio > fim) { DateTime aux; aux = fim; fim = inicio; inicio = aux; } try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = $@" select codigo, valor_em_caixa, data from caixa where data <@ daterange('[{inicio.ToString("yyyy-MM-dd")}, { fim.ToString("yyyy-MM-dd")}]') order by data asc;"; using (NpgsqlDataReader reader = com.ExecuteReader()) { if (reader.HasRows) { res = new List <Caixa>(); while (reader.Read()) { Caixa linha = new Caixa { Codigo = Convert.ToUInt64(reader["codigo"].ToString()), ValorEmCaixa = Convert.ToSingle(reader["valor_em_caixa"].ToString()), Data = Convert.ToDateTime(reader["data"].ToString()) }; res.Add(linha); } } } } } catch (Exception ex) { res = null; LogSistema.AdicionarEvento($"Erro ao pesquisar por Caixas: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public bool Atualizar(Funcionario entidade, ulong usuario) { bool res = false; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" update funcionario set nome = @Nome , usuario = @Usuario , comissionado = @Comissionado , funcao = @Funcao , salario = @Salario , ultimo_pagamento = @UltimoPagamento where codigo = @Codigo;"; com.Parameters.Add(new NpgsqlParameter("@Nome", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Usuario", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Comissionado", NpgsqlDbType.Boolean)); com.Parameters.Add(new NpgsqlParameter("@Funcao", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Salario", NpgsqlDbType.Real)); com.Parameters.Add(new NpgsqlParameter("@UltimoPagamento", NpgsqlDbType.Date)); com.Parameters.Add(new NpgsqlParameter("@Codigo", NpgsqlDbType.Bigint)); com.Parameters["@Nome"].Value = entidade.Nome; com.Parameters["@Usuario"].Value = entidade.Usuario; com.Parameters["@Comissionado"].Value = entidade.Comissionado; com.Parameters["@Funcao"].Value = entidade.Funcao; com.Parameters["@Salario"].Value = entidade.Salario; com.Parameters["@UltimoPagamento"].Value = entidade.UltimoPagamento; com.Parameters["@Codigo"].Value = entidade.Codigo; if (com.ExecuteNonQuery() > 0) { res = true; Util.DAOLog.Inserir(usuario, Util.Tabela.Funcionario, Util.Acao.UPDATE, com); LogSistema.AdicionarEvento($"Funcionario de código '{entidade.Codigo}' atualizado com sucesso"); } else { res = false; } } } catch (Exception ex) { res = false; LogSistema.AdicionarEvento($"Erro ao atualizar Funcionario: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public List <Funcionario> BuscarPorNome(string nome) { List <Funcionario> res = null; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } if (Util.ConexaoBanco.VerificarFuncaoBD("limpa_string") != 0) { throw new Exception("A função limpa_string é necessária, mas não foi definida no banco"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" select codigo, nome, usuario, senha, comissionado, funcao, salario, ultimo_pagamento from funcionario where limpa_string(nome) ilike limpa_string(@Nome) order by nome asc;"; com.Parameters.Add(new NpgsqlParameter("@Nome", NpgsqlDbType.Varchar)); com.Parameters["@Nome"].Value = $"%{nome}%"; using (NpgsqlDataReader reader = com.ExecuteReader()) { if (reader.HasRows) { res = new List <Funcionario>(); while (reader.Read()) { Funcionario linha = new Funcionario { Codigo = Convert.ToUInt64(reader["codigo"].ToString()), Nome = reader["nome"].ToString(), Usuario = reader["usuario"].ToString(), Senha = reader["senha"].ToString(), Comissionado = Convert.ToBoolean(reader["comissionado"].ToString()), Funcao = reader["funcao"].ToString(), Salario = Convert.ToSingle(reader["salario"].ToString()), UltimoPagamento = Convert.ToDateTime(reader["ultimo_pagamento"].ToString()) }; res.Add(linha); } } } } } catch (Exception ex) { res = null; LogSistema.AdicionarEvento($"Erro ao pesquisar por Funcionarios: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }
public Funcionario Inserir(Funcionario entidade, ulong usuario) { Funcionario res = null; try { NpgsqlConnection conexao = Util.ConexaoBanco.GetConnection(); Util.ConexaoBanco.AbrirConexao(); if (Util.ConexaoBanco.SetDefaultSchema() != 0) { throw new Exception("Erro de acesso ao banco, erro na definição definição do esquema do banco de dados"); } using (NpgsqlCommand com = conexao.CreateCommand()) { com.CommandType = CommandType.Text; com.CommandText = @" insert into funcionario (nome, usuario, senha, comissionado, funcao, salario, ultimo_pagamento) values (@Nome, @Usuario, @Senha, @Comissionado, @Funcao, @Salario, @UltimoPagamento) returning codigo;"; com.Parameters.Add(new NpgsqlParameter("@Nome", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Usuario", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Senha", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Comissionado", NpgsqlDbType.Boolean)); com.Parameters.Add(new NpgsqlParameter("@Funcao", NpgsqlDbType.Varchar)); com.Parameters.Add(new NpgsqlParameter("@Salario", NpgsqlDbType.Real)); com.Parameters.Add(new NpgsqlParameter("@UltimoPagamento", NpgsqlDbType.Date)); entidade.Senha = MPCConfigManager.GerarSenha(entidade.Senha); com.Parameters["@Nome"].Value = entidade.Nome; com.Parameters["@Usuario"].Value = entidade.Usuario; com.Parameters["@Senha"].Value = entidade.Senha; com.Parameters["@Comissionado"].Value = entidade.Comissionado; com.Parameters["@Funcao"].Value = entidade.Funcao; com.Parameters["@Salario"].Value = entidade.Salario; com.Parameters["@UltimoPagamento"].Value = entidade.UltimoPagamento; Object retorno = com.ExecuteScalar(); if (retorno == null) { res = null; } else { UInt64 codigo = Convert.ToUInt64(retorno.ToString()); res = entidade; res.Codigo = codigo; Util.DAOLog.Inserir(usuario, Util.Tabela.Funcionario, Util.Acao.INSERT, com); LogSistema.AdicionarEvento($"Funcionario de código '{codigo}' inserido com sucesso"); } } } catch (Exception ex) { res = null; LogSistema.AdicionarEvento($"Erro ao inserir novo Funcionario: {ex.Message}"); } finally { Util.ConexaoBanco.FecharConexao(); } return(res); }