diff --git a/DAL/DALLBackup.cs b/DAL/DALLBackup.cs new file mode 100644 index 0000000..be2d161 --- /dev/null +++ b/DAL/DALLBackup.cs @@ -0,0 +1,343 @@ +using MLL; +using System; +using System.Collections.Generic; +using System.Data; +using Microsoft.Data.SqlClient; + +namespace DAL +{ + public class DALLBackup + { + private readonly string _connectionString; + public DALLBackup(string connectionString) + { + _connectionString = connectionString; + }//metodo constructor para receber a string de conexão com o banco de dados + + public bool Inserir(ModeloBackup modelo) + { + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = @" + INSERT INTO Config_backup + ( + nome, + tipo_backup, + origem, + destino_tipo, + destino_id, + caminho_destino, + compactar, + usar_criptografia, + algoritmo_criptografia, + frequencia, + horario, + manter_ultimos, + status_ultimo_backup, + data_ultimo_backup, + log_ultimo_backup, + ativo, + criado_em, + atualizado_em + ) + VALUES + ( + @nome, + @tipo_backup, + @origem, + @destino_tipo, + @destino_id, + @caminho_destino, + @compactar, + @usar_criptografia, + @algoritmo_criptografia, + @frequencia, + @horario, + @manter_ultimos, + @status_ultimo_backup, + @data_ultimo_backup, + @log_ultimo_backup, + @ativo, + @criado_em, + @atualizado_em + )"; + + SqlCommand cmd = new SqlCommand(query, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + }//incluir + public bool Atualizar(ModeloBackup modelo) + { + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = @" + UPDATE Config_backup + SET + nome = @nome, + tipo_backup = @tipo_backup, + origem = @origem, + destino_tipo = @destino_tipo, + destino_id = @destino_id, + caminho_destino = @caminho_destino, + compactar = @compactar, + usar_criptografia = @usar_criptografia, + algoritmo_criptografia = @algoritmo_criptografia, + frequencia = @frequencia, + horario = @horario, + manter_ultimos = @manter_ultimos, + status_ultimo_backup = @status_ultimo_backup, + data_ultimo_backup = @data_ultimo_backup, + log_ultimo_backup = @log_ultimo_backup, + ativo = @ativo, + atualizado_em = @atualizado_em + WHERE id = @id"; + + SqlCommand cmd = new SqlCommand(query, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@id", modelo.Id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + }//alterar + public bool Excluir(int id) + { + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = "DELETE FROM Config_backup WHERE id = @id"; + + SqlCommand cmd = new SqlCommand(query, conn); + + cmd.Parameters.AddWithValue("@id", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + }//excluir + public ModeloBackup ObterPorId(int id) + { + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = "SELECT * FROM Config_backup WHERE id = @id"; + + SqlCommand cmd = new SqlCommand(query, conn); + + cmd.Parameters.AddWithValue("@id", id); + + conn.Open(); + + SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + } + }//CaregarModelo + public List Listar() + { + List lista = new List(); + + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = "SELECT * FROM Config_backup ORDER BY id DESC"; + + SqlCommand cmd = new SqlCommand(query, conn); + + conn.Open(); + + SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + } + + return lista; + }//Listar + public List ListarAtivos() + { + List lista = new List(); + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = "SELECT * FROM Config_backup WHERE ativo = 1 ORDER BY id DESC"; + SqlCommand cmd = new SqlCommand(query, conn); + conn.Open(); + SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + } + return lista; + }//ListarAtivos + public bool Desativar(int id) + { + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = "UPDATE Config_backup SET ativo = 0, atualizado_em = @atualizado_em WHERE id = @id"; + SqlCommand cmd = new SqlCommand(query, conn); + cmd.Parameters.AddWithValue("@id", id); + cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now); + conn.Open(); + return cmd.ExecuteNonQuery() > 0; + } + }//Desativar + public bool Ativar(int id) + { + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = "UPDATE Config_backup SET ativo = 1, atualizado_em = @atualizado_em WHERE id = @id"; + SqlCommand cmd = new SqlCommand(query, conn); + cmd.Parameters.AddWithValue("@id", id); + cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now); + conn.Open(); + return cmd.ExecuteNonQuery() > 0; + } + }//Ativar + public DataTable LocalizarTodos() + { + DataTable dt = new DataTable(); + using (SqlConnection conn = new SqlConnection(_connectionString)) + { + string query = "SELECT * FROM Config_backup ORDER BY id DESC"; + SqlCommand cmd = new SqlCommand(query, conn); + conn.Open(); + SqlDataAdapter da = new SqlDataAdapter(cmd); + da.Fill(dt); + } + return dt; + }//LocalizarTodos + private static ModeloBackup PreencherModelo(SqlDataReader dr) + { + return new ModeloBackup + { + Id = Convert.ToInt32(dr["id"]), + + Nome = Convert.ToString(dr["nome"]) ?? string.Empty, + + TipoBackup = Convert.ToString(dr["tipo_backup"]) ?? string.Empty, + + Origem = Convert.ToString(dr["origem"]) ?? string.Empty, + + DestinoTipo = Convert.ToString(dr["destino_tipo"]) ?? string.Empty, + + DestinoId = dr["destino_id"] == DBNull.Value + ? null + : Convert.ToInt32(dr["destino_id"]), + + CaminhoDestino = dr["caminho_destino"] == DBNull.Value + ? null + : Convert.ToString(dr["caminho_destino"]), + + Compactar = Convert.ToBoolean(dr["compactar"]), + + UsarCriptografia = Convert.ToBoolean(dr["usar_criptografia"]), + + AlgoritmoCriptografia = dr["algoritmo_criptografia"] == DBNull.Value + ? null + : Convert.ToString(dr["algoritmo_criptografia"]), + + Frequencia = Convert.ToString(dr["frequencia"]) ?? string.Empty, + + Horario = dr["horario"] == DBNull.Value + ? null + : (TimeSpan)dr["horario"], + + ManterUltimos = Convert.ToInt32(dr["manter_ultimos"]), + + StatusUltimoBackup = dr["status_ultimo_backup"] == DBNull.Value + ? null + : Convert.ToString(dr["status_ultimo_backup"]), + + DataUltimoBackup = dr["data_ultimo_backup"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["data_ultimo_backup"]), + + LogUltimoBackup = dr["log_ultimo_backup"] == DBNull.Value + ? null + : Convert.ToString(dr["log_ultimo_backup"]), + + Ativo = Convert.ToBoolean(dr["ativo"]), + + CriadoEm = Convert.ToDateTime(dr["criado_em"]), + + AtualizadoEm = dr["atualizado_em"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["atualizado_em"]) + }; + } + private void PreencherParametros(SqlCommand cmd, ModeloBackup modelo) + { + cmd.Parameters.AddWithValue("@nome", modelo.Nome); + cmd.Parameters.AddWithValue("@tipo_backup", modelo.TipoBackup); + cmd.Parameters.AddWithValue("@origem", modelo.Origem); + cmd.Parameters.AddWithValue("@destino_tipo", modelo.DestinoTipo); + + cmd.Parameters.AddWithValue("@destino_id", + modelo.DestinoId.HasValue + ? (object)modelo.DestinoId.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@caminho_destino", + string.IsNullOrWhiteSpace(modelo.CaminhoDestino) + ? DBNull.Value + : (object)modelo.CaminhoDestino); + + cmd.Parameters.AddWithValue("@compactar", modelo.Compactar); + cmd.Parameters.AddWithValue("@usar_criptografia", modelo.UsarCriptografia); + + cmd.Parameters.AddWithValue("@algoritmo_criptografia", + string.IsNullOrWhiteSpace(modelo.AlgoritmoCriptografia) + ? DBNull.Value + : (object)modelo.AlgoritmoCriptografia); + + cmd.Parameters.AddWithValue("@frequencia", modelo.Frequencia); + + cmd.Parameters.AddWithValue("@horario", + modelo.Horario.HasValue + ? (object)modelo.Horario.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@manter_ultimos", modelo.ManterUltimos); + + cmd.Parameters.AddWithValue("@status_ultimo_backup", + string.IsNullOrWhiteSpace(modelo.StatusUltimoBackup) + ? DBNull.Value + : (object)modelo.StatusUltimoBackup); + + cmd.Parameters.AddWithValue("@data_ultimo_backup", + modelo.DataUltimoBackup.HasValue + ? (object)modelo.DataUltimoBackup.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@log_ultimo_backup", + string.IsNullOrWhiteSpace(modelo.LogUltimoBackup) + ? DBNull.Value + : (object)modelo.LogUltimoBackup); + + cmd.Parameters.AddWithValue("@ativo", modelo.Ativo); + + cmd.Parameters.AddWithValue("@criado_em", modelo.CriadoEm); + + cmd.Parameters.AddWithValue("@atualizado_em", + modelo.AtualizadoEm.HasValue + ? (object)modelo.AtualizadoEm.Value + : DBNull.Value); + } + } + + +} diff --git a/DAL/DALLBackupAutomatico.cs b/DAL/DALLBackupAutomatico.cs new file mode 100644 index 0000000..7ab2fe6 --- /dev/null +++ b/DAL/DALLBackupAutomatico.cs @@ -0,0 +1,282 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLBackupAutomatico + { + private readonly string connectionString; + + public DALLBackupAutomatico(string connectionString) + { + this.connectionString = connectionString; + } + + public bool Inserir(ModeloBackupAutomatico modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Config_backup_auto + ( + id_backup, + ativo, + frequencia, + intervalo_minutos, + horario, + dia_semana, + dia_mes, + ultima_execucao, + proxima_execucao, + executando, + criado_em, + atualizado_em + ) + VALUES + ( + @id_backup, + @ativo, + @frequencia, + @intervalo_minutos, + @horario, + @dia_semana, + @dia_mes, + @ultima_execucao, + @proxima_execucao, + @executando, + @criado_em, + @atualizado_em + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//inserir + public bool Atualizar(ModeloBackupAutomatico modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Config_backup_auto + SET + id_backup = @id_backup, + ativo = @ativo, + frequencia = @frequencia, + intervalo_minutos = @intervalo_minutos, + horario = @horario, + dia_semana = @dia_semana, + dia_mes = @dia_mes, + ultima_execucao = @ultima_execucao, + proxima_execucao = @proxima_execucao, + executando = @executando, + atualizado_em = @atualizado_em + WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@id", modelo.Id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//alterar + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "DELETE FROM Config_backup_auto WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@id", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//excluir + public ModeloBackupAutomatico? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Config_backup_auto WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@id", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + }//CarregarUsandoID + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Config_backup_auto ORDER BY id DESC"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + }//listar + public ModeloBackupAutomatico? ObterPorIdBackup(int idBackup) + { + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Config_backup_auto WHERE id_backup = @id_backup"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@id_backup", idBackup); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + if (dr.Read()) + { + return PreencherModelo(dr); + } + return null; + }//CarregarUsandoIDBackup + public bool AtualizarProximaExecucao(int id, DateTime proximaExecucao) + { + using SqlConnection conn = new(connectionString); + string query = @" + UPDATE Config_backup_auto + SET proxima_execucao = @proxima_execucao, atualizado_em = @atualizado_em + WHERE id = @id"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@proxima_execucao", proximaExecucao); + cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now); + cmd.Parameters.AddWithValue("@id", id); + conn.Open(); + return cmd.ExecuteNonQuery() > 0; + }//AtualizarProximaExecucao + + public DataTable LocalizarTodos() + { + DataTable dt = new(); + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Config_backup_auto"; + using SqlCommand cmd = new(query, conn); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + dt.Load(dr); + return dt; + }//ListarDataTable + private static ModeloBackupAutomatico PreencherModelo(SqlDataReader dr) + { + return new ModeloBackupAutomatico + { + Id = Convert.ToInt32(dr["id"]), + + IdBackup = Convert.ToInt32(dr["id_backup"]), + + Ativo = Convert.ToBoolean(dr["ativo"]), + + Frequencia = Convert.ToString(dr["frequencia"]) ?? string.Empty, + + IntervaloMinutos = dr["intervalo_minutos"] == DBNull.Value + ? null + : Convert.ToInt32(dr["intervalo_minutos"]), + + Horario = dr["horario"] == DBNull.Value + ? null + : (TimeSpan)dr["horario"], + + DiaSemana = dr["dia_semana"] == DBNull.Value + ? null + : Convert.ToInt32(dr["dia_semana"]), + + DiaMes = dr["dia_mes"] == DBNull.Value + ? null + : Convert.ToInt32(dr["dia_mes"]), + + UltimaExecucao = dr["ultima_execucao"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["ultima_execucao"]), + + ProximaExecucao = dr["proxima_execucao"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["proxima_execucao"]), + + Executando = Convert.ToBoolean(dr["executando"]), + + CriadoEm = Convert.ToDateTime(dr["criado_em"]), + + AtualizadoEm = dr["atualizado_em"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["atualizado_em"]) + }; + } + + private static void PreencherParametros(SqlCommand cmd, ModeloBackupAutomatico modelo) + { + cmd.Parameters.AddWithValue("@id_backup", modelo.IdBackup); + + cmd.Parameters.AddWithValue("@ativo", modelo.Ativo); + + cmd.Parameters.AddWithValue("@frequencia", modelo.Frequencia); + + cmd.Parameters.AddWithValue("@intervalo_minutos", + modelo.IntervaloMinutos.HasValue + ? modelo.IntervaloMinutos.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@horario", + modelo.Horario.HasValue + ? modelo.Horario.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@dia_semana", + modelo.DiaSemana.HasValue + ? modelo.DiaSemana.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@dia_mes", + modelo.DiaMes.HasValue + ? modelo.DiaMes.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@ultima_execucao", + modelo.UltimaExecucao.HasValue + ? modelo.UltimaExecucao.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@proxima_execucao", + modelo.ProximaExecucao.HasValue + ? modelo.ProximaExecucao.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@executando", modelo.Executando); + + cmd.Parameters.AddWithValue("@criado_em", modelo.CriadoEm); + + cmd.Parameters.AddWithValue("@atualizado_em", + modelo.AtualizadoEm.HasValue + ? modelo.AtualizadoEm.Value + : DBNull.Value); + } + } +} \ No newline at end of file diff --git a/DAL/DALLBackupExecucao.cs b/DAL/DALLBackupExecucao.cs new file mode 100644 index 0000000..7e97be5 --- /dev/null +++ b/DAL/DALLBackupExecucao.cs @@ -0,0 +1,231 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLBackupExecucao + { + private readonly string connectionString; + + public DALLBackupExecucao(string connectionString) + { + this.connectionString = connectionString; + } + + public bool Inserir(ModeloBackupExecucao modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Config_backup_execucao + ( + id_backup, + data_execucao, + status, + mensagem, + tamanho_arquivo, + duracao_segundos + ) + VALUES + ( + @id_backup, + @data_execucao, + @status, + @mensagem, + @tamanho_arquivo, + @duracao_segundos + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//inserir + public bool Alterar(ModeloBackupExecucao modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Config_backup_execucao + SET + id_backup = @id_backup, + data_execucao = @data_execucao, + status = @status, + mensagem = @mensagem, + tamanho_arquivo = @tamanho_arquivo, + duracao_segundos = @duracao_segundos + WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@id", modelo.Id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//alterar + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "DELETE FROM Config_backup_execucao WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@id", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//excluir + public ModeloBackupExecucao? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Config_backup_execucao WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@id", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + }//CarregarID + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Config_backup_execucao ORDER BY id DESC"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + }//Listar + public List ListarPorIdBackup(int idBackup) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Config_backup_execucao WHERE id_backup = @id_backup ORDER BY id DESC"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@id_backup", idBackup); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + return lista; + }//ListarPorIdBackup + public int ContarExecucoesPorIdBackup(int idBackup) + { + using SqlConnection conn = new(connectionString); + string query = "SELECT COUNT(*) FROM Config_backup_execucao WHERE id_backup = @id_backup"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@id_backup", idBackup); + conn.Open(); + return Convert.ToInt32(cmd.ExecuteScalar()); + }//ContarExecucoesPorIdBackup + public ModeloBackupExecucao? ObterUltimaExecucaoPorIdBackup(int idBackup) + { + using SqlConnection conn = new(connectionString); + string query = "SELECT TOP 1 * FROM Config_backup_execucao WHERE id_backup = @id_backup ORDER BY data_execucao DESC"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@id_backup", idBackup); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + if (dr.Read()) + { + return PreencherModelo(dr); + } + return null; + }//ObterUltimaExecucaoPorIdBackup + public DataTable LocalizarTodos() + { + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Config_backup_execucao"; + using SqlCommand cmd = new(query, conn); + using SqlDataAdapter da = new(cmd); + DataTable dt = new(); + da.Fill(dt); + return dt; + }//LocalizarTodos + private static ModeloBackupExecucao PreencherModelo(SqlDataReader dr) + { + return new ModeloBackupExecucao + { + Id = Convert.ToInt32(dr["id"]), + + IdBackup = Convert.ToInt32(dr["id_backup"]), + + DataExecucao = dr["data_execucao"] == DBNull.Value + ? DateTime.MinValue + : Convert.ToDateTime(dr["data_execucao"]), + + Status = Convert.ToString(dr["status"]) ?? string.Empty, + + Mensagem = dr["mensagem"] == DBNull.Value + ? null + : Convert.ToString(dr["mensagem"]), + + TamanhoArquivo = dr["tamanho_arquivo"] == DBNull.Value + ? null + : Convert.ToInt64(dr["tamanho_arquivo"]), + + DuracaoSegundos = dr["duracao_segundos"] == DBNull.Value + ? null + : Convert.ToInt32(dr["duracao_segundos"]) + }; + } + + private static void PreencherParametros(SqlCommand cmd, ModeloBackupExecucao modelo) + { + cmd.Parameters.AddWithValue("@id_backup", modelo.IdBackup); + + cmd.Parameters.AddWithValue("@data_execucao", modelo.DataExecucao); + + cmd.Parameters.AddWithValue("@status", modelo.Status); + + cmd.Parameters.AddWithValue("@mensagem", + string.IsNullOrWhiteSpace(modelo.Mensagem) + ? DBNull.Value + : modelo.Mensagem); + + cmd.Parameters.AddWithValue("@tamanho_arquivo", + modelo.TamanhoArquivo.HasValue + ? modelo.TamanhoArquivo.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@duracao_segundos", + modelo.DuracaoSegundos.HasValue + ? modelo.DuracaoSegundos.Value + : DBNull.Value); + } + } +} \ No newline at end of file diff --git a/DAL/DALLBancos.cs b/DAL/DALLBancos.cs new file mode 100644 index 0000000..1243640 --- /dev/null +++ b/DAL/DALLBancos.cs @@ -0,0 +1,193 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLBancos + { + private readonly string connectionString; + + public DALLBancos(string connectionString) + { + this.connectionString = connectionString; + } + + public bool Inserir(ModeloBancos modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Bancos + ( + NUMERO, + NOME + ) + VALUES + ( + @NUMERO, + @NOME + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//inserir + public bool Alterar(ModeloBancos modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Bancos + SET + NUMERO = @NUMERO, + NOME = @NOME + WHERE ID_BANCOS = @ID_BANCOS"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@ID_BANCOS", modelo.ID_BANCOS); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//alterar + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "DELETE FROM Bancos WHERE ID_BANCOS = @ID_BANCOS"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_BANCOS", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//excluir + public ModeloBancos? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Bancos WHERE ID_BANCOS = @ID_BANCOS"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_BANCOS", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + }//alterar + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Bancos ORDER BY NOME"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + }//Listar + public List Listar(string valor) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string query = @" + SELECT * FROM Bancos + WHERE NOME LIKE @VALOR + ORDER BY NOME"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@VALOR", $"%{valor}%"); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + return lista; + }//Listar + public int ObterQuantidade() + { + using SqlConnection conn = new(connectionString); + string query = "SELECT COUNT(*) FROM Bancos"; + using SqlCommand cmd = new(query, conn); + conn.Open(); + return Convert.ToInt32(cmd.ExecuteScalar()); + }//ObterQuantidade + public bool VerificarExistencia(int id) + { + using SqlConnection conn = new(connectionString); + string query = "SELECT COUNT(*) FROM Bancos WHERE ID_BANCOS = @ID_BANCOS"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@ID_BANCOS", id); + conn.Open(); + return Convert.ToInt32(cmd.ExecuteScalar()) > 0; + }//VerificarExistencia + public DataTable LocalizarTodos() + { + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Bancos"; + using SqlCommand cmd = new(query, conn); + using SqlDataAdapter da = new(cmd); + DataTable dt = new(); + da.Fill(dt); + return dt; + }//LocalizarTodos + private static ModeloBancos PreencherModelo(SqlDataReader dr) + { + return new ModeloBancos + { + ID_BANCOS = Convert.ToInt32(dr["ID_BANCOS"]), + + NUMERO = dr["NUMERO"] == DBNull.Value + ? string.Empty + : Convert.ToString(dr["NUMERO"]) ?? string.Empty, + + NOME = dr["NOME"] == DBNull.Value + ? string.Empty + : Convert.ToString(dr["NOME"]) ?? string.Empty + }; + } + + private static void PreencherParametros(SqlCommand cmd, ModeloBancos modelo) + { + cmd.Parameters.AddWithValue("@NUMERO", + string.IsNullOrWhiteSpace(modelo.NUMERO) + ? DBNull.Value + : modelo.NUMERO); + + cmd.Parameters.AddWithValue("@NOME", + string.IsNullOrWhiteSpace(modelo.NOME) + ? DBNull.Value + : modelo.NOME); + } + } +} \ No newline at end of file diff --git a/DAL/DALLBoletos.cs b/DAL/DALLBoletos.cs new file mode 100644 index 0000000..17446db --- /dev/null +++ b/DAL/DALLBoletos.cs @@ -0,0 +1,674 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLBoletos + { + private readonly string connectionString; + + public DALLBoletos(string connectionString) + { + this.connectionString = connectionString; + }//Contrutor + + public bool Inserir(ModeloBoletos modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Boletos + ( + EMITIDO, + VENCE, + VALOR, + NUMERO, + PG, + SACADO, + CONTA, + OBSERVACAO, + COD_CONTA, + NOSSO_NUMERO, + ACEITE, + IMPRESSO, + IMPORTACAO, + CHAVE_BOLETO, + LINHA_DIGITAVEL, + DT_PAGAMENTO, + VL_PAGO, + VL_MULTA, + VL_DESCONTO, + ARQUIVO_NOME, + ARQUIVO_TIPO, + ARQUIVO_CAMINHO, + ARQUIVO_DADOS, + DT_CADASTRO, + DT_ALTERACAO, + ID_USUARIO, + STATUS + ) + VALUES + ( + @EMITIDO, + @VENCE, + @VALOR, + @NUMERO, + @PG, + @SACADO, + @CONTA, + @OBSERVACAO, + @COD_CONTA, + @NOSSO_NUMERO, + @ACEITE, + @IMPRESSO, + @IMPORTACAO, + @CHAVE_BOLETO, + @LINHA_DIGITAVEL, + @DT_PAGAMENTO, + @VL_PAGO, + @VL_MULTA, + @VL_DESCONTO, + @ARQUIVO_NOME, + @ARQUIVO_TIPO, + @ARQUIVO_CAMINHO, + @ARQUIVO_DADOS, + @DT_CADASTRO, + @DT_ALTERACAO, + @ID_USUARIO, + @STATUS + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametrosInserir(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//inserir + + public bool Alterar(ModeloBoletos modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Boletos + SET + CODIGO = @CODIGO, + EMITIDO = @EMITIDO, + VENCE = @VENCE, + VALOR = @VALOR, + NUMERO = @NUMERO, + PG = @PG, + SACADO = @SACADO, + CONTA = @CONTA, + OBSERVACAO = @OBSERVACAO, + COD_CONTA = @COD_CONTA, + NOSSO_NUMERO = @NOSSO_NUMERO, + ACEITE = @ACEITE, + IMPRESSO = @IMPRESSO, + IMPORTACAO = @IMPORTACAO, + CHAVE_BOLETO = @CHAVE_BOLETO, + LINHA_DIGITAVEL = @LINHA_DIGITAVEL, + DT_PAGAMENTO = @DT_PAGAMENTO, + VL_PAGO = @VL_PAGO, + VL_MULTA = @VL_MULTA, + VL_DESCONTO = @VL_DESCONTO, + ARQUIVO_NOME = @ARQUIVO_NOME, + ARQUIVO_TIPO = @ARQUIVO_TIPO, + ARQUIVO_CAMINHO = @ARQUIVO_CAMINHO, + ARQUIVO_DADOS = @ARQUIVO_DADOS, + DT_ALTERACAO = @DT_ALTERACAO, + ID_USUARIO = @ID_USUARIO, + STATUS = @STATUS + WHERE ID_BOLETO = @ID_BOLETO"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametrosAlterar(cmd, modelo); + + cmd.Parameters.AddWithValue("@ID_BOLETO", modelo.ID_BOLETO); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//alterar + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "DELETE FROM Boletos WHERE ID_BOLETO = @ID_BOLETO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_BOLETO", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//excluir + public ModeloBoletos? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Boletos WHERE ID_BOLETO = @ID_BOLETO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_BOLETO", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + }//ObterPoriD + public ModeloBoletos CarregarModeloBoletos(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Boletos WHERE ID_BOLETO = @ID_BOLETO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_BOLETO", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + }//CarregarModeloBoletos + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Boletos ORDER BY ID_BOLETO DESC"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + }//Listar + public List ListarPorStatus(string status) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Boletos WHERE STATUS = @STATUS ORDER BY ID_BOLETO DESC"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@STATUS", status); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + return lista; + }//ListarPorStatus + public List ListarPorPeriodo(DateTime dataInicio, DateTime dataFim) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Boletos WHERE EMITIDO BETWEEN @DATA_INICIO AND @DATA_FIM ORDER BY ID_BOLETO DESC"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@DATA_INICIO", dataInicio); + cmd.Parameters.AddWithValue("@DATA_FIM", dataFim); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + return lista; + }//ListarPorPeriodo + public List ListarPorSacado(string sacado) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Boletos WHERE SACADO LIKE @SACADO ORDER BY ID_BOLETO DESC"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@SACADO", $"%{sacado}%"); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + return lista; + }//ListarPorSacado + private static ModeloBoletos PreencherModelo(SqlDataReader dr) + { + return new ModeloBoletos + { + ID_BOLETO = Convert.ToInt32(dr["ID_BOLETO"]), + + CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty, + + NUMERO = Convert.ToString(dr["NUMERO"]) ?? string.Empty, + + NOSSO_NUMERO = Convert.ToString(dr["NOSSO_NUMERO"]) ?? string.Empty, + + CHAVE_BOLETO = Convert.ToString(dr["CHAVE_BOLETO"]) ?? string.Empty, + + LINHA_DIGITAVEL = Convert.ToString(dr["LINHA_DIGITAVEL"]) ?? string.Empty, + + EMITIDO = dr["EMITIDO"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["EMITIDO"]), + + VENCE = dr["VENCE"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["VENCE"]), + + DT_PAGAMENTO = dr["DT_PAGAMENTO"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["DT_PAGAMENTO"]), + + VALOR = dr["VALOR"] == DBNull.Value + ? 0m + : Convert.ToDecimal(dr["VALOR"]), + + VL_PAGO = dr["VL_PAGO"] == DBNull.Value + ? null + : Convert.ToDecimal(dr["VL_PAGO"]), + + VL_MULTA = dr["VL_MULTA"] == DBNull.Value + ? null + : Convert.ToDecimal(dr["VL_MULTA"]), + + VL_DESCONTO = dr["VL_DESCONTO"] == DBNull.Value + ? null + : Convert.ToDecimal(dr["VL_DESCONTO"]), + + STATUS = Convert.ToString(dr["STATUS"]) ?? "ABERTO", + + PG = Convert.ToBoolean(dr["PG"]), + + ACEITE = Convert.ToBoolean(dr["ACEITE"]), + + IMPRESSO = Convert.ToBoolean(dr["IMPRESSO"]), + + IMPORTACAO = Convert.ToBoolean(dr["IMPORTACAO"]), + + SACADO = Convert.ToString(dr["SACADO"]) ?? string.Empty, + + CONTA = Convert.ToString(dr["CONTA"]) ?? string.Empty, + + COD_CONTA = Convert.ToString(dr["COD_CONTA"]) ?? string.Empty, + + ARQUIVO_NOME = Convert.ToString(dr["ARQUIVO_NOME"]) ?? string.Empty, + + ARQUIVO_TIPO = Convert.ToString(dr["ARQUIVO_TIPO"]) ?? string.Empty, + + ARQUIVO_CAMINHO = Convert.ToString(dr["ARQUIVO_CAMINHO"]) ?? string.Empty, + + ARQUIVO_DADOS = dr["ARQUIVO_DADOS"] == DBNull.Value + ? null + : (byte[])dr["ARQUIVO_DADOS"], + + OBSERVACAO = Convert.ToString(dr["OBSERVACAO"]) ?? string.Empty, + + DT_CADASTRO = Convert.ToDateTime(dr["DT_CADASTRO"]), + + DT_ALTERACAO = dr["DT_ALTERACAO"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["DT_ALTERACAO"]), + + ID_USUARIO = dr["ID_USUARIO"] == DBNull.Value + ? null + : Convert.ToInt32(dr["ID_USUARIO"]) + }; + } + private static void PreencherParametrosInserir(SqlCommand cmd, ModeloBoletos modelo) + { + cmd.Parameters.AddWithValue("@EMITIDO", + modelo.EMITIDO.HasValue + ? modelo.EMITIDO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VENCE", + modelo.VENCE.HasValue + ? modelo.VENCE.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VALOR", modelo.VALOR); + + cmd.Parameters.AddWithValue("@NUMERO", + string.IsNullOrWhiteSpace(modelo.NUMERO) + ? DBNull.Value + : modelo.NUMERO); + + cmd.Parameters.AddWithValue("@PG", modelo.PG); + + cmd.Parameters.AddWithValue("@SACADO", + string.IsNullOrWhiteSpace(modelo.SACADO) + ? DBNull.Value + : modelo.SACADO); + + cmd.Parameters.AddWithValue("@CONTA", + string.IsNullOrWhiteSpace(modelo.CONTA) + ? DBNull.Value + : modelo.CONTA); + + cmd.Parameters.AddWithValue("@OBSERVACAO", + string.IsNullOrWhiteSpace(modelo.OBSERVACAO) + ? DBNull.Value + : modelo.OBSERVACAO); + + cmd.Parameters.AddWithValue("@COD_CONTA", + string.IsNullOrWhiteSpace(modelo.COD_CONTA) + ? DBNull.Value + : modelo.COD_CONTA); + + cmd.Parameters.AddWithValue("@NOSSO_NUMERO", + string.IsNullOrWhiteSpace(modelo.NOSSO_NUMERO) + ? DBNull.Value + : modelo.NOSSO_NUMERO); + + cmd.Parameters.AddWithValue("@ACEITE", modelo.ACEITE); + + cmd.Parameters.AddWithValue("@IMPRESSO", modelo.IMPRESSO); + + cmd.Parameters.AddWithValue("@IMPORTACAO", modelo.IMPORTACAO); + + cmd.Parameters.AddWithValue("@CHAVE_BOLETO", + string.IsNullOrWhiteSpace(modelo.CHAVE_BOLETO) + ? DBNull.Value + : modelo.CHAVE_BOLETO); + + cmd.Parameters.AddWithValue("@LINHA_DIGITAVEL", + string.IsNullOrWhiteSpace(modelo.LINHA_DIGITAVEL) + ? DBNull.Value + : modelo.LINHA_DIGITAVEL); + + cmd.Parameters.AddWithValue("@DT_PAGAMENTO", + modelo.DT_PAGAMENTO.HasValue + ? modelo.DT_PAGAMENTO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VL_PAGO", + modelo.VL_PAGO.HasValue + ? modelo.VL_PAGO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VL_MULTA", + modelo.VL_MULTA.HasValue + ? modelo.VL_MULTA.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VL_DESCONTO", + modelo.VL_DESCONTO.HasValue + ? modelo.VL_DESCONTO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@ARQUIVO_NOME", + string.IsNullOrWhiteSpace(modelo.ARQUIVO_NOME) + ? DBNull.Value + : modelo.ARQUIVO_NOME); + + cmd.Parameters.AddWithValue("@ARQUIVO_TIPO", + string.IsNullOrWhiteSpace(modelo.ARQUIVO_TIPO) + ? DBNull.Value + : modelo.ARQUIVO_TIPO); + + cmd.Parameters.AddWithValue("@ARQUIVO_CAMINHO", + string.IsNullOrWhiteSpace(modelo.ARQUIVO_CAMINHO) + ? DBNull.Value + : modelo.ARQUIVO_CAMINHO); + + cmd.Parameters.AddWithValue("@ARQUIVO_DADOS", + modelo.ARQUIVO_DADOS != null + ? modelo.ARQUIVO_DADOS + : DBNull.Value); + + cmd.Parameters.AddWithValue("@DT_CADASTRO", modelo.DT_CADASTRO); + + cmd.Parameters.AddWithValue("@DT_ALTERACAO", + modelo.DT_ALTERACAO.HasValue + ? modelo.DT_ALTERACAO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@ID_USUARIO", + modelo.ID_USUARIO.HasValue + ? modelo.ID_USUARIO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@STATUS", modelo.STATUS); + } + private static void PreencherParametrosAlterar(SqlCommand cmd, ModeloBoletos modelo) + { + cmd.Parameters.AddWithValue("@CODIGO", modelo.CODIGO); + + cmd.Parameters.AddWithValue("@EMITIDO", + modelo.EMITIDO.HasValue + ? modelo.EMITIDO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VENCE", + modelo.VENCE.HasValue + ? modelo.VENCE.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VALOR", modelo.VALOR); + + cmd.Parameters.AddWithValue("@NUMERO", + string.IsNullOrWhiteSpace(modelo.NUMERO) + ? DBNull.Value + : modelo.NUMERO); + + cmd.Parameters.AddWithValue("@PG", modelo.PG); + + cmd.Parameters.AddWithValue("@SACADO", + string.IsNullOrWhiteSpace(modelo.SACADO) + ? DBNull.Value + : modelo.SACADO); + + cmd.Parameters.AddWithValue("@CONTA", + string.IsNullOrWhiteSpace(modelo.CONTA) + ? DBNull.Value + : modelo.CONTA); + + cmd.Parameters.AddWithValue("@OBSERVACAO", + string.IsNullOrWhiteSpace(modelo.OBSERVACAO) + ? DBNull.Value + : modelo.OBSERVACAO); + + cmd.Parameters.AddWithValue("@COD_CONTA", + string.IsNullOrWhiteSpace(modelo.COD_CONTA) + ? DBNull.Value + : modelo.COD_CONTA); + + cmd.Parameters.AddWithValue("@NOSSO_NUMERO", + string.IsNullOrWhiteSpace(modelo.NOSSO_NUMERO) + ? DBNull.Value + : modelo.NOSSO_NUMERO); + + cmd.Parameters.AddWithValue("@ACEITE", modelo.ACEITE); + + cmd.Parameters.AddWithValue("@IMPRESSO", modelo.IMPRESSO); + + cmd.Parameters.AddWithValue("@IMPORTACAO", modelo.IMPORTACAO); + + cmd.Parameters.AddWithValue("@CHAVE_BOLETO", + string.IsNullOrWhiteSpace(modelo.CHAVE_BOLETO) + ? DBNull.Value + : modelo.CHAVE_BOLETO); + + cmd.Parameters.AddWithValue("@LINHA_DIGITAVEL", + string.IsNullOrWhiteSpace(modelo.LINHA_DIGITAVEL) + ? DBNull.Value + : modelo.LINHA_DIGITAVEL); + + cmd.Parameters.AddWithValue("@DT_PAGAMENTO", + modelo.DT_PAGAMENTO.HasValue + ? modelo.DT_PAGAMENTO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VL_PAGO", + modelo.VL_PAGO.HasValue + ? modelo.VL_PAGO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VL_MULTA", + modelo.VL_MULTA.HasValue + ? modelo.VL_MULTA.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@VL_DESCONTO", + modelo.VL_DESCONTO.HasValue + ? modelo.VL_DESCONTO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@ARQUIVO_NOME", + string.IsNullOrWhiteSpace(modelo.ARQUIVO_NOME) + ? DBNull.Value + : modelo.ARQUIVO_NOME); + + cmd.Parameters.AddWithValue("@ARQUIVO_TIPO", + string.IsNullOrWhiteSpace(modelo.ARQUIVO_TIPO) + ? DBNull.Value + : modelo.ARQUIVO_TIPO); + + cmd.Parameters.AddWithValue("@ARQUIVO_CAMINHO", + string.IsNullOrWhiteSpace(modelo.ARQUIVO_CAMINHO) + ? DBNull.Value + : modelo.ARQUIVO_CAMINHO); + + cmd.Parameters.AddWithValue("@ARQUIVO_DADOS", + modelo.ARQUIVO_DADOS != null + ? modelo.ARQUIVO_DADOS + : DBNull.Value); + + cmd.Parameters.AddWithValue("@DT_CADASTRO", modelo.DT_CADASTRO); + + cmd.Parameters.AddWithValue("@DT_ALTERACAO", + modelo.DT_ALTERACAO.HasValue + ? modelo.DT_ALTERACAO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@ID_USUARIO", + modelo.ID_USUARIO.HasValue + ? modelo.ID_USUARIO.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@STATUS", modelo.STATUS); + } + + #region VIEWS + + public List ListarAbertos() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosAbertos"); + }//ListarAbertos + public List ListarVencidos() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosVencidos"); + }//ListarVencidos + public List ListarPagos() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosPagos"); + }//ListarPagos + public List ListarImportados() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosImportados"); + }//ListarImportados + public List ListarComArquivo() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosComArquivo"); + }//ListarComArquivo + public List ListarSemArquivo() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosSemArquivo"); + }//ListarSemArquivo + public List ListarHoje() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosHoje"); + }//ListarHoje + public List ListarSemana() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosSemana"); + }//ListarSemana + public List ListarProximosVencimentos() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosProximosVencimentos"); + }//ListarProximosVencimentos + public List ListarPendentesWebhook() + { + return ExecutarViewLista("SELECT * FROM VW_BoletosPendentesWebhook"); + }//ListarPendentesWebhook + #endregion + + #region DASHBOARD + + public DataTable ObterResumoFinanceiro() + { + return ExecutarViewDataTable("SELECT * FROM VW_BoletosResumoFinanceiro"); + }//ObterResumoFinanceiro + + public DataTable ObterDashboard() + { + return ExecutarViewDataTable("SELECT * FROM VW_BoletosDashboard"); + }//ObterDashboard + #endregion + + #region HELPERS + + private List ExecutarViewLista(string query) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + }//ExecutarViewLista + + private DataTable ExecutarViewDataTable(string query) + { + DataTable dt = new(); + + using SqlConnection conn = new(connectionString); + + using SqlDataAdapter da = new(query, conn); + + da.Fill(dt); + + return dt; + }//ExecutarViewDataTable + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALLCalibracao.cs b/DAL/DALLCalibracao.cs new file mode 100644 index 0000000..da9b7e8 --- /dev/null +++ b/DAL/DALLCalibracao.cs @@ -0,0 +1,245 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLCalibracao + { + private readonly string connectionString; + + public DALLCalibracao(string connectionString) + { + this.connectionString = connectionString; + } + + #region CRUD + + public bool Inserir(ModeloCalibracao modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Calibracao + ( + OS_NUMERO, + DATA, + TEMP, + HUMIDADE, + RESPONSABEL, + OBSERV + ) + VALUES + ( + @OS_NUMERO, + @DATA, + @TEMP, + @HUMIDADE, + @RESPONSABEL, + @OBSERV + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametrosInserir(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public bool Alterar(ModeloCalibracao modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Calibracao + SET + CODIGO = @CODIGO, + OS_NUMERO = @OS_NUMERO, + DATA = @DATA, + TEMP = @TEMP, + HUMIDADE = @HUMIDADE, + RESPONSABEL = @RESPONSABEL, + OBSERV = @OBSERV + WHERE ID_CALIBRACAO = @ID_CALIBRACAO"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametrosAlterar(cmd, modelo); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO", modelo.ID_CALIBRACAO); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = @" + DELETE FROM Calibracao + WHERE ID_CALIBRACAO = @ID_CALIBRACAO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public ModeloCalibracao? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao + WHERE ID_CALIBRACAO = @ID_CALIBRACAO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + } + + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao + ORDER BY ID_CALIBRACAO DESC"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + } + + #endregion + + #region HELPERS + + private static ModeloCalibracao PreencherModelo(SqlDataReader dr) + { + return new ModeloCalibracao + { + ID_CALIBRACAO = Convert.ToInt32(dr["ID_CALIBRACAO"]), + + CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty, + + OS_NUMERO = Convert.ToString(dr["OS_NUMERO"]) ?? string.Empty, + + DATA = Convert.ToString(dr["DATA"]) ?? string.Empty, + + TEMP = Convert.ToString(dr["TEMP"]) ?? string.Empty, + + HUMIDADE = Convert.ToString(dr["HUMIDADE"]) ?? string.Empty, + + RESPONSABEL = Convert.ToString(dr["RESPONSABEL"]) ?? string.Empty, + + OBSERV = Convert.ToString(dr["OBSERV"]) ?? string.Empty + }; + } + + private static void PreencherParametrosInserir(SqlCommand cmd, ModeloCalibracao modelo) + { + cmd.Parameters.AddWithValue("@OS_NUMERO", + string.IsNullOrWhiteSpace(modelo.OS_NUMERO) + ? DBNull.Value + : modelo.OS_NUMERO); + + cmd.Parameters.AddWithValue("@DATA", + string.IsNullOrWhiteSpace(modelo.DATA) + ? DBNull.Value + : modelo.DATA); + + cmd.Parameters.AddWithValue("@TEMP", + string.IsNullOrWhiteSpace(modelo.TEMP) + ? DBNull.Value + : modelo.TEMP); + + cmd.Parameters.AddWithValue("@HUMIDADE", + string.IsNullOrWhiteSpace(modelo.HUMIDADE) + ? DBNull.Value + : modelo.HUMIDADE); + + cmd.Parameters.AddWithValue("@RESPONSABEL", + string.IsNullOrWhiteSpace(modelo.RESPONSABEL) + ? DBNull.Value + : modelo.RESPONSABEL); + + cmd.Parameters.AddWithValue("@OBSERV", + string.IsNullOrWhiteSpace(modelo.OBSERV) + ? DBNull.Value + : modelo.OBSERV); + } + private static void PreencherParametrosAlterar(SqlCommand cmd, ModeloCalibracao modelo) + { + cmd.Parameters.AddWithValue("@CODIGO", + string.IsNullOrWhiteSpace(modelo.CODIGO) + ? DBNull.Value + : modelo.CODIGO); + + cmd.Parameters.AddWithValue("@OS_NUMERO", + string.IsNullOrWhiteSpace(modelo.OS_NUMERO) + ? DBNull.Value + : modelo.OS_NUMERO); + + cmd.Parameters.AddWithValue("@DATA", + string.IsNullOrWhiteSpace(modelo.DATA) + ? DBNull.Value + : modelo.DATA); + + cmd.Parameters.AddWithValue("@TEMP", + string.IsNullOrWhiteSpace(modelo.TEMP) + ? DBNull.Value + : modelo.TEMP); + + cmd.Parameters.AddWithValue("@HUMIDADE", + string.IsNullOrWhiteSpace(modelo.HUMIDADE) + ? DBNull.Value + : modelo.HUMIDADE); + + cmd.Parameters.AddWithValue("@RESPONSABEL", + string.IsNullOrWhiteSpace(modelo.RESPONSABEL) + ? DBNull.Value + : modelo.RESPONSABEL); + + cmd.Parameters.AddWithValue("@OBSERV", + string.IsNullOrWhiteSpace(modelo.OBSERV) + ? DBNull.Value + : modelo.OBSERV); + } + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALLCalibracaoEnsaio.cs b/DAL/DALLCalibracaoEnsaio.cs new file mode 100644 index 0000000..3290ead --- /dev/null +++ b/DAL/DALLCalibracaoEnsaio.cs @@ -0,0 +1,233 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLCalibracaoEnsaio + { + private readonly string connectionString; + + public DALLCalibracaoEnsaio(string connectionString) + { + this.connectionString = connectionString; + } + + #region CRUD + + public bool Inserir(ModeloCalibracaoEnsaio modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Calibracao_ensaio + ( + COD_CALIBRACAO, + DESCRICAO, + MINIMO, + MAXIMO, + OBTIDO, + UNIDADE + ) + VALUES + ( + @COD_CALIBRACAO, + @DESCRICAO, + @MINIMO, + @MAXIMO, + @OBTIDO, + @UNIDADE + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public bool Alterar(ModeloCalibracaoEnsaio modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Calibracao_ensaio + SET + COD_CALIBRACAO = @COD_CALIBRACAO, + DESCRICAO = @DESCRICAO, + MINIMO = @MINIMO, + MAXIMO = @MAXIMO, + OBTIDO = @OBTIDO, + UNIDADE = @UNIDADE + WHERE ID_CALIBRACAO_ENSAIO = @ID_CALIBRACAO_ENSAIO"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO_ENSAIO", modelo.ID_CALIBRACAO_ENSAIO); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = @" + DELETE FROM Calibracao_ensaio + WHERE ID_CALIBRACAO_ENSAIO = @ID_CALIBRACAO_ENSAIO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO_ENSAIO", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public ModeloCalibracaoEnsaio? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao_ensaio + WHERE ID_CALIBRACAO_ENSAIO = @ID_CALIBRACAO_ENSAIO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO_ENSAIO", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + } + + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao_ensaio + ORDER BY ID_CALIBRACAO_ENSAIO DESC"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + } + + public List ListarPorCodigo(string codigoCalibracao) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao_ensaio + WHERE COD_CALIBRACAO = @COD_CALIBRACAO + ORDER BY ID_CALIBRACAO_ENSAIO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@COD_CALIBRACAO", codigoCalibracao); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + } + + #endregion + + #region HELPERS + + private static ModeloCalibracaoEnsaio PreencherModelo(SqlDataReader dr) + { + return new ModeloCalibracaoEnsaio + { + ID_CALIBRACAO_ENSAIO = Convert.ToInt32(dr["ID_CALIBRACAO_ENSAIO"]), + + COD_CALIBRACAO = Convert.ToString(dr["COD_CALIBRACAO"]) ?? string.Empty, + + DESCRICAO = Convert.ToString(dr["DESCRICAO"]) ?? string.Empty, + + MINIMO = Convert.ToString(dr["MINIMO"]) ?? string.Empty, + + MAXIMO = Convert.ToString(dr["MAXIMO"]) ?? string.Empty, + + OBTIDO = Convert.ToString(dr["OBTIDO"]) ?? string.Empty, + + UNIDADE = Convert.ToString(dr["UNIDADE"]) ?? string.Empty + }; + } + + private static void PreencherParametros(SqlCommand cmd, ModeloCalibracaoEnsaio modelo) + { + cmd.Parameters.AddWithValue("@COD_CALIBRACAO", + string.IsNullOrWhiteSpace(modelo.COD_CALIBRACAO) + ? DBNull.Value + : modelo.COD_CALIBRACAO); + + cmd.Parameters.AddWithValue("@DESCRICAO", + string.IsNullOrWhiteSpace(modelo.DESCRICAO) + ? DBNull.Value + : modelo.DESCRICAO); + + cmd.Parameters.AddWithValue("@MINIMO", + string.IsNullOrWhiteSpace(modelo.MINIMO) + ? DBNull.Value + : modelo.MINIMO); + + cmd.Parameters.AddWithValue("@MAXIMO", + string.IsNullOrWhiteSpace(modelo.MAXIMO) + ? DBNull.Value + : modelo.MAXIMO); + + cmd.Parameters.AddWithValue("@OBTIDO", + string.IsNullOrWhiteSpace(modelo.OBTIDO) + ? DBNull.Value + : modelo.OBTIDO); + + cmd.Parameters.AddWithValue("@UNIDADE", + string.IsNullOrWhiteSpace(modelo.UNIDADE) + ? DBNull.Value + : modelo.UNIDADE); + } + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALLCalibracaoPadrao.cs b/DAL/DALLCalibracaoPadrao.cs new file mode 100644 index 0000000..fe07915 --- /dev/null +++ b/DAL/DALLCalibracaoPadrao.cs @@ -0,0 +1,245 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLCalibracaoPadrao + { + private readonly string connectionString; + + public DALLCalibracaoPadrao(string connectionString) + { + this.connectionString = connectionString; + } + + #region CRUD + + public bool Inserir(ModeloCalibracaoPadrao modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Calibracao_Padrao + ( + OS_NUMERO, + DATA, + TEMP, + HUMIDADE, + RESPONSABEL, + OBSERV + ) + VALUES + ( + @OS_NUMERO, + @DATA, + @TEMP, + @HUMIDADE, + @RESPONSABEL, + @OBSERV + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametrosInserir(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public bool Alterar(ModeloCalibracaoPadrao modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Calibracao_Padrao + SET + CODIGO = @CODIGO, + OS_NUMERO = @OS_NUMERO, + DATA = @DATA, + TEMP = @TEMP, + HUMIDADE = @HUMIDADE, + RESPONSABEL = @RESPONSABEL, + OBSERV = @OBSERV + WHERE ID_CALIBRACAO_PADRAO = @ID_CALIBRACAO_PADRAO"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametrosAlterar(cmd, modelo); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO_PADRAO", modelo.ID_CALIBRACAO_PADRAO); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = @" + DELETE FROM Calibracao_Padrao + WHERE ID_CALIBRACAO_PADRAO = @ID_CALIBRACAO_PADRAO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO_PADRAO", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public ModeloCalibracaoPadrao? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao_Padrao + WHERE ID_CALIBRACAO_PADRAO = @ID_CALIBRACAO_PADRAO"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_CALIBRACAO_PADRAO", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + } + + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao_Padrao + ORDER BY ID_CALIBRACAO_PADRAO DESC"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + } + + #endregion + + #region HELPERS + + private static ModeloCalibracaoPadrao PreencherModelo(SqlDataReader dr) + { + return new ModeloCalibracaoPadrao + { + ID_CALIBRACAO_PADRAO = Convert.ToInt32(dr["ID_CALIBRACAO_PADRAO"]), + + CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty, + + OS_NUMERO = Convert.ToString(dr["OS_NUMERO"]) ?? string.Empty, + + DATA = Convert.ToString(dr["DATA"]) ?? string.Empty, + + TEMP = Convert.ToString(dr["TEMP"]) ?? string.Empty, + + HUMIDADE = Convert.ToString(dr["HUMIDADE"]) ?? string.Empty, + + RESPONSABEL = Convert.ToString(dr["RESPONSABEL"]) ?? string.Empty, + + OBSERV = Convert.ToString(dr["OBSERV"]) ?? string.Empty + }; + } + + private static void PreencherParametrosInserir(SqlCommand cmd, ModeloCalibracaoPadrao modelo) + { + cmd.Parameters.AddWithValue("@OS_NUMERO", + string.IsNullOrWhiteSpace(modelo.OS_NUMERO) + ? DBNull.Value + : modelo.OS_NUMERO); + + cmd.Parameters.AddWithValue("@DATA", + string.IsNullOrWhiteSpace(modelo.DATA) + ? DBNull.Value + : modelo.DATA); + + cmd.Parameters.AddWithValue("@TEMP", + string.IsNullOrWhiteSpace(modelo.TEMP) + ? DBNull.Value + : modelo.TEMP); + + cmd.Parameters.AddWithValue("@HUMIDADE", + string.IsNullOrWhiteSpace(modelo.HUMIDADE) + ? DBNull.Value + : modelo.HUMIDADE); + + cmd.Parameters.AddWithValue("@RESPONSABEL", + string.IsNullOrWhiteSpace(modelo.RESPONSABEL) + ? DBNull.Value + : modelo.RESPONSABEL); + + cmd.Parameters.AddWithValue("@OBSERV", + string.IsNullOrWhiteSpace(modelo.OBSERV) + ? DBNull.Value + : modelo.OBSERV); + } + private static void PreencherParametrosAlterar(SqlCommand cmd, ModeloCalibracaoPadrao modelo) + { + cmd.Parameters.AddWithValue("@CODIGO", + string.IsNullOrWhiteSpace(modelo.CODIGO) + ? DBNull.Value + : modelo.CODIGO); + + cmd.Parameters.AddWithValue("@OS_NUMERO", + string.IsNullOrWhiteSpace(modelo.OS_NUMERO) + ? DBNull.Value + : modelo.OS_NUMERO); + + cmd.Parameters.AddWithValue("@DATA", + string.IsNullOrWhiteSpace(modelo.DATA) + ? DBNull.Value + : modelo.DATA); + + cmd.Parameters.AddWithValue("@TEMP", + string.IsNullOrWhiteSpace(modelo.TEMP) + ? DBNull.Value + : modelo.TEMP); + + cmd.Parameters.AddWithValue("@HUMIDADE", + string.IsNullOrWhiteSpace(modelo.HUMIDADE) + ? DBNull.Value + : modelo.HUMIDADE); + + cmd.Parameters.AddWithValue("@RESPONSABEL", + string.IsNullOrWhiteSpace(modelo.RESPONSABEL) + ? DBNull.Value + : modelo.RESPONSABEL); + + cmd.Parameters.AddWithValue("@OBSERV", + string.IsNullOrWhiteSpace(modelo.OBSERV) + ? DBNull.Value + : modelo.OBSERV); + } + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALLCalibracaoPadraoEnsaios.cs b/DAL/DALLCalibracaoPadraoEnsaios.cs new file mode 100644 index 0000000..7e75f8b --- /dev/null +++ b/DAL/DALLCalibracaoPadraoEnsaios.cs @@ -0,0 +1,246 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLCalibracaoPadraoEnsaios + { + private readonly string connectionString; + + public DALLCalibracaoPadraoEnsaios(string connectionString) + { + this.connectionString = connectionString; + } + + #region CRUD + + public bool Inserir(ModeloCalibracaoPadraoEnsaios modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Calibracao_Padrao_ensaios + ( + COD_CALIBRACAO, + DESCRICAO, + MINIMO, + MAXIMO, + OBTIDO, + UNIDADE + ) + VALUES + ( + @COD_CALIBRACAO, + @DESCRICAO, + @MINIMO, + @MAXIMO, + @OBTIDO, + @UNIDADE + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametrosInserir(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public bool Alterar(ModeloCalibracaoPadraoEnsaios modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Calibracao_Padrao_ensaios + SET + CODIGO = @CODIGO, + COD_CALIBRACAO = @COD_CALIBRACAO, + DESCRICAO = @DESCRICAO, + MINIMO = @MINIMO, + MAXIMO = @MAXIMO, + OBTIDO = @OBTIDO, + UNIDADE = @UNIDADE + WHERE ID_CAL_PADRAO_ENSAIOS = @ID_CAL_PADRAO_ENSAIOS"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametrosAlterar(cmd, modelo); + + cmd.Parameters.AddWithValue("@ID_CAL_PADRAO_ENSAIOS", modelo.ID_CAL_PADRAO_ENSAIOS); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = @" + DELETE FROM Calibracao_Padrao_ensaios + WHERE ID_CAL_PADRAO_ENSAIOS = @ID_CAL_PADRAO_ENSAIOS"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_CAL_PADRAO_ENSAIOS", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + + public ModeloCalibracaoPadraoEnsaios? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao_Padrao_ensaios + WHERE ID_CAL_PADRAO_ENSAIOS = @ID_CAL_PADRAO_ENSAIOS"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@ID_CAL_PADRAO_ENSAIOS", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + } + + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao_Padrao_ensaios + ORDER BY ID_CAL_PADRAO_ENSAIOS DESC"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + } + + public List ListarPorCodigo(string codigo) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = @" + SELECT * + FROM Calibracao_Padrao_ensaios + WHERE COD_CALIBRACAO = @COD_CALIBRACAO + ORDER BY ID_CAL_PADRAO_ENSAIOS"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@COD_CALIBRACAO", codigo); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + } + + #endregion + + #region HELPERS + + private static ModeloCalibracaoPadraoEnsaios PreencherModelo(SqlDataReader dr) + { + return new ModeloCalibracaoPadraoEnsaios + { + ID_CAL_PADRAO_ENSAIOS = Convert.ToInt32(dr["ID_CAL_PADRAO_ENSAIOS"]), + + CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty, + + COD_CALIBRACAO = Convert.ToString(dr["COD_CALIBRACAO"]) ?? string.Empty, + + DESCRICAO = Convert.ToString(dr["DESCRICAO"]) ?? string.Empty, + + MINIMO = Convert.ToString(dr["MINIMO"]) ?? string.Empty, + + MAXIMO = Convert.ToString(dr["MAXIMO"]) ?? string.Empty, + + OBTIDO = Convert.ToString(dr["OBTIDO"]) ?? string.Empty, + + UNIDADE = Convert.ToString(dr["UNIDADE"]) ?? string.Empty + }; + } + + private static void PreencherParametrosInserir(SqlCommand cmd, ModeloCalibracaoPadraoEnsaios modelo) + { + cmd.Parameters.AddWithValue("@COD_CALIBRACAO", + string.IsNullOrWhiteSpace(modelo.COD_CALIBRACAO) + ? DBNull.Value + : modelo.COD_CALIBRACAO); + + cmd.Parameters.AddWithValue("@DESCRICAO", + string.IsNullOrWhiteSpace(modelo.DESCRICAO) + ? DBNull.Value + : modelo.DESCRICAO); + + cmd.Parameters.AddWithValue("@MINIMO", + string.IsNullOrWhiteSpace(modelo.MINIMO) + ? DBNull.Value + : modelo.MINIMO); + + cmd.Parameters.AddWithValue("@MAXIMO", + string.IsNullOrWhiteSpace(modelo.MAXIMO) + ? DBNull.Value + : modelo.MAXIMO); + + cmd.Parameters.AddWithValue("@OBTIDO", + string.IsNullOrWhiteSpace(modelo.OBTIDO) + ? DBNull.Value + : modelo.OBTIDO); + + cmd.Parameters.AddWithValue("@UNIDADE", + string.IsNullOrWhiteSpace(modelo.UNIDADE) + ? DBNull.Value + : modelo.UNIDADE); + } + + private static void PreencherParametrosAlterar(SqlCommand cmd, ModeloCalibracaoPadraoEnsaios modelo) + { + cmd.Parameters.AddWithValue("@CODIGO", + string.IsNullOrWhiteSpace(modelo.CODIGO) + ? DBNull.Value + : modelo.CODIGO); + + PreencherParametrosInserir(cmd, modelo); + } + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALLCloudBackup.cs b/DAL/DALLCloudBackup.cs new file mode 100644 index 0000000..4a87501 --- /dev/null +++ b/DAL/DALLCloudBackup.cs @@ -0,0 +1,356 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLCloudBackup + { + private readonly string connectionString; + + public DALLCloudBackup(string connectionString) + { + this.connectionString = connectionString; + } + + public bool Inserir(ModeloCloudBackup modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + INSERT INTO Config_cloud_backup + ( + nome, + tipo, + client_id, + client_secret, + access_token, + refresh_token, + token_expira_em, + url, + usuario, + senha, + pasta_base, + ativo, + criado_em, + atualizado_em + ) + VALUES + ( + @nome, + @tipo, + @client_id, + @client_secret, + @access_token, + @refresh_token, + @token_expira_em, + @url, + @usuario, + @senha, + @pasta_base, + @ativo, + @criado_em, + @atualizado_em + )"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//Incluir + + public bool Alterar(ModeloCloudBackup modelo) + { + using SqlConnection conn = new(connectionString); + + string query = @" + UPDATE Config_cloud_backup + SET + nome = @nome, + tipo = @tipo, + client_id = @client_id, + client_secret = @client_secret, + access_token = @access_token, + refresh_token = @refresh_token, + token_expira_em = @token_expira_em, + url = @url, + usuario = @usuario, + senha = @senha, + pasta_base = @pasta_base, + ativo = @ativo, + atualizado_em = @atualizado_em + WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@id", modelo.Id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//Alterar + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "DELETE FROM Config_cloud_backup WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@id", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//Excluir + public ModeloCloudBackup? ObterPorId(int id) + { + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Config_cloud_backup WHERE id = @id"; + + using SqlCommand cmd = new(query, conn); + + cmd.Parameters.AddWithValue("@id", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + { + return PreencherModelo(dr); + } + + return null; + }//ObterPorID + public List Listar() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string query = "SELECT * FROM Config_cloud_backup ORDER BY id DESC"; + + using SqlCommand cmd = new(query, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add(PreencherModelo(dr)); + } + + return lista; + }//Listar + public ModeloCloudBackup? ObterAtivo() + { + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Config_cloud_backup WHERE ativo = 1"; + using SqlCommand cmd = new(query, conn); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + if (dr.Read()) + { + return PreencherModelo(dr); + } + return null; + }//ObterAtivo + public bool DesativarTodos() + { + using SqlConnection conn = new(connectionString); + string query = "UPDATE Config_cloud_backup SET ativo = 0"; + using SqlCommand cmd = new(query, conn); + conn.Open(); + return cmd.ExecuteNonQuery() > 0; + }//DesativarTodos + public bool Ativar(int id) + { + using SqlConnection conn = new(connectionString); + string query = "UPDATE Config_cloud_backup SET ativo = 1 WHERE id = @id"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@id", id); + conn.Open(); + return cmd.ExecuteNonQuery() > 0; + }//Ativar + public bool AtualizarToken(int id, string accessToken, string refreshToken, DateTime tokenExpiraEm) + { + using SqlConnection conn = new(connectionString); + string query = @" + UPDATE Config_cloud_backup + SET + access_token = @access_token, + refresh_token = @refresh_token, + token_expira_em = @token_expira_em, + atualizado_em = @atualizado_em + WHERE id = @id"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@access_token", accessToken); + cmd.Parameters.AddWithValue("@refresh_token", refreshToken); + cmd.Parameters.AddWithValue("@token_expira_em", tokenExpiraEm); + cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now); + cmd.Parameters.AddWithValue("@id", id); + conn.Open(); + return cmd.ExecuteNonQuery() > 0; + }//AtualizarToken + public bool AtualizarCredenciais(int id, string clientId, string clientSecret) + { + using SqlConnection conn = new(connectionString); + string query = @" + UPDATE Config_cloud_backup + SET + client_id = @client_id, + client_secret = @client_secret, + atualizado_em = @atualizado_em + WHERE id = @id"; + using SqlCommand cmd = new(query, conn); + cmd.Parameters.AddWithValue("@client_id", clientId); + cmd.Parameters.AddWithValue("@client_secret", clientSecret); + cmd.Parameters.AddWithValue("@atualizado_em", DateTime.Now); + cmd.Parameters.AddWithValue("@id", id); + conn.Open(); + return cmd.ExecuteNonQuery() > 0; + }//AtualizarCredenciais + public DataTable LocalizarTodos() + { + using SqlConnection conn = new(connectionString); + string query = "SELECT * FROM Config_cloud_backup"; + using SqlCommand cmd = new(query, conn); + using SqlDataAdapter da = new(cmd); + DataTable dt = new(); + da.Fill(dt); + return dt; + }//LocalizarTodos + + private static ModeloCloudBackup PreencherModelo(SqlDataReader dr) + { + return new ModeloCloudBackup + { + Id = Convert.ToInt32(dr["id"]), + + Nome = Convert.ToString(dr["nome"]) ?? string.Empty, + + Tipo = Convert.ToString(dr["tipo"]) ?? string.Empty, + + ClientId = dr["client_id"] == DBNull.Value + ? null + : Convert.ToString(dr["client_id"]), + + ClientSecret = dr["client_secret"] == DBNull.Value + ? null + : Convert.ToString(dr["client_secret"]), + + AccessToken = dr["access_token"] == DBNull.Value + ? null + : Convert.ToString(dr["access_token"]), + + RefreshToken = dr["refresh_token"] == DBNull.Value + ? null + : Convert.ToString(dr["refresh_token"]), + + TokenExpiraEm = dr["token_expira_em"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["token_expira_em"]), + + Url = dr["url"] == DBNull.Value + ? null + : Convert.ToString(dr["url"]), + + Usuario = dr["usuario"] == DBNull.Value + ? null + : Convert.ToString(dr["usuario"]), + + Senha = dr["senha"] == DBNull.Value + ? null + : Convert.ToString(dr["senha"]), + + PastaBase = dr["pasta_base"] == DBNull.Value + ? null + : Convert.ToString(dr["pasta_base"]), + + Ativo = Convert.ToBoolean(dr["ativo"]), + + CriadoEm = dr["criado_em"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["criado_em"]), + + AtualizadoEm = dr["atualizado_em"] == DBNull.Value + ? null + : Convert.ToDateTime(dr["atualizado_em"]) + }; + } + + private static void PreencherParametros(SqlCommand cmd, ModeloCloudBackup modelo) + { + cmd.Parameters.AddWithValue("@nome", modelo.Nome); + + cmd.Parameters.AddWithValue("@tipo", modelo.Tipo); + + cmd.Parameters.AddWithValue("@client_id", + string.IsNullOrWhiteSpace(modelo.ClientId) + ? DBNull.Value + : modelo.ClientId); + + cmd.Parameters.AddWithValue("@client_secret", + string.IsNullOrWhiteSpace(modelo.ClientSecret) + ? DBNull.Value + : modelo.ClientSecret); + + cmd.Parameters.AddWithValue("@access_token", + string.IsNullOrWhiteSpace(modelo.AccessToken) + ? DBNull.Value + : modelo.AccessToken); + + cmd.Parameters.AddWithValue("@refresh_token", + string.IsNullOrWhiteSpace(modelo.RefreshToken) + ? DBNull.Value + : modelo.RefreshToken); + + cmd.Parameters.AddWithValue("@token_expira_em", + modelo.TokenExpiraEm.HasValue + ? modelo.TokenExpiraEm.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@url", + string.IsNullOrWhiteSpace(modelo.Url) + ? DBNull.Value + : modelo.Url); + + cmd.Parameters.AddWithValue("@usuario", + string.IsNullOrWhiteSpace(modelo.Usuario) + ? DBNull.Value + : modelo.Usuario); + + cmd.Parameters.AddWithValue("@senha", + string.IsNullOrWhiteSpace(modelo.Senha) + ? DBNull.Value + : modelo.Senha); + + cmd.Parameters.AddWithValue("@pasta_base", + string.IsNullOrWhiteSpace(modelo.PastaBase) + ? DBNull.Value + : modelo.PastaBase); + + cmd.Parameters.AddWithValue("@ativo", modelo.Ativo); + + cmd.Parameters.AddWithValue("@criado_em", + modelo.CriadoEm.HasValue + ? modelo.CriadoEm.Value + : DBNull.Value); + + cmd.Parameters.AddWithValue("@atualizado_em", + modelo.AtualizadoEm.HasValue + ? modelo.AtualizadoEm.Value + : DBNull.Value); + } + } +} \ No newline at end of file diff --git a/MLL/ModeloBackup.cs b/MLL/ModeloBackup.cs index 8a6d1d5..f82f240 100644 --- a/MLL/ModeloBackup.cs +++ b/MLL/ModeloBackup.cs @@ -8,7 +8,27 @@ namespace MLL { } - public ModeloBackup(int id, string nome, string tipoBackup, string origem, string destinoTipo, int? destinoId, string caminhoDestino, bool compactar, bool usarCriptografia, string algoritmoCriptografia, string frequencia, TimeSpan? horario, int manterUltimos, string statusUltimoBackup, DateTime? dataUltimoBackup, string logUltimoBackup, bool ativo, DateTime criadoEm, DateTime? atualizadoEm) + + public ModeloBackup( + int id, + string nome, + string tipoBackup, + string origem, + string destinoTipo, + int? destinoId, + string? caminhoDestino, + bool compactar, + bool usarCriptografia, + string? algoritmoCriptografia, + string frequencia, + TimeSpan? horario, + int manterUltimos, + string? statusUltimoBackup, + DateTime? dataUltimoBackup, + string? logUltimoBackup, + bool ativo, + DateTime criadoEm, + DateTime? atualizadoEm) { Id = id; Nome = nome; @@ -33,35 +53,40 @@ namespace MLL public int Id { get; set; } - public string Nome { get; set; } - public string TipoBackup { get; set; } - public string Origem { get; set; } - public string DestinoTipo { get; set; } + public string Nome { get; set; } = string.Empty; + + public string TipoBackup { get; set; } = string.Empty; + + public string Origem { get; set; } = string.Empty; + + public string DestinoTipo { get; set; } = string.Empty; public int? DestinoId { get; set; } - public string CaminhoDestino { get; set; } + public string? CaminhoDestino { get; set; } public bool Compactar { get; set; } + public bool UsarCriptografia { get; set; } - public string AlgoritmoCriptografia { get; set; } + public string? AlgoritmoCriptografia { get; set; } - public string Frequencia { get; set; } + public string Frequencia { get; set; } = string.Empty; public TimeSpan? Horario { get; set; } public int ManterUltimos { get; set; } - public string StatusUltimoBackup { get; set; } + public string? StatusUltimoBackup { get; set; } public DateTime? DataUltimoBackup { get; set; } - public string LogUltimoBackup { get; set; } + public string? LogUltimoBackup { get; set; } public bool Ativo { get; set; } public DateTime CriadoEm { get; set; } + public DateTime? AtualizadoEm { get; set; } } } \ No newline at end of file diff --git a/MLL/ModeloBackupAutomatico.cs b/MLL/ModeloBackupAutomatico.cs index e524fa0..2c072a8 100644 --- a/MLL/ModeloBackupAutomatico.cs +++ b/MLL/ModeloBackupAutomatico.cs @@ -4,7 +4,25 @@ namespace MLL { public class ModeloBackupAutomatico { - public ModeloBackupAutomatico(int id, int idBackup, bool ativo, string frequencia, int? intervaloMinutos, TimeSpan? horario, int? diaSemana, int? diaMes, DateTime? ultimaExecucao, DateTime? proximaExecucao, bool executando, DateTime criadoEm, DateTime? atualizadoEm) + public ModeloBackupAutomatico() + { + + } + + public ModeloBackupAutomatico( + int id, + int idBackup, + bool ativo, + string frequencia, + int? intervaloMinutos, + TimeSpan? horario, + int? diaSemana, + int? diaMes, + DateTime? ultimaExecucao, + DateTime? proximaExecucao, + bool executando, + DateTime criadoEm, + DateTime? atualizadoEm) { Id = id; IdBackup = idBackup; @@ -20,15 +38,15 @@ namespace MLL CriadoEm = criadoEm; AtualizadoEm = atualizadoEm; } - public ModeloBackupAutomatico() - { - } + public int Id { get; set; } public int IdBackup { get; set; } public bool Ativo { get; set; } - public string Frequencia { get; set; } + + public string Frequencia { get; set; } = string.Empty; + public int? IntervaloMinutos { get; set; } public TimeSpan? Horario { get; set; } diff --git a/MLL/ModeloBackupExecucao.cs b/MLL/ModeloBackupExecucao.cs index 3907d11..a2a58ea 100644 --- a/MLL/ModeloBackupExecucao.cs +++ b/MLL/ModeloBackupExecucao.cs @@ -4,7 +4,19 @@ namespace MLL { public class ModeloBackupExecucao { - public ModeloBackupExecucao(int id, int idBackup, DateTime dataExecucao, string status, string mensagem, long? tamanhoArquivo, int? duracaoSegundos) + public ModeloBackupExecucao() + { + + } + + public ModeloBackupExecucao( + int id, + int idBackup, + DateTime dataExecucao, + string status, + string? mensagem, + long? tamanhoArquivo, + int? duracaoSegundos) { Id = id; IdBackup = idBackup; @@ -14,9 +26,6 @@ namespace MLL TamanhoArquivo = tamanhoArquivo; DuracaoSegundos = duracaoSegundos; } - public ModeloBackupExecucao() - { - } public int Id { get; set; } @@ -24,9 +33,9 @@ namespace MLL public DateTime DataExecucao { get; set; } - public string Status { get; set; } + public string Status { get; set; } = string.Empty; - public string Mensagem { get; set; } + public string? Mensagem { get; set; } public long? TamanhoArquivo { get; set; } diff --git a/MLL/ModeloCloudBackup.cs b/MLL/ModeloCloudBackup.cs new file mode 100644 index 0000000..e91861b --- /dev/null +++ b/MLL/ModeloCloudBackup.cs @@ -0,0 +1,76 @@ +using System; + +namespace MLL +{ + public class ModeloCloudBackup + { + public ModeloCloudBackup() + { + + } + + public ModeloCloudBackup( + int id, + string nome, + string tipo, + string? clientId, + string? clientSecret, + string? accessToken, + string? refreshToken, + DateTime? tokenExpiraEm, + string? url, + string? usuario, + string? senha, + string? pastaBase, + bool ativo, + DateTime? criadoEm, + DateTime? atualizadoEm) + { + Id = id; + Nome = nome; + Tipo = tipo; + ClientId = clientId; + ClientSecret = clientSecret; + AccessToken = accessToken; + RefreshToken = refreshToken; + TokenExpiraEm = tokenExpiraEm; + Url = url; + Usuario = usuario; + Senha = senha; + PastaBase = pastaBase; + Ativo = ativo; + CriadoEm = criadoEm; + AtualizadoEm = atualizadoEm; + } + + public int Id { get; set; } + + public string Nome { get; set; } = string.Empty; + + public string Tipo { get; set; } = string.Empty; + + public string? ClientId { get; set; } + + public string? ClientSecret { get; set; } + + public string? AccessToken { get; set; } + + public string? RefreshToken { get; set; } + + public DateTime? TokenExpiraEm { get; set; } + + public string? Url { get; set; } + + public string? Usuario { get; set; } + + public string? Senha { get; set; } + + public string? PastaBase { get; set; } + + public bool Ativo { get; set; } + + public DateTime? CriadoEm { get; set; } + + public DateTime? AtualizadoEm { get; set; } + } +} \ No newline at end of file diff --git a/UI/ArquivosAuxiliares/TriggerBoleto.sql b/UI/ArquivosAuxiliares/TriggerBoleto.sql new file mode 100644 index 0000000..3f8e255 --- /dev/null +++ b/UI/ArquivosAuxiliares/TriggerBoleto.sql @@ -0,0 +1,34 @@ +CREATE OR ALTER TRIGGER TR_Boletos_GerarCodigo +ON Boletos +AFTER INSERT +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @UltimoNumero INT; + + SELECT @UltimoNumero = + ISNULL( + MAX( + CAST( + REPLACE(CODIGO, 'BO', '') + AS INT) + ), + 99) + FROM Boletos + WHERE CODIGO IS NOT NULL; + + ;WITH Numerados AS + ( + SELECT + ID_BOLETO, + ROW_NUMBER() OVER (ORDER BY ID_BOLETO) AS Linha + FROM inserted + ) + UPDATE B + SET CODIGO = 'BO' + RIGHT('0000' + CAST(@UltimoNumero + N.Linha AS VARCHAR), 4) + FROM Boletos B + INNER JOIN Numerados N + ON B.ID_BOLETO = N.ID_BOLETO; +END +GO \ No newline at end of file diff --git a/UI/ArquivosAuxiliares/Triggers/Calibracao.sql b/UI/ArquivosAuxiliares/Triggers/Calibracao.sql new file mode 100644 index 0000000..594416c --- /dev/null +++ b/UI/ArquivosAuxiliares/Triggers/Calibracao.sql @@ -0,0 +1,34 @@ +CREATE OR ALTER TRIGGER TR_Calibracao_GerarCodigo +ON Calibracao +AFTER INSERT +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @UltimoNumero INT; + + SELECT @UltimoNumero = + ISNULL( + MAX( + CAST( + REPLACE(CODIGO, 'CA', '') + AS INT) + ), + 99) + FROM Calibracao + WHERE CODIGO IS NOT NULL; + + ;WITH Numerados AS + ( + SELECT + ID_CALIBRACAO, + ROW_NUMBER() OVER (ORDER BY ID_CALIBRACAO) AS Linha + FROM inserted + ) + UPDATE C + SET CODIGO = 'CA' + RIGHT('0000' + CAST(@UltimoNumero + N.Linha AS VARCHAR), 4) + FROM Calibracao C + INNER JOIN Numerados N + ON C.ID_CALIBRACAO = N.ID_CALIBRACAO; +END +GO \ No newline at end of file diff --git a/UI/ArquivosAuxiliares/Triggers/CalibracaoPadrao.sql b/UI/ArquivosAuxiliares/Triggers/CalibracaoPadrao.sql new file mode 100644 index 0000000..48e3de9 --- /dev/null +++ b/UI/ArquivosAuxiliares/Triggers/CalibracaoPadrao.sql @@ -0,0 +1,34 @@ +CREATE OR ALTER TRIGGER TR_CalibracaoPadrao_GerarCodigo +ON Calibracao_Padrao +AFTER INSERT +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @UltimoNumero INT; + + SELECT @UltimoNumero = + ISNULL( + MAX( + CAST( + REPLACE(CODIGO, 'CP', '') + AS INT) + ), + 99) + FROM Calibracao_Padrao + WHERE CODIGO IS NOT NULL; + + ;WITH Numerados AS + ( + SELECT + ID_CALIBRACAO_PADRAO, + ROW_NUMBER() OVER (ORDER BY ID_CALIBRACAO_PADRAO) AS Linha + FROM inserted + ) + UPDATE CP + SET CODIGO = 'CP' + RIGHT('0000' + CAST(@UltimoNumero + N.Linha AS VARCHAR), 4) + FROM Calibracao_Padrao CP + INNER JOIN Numerados N + ON CP.ID_CALIBRACAO_PADRAO = N.ID_CALIBRACAO_PADRAO; +END +GO \ No newline at end of file diff --git a/UI/ArquivosAuxiliares/Triggers/CalibracaoPadraoEnsaio.sql b/UI/ArquivosAuxiliares/Triggers/CalibracaoPadraoEnsaio.sql new file mode 100644 index 0000000..ae6ebb9 --- /dev/null +++ b/UI/ArquivosAuxiliares/Triggers/CalibracaoPadraoEnsaio.sql @@ -0,0 +1,34 @@ +CREATE OR ALTER TRIGGER TR_CalibracaoPadraoEnsaios_GerarCodigo +ON Calibracao_Padrao_ensaios +AFTER INSERT +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @UltimoNumero INT; + + SELECT @UltimoNumero = + ISNULL( + MAX( + CAST( + REPLACE(CODIGO, 'CE', '') + AS INT) + ), + 99) + FROM Calibracao_Padrao_ensaios + WHERE CODIGO IS NOT NULL; + + ;WITH Numerados AS + ( + SELECT + ID_CAL_PADRAO_ENSAIOS, + ROW_NUMBER() OVER (ORDER BY ID_CAL_PADRAO_ENSAIOS) AS Linha + FROM inserted + ) + UPDATE CE + SET CODIGO = 'CE' + RIGHT('0000' + CAST(@UltimoNumero + N.Linha AS VARCHAR), 4) + FROM Calibracao_Padrao_ensaios CE + INNER JOIN Numerados N + ON CE.ID_CAL_PADRAO_ENSAIOS = N.ID_CAL_PADRAO_ENSAIOS; +END +GO \ No newline at end of file diff --git a/UI/ArquivosAuxiliares/Views/Views_Boletos.sql b/UI/ArquivosAuxiliares/Views/Views_Boletos.sql new file mode 100644 index 0000000..3537aeb --- /dev/null +++ b/UI/ArquivosAuxiliares/Views/Views_Boletos.sql @@ -0,0 +1,185 @@ +USE [Levelcode-LevelOS] +GO + +/* ========================================================= + VIEW: BOLETOS ABERTOS +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosAbertos +AS +SELECT + * +FROM Boletos +WHERE + STATUS = 'ABERTO' + AND PG = 0; +GO + +/* ========================================================= + VIEW: BOLETOS VENCIDOS +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosVencidos +AS +SELECT + *, + DATEDIFF(DAY, VENCE, GETDATE()) AS DIAS_ATRASO +FROM Boletos +WHERE + PG = 0 + AND VENCE < CAST(GETDATE() AS DATE) + AND STATUS = 'ABERTO'; +GO + +/* ========================================================= + VIEW: BOLETOS PAGOS +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosPagos +AS +SELECT + *, + ISNULL(VL_PAGO, VALOR) AS VALOR_RECEBIDO +FROM Boletos +WHERE + PG = 1 + OR STATUS = 'PAGO'; +GO + +/* ========================================================= + VIEW: RESUMO FINANCEIRO +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosResumoFinanceiro +AS +SELECT + COUNT(*) AS TOTAL_BOLETOS, + + SUM(CASE + WHEN STATUS = 'PAGO' + THEN VALOR + ELSE 0 + END) AS TOTAL_PAGO, + + SUM(CASE + WHEN STATUS = 'ABERTO' + THEN VALOR + ELSE 0 + END) AS TOTAL_ABERTO, + + SUM(CASE + WHEN STATUS = 'VENCIDO' + THEN VALOR + ELSE 0 + END) AS TOTAL_VENCIDO +FROM Boletos; +GO + +/* ========================================================= + VIEW: DASHBOARD +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosDashboard +AS +SELECT + ID_BOLETO, + CODIGO, + SACADO, + STATUS, + VALOR, + VENCE, + + CASE + WHEN PG = 1 THEN 'PAGO' + WHEN VENCE < GETDATE() THEN 'VENCIDO' + ELSE 'EM DIA' + END AS SITUACAO, + + DATEDIFF(DAY, GETDATE(), VENCE) AS DIAS_PARA_VENCER +FROM Boletos; +GO + +/* ========================================================= + VIEW: BOLETOS COM ARQUIVO +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosComArquivo +AS +SELECT + * +FROM Boletos +WHERE + ARQUIVO_CAMINHO IS NOT NULL + OR ARQUIVO_DADOS IS NOT NULL; +GO + +/* ========================================================= + VIEW: BOLETOS IMPORTADOS +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosImportados +AS +SELECT + * +FROM Boletos +WHERE + IMPORTACAO = 1; +GO + +/* ========================================================= + VIEW: PRÓXIMOS VENCIMENTOS +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosProximosVencimentos +AS +SELECT + * +FROM Boletos +WHERE + PG = 0 + AND VENCE BETWEEN CAST(GETDATE() AS DATE) + AND DATEADD(DAY, 7, CAST(GETDATE() AS DATE)); +GO + +/* ========================================================= + VIEW: BOLETOS DE HOJE +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosHoje +AS +SELECT + * +FROM Boletos +WHERE + CAST(VENCE AS DATE) = CAST(GETDATE() AS DATE); +GO + +/* ========================================================= + VIEW: BOLETOS DA SEMANA +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosSemana +AS +SELECT + * +FROM Boletos +WHERE + VENCE BETWEEN CAST(GETDATE() AS DATE) + AND DATEADD(DAY, 7, CAST(GETDATE() AS DATE)); +GO + +/* ========================================================= + VIEW: BOLETOS SEM ARQUIVO +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosSemArquivo +AS +SELECT + * +FROM Boletos +WHERE + ARQUIVO_CAMINHO IS NULL + AND ARQUIVO_DADOS IS NULL; +GO + +/* ========================================================= + VIEW: BOLETOS PENDENTES DE WEBHOOK +========================================================= */ +CREATE OR ALTER VIEW VW_BoletosPendentesWebhook +AS +SELECT + * +FROM Boletos +WHERE + STATUS = 'PAGO' + AND IMPORTACAO = 0; +GO \ No newline at end of file diff --git a/UI/UI.csproj b/UI/UI.csproj index 91f7dcf..92908fc 100644 --- a/UI/UI.csproj +++ b/UI/UI.csproj @@ -26,6 +26,8 @@ + +