From 271236bb7897fbd24f417908a21207f67cb65b9a Mon Sep 17 00:00:00 2001 From: levelcode365 Date: Tue, 9 Jun 2026 02:12:24 -0300 Subject: [PATCH] 09/06/2026 - Criando classe DALL (Despesas - Fcaixa) --- DAL/DALDespFixa.cs | 332 +++++++ DAL/DALDespesas.cs | 363 ++++++++ DAL/DALEcfCfg.cs | 284 ++++++ DAL/DALEmpresas.cs | 858 ++++++++++++++++++ DAL/DALEquipContratos.cs | 204 +++++ DAL/DALEquipamentos.cs | 244 +++++ DAL/DALEsquemas.cs | 341 +++++++ DAL/DALFcaixa.cs | 219 +++++ DAL/DALLCoordImpres.cs | 408 +++++++++ MLL/ModeloEmpresas.cs | 3 + .../Triggers/CoordImpress_trigger.sql | 47 + .../Triggers/Despesas_triggers.sql | 47 + 12 files changed, 3350 insertions(+) create mode 100644 DAL/DALDespFixa.cs create mode 100644 DAL/DALDespesas.cs create mode 100644 DAL/DALEcfCfg.cs create mode 100644 DAL/DALEmpresas.cs create mode 100644 DAL/DALEquipContratos.cs create mode 100644 DAL/DALEquipamentos.cs create mode 100644 DAL/DALEsquemas.cs create mode 100644 DAL/DALFcaixa.cs create mode 100644 DAL/DALLCoordImpres.cs create mode 100644 UI/ArquivosAuxiliares/Triggers/CoordImpress_trigger.sql create mode 100644 UI/ArquivosAuxiliares/Triggers/Despesas_triggers.sql diff --git a/DAL/DALDespFixa.cs b/DAL/DALDespFixa.cs new file mode 100644 index 0000000..1cb7b47 --- /dev/null +++ b/DAL/DALDespFixa.cs @@ -0,0 +1,332 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALDespFixa + { + private readonly string connectionString; + + public DALDespFixa(string conexao) + { + connectionString = conexao; + } + + #region CRUD + + public bool Inserir(ModeloDespFixa modelo) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO Desp_fixa + ( + TIPO, + COD_CLIENTE, + VENCIMENTO, + PLANO_CONTAS, + OBSERVACAO, + VALOR + ) + VALUES + ( + @TIPO, + @COD_CLIENTE, + @VENCIMENTO, + @PLANO_CONTAS, + @OBSERVACAO, + @VALOR + )"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + + public bool Alterar(ModeloDespFixa modelo) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE Desp_fixa + SET + CODIGO=@CODIGO, + TIPO=@TIPO, + COD_CLIENTE=@COD_CLIENTE, + VENCIMENTO=@VENCIMENTO, + PLANO_CONTAS=@PLANO_CONTAS, + OBSERVACAO=@OBSERVACAO, + VALOR=@VALOR + WHERE ID_DESP_FIXA=@ID_DESP_FIXA"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@CODIGO", modelo.CODIGO); + cmd.Parameters.AddWithValue("@ID_DESP_FIXA", modelo.ID_DESP_FIXA); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public bool Excluir(int id) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + DELETE FROM Desp_fixa + WHERE ID_DESP_FIXA=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public ModeloDespFixa? Carregar(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Desp_fixa + WHERE ID_DESP_FIXA=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + + public List Listar( + string? tipo = null, + string? codCliente = null, + string? vencimento = null, + string? planoContas = null) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Desp_fixa + WHERE 1=1"; + + using SqlCommand cmd = new(); + + cmd.Connection = conn; + + if (!string.IsNullOrWhiteSpace(tipo)) + { + sql += " AND TIPO LIKE @TIPO"; + + cmd.Parameters.AddWithValue( + "@TIPO", + "%" + tipo + "%"); + } + + if (!string.IsNullOrWhiteSpace(codCliente)) + { + sql += " AND COD_CLIENTE LIKE @COD_CLIENTE"; + + cmd.Parameters.AddWithValue( + "@COD_CLIENTE", + "%" + codCliente + "%"); + } + + if (!string.IsNullOrWhiteSpace(vencimento)) + { + sql += " AND VENCIMENTO LIKE @VENCIMENTO"; + + cmd.Parameters.AddWithValue( + "@VENCIMENTO", + "%" + vencimento + "%"); + } + + if (!string.IsNullOrWhiteSpace(planoContas)) + { + sql += " AND PLANO_CONTAS LIKE @PLANO_CONTAS"; + + cmd.Parameters.AddWithValue( + "@PLANO_CONTAS", + "%" + planoContas + "%"); + } + + sql += " ORDER BY ID_DESP_FIXA DESC"; + + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + + return lista; + } + public List ListarPorCliente(string codCliente) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @" + SELECT * + FROM Desp_fixa + WHERE COD_CLIENTE=@COD_CLIENTE + ORDER BY ID_DESP_FIXA DESC"; + using SqlCommand cmd = new(sql, conn); + cmd.Parameters.AddWithValue("@COD_CLIENTE", codCliente); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + return lista; + } + public List ListarPorVencimento(string vencimento) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @" + SELECT * + FROM Desp_fixa + WHERE VENCIMENTO=@VENCIMENTO + ORDER BY ID_DESP_FIXA DESC"; + using SqlCommand cmd = new(sql, conn); + cmd.Parameters.AddWithValue("@VENCIMENTO", vencimento); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + return lista; + } + public List ListarPorPlanoContas(string planoContas) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @" + SELECT * + FROM Desp_fixa + WHERE PLANO_CONTAS=@PLANO_CONTAS + ORDER BY ID_DESP_FIXA DESC"; + using SqlCommand cmd = new(sql, conn); + cmd.Parameters.AddWithValue("@PLANO_CONTAS", planoContas); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + return lista; + } + + #endregion + + #region Dashboard + + public DataTable Dashboard() + { + using SqlConnection conn = + new(connectionString); + + string sql = @" + SELECT + COUNT(*) TOTAL_DESPESAS_FIXAS + FROM Desp_fixa"; + + using SqlDataAdapter da = + new(sql, conn); + + DataTable dt = new(); + + da.Fill(dt); + + return dt; + } + + #endregion + + #region Helpers + + private static ModeloDespFixa PreencherModelo(SqlDataReader dr) + { + return new ModeloDespFixa + { + ID_DESP_FIXA = Convert.ToInt32(dr["ID_DESP_FIXA"]), + CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty, + TIPO = Convert.ToString(dr["TIPO"]) ?? string.Empty, + COD_CLIENTE = Convert.ToString(dr["COD_CLIENTE"]) ?? string.Empty, + VENCIMENTO = Convert.ToString(dr["VENCIMENTO"]) ?? string.Empty, + PLANO_CONTAS = Convert.ToString(dr["PLANO_CONTAS"]) ?? string.Empty, + OBSERVACAO = Convert.ToString(dr["OBSERVACAO"]) ?? string.Empty, + VALOR = Convert.ToString(dr["VALOR"]) ?? string.Empty + }; + } + + private static void PreencherParametros( + SqlCommand cmd, + ModeloDespFixa modelo) + { + cmd.Parameters.AddWithValue("@TIPO", modelo.TIPO); + cmd.Parameters.AddWithValue("@COD_CLIENTE", modelo.COD_CLIENTE); + cmd.Parameters.AddWithValue("@VENCIMENTO", modelo.VENCIMENTO); + cmd.Parameters.AddWithValue("@PLANO_CONTAS", modelo.PLANO_CONTAS); + cmd.Parameters.AddWithValue("@OBSERVACAO", modelo.OBSERVACAO); + cmd.Parameters.AddWithValue("@VALOR", modelo.VALOR); + } + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALDespesas.cs b/DAL/DALDespesas.cs new file mode 100644 index 0000000..f15e4c0 --- /dev/null +++ b/DAL/DALDespesas.cs @@ -0,0 +1,363 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALDespesas + { + private readonly string connectionString; + + public DALDespesas(string conexao) + { + connectionString = conexao; + } + + #region CRUD + + public bool Inserir(ModeloDespesas modelo) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO Despesas + ( + PROCESSO, + DESCRICAO, + VALOR, + PAGO, + DIA + ) + VALUES + ( + @PROCESSO, + @DESCRICAO, + @VALOR, + @PAGO, + @DIA + )"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public bool Alterar(ModeloDespesas modelo) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE Despesas + SET + CODIGO=@CODIGO, + PROCESSO=@PROCESSO, + DESCRICAO=@DESCRICAO, + VALOR=@VALOR, + PAGO=@PAGO, + DIA=@DIA + WHERE ID_DESPESAS=@ID_DESPESAS"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@CODIGO", modelo.CODIGO); + cmd.Parameters.AddWithValue("@ID_DESPESAS", modelo.ID_DESPESAS); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public bool Excluir(int id) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = + @"DELETE FROM Despesas + WHERE ID_DESPESAS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public ModeloDespesas? Carregar(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = + @"SELECT * + FROM Despesas + WHERE ID_DESPESAS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + + public List Listar( + string? processo = null, + string? descricao = null, + string? pago = null, + string? dia = null) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Despesas + WHERE 1 = 1"; + + using SqlCommand cmd = new(); + + cmd.Connection = conn; + + if (!string.IsNullOrWhiteSpace(processo)) + { + sql += " AND PROCESSO LIKE @PROCESSO"; + + cmd.Parameters.AddWithValue( + "@PROCESSO", + "%" + processo + "%"); + } + + if (!string.IsNullOrWhiteSpace(descricao)) + { + sql += " AND DESCRICAO LIKE @DESCRICAO"; + + cmd.Parameters.AddWithValue( + "@DESCRICAO", + "%" + descricao + "%"); + } + + if (!string.IsNullOrWhiteSpace(pago)) + { + sql += " AND PAGO=@PAGO"; + + cmd.Parameters.AddWithValue( + "@PAGO", + pago); + } + + if (!string.IsNullOrWhiteSpace(dia)) + { + sql += " AND DIA=@DIA"; + + cmd.Parameters.AddWithValue( + "@DIA", + dia); + } + + sql += " ORDER BY ID_DESPESAS DESC"; + + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + + return lista; + } + public List ListarAbertas() + { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @" + SELECT * + FROM Despesas + WHERE PAGO<>'SIM' + ORDER BY ID_DESPESAS DESC"; + using SqlCommand cmd = new(sql, conn); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + return lista; + }//ListarAbertas + public List ListarPagas() + { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @" + SELECT * + FROM Despesas + WHERE PAGO='SIM' + ORDER BY ID_DESPESAS DESC"; + using SqlCommand cmd = new(sql, conn); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + return lista; + }//ListarPagas + public List ListarPorProcesso(string processo) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @" + SELECT * + FROM Despesas + WHERE PROCESSO LIKE @PROCESSO + ORDER BY ID_DESPESAS DESC"; + using SqlCommand cmd = new(sql, conn); + cmd.Parameters.AddWithValue( + "@PROCESSO", + "%" + processo + "%"); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + return lista; + }//ListarPorProcesso + public List ListarPorDescricao(string descricao) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @" + SELECT * + FROM Despesas + WHERE DESCRICAO LIKE @DESCRICAO + ORDER BY ID_DESPESAS DESC"; + using SqlCommand cmd = new(sql, conn); + cmd.Parameters.AddWithValue( + "@DESCRICAO", + "%" + descricao + "%"); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + return lista; + }//ListarPorDescricao + + + #endregion + + #region Dashboard + + public DataTable Dashboard() + { + using SqlConnection conn = + new(connectionString); + + string sql = @" + SELECT + COUNT(*) TOTAL_DESPESAS, + SUM( + CASE + WHEN PAGO='SIM' + THEN 1 + ELSE 0 + END + ) DESPESAS_PAGAS, + SUM( + CASE + WHEN PAGO<>'SIM' + THEN 1 + ELSE 0 + END + ) DESPESAS_ABERTAS + FROM Despesas"; + + using SqlDataAdapter da = + new(sql, conn); + + DataTable dt = new(); + + da.Fill(dt); + + return dt; + } + + #endregion + + #region Helpers + + private static ModeloDespesas PreencherModelo(SqlDataReader dr) + { + return new ModeloDespesas + { + ID_DESPESAS = Convert.ToInt32(dr["ID_DESPESAS"]), + CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty, + PROCESSO = Convert.ToString(dr["PROCESSO"]) ?? string.Empty, + DESCRICAO = Convert.ToString(dr["DESCRICAO"]) ?? string.Empty, + VALOR = Convert.ToString(dr["VALOR"]) ?? string.Empty, + PAGO = Convert.ToString(dr["PAGO"]) ?? string.Empty, + DIA = Convert.ToString(dr["DIA"]) ?? string.Empty + }; + } + + private static void PreencherParametros( + SqlCommand cmd, + ModeloDespesas modelo) + { + cmd.Parameters.AddWithValue("@PROCESSO", modelo.PROCESSO); + cmd.Parameters.AddWithValue("@DESCRICAO", modelo.DESCRICAO); + cmd.Parameters.AddWithValue("@VALOR", modelo.VALOR); + cmd.Parameters.AddWithValue("@PAGO", modelo.PAGO); + cmd.Parameters.AddWithValue("@DIA", modelo.DIA); + } + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALEcfCfg.cs b/DAL/DALEcfCfg.cs new file mode 100644 index 0000000..9543f4a --- /dev/null +++ b/DAL/DALEcfCfg.cs @@ -0,0 +1,284 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALEcfCfg + { + private readonly string connectionString; + + public DALEcfCfg(string conexao) + { + connectionString = conexao; + } + + #region CRUD + + public bool Inserir(ModeloEcfCfg modelo) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO ECF_CFG + ( + MODELO, + PORTA, + TEM_GAVETA, + INDICE_AL_SERV + ) + VALUES + ( + @MODELO, + @PORTA, + @TEM_GAVETA, + @INDICE_AL_SERV + )"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public bool Alterar(ModeloEcfCfg modelo) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE ECF_CFG + SET + CODIGO=@CODIGO, + MODELO=@MODELO, + PORTA=@PORTA, + TEM_GAVETA=@TEM_GAVETA, + INDICE_AL_SERV=@INDICE_AL_SERV + WHERE ID_EFC_CFG=@ID_EFC_CFG"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@CODIGO", modelo.CODIGO); + cmd.Parameters.AddWithValue("@ID_EFC_CFG", modelo.ID_EFC_CFG); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public bool Excluir(int id) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = + @"DELETE FROM ECF_CFG + WHERE ID_EFC_CFG=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public ModeloEcfCfg? Carregar(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = + @"SELECT * + FROM ECF_CFG + WHERE ID_EFC_CFG=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + + public List Listar( + string? modelo = null, + string? porta = null, + string? temGaveta = null) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM ECF_CFG + WHERE 1=1"; + + using SqlCommand cmd = new(); + + cmd.Connection = conn; + + if (!string.IsNullOrWhiteSpace(modelo)) + { + sql += " AND MODELO LIKE @MODELO"; + + cmd.Parameters.AddWithValue( + "@MODELO", + "%" + modelo + "%"); + } + + if (!string.IsNullOrWhiteSpace(porta)) + { + sql += " AND PORTA LIKE @PORTA"; + + cmd.Parameters.AddWithValue( + "@PORTA", + "%" + porta + "%"); + } + + if (!string.IsNullOrWhiteSpace(temGaveta)) + { + sql += " AND TEM_GAVETA=@TEM_GAVETA"; + + cmd.Parameters.AddWithValue( + "@TEM_GAVETA", + temGaveta); + } + + sql += " ORDER BY ID_EFC_CFG DESC"; + + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + + return lista; + } + + #endregion + + #region Dashboard + + public DataTable Dashboard() + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT + COUNT(*) TOTAL_IMPRESSORAS, + SUM( + CASE + WHEN TEM_GAVETA='SIM' + THEN 1 + ELSE 0 + END + ) COM_GAVETA + FROM ECF_CFG"; + + using SqlDataAdapter da = + new(sql, conn); + + DataTable dt = new(); + + da.Fill(dt); + + return dt; + } + + #endregion + + #region Helpers + + private static ModeloEcfCfg PreencherModelo(SqlDataReader dr) + { + return new ModeloEcfCfg + { + ID_EFC_CFG = + Convert.ToInt32(dr["ID_EFC_CFG"]), + + CODIGO = + Convert.ToString(dr["CODIGO"]) + ?? string.Empty, + + MODELO = + Convert.ToString(dr["MODELO"]) + ?? string.Empty, + + PORTA = + Convert.ToString(dr["PORTA"]) + ?? string.Empty, + + TEM_GAVETA = + Convert.ToString(dr["TEM_GAVETA"]) + ?? string.Empty, + + INDICE_AL_SERV = + Convert.ToString(dr["INDICE_AL_SERV"]) + ?? string.Empty + }; + } + + private static void PreencherParametros( + SqlCommand cmd, + ModeloEcfCfg modelo) + { + cmd.Parameters.AddWithValue( + "@MODELO", + modelo.MODELO); + + cmd.Parameters.AddWithValue( + "@PORTA", + modelo.PORTA); + + cmd.Parameters.AddWithValue( + "@TEM_GAVETA", + modelo.TEM_GAVETA); + + cmd.Parameters.AddWithValue( + "@INDICE_AL_SERV", + modelo.INDICE_AL_SERV); + } + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALEmpresas.cs b/DAL/DALEmpresas.cs new file mode 100644 index 0000000..8a8bfdb --- /dev/null +++ b/DAL/DALEmpresas.cs @@ -0,0 +1,858 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class DALEmpresas + { + private readonly string connectionString; + + public DALEmpresas(string conexao) + { + connectionString = conexao; + } + + #region CRUD + public bool Inserir(ModeloEmpresas modelo) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO Empresas + ( + NOME, + FANTASIA, + ENDERECO, + NUMERO, + COMPLEM, + BAIRRO, + CIDADE, + UF, + CEP, + CNPJ_CPF, + RG_IE, + EMAIL, + SITE, + TELEFONE, + FAX, + MOVEL, + CONTATOS, + CNAE, + COD_MUNICIPIO, + I_IRRF, + I_IRPJ, + I_CSLL, + I_INSS, + I_ISS, + I_COFINS, + I_ICMSF, + I_PISPASEP, + I_RETEM, + OBS_NOTA_PADR, + INS_MUNICIPAL, + NF_ICMS_S, + NF_FRETE, + NF_SEGURO, + NF_DESPESAS, + NF_cin_FRETE, + NF_cin_SEGURO, + NF_cin_DESPESAS, + NF_cin_DESCONTO, + NF_ISS, + NF_IRRF, + NF_IRPJ, + NF_PIS, + NF_COFINS, + NF_CSLL, + NF_INSS, + LCP116, + CFOP_SERV, + REGIME, + MYLOGO_NFE, + MYLOGO_RECIBOS, + CARTEIRA_CRYPTOMOEDA1, + CARTEIRA_CRYPTOMOEDA2, + CARTEIRA_CRYPTOMOEDA3 + ) + VALUES + ( + @NOME, + @FANTASIA, + @ENDERECO, + @NUMERO, + @COMPLEM, + @BAIRRO, + @CIDADE, + @UF, + @CEP, + @CNPJ_CPF, + @RG_IE, + @EMAIL, + @SITE, + @TELEFONE, + @FAX, + @MOVEL, + @CONTATOS, + @CNAE, + @COD_MUNICIPIO, + @I_IRRF, + @I_IRPJ, + @I_CSLL, + @I_INSS, + @I_ISS, + @I_COFINS, + @I_ICMSF, + @I_PISPASEP, + @I_RETEM, + @OBS_NOTA_PADR, + @INS_MUNICIPAL, + @NF_ICMS_S, + @NF_FRETE, + @NF_SEGURO, + @NF_DESPESAS, + @NF_cin_FRETE, + @NF_cin_SEGURO, + @NF_cin_DESPESAS, + @NF_cin_DESCONTO, + @NF_ISS, + @NF_IRRF, + @NF_IRPJ, + @NF_PIS, + @NF_COFINS, + @NF_CSLL, + @NF_INSS, + @LCP116, + @CFOP_SERV, + @REGIME, + @MYLOGO_NFE, + @MYLOGO_RECIBOS, + @CARTEIRA_CRYPTOMOEDA1, + @CARTEIRA_CRYPTOMOEDA2, + @CARTEIRA_CRYPTOMOEDA3 + )"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + public bool Alterar(ModeloEmpresas modelo) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE Empresas + SET + CODIGO=@CODIGO, + NOME=@NOME, + FANTASIA=@FANTASIA, + ENDERECO=@ENDERECO, + NUMERO=@NUMERO, + COMPLEM=@COMPLEM, + BAIRRO=@BAIRRO, + CIDADE=@CIDADE, + UF=@UF, + CEP=@CEP, + CNPJ_CPF=@CNPJ_CPF, + RG_IE=@RG_IE, + EMAIL=@EMAIL, + SITE=@SITE, + TELEFONE=@TELEFONE, + FAX=@FAX, + MOVEL=@MOVEL, + CONTATOS=@CONTATOS, + CNAE=@CNAE, + COD_MUNICIPIO=@COD_MUNICIPIO, + I_IRRF=@I_IRRF, + I_IRPJ=@I_IRPJ, + I_CSLL=@I_CSLL, + I_INSS=@I_INSS, + I_ISS=@I_ISS, + I_COFINS=@I_COFINS, + I_ICMSF=@I_ICMSF, + I_PISPASEP=@I_PISPASEP, + I_RETEM=@I_RETEM, + OBS_NOTA_PADR=@OBS_NOTA_PADR, + INS_MUNICIPAL=@INS_MUNICIPAL, + NF_ICMS_S=@NF_ICMS_S, + NF_FRETE=@NF_FRETE, + NF_SEGURO=@NF_SEGURO, + NF_DESPESAS=@NF_DESPESAS, + NF_cin_FRETE=@NF_cin_FRETE, + NF_cin_SEGURO=@NF_cin_SEGURO, + NF_cin_DESPESAS=@NF_cin_DESPESAS, + NF_cin_DESCONTO=@NF_cin_DESCONTO, + NF_ISS=@NF_ISS, + NF_IRRF=@NF_IRRF, + NF_IRPJ=@NF_IRPJ, + NF_PIS=@NF_PIS, + NF_COFINS=@NF_COFINS, + NF_CSLL=@NF_CSLL, + NF_INSS=@NF_INSS, + LCP116=@LCP116, + CFOP_SERV=@CFOP_SERV, + REGIME=@REGIME, + MYLOGO_NFE=@MYLOGO_NFE, + MYLOGO_RECIBOS=@MYLOGO_RECIBOS, + CARTEIRA_CRYPTOMOEDA1=@CARTEIRA_CRYPTOMOEDA1, + CARTEIRA_CRYPTOMOEDA2=@CARTEIRA_CRYPTOMOEDA2, + CARTEIRA_CRYPTOMOEDA3=@CARTEIRA_CRYPTOMOEDA3 + WHERE + ID_EMPRESAS=@ID_EMPRESAS"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@CODIGO", modelo.CODIGO); + cmd.Parameters.AddWithValue("@ID_EMPRESAS", modelo.ID_EMPRESAS); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + public bool Excluir(int id) + { + try + { + using SqlConnection conn = new(connectionString); + + string sql = + @"DELETE FROM Empresas + WHERE ID_EMPRESAS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + #endregion + #region CONSULTAS + public ModeloEmpresas? Carregar(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Empresas + WHERE ID_EMPRESAS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + + public ModeloEmpresas? CarregarPorCodigo(string codigo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Empresas + WHERE CODIGO=@CODIGO"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@CODIGO", codigo); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + + public ModeloEmpresas? CarregarPorCNPJ(string cnpjCpf) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Empresas + WHERE CNPJ_CPF=@CNPJ_CPF"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@CNPJ_CPF", cnpjCpf); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + #endregion + #region verificações de existência + public bool ExisteCNPJ(string cnpjCpf) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT COUNT(*) + FROM Empresas + WHERE CNPJ_CPF=@CNPJ_CPF"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@CNPJ_CPF", cnpjCpf); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + } + public bool ExisteCodigo(string codigo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT COUNT(*) + FROM Empresas + WHERE CODIGO=@CODIGO"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@CODIGO", codigo); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + } + public bool ExisteEmail(string email) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT COUNT(*) + FROM Empresas + WHERE EMAIL=@EMAIL"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@EMAIL", email); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + } + public bool ExisteTelefone(string telefone) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT COUNT(*) + FROM Empresas + WHERE TELEFONE=@TELEFONE"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@TELEFONE", telefone); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + } + public bool ExisteCidade(string cidade) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT COUNT(*) + FROM Empresas + WHERE CIDADE=@CIDADE"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@CIDADE", cidade); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + } + #endregion + #region DASHBOARD + public DataTable Dashboard() + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT + COUNT(*) TOTAL_EMPRESAS, + COUNT(DISTINCT CIDADE) TOTAL_CIDADES, + COUNT(DISTINCT UF) TOTAL_ESTADOS, + COUNT(DISTINCT REGIME) TOTAL_REGIMES + FROM Empresas"; + + using SqlDataAdapter da = new(sql, conn); + + DataTable dt = new(); + + da.Fill(dt); + + return dt; + } + #endregion + #region LISTAGENS + public List Listar( + string? codigo = null, + string? nome = null, + string? fantasia = null, + string? endereco = null, + string? numero = null, + string? complem = null, + string? bairro = null, + string? cidade = null, + string? uf = null, + string? cep = null, + string? cnpjCpf = null, + string? rgIe = null, + string? email = null, + string? site = null, + string? telefone = null, + string? fax = null, + string? movel = null, + string? contatos = null, + string? cnae = null, + string? codMunicipio = null, + string? regime = null, + string? insMunicipal = null, + string? lcp116 = null, + string? cfopServ = null) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Empresas + WHERE 1 = 1"; + + using SqlCommand cmd = new(); + + cmd.Connection = conn; + + if (!string.IsNullOrWhiteSpace(codigo)) + { + sql += " AND CODIGO LIKE @CODIGO"; + cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%"); + } + + if (!string.IsNullOrWhiteSpace(nome)) + { + sql += " AND NOME LIKE @NOME"; + cmd.Parameters.AddWithValue("@NOME", "%" + nome + "%"); + } + + if (!string.IsNullOrWhiteSpace(fantasia)) + { + sql += " AND FANTASIA LIKE @FANTASIA"; + cmd.Parameters.AddWithValue("@FANTASIA", "%" + fantasia + "%"); + } + + if (!string.IsNullOrWhiteSpace(endereco)) + { + sql += " AND ENDERECO LIKE @ENDERECO"; + cmd.Parameters.AddWithValue("@ENDERECO", "%" + endereco + "%"); + } + + if (!string.IsNullOrWhiteSpace(numero)) + { + sql += " AND NUMERO LIKE @NUMERO"; + cmd.Parameters.AddWithValue("@NUMERO", "%" + numero + "%"); + } + + if (!string.IsNullOrWhiteSpace(complem)) + { + sql += " AND COMPLEM LIKE @COMPLEM"; + cmd.Parameters.AddWithValue("@COMPLEM", "%" + complem + "%"); + } + + if (!string.IsNullOrWhiteSpace(bairro)) + { + sql += " AND BAIRRO LIKE @BAIRRO"; + cmd.Parameters.AddWithValue("@BAIRRO", "%" + bairro + "%"); + } + + if (!string.IsNullOrWhiteSpace(cidade)) + { + sql += " AND CIDADE LIKE @CIDADE"; + cmd.Parameters.AddWithValue("@CIDADE", "%" + cidade + "%"); + } + + if (!string.IsNullOrWhiteSpace(uf)) + { + sql += " AND UF=@UF"; + cmd.Parameters.AddWithValue("@UF", uf); + } + + if (!string.IsNullOrWhiteSpace(cep)) + { + sql += " AND CEP LIKE @CEP"; + cmd.Parameters.AddWithValue("@CEP", "%" + cep + "%"); + } + + if (!string.IsNullOrWhiteSpace(cnpjCpf)) + { + sql += " AND CNPJ_CPF LIKE @CNPJ_CPF"; + cmd.Parameters.AddWithValue("@CNPJ_CPF", "%" + cnpjCpf + "%"); + } + + if (!string.IsNullOrWhiteSpace(rgIe)) + { + sql += " AND RG_IE LIKE @RG_IE"; + cmd.Parameters.AddWithValue("@RG_IE", "%" + rgIe + "%"); + } + + if (!string.IsNullOrWhiteSpace(email)) + { + sql += " AND EMAIL LIKE @EMAIL"; + cmd.Parameters.AddWithValue("@EMAIL", "%" + email + "%"); + } + + if (!string.IsNullOrWhiteSpace(site)) + { + sql += " AND SITE LIKE @SITE"; + cmd.Parameters.AddWithValue("@SITE", "%" + site + "%"); + } + + if (!string.IsNullOrWhiteSpace(telefone)) + { + sql += " AND TELEFONE LIKE @TELEFONE"; + cmd.Parameters.AddWithValue("@TELEFONE", "%" + telefone + "%"); + } + + if (!string.IsNullOrWhiteSpace(fax)) + { + sql += " AND FAX LIKE @FAX"; + cmd.Parameters.AddWithValue("@FAX", "%" + fax + "%"); + } + + if (!string.IsNullOrWhiteSpace(movel)) + { + sql += " AND MOVEL LIKE @MOVEL"; + cmd.Parameters.AddWithValue("@MOVEL", "%" + movel + "%"); + } + + if (!string.IsNullOrWhiteSpace(contatos)) + { + sql += " AND CONTATOS LIKE @CONTATOS"; + cmd.Parameters.AddWithValue("@CONTATOS", "%" + contatos + "%"); + } + + if (!string.IsNullOrWhiteSpace(cnae)) + { + sql += " AND CNAE LIKE @CNAE"; + cmd.Parameters.AddWithValue("@CNAE", "%" + cnae + "%"); + } + + if (!string.IsNullOrWhiteSpace(codMunicipio)) + { + sql += " AND COD_MUNICIPIO LIKE @COD_MUNICIPIO"; + cmd.Parameters.AddWithValue("@COD_MUNICIPIO", "%" + codMunicipio + "%"); + } + + if (!string.IsNullOrWhiteSpace(regime)) + { + sql += " AND REGIME LIKE @REGIME"; + cmd.Parameters.AddWithValue("@REGIME", "%" + regime + "%"); + } + + if (!string.IsNullOrWhiteSpace(insMunicipal)) + { + sql += " AND INS_MUNICIPAL LIKE @INS_MUNICIPAL"; + cmd.Parameters.AddWithValue("@INS_MUNICIPAL", "%" + insMunicipal + "%"); + } + + if (!string.IsNullOrWhiteSpace(lcp116)) + { + sql += " AND LCP116 LIKE @LCP116"; + cmd.Parameters.AddWithValue("@LCP116", "%" + lcp116 + "%"); + } + + if (!string.IsNullOrWhiteSpace(cfopServ)) + { + sql += " AND CFOP_SERV LIKE @CFOP_SERV"; + cmd.Parameters.AddWithValue("@CFOP_SERV", "%" + cfopServ + "%"); + } + + sql += " ORDER BY ID_EMPRESAS DESC"; + + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + + return lista; + } + public List ListarPorNome(string nome) + { + return Listar(nome: nome); + } + public List ListarPorCidade(string cidade) + { + return Listar(cidade: cidade); + } + public List ListarPorUF(string uf) + { + return Listar(uf: uf); + } + public List ListarPorRegime(string regime) + { + return Listar(regime: regime); + } + public List ListarPorCNAE(string cnae) + { + return Listar(cnae: cnae); + } + public List ListarPorCEP(string cep) + { + return Listar(cep: cep); + } + public List ListarPorCNPJ(string cnpjCpf) + { + return Listar(cnpjCpf: cnpjCpf); + } + public List ListarPorEmail(string email) + { + return Listar(email: email); + } + public List ListarPorTelefone(string telefone) + { + return Listar(telefone: telefone); + } + #endregion + #region OUTROS + + public ModeloEmpresas? CarregarPrimeiraEmpresa() + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT TOP 1 * + FROM Empresas + ORDER BY ID_EMPRESAS"; + + using SqlCommand cmd = new(sql, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + + + + private void PreencherParametros( + SqlCommand cmd, + ModeloEmpresas modelo) + { + cmd.Parameters.AddWithValue("@NOME", modelo.NOME); + cmd.Parameters.AddWithValue("@FANTASIA", modelo.FANTASIA); + + cmd.Parameters.AddWithValue("@ENDERECO", modelo.ENDERECO); + cmd.Parameters.AddWithValue("@NUMERO", modelo.NUMERO); + cmd.Parameters.AddWithValue("@COMPLEM", modelo.COMPLEM); + cmd.Parameters.AddWithValue("@BAIRRO", modelo.BAIRRO); + cmd.Parameters.AddWithValue("@CIDADE", modelo.CIDADE); + cmd.Parameters.AddWithValue("@UF", modelo.UF); + cmd.Parameters.AddWithValue("@CEP", modelo.CEP); + + cmd.Parameters.AddWithValue("@CNPJ_CPF", modelo.CNPJ_CPF); + cmd.Parameters.AddWithValue("@RG_IE", modelo.RG_IE); + + cmd.Parameters.AddWithValue("@EMAIL", modelo.EMAIL); + cmd.Parameters.AddWithValue("@SITE", modelo.SITE); + + cmd.Parameters.AddWithValue("@TELEFONE", modelo.TELEFONE); + cmd.Parameters.AddWithValue("@FAX", modelo.FAX); + cmd.Parameters.AddWithValue("@MOVEL", modelo.MOVEL); + cmd.Parameters.AddWithValue("@CONTATOS", modelo.CONTATOS); + + cmd.Parameters.AddWithValue("@CNAE", modelo.CNAE); + cmd.Parameters.AddWithValue("@COD_MUNICIPIO", modelo.COD_MUNICIPIO); + + cmd.Parameters.AddWithValue("@I_IRRF", modelo.I_IRRF); + cmd.Parameters.AddWithValue("@I_IRPJ", modelo.I_IRPJ); + cmd.Parameters.AddWithValue("@I_CSLL", modelo.I_CSLL); + cmd.Parameters.AddWithValue("@I_INSS", modelo.I_INSS); + cmd.Parameters.AddWithValue("@I_ISS", modelo.I_ISS); + cmd.Parameters.AddWithValue("@I_COFINS", modelo.I_COFINS); + cmd.Parameters.AddWithValue("@I_ICMSF", modelo.I_ICMSF); + cmd.Parameters.AddWithValue("@I_PISPASEP", modelo.I_PISPASEP); + cmd.Parameters.AddWithValue("@I_RETEM", modelo.I_RETEM); + + cmd.Parameters.AddWithValue("@OBS_NOTA_PADR", modelo.OBS_NOTA_PADR); + cmd.Parameters.AddWithValue("@INS_MUNICIPAL", modelo.INS_MUNICIPAL); + + cmd.Parameters.AddWithValue("@NF_ICMS_S", modelo.NF_ICMS_S); + cmd.Parameters.AddWithValue("@NF_FRETE", modelo.NF_FRETE); + cmd.Parameters.AddWithValue("@NF_SEGURO", modelo.NF_SEGURO); + cmd.Parameters.AddWithValue("@NF_DESPESAS", modelo.NF_DESPESAS); + + cmd.Parameters.AddWithValue("@NF_cin_FRETE", modelo.NF_cin_FRETE); + cmd.Parameters.AddWithValue("@NF_cin_SEGURO", modelo.NF_cin_SEGURO); + cmd.Parameters.AddWithValue("@NF_cin_DESPESAS", modelo.NF_cin_DESPESAS); + cmd.Parameters.AddWithValue("@NF_cin_DESCONTO", modelo.NF_cin_DESCONTO); + + cmd.Parameters.AddWithValue("@NF_ISS", modelo.NF_ISS); + cmd.Parameters.AddWithValue("@NF_IRRF", modelo.NF_IRRF); + cmd.Parameters.AddWithValue("@NF_IRPJ", modelo.NF_IRPJ); + cmd.Parameters.AddWithValue("@NF_PIS", modelo.NF_PIS); + cmd.Parameters.AddWithValue("@NF_COFINS", modelo.NF_COFINS); + cmd.Parameters.AddWithValue("@NF_CSLL", modelo.NF_CSLL); + cmd.Parameters.AddWithValue("@NF_INSS", modelo.NF_INSS); + + cmd.Parameters.AddWithValue("@LCP116", modelo.LCP116); + cmd.Parameters.AddWithValue("@CFOP_SERV", modelo.CFOP_SERV); + + cmd.Parameters.AddWithValue("@REGIME", modelo.REGIME); + + cmd.Parameters.AddWithValue("@MYLOGO_NFE", modelo.MYLOGO_NFE); + cmd.Parameters.AddWithValue("@MYLOGO_RECIBOS", modelo.MYLOGO_RECIBOS); + + cmd.Parameters.AddWithValue("@CARTEIRA_CRYPTOMOEDA1", modelo.CARTEIRA_CRYPTOMOEDA1); + cmd.Parameters.AddWithValue("@CARTEIRA_CRYPTOMOEDA2", modelo.CARTEIRA_CRYPTOMOEDA2); + cmd.Parameters.AddWithValue("@CARTEIRA_CRYPTOMOEDA3", modelo.CARTEIRA_CRYPTOMOEDA3); + } + private ModeloEmpresas PreencherModelo(SqlDataReader dr) + { + return new ModeloEmpresas + { + ID_EMPRESAS = Convert.ToInt32(dr["ID_EMPRESAS"]), + + CODIGO = Convert.ToString(dr["CODIGO"]) ?? string.Empty, + NOME = Convert.ToString(dr["NOME"]) ?? string.Empty, + FANTASIA = Convert.ToString(dr["FANTASIA"]) ?? string.Empty, + + ENDERECO = Convert.ToString(dr["ENDERECO"]) ?? string.Empty, + NUMERO = Convert.ToString(dr["NUMERO"]) ?? string.Empty, + COMPLEM = Convert.ToString(dr["COMPLEM"]) ?? string.Empty, + BAIRRO = Convert.ToString(dr["BAIRRO"]) ?? string.Empty, + CIDADE = Convert.ToString(dr["CIDADE"]) ?? string.Empty, + UF = Convert.ToString(dr["UF"]) ?? string.Empty, + CEP = Convert.ToString(dr["CEP"]) ?? string.Empty, + + CNPJ_CPF = Convert.ToString(dr["CNPJ_CPF"]) ?? string.Empty, + RG_IE = Convert.ToString(dr["RG_IE"]) ?? string.Empty, + + EMAIL = Convert.ToString(dr["EMAIL"]) ?? string.Empty, + SITE = Convert.ToString(dr["SITE"]) ?? string.Empty, + + TELEFONE = Convert.ToString(dr["TELEFONE"]) ?? string.Empty, + FAX = Convert.ToString(dr["FAX"]) ?? string.Empty, + MOVEL = Convert.ToString(dr["MOVEL"]) ?? string.Empty, + CONTATOS = Convert.ToString(dr["CONTATOS"]) ?? string.Empty, + + CNAE = Convert.ToString(dr["CNAE"]) ?? string.Empty, + COD_MUNICIPIO = Convert.ToString(dr["COD_MUNICIPIO"]) ?? string.Empty, + + I_IRRF = Convert.ToString(dr["I_IRRF"]) ?? string.Empty, + I_IRPJ = Convert.ToString(dr["I_IRPJ"]) ?? string.Empty, + I_CSLL = Convert.ToString(dr["I_CSLL"]) ?? string.Empty, + I_INSS = Convert.ToString(dr["I_INSS"]) ?? string.Empty, + I_ISS = Convert.ToString(dr["I_ISS"]) ?? string.Empty, + I_COFINS = Convert.ToString(dr["I_COFINS"]) ?? string.Empty, + I_ICMSF = Convert.ToString(dr["I_ICMSF"]) ?? string.Empty, + I_PISPASEP = Convert.ToString(dr["I_PISPASEP"]) ?? string.Empty, + I_RETEM = Convert.ToString(dr["I_RETEM"]) ?? string.Empty, + + OBS_NOTA_PADR = Convert.ToString(dr["OBS_NOTA_PADR"]) ?? string.Empty, + INS_MUNICIPAL = Convert.ToString(dr["INS_MUNICIPAL"]) ?? string.Empty, + + NF_ICMS_S = Convert.ToString(dr["NF_ICMS_S"]) ?? string.Empty, + NF_FRETE = Convert.ToString(dr["NF_FRETE"]) ?? string.Empty, + NF_SEGURO = Convert.ToString(dr["NF_SEGURO"]) ?? string.Empty, + NF_DESPESAS = Convert.ToString(dr["NF_DESPESAS"]) ?? string.Empty, + + NF_cin_FRETE = Convert.ToString(dr["NF_cin_FRETE"]) ?? string.Empty, + NF_cin_SEGURO = Convert.ToString(dr["NF_cin_SEGURO"]) ?? string.Empty, + NF_cin_DESPESAS = Convert.ToString(dr["NF_cin_DESPESAS"]) ?? string.Empty, + NF_cin_DESCONTO = Convert.ToString(dr["NF_cin_DESCONTO"]) ?? string.Empty, + + NF_ISS = Convert.ToString(dr["NF_ISS"]) ?? string.Empty, + NF_IRRF = Convert.ToString(dr["NF_IRRF"]) ?? string.Empty, + NF_IRPJ = Convert.ToString(dr["NF_IRPJ"]) ?? string.Empty, + NF_PIS = Convert.ToString(dr["NF_PIS"]) ?? string.Empty, + NF_COFINS = Convert.ToString(dr["NF_COFINS"]) ?? string.Empty, + NF_CSLL = Convert.ToString(dr["NF_CSLL"]) ?? string.Empty, + NF_INSS = Convert.ToString(dr["NF_INSS"]) ?? string.Empty, + + LCP116 = Convert.ToString(dr["LCP116"]) ?? string.Empty, + CFOP_SERV = Convert.ToString(dr["CFOP_SERV"]) ?? string.Empty, + + REGIME = Convert.ToString(dr["REGIME"]) ?? string.Empty, + + MYLOGO_NFE = Convert.ToString(dr["MYLOGO_NFE"]) ?? string.Empty, + MYLOGO_RECIBOS = Convert.ToString(dr["MYLOGO_RECIBOS"]) ?? string.Empty, + + CARTEIRA_CRYPTOMOEDA1 = Convert.ToString(dr["CARTEIRA_CRYPTOMOEDA1"]) ?? string.Empty, + CARTEIRA_CRYPTOMOEDA2 = Convert.ToString(dr["CARTEIRA_CRYPTOMOEDA2"]) ?? string.Empty, + CARTEIRA_CRYPTOMOEDA3 = Convert.ToString(dr["CARTEIRA_CRYPTOMOEDA3"]) ?? string.Empty + }; + } + #endregion + + } +} diff --git a/DAL/DALEquipContratos.cs b/DAL/DALEquipContratos.cs new file mode 100644 index 0000000..e1b6876 --- /dev/null +++ b/DAL/DALEquipContratos.cs @@ -0,0 +1,204 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class DALEquipContratos + { + private readonly string connectionString; + + public DALEquipContratos(string conexao) + { + connectionString = conexao; + } + public bool Inserir(ModeloEquipContratos modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO Equip_contratos + ( + COD_EQUIP, + COD_CONTRATO + ) + VALUES + ( + @COD_EQUIP, + @COD_CONTRATO + )"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public bool Alterar(ModeloEquipContratos modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE Equip_contratos + SET + COD_EQUIP=@COD_EQUIP, + COD_CONTRATO=@COD_CONTRATO + WHERE + ID_EQUIP_CONTRATOS=@ID_EQUIP_CONTRATOS"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue( + "@ID_EQUIP_CONTRATOS", + modelo.ID_EQUIP_CONTRATOS); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = @"DELETE FROM Equip_contratos WHERE ID_EQUIP_CONTRATOS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public ModeloEquipContratos? Carregar(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Equip_contratos + WHERE ID_EQUIP_CONTRATOS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + public List Listar(string? codigo = null, string? codEquip = null, string? codContrato = null) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Equip_contratos + WHERE 1=1"; + + using SqlCommand cmd = new(); + + if (!string.IsNullOrWhiteSpace(codigo)) + { + sql += " AND CODIGO LIKE @CODIGO"; + cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%"); + } + + if (!string.IsNullOrWhiteSpace(codEquip)) + { + sql += " AND COD_EQUIP LIKE @COD_EQUIP"; + cmd.Parameters.AddWithValue("@COD_EQUIP", "%" + codEquip + "%"); + } + + if (!string.IsNullOrWhiteSpace(codContrato)) + { + sql += " AND COD_CONTRATO LIKE @COD_CONTRATO"; + cmd.Parameters.AddWithValue("@COD_CONTRATO", "%" + codContrato + "%"); + } + + sql += " ORDER BY ID_EQUIP_CONTRATOS DESC"; + + cmd.Connection = conn; + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add(PreencherModelo(dr)); + + return lista; + } + private ModeloEquipContratos PreencherModelo(SqlDataReader dr) + { + return new ModeloEquipContratos + { + ID_EQUIP_CONTRATOS = Convert.ToInt32(dr["ID_EQUIP_CONTRATOS"]), + CODIGO = Convert.ToString(dr["CODIGO"]) ?? "", + COD_EQUIP = Convert.ToString(dr["COD_EQUIP"]) ?? "", + COD_CONTRATO = Convert.ToString(dr["COD_CONTRATO"]) ?? "" + }; + } + private void PreencherParametros(SqlCommand cmd, ModeloEquipContratos modelo) + { + cmd.Parameters.AddWithValue( + "@COD_EQUIP", + modelo.COD_EQUIP); + + cmd.Parameters.AddWithValue( + "@COD_CONTRATO", + modelo.COD_CONTRATO); + } + + #region Métodos Específicos + public List ListarPorEquipamento(string codEquip) + { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @"SELECT * FROM Equip_contratos WHERE COD_EQUIP=@COD_EQUIP"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@COD_EQUIP", codEquip); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add(PreencherModelo(dr)); + + return lista; + } + public List ListarPorContrato(string codContrato) { + List lista = []; + using SqlConnection conn = new(connectionString); + string sql = @"SELECT * FROM Equip_contratos WHERE COD_CONTRATO=@COD_CONTRATO"; + using SqlCommand cmd = new(sql, conn); + cmd.Parameters.AddWithValue("@COD_CONTRATO", codContrato); + conn.Open(); + using SqlDataReader dr = cmd.ExecuteReader(); + while (dr.Read()) + lista.Add(PreencherModelo(dr)); + return lista; + } + + #endregion + } +} \ No newline at end of file diff --git a/DAL/DALEquipamentos.cs b/DAL/DALEquipamentos.cs new file mode 100644 index 0000000..2f09b7f --- /dev/null +++ b/DAL/DALEquipamentos.cs @@ -0,0 +1,244 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class DALEquipamentos + { + private readonly string connectionString; + + public DALEquipamentos(string conexao) + { + connectionString = conexao; + } + public bool Inserir(ModeloEquipamentos modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO Equipamentos + ( + COD_CLIENTE, + DESCRICAO, + MARCA, + MODELO, + SERIE, + PAT, + OBSERVACOES, + DATA_COMPRA, + REVENDA, + NUM_NF, + NUM_CERTGAR, + CAMPO_BOOL, + CAMPO_DOUBLE + ) + VALUES + ( + @COD_CLIENTE, + @DESCRICAO, + @MARCA, + @MODELO, + @SERIE, + @PAT, + @OBSERVACOES, + @DATA_COMPRA, + @REVENDA, + @NUM_NF, + @NUM_CERTGAR, + @CAMPO_BOOL, + @CAMPO_DOUBLE + )"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//inserir + public bool Alterar(ModeloEquipamentos modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE Equipamentos + SET + COD_CLIENTE=@COD_CLIENTE, + DESCRICAO=@DESCRICAO, + MARCA=@MARCA, + MODELO=@MODELO, + SERIE=@SERIE, + PAT=@PAT, + OBSERVACOES=@OBSERVACOES, + DATA_COMPRA=@DATA_COMPRA, + REVENDA=@REVENDA, + NUM_NF=@NUM_NF, + NUM_CERTGAR=@NUM_CERTGAR, + CAMPO_BOOL=@CAMPO_BOOL, + CAMPO_DOUBLE=@CAMPO_DOUBLE + WHERE + ID_EQUIPAMENTOS=@ID_EQUIPAMENTOS"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@ID_EQUIPAMENTOS", modelo.ID_EQUIPAMENTOS); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//alterar + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + DELETE FROM Equipamentos + WHERE ID_EQUIPAMENTOS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + }//Excluir + public ModeloEquipamentos? Carregar(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Equipamentos + WHERE ID_EQUIPAMENTOS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + public List Listar(string? codigo = null,string? codCliente = null,string? descricao = null,string? marca = null,string? modelo = null,string? serie = null,string? patrimonio = null) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = + @"SELECT * + FROM Equipamentos + WHERE 1=1"; + + using SqlCommand cmd = new(); + + if (!string.IsNullOrWhiteSpace(codigo)) + { + sql += " AND CODIGO LIKE @CODIGO"; + cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%"); + } + + if (!string.IsNullOrWhiteSpace(codCliente)) + { + sql += " AND COD_CLIENTE LIKE @COD_CLIENTE"; + cmd.Parameters.AddWithValue("@COD_CLIENTE", "%" + codCliente + "%"); + } + + if (!string.IsNullOrWhiteSpace(descricao)) + { + sql += " AND DESCRICAO LIKE @DESCRICAO"; + cmd.Parameters.AddWithValue("@DESCRICAO", "%" + descricao + "%"); + } + + if (!string.IsNullOrWhiteSpace(marca)) + { + sql += " AND MARCA LIKE @MARCA"; + cmd.Parameters.AddWithValue("@MARCA", "%" + marca + "%"); + } + + if (!string.IsNullOrWhiteSpace(modelo)) + { + sql += " AND MODELO LIKE @MODELO"; + cmd.Parameters.AddWithValue("@MODELO", "%" + modelo + "%"); + } + + if (!string.IsNullOrWhiteSpace(serie)) + { + sql += " AND SERIE LIKE @SERIE"; + cmd.Parameters.AddWithValue("@SERIE", "%" + serie + "%"); + } + + if (!string.IsNullOrWhiteSpace(patrimonio)) + { + sql += " AND PAT LIKE @PAT"; + cmd.Parameters.AddWithValue("@PAT", "%" + patrimonio + "%"); + } + + sql += " ORDER BY ID_EQUIPAMENTOS DESC"; + + cmd.Connection = conn; + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add(PreencherModelo(dr)); + + return lista; + } + + private ModeloEquipamentos PreencherModelo(SqlDataReader dr) + { + return new ModeloEquipamentos + { + ID_EQUIPAMENTOS = Convert.ToInt32(dr["ID_EQUIPAMENTOS"]), + CODIGO = Convert.ToString(dr["CODIGO"]) ?? "", + COD_CLIENTE = Convert.ToString(dr["COD_CLIENTE"]) ?? "", + DESCRICAO = Convert.ToString(dr["DESCRICAO"]) ?? "", + MARCA = Convert.ToString(dr["MARCA"]) ?? "", + MODELO = Convert.ToString(dr["MODELO"]) ?? "", + SERIE = Convert.ToString(dr["SERIE"]) ?? "", + PAT = Convert.ToString(dr["PAT"]) ?? "", + OBSERVACOES = Convert.ToString(dr["OBSERVACOES"]) ?? "", + DATA_COMPRA = Convert.ToString(dr["DATA_COMPRA"]) ?? "", + REVENDA = Convert.ToString(dr["REVENDA"]) ?? "", + NUM_NF = Convert.ToString(dr["NUM_NF"]) ?? "", + NUM_CERTGAR = Convert.ToString(dr["NUM_CERTGAR"]) ?? "", + CAMPO_BOOL = Convert.ToString(dr["CAMPO_BOOL"]) ?? "", + CAMPO_DOUBLE = Convert.ToString(dr["CAMPO_DOUBLE"]) ?? "" + }; + } + private void PreencherParametros(SqlCommand cmd,ModeloEquipamentos modelo) + { + cmd.Parameters.AddWithValue("@COD_CLIENTE", modelo.COD_CLIENTE); + cmd.Parameters.AddWithValue("@DESCRICAO", modelo.DESCRICAO); + cmd.Parameters.AddWithValue("@MARCA", modelo.MARCA); + cmd.Parameters.AddWithValue("@MODELO", modelo.MODELO); + cmd.Parameters.AddWithValue("@SERIE", modelo.SERIE); + cmd.Parameters.AddWithValue("@PAT", modelo.PAT); + cmd.Parameters.AddWithValue("@OBSERVACOES", modelo.OBSERVACOES); + cmd.Parameters.AddWithValue("@DATA_COMPRA", modelo.DATA_COMPRA); + cmd.Parameters.AddWithValue("@REVENDA", modelo.REVENDA); + cmd.Parameters.AddWithValue("@NUM_NF", modelo.NUM_NF); + cmd.Parameters.AddWithValue("@NUM_CERTGAR", modelo.NUM_CERTGAR); + cmd.Parameters.AddWithValue("@CAMPO_BOOL", modelo.CAMPO_BOOL); + cmd.Parameters.AddWithValue("@CAMPO_DOUBLE", modelo.CAMPO_DOUBLE); + } + } +} diff --git a/DAL/DALEsquemas.cs b/DAL/DALEsquemas.cs new file mode 100644 index 0000000..2cff9ec --- /dev/null +++ b/DAL/DALEsquemas.cs @@ -0,0 +1,341 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class DALEsquemas + { + private readonly string connectionString; + public DALEsquemas(string connectionString) + { + this.connectionString = connectionString; + } + public bool Inserir(ModeloEsquemas modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO Esquemas + ( + MARCA, + NOME, + LOCAL, + FPATH, + OBS + ) + VALUES + ( + @MARCA, + @NOME, + @LOCAL, + @FPATH, + @OBS + )"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public bool Alterar(ModeloEsquemas modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE Esquemas + SET + MARCA=@MARCA, + NOME=@NOME, + LOCAL=@LOCAL, + FPATH=@FPATH, + OBS=@OBS + WHERE + ID_ESQUEMAS=@ID_ESQUEMAS"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue("@ID_ESQUEMAS", modelo.ID_ESQUEMAS); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = + @"DELETE FROM Esquemas + WHERE ID_ESQUEMAS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public ModeloEsquemas? Carregar(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Esquemas + WHERE ID_ESQUEMAS=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + public List Listar(string? codigo = null,string? marca = null,string? nome = null, string? local = null,string? fpath = null) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = + @"SELECT * + FROM Esquemas + WHERE 1=1"; + + using SqlCommand cmd = new(); + + if (!string.IsNullOrWhiteSpace(codigo)) + { + sql += " AND CODIGO LIKE @CODIGO"; + cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%"); + } + + if (!string.IsNullOrWhiteSpace(marca)) + { + sql += " AND MARCA LIKE @MARCA"; + cmd.Parameters.AddWithValue("@MARCA", "%" + marca + "%"); + } + + if (!string.IsNullOrWhiteSpace(nome)) + { + sql += " AND NOME LIKE @NOME"; + cmd.Parameters.AddWithValue("@NOME", "%" + nome + "%"); + } + + if (!string.IsNullOrWhiteSpace(local)) + { + sql += " AND LOCAL LIKE @LOCAL"; + cmd.Parameters.AddWithValue("@LOCAL", "%" + local + "%"); + } + + if (!string.IsNullOrWhiteSpace(fpath)) + { + sql += " AND FPATH LIKE @FPATH"; + cmd.Parameters.AddWithValue("@FPATH", "%" + fpath + "%"); + } + + sql += " ORDER BY ID_ESQUEMAS DESC"; + + cmd.Connection = conn; + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + lista.Add(PreencherModelo(dr)); + + return lista; + } + private ModeloEsquemas PreencherModelo(SqlDataReader dr) + { + return new ModeloEsquemas + { + ID_ESQUEMAS = Convert.ToInt32(dr["ID_ESQUEMAS"]), + CODIGO = Convert.ToString(dr["CODIGO"]) ?? "", + MARCA = Convert.ToString(dr["MARCA"]) ?? "", + NOME = Convert.ToString(dr["NOME"]) ?? "", + LOCAL = Convert.ToString(dr["LOCAL"]) ?? "", + FPATH = Convert.ToString(dr["FPATH"]) ?? "", + OBS = Convert.ToString(dr["OBS"]) ?? "" + }; + } + private void PreencherParametros(SqlCommand cmd, ModeloEsquemas modelo) + { + cmd.Parameters.AddWithValue("@MARCA", modelo.MARCA); + cmd.Parameters.AddWithValue("@NOME", modelo.NOME); + cmd.Parameters.AddWithValue("@LOCAL", modelo.LOCAL); + cmd.Parameters.AddWithValue("@FPATH", modelo.FPATH); + cmd.Parameters.AddWithValue("@OBS", modelo.OBS); + } + + #region Listagem + public List ListarPorMarca(string marca) + { + return Listar(marca: marca); + } + public List ListarPorNome(string nome) + { + return Listar(nome: nome); + } + public List ListarPorLocal(string local) + { + return Listar(local: local); + } + public ModeloEsquemas? CarregarPorCodigo(string codigo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT * + FROM Esquemas + WHERE CODIGO=@CODIGO"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@CODIGO", codigo); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + public bool ExisteNome(string nome) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT COUNT(*) + FROM Esquemas + WHERE NOME=@NOME"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@NOME", nome); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + } + public bool ExisteArquivo(string fpath) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT COUNT(*) + FROM Esquemas + WHERE FPATH=@FPATH"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@FPATH", fpath); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()) > 0; + } + public int QuantidadePorMarca(string marca) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT COUNT(*) + FROM Esquemas + WHERE MARCA=@MARCA"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@MARCA", marca); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()); + } + public int QuantidadeTotal() + { + using SqlConnection conn = new(connectionString); + + string sql = + @"SELECT COUNT(*) + FROM Esquemas"; + + using SqlCommand cmd = new(sql, conn); + + conn.Open(); + + return Convert.ToInt32( + cmd.ExecuteScalar()); + } + public DataTable Dashboard() + { + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT + COUNT(*) TOTAL_ESQUEMAS, + COUNT(DISTINCT MARCA) TOTAL_MARCAS + FROM Esquemas"; + + using SqlDataAdapter da = new(sql, conn); + + DataTable dt = new(); + + da.Fill(dt); + + return dt; + } + public List ListarMarcas() + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = @" + SELECT DISTINCT MARCA + FROM Esquemas + ORDER BY MARCA"; + + using SqlCommand cmd = new(sql, conn); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add( + Convert.ToString(dr["MARCA"]) ?? ""); + } + + return lista; + } + #endregion + + } +} diff --git a/DAL/DALFcaixa.cs b/DAL/DALFcaixa.cs new file mode 100644 index 0000000..7053a5b --- /dev/null +++ b/DAL/DALFcaixa.cs @@ -0,0 +1,219 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace DAL +{ + public class DALFcaixa + { + private readonly string connectionString; + + public DALFcaixa(string conexao) + { + connectionString = conexao; + } + + public bool Inserir(ModeloFcaixa modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + INSERT INTO Fcaixa + ( + DIA, + RECEITA, + DESPESA, + OBS, + PLANO_CONTAS, + COD_CONTA, + FORMA + ) + VALUES + ( + @DIA, + @RECEITA, + @DESPESA, + @OBS, + @PLANO_CONTAS, + @COD_CONTA, + @FORMA + )"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public bool Alterar(ModeloFcaixa modelo) + { + using SqlConnection conn = new(connectionString); + + string sql = @" + UPDATE Fcaixa + SET + DIA=@DIA, + RECEITA=@RECEITA, + DESPESA=@DESPESA, + OBS=@OBS, + PLANO_CONTAS=@PLANO_CONTAS, + COD_CONTA=@COD_CONTA, + FORMA=@FORMA + WHERE + ID_FCAIXA=@ID_FCAIXA"; + + using SqlCommand cmd = new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue( + "@ID_FCAIXA", + modelo.ID_FCAIXA); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public bool Excluir(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = + @"DELETE FROM Fcaixa + WHERE ID_FCAIXA=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + public ModeloFcaixa? Carregar(int id) + { + using SqlConnection conn = new(connectionString); + + string sql = + @"SELECT * + FROM Fcaixa + WHERE ID_FCAIXA=@ID"; + + using SqlCommand cmd = new(sql, conn); + + cmd.Parameters.AddWithValue("@ID", id); + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + public List Listar(string? codigo = null,string? dia = null,string? receita = null,string? despesa = null,string? planoContas = null, string? codConta = null,string? forma = null) + { + List lista = []; + + using SqlConnection conn = new(connectionString); + + string sql = + @"SELECT * + FROM Fcaixa + WHERE 1=1"; + + using SqlCommand cmd = new(); + + if (!string.IsNullOrWhiteSpace(codigo)) + { + sql += " AND CODIGO LIKE @CODIGO"; + cmd.Parameters.AddWithValue("@CODIGO", "%" + codigo + "%"); + } + + if (!string.IsNullOrWhiteSpace(dia)) + { + sql += " AND DIA LIKE @DIA"; + cmd.Parameters.AddWithValue("@DIA", "%" + dia + "%"); + } + + if (!string.IsNullOrWhiteSpace(receita)) + { + sql += " AND RECEITA LIKE @RECEITA"; + cmd.Parameters.AddWithValue("@RECEITA", "%" + receita + "%"); + } + + if (!string.IsNullOrWhiteSpace(despesa)) + { + sql += " AND DESPESA LIKE @DESPESA"; + cmd.Parameters.AddWithValue("@DESPESA", "%" + despesa + "%"); + } + + if (!string.IsNullOrWhiteSpace(planoContas)) + { + sql += " AND PLANO_CONTAS LIKE @PLANO_CONTAS"; + cmd.Parameters.AddWithValue("@PLANO_CONTAS", "%" + planoContas + "%"); + } + + if (!string.IsNullOrWhiteSpace(codConta)) + { + sql += " AND COD_CONTA LIKE @COD_CONTA"; + cmd.Parameters.AddWithValue("@COD_CONTA", "%" + codConta + "%"); + } + + if (!string.IsNullOrWhiteSpace(forma)) + { + sql += " AND FORMA LIKE @FORMA"; + cmd.Parameters.AddWithValue("@FORMA", "%" + forma + "%"); + } + + sql += " ORDER BY ID_FCAIXA DESC"; + + cmd.Connection = conn; + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + + return lista; + } + private ModeloFcaixa PreencherModelo(SqlDataReader dr) + { + return new ModeloFcaixa + { + ID_FCAIXA = Convert.ToInt32(dr["ID_FCAIXA"]), + CODIGO = Convert.ToString(dr["CODIGO"]) ?? "", + DIA = Convert.ToString(dr["DIA"]) ?? "", + RECEITA = Convert.ToString(dr["RECEITA"]) ?? "", + DESPESA = Convert.ToString(dr["DESPESA"]) ?? "", + OBS = Convert.ToString(dr["OBS"]) ?? "", + PLANO_CONTAS = Convert.ToString(dr["PLANO_CONTAS"]) ?? "", + COD_CONTA = Convert.ToString(dr["COD_CONTA"]) ?? "", + FORMA = Convert.ToString(dr["FORMA"]) ?? "" + }; + } + private void PreencherParametros(SqlCommand cmd,ModeloFcaixa modelo) + { + cmd.Parameters.AddWithValue("@DIA", modelo.DIA); + cmd.Parameters.AddWithValue("@RECEITA", modelo.RECEITA); + cmd.Parameters.AddWithValue("@DESPESA", modelo.DESPESA); + cmd.Parameters.AddWithValue("@OBS", modelo.OBS); + cmd.Parameters.AddWithValue("@PLANO_CONTAS", modelo.PLANO_CONTAS); + cmd.Parameters.AddWithValue("@COD_CONTA", modelo.COD_CONTA); + cmd.Parameters.AddWithValue("@FORMA", modelo.FORMA); + } + } +} diff --git a/DAL/DALLCoordImpres.cs b/DAL/DALLCoordImpres.cs new file mode 100644 index 0000000..75dccb3 --- /dev/null +++ b/DAL/DALLCoordImpres.cs @@ -0,0 +1,408 @@ +using Microsoft.Data.SqlClient; +using MLL; +using System; +using System.Collections.Generic; +using System.Data; + +namespace DALL +{ + public class DALLCoordImpres + { + private readonly string connectionString; + + public DALLCoordImpres(string conexao) + { + connectionString = conexao; + } + + #region CRUD + + public bool Inserir(ModeloCoordImpres modelo) + { + try + { + using SqlConnection conn = + new(connectionString); + + string sql = @" + INSERT INTO Coord_impres + ( + COD_MODELO, + NOME_CAMPO, + COD_CAMPO, + TIPO, + CX, + CY, + COMP, + ATIVO + ) + VALUES + ( + @COD_MODELO, + @NOME_CAMPO, + @COD_CAMPO, + @TIPO, + @CX, + @CY, + @COMP, + @ATIVO + )"; + + using SqlCommand cmd = + new(sql, conn); + + PreencherParametros(cmd, modelo); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public bool Alterar(ModeloCoordImpres modelo) + { + try + { + using SqlConnection conn = + new(connectionString); + + string sql = @" + UPDATE Coord_impres + SET + CODIGO=@CODIGO, + COD_MODELO=@COD_MODELO, + NOME_CAMPO=@NOME_CAMPO, + COD_CAMPO=@COD_CAMPO, + TIPO=@TIPO, + CX=@CX, + CY=@CY, + COMP=@COMP, + ATIVO=@ATIVO + WHERE ID_COORD_IMPRES=@ID_COORD_IMPRES"; + + using SqlCommand cmd = + new(sql, conn); + + PreencherParametros(cmd, modelo); + + cmd.Parameters.AddWithValue( + "@CODIGO", + modelo.CODIGO); + + cmd.Parameters.AddWithValue( + "@ID_COORD_IMPRES", + modelo.ID_COORD_IMPRES); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public bool Excluir(int id) + { + try + { + using SqlConnection conn = + new(connectionString); + + string sql = + @"DELETE FROM Coord_impres + WHERE ID_COORD_IMPRES=@ID"; + + using SqlCommand cmd = + new(sql, conn); + + cmd.Parameters.AddWithValue( + "@ID", + id); + + conn.Open(); + + return cmd.ExecuteNonQuery() > 0; + } + catch + { + return false; + } + } + + public ModeloCoordImpres? Carregar(int id) + { + using SqlConnection conn = + new(connectionString); + + string sql = + @"SELECT * + FROM Coord_impres + WHERE ID_COORD_IMPRES=@ID"; + + using SqlCommand cmd = + new(sql, conn); + + cmd.Parameters.AddWithValue( + "@ID", + id); + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + if (dr.Read()) + return PreencherModelo(dr); + + return null; + } + + public List Listar( + string? codModelo = null, + string? nomeCampo = null, + string? codCampo = null, + string? tipo = null, + string? ativo = null) + { + List lista = []; + + using SqlConnection conn = + new(connectionString); + + string sql = @" + SELECT * + FROM Coord_impres + WHERE 1=1"; + + using SqlCommand cmd = + new(); + + cmd.Connection = conn; + + if (!string.IsNullOrWhiteSpace(codModelo)) + { + sql += " AND COD_MODELO LIKE @COD_MODELO"; + + cmd.Parameters.AddWithValue( + "@COD_MODELO", + "%" + codModelo + "%"); + } + + if (!string.IsNullOrWhiteSpace(nomeCampo)) + { + sql += " AND NOME_CAMPO LIKE @NOME_CAMPO"; + + cmd.Parameters.AddWithValue( + "@NOME_CAMPO", + "%" + nomeCampo + "%"); + } + + if (!string.IsNullOrWhiteSpace(codCampo)) + { + sql += " AND COD_CAMPO LIKE @COD_CAMPO"; + + cmd.Parameters.AddWithValue( + "@COD_CAMPO", + "%" + codCampo + "%"); + } + + if (!string.IsNullOrWhiteSpace(tipo)) + { + sql += " AND TIPO LIKE @TIPO"; + + cmd.Parameters.AddWithValue( + "@TIPO", + "%" + tipo + "%"); + } + + if (!string.IsNullOrWhiteSpace(ativo)) + { + sql += " AND ATIVO=@ATIVO"; + + cmd.Parameters.AddWithValue( + "@ATIVO", + ativo); + } + + sql += " ORDER BY ID_COORD_IMPRES DESC"; + + cmd.CommandText = sql; + + conn.Open(); + + using SqlDataReader dr = + cmd.ExecuteReader(); + + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + + return lista; + } + + public List ListarPorModelo(string codModelo) + { + List lista = []; + using SqlConnection conn = + new(connectionString); + string sql = @" + SELECT * + FROM Coord_impres + WHERE COD_MODELO=@COD_MODELO + ORDER BY ID_COORD_IMPRES DESC"; + using SqlCommand cmd = + new(sql, conn); + cmd.Parameters.AddWithValue( + "@COD_MODELO", + codModelo); + conn.Open(); + using SqlDataReader dr = + cmd.ExecuteReader(); + while (dr.Read()) + { + lista.Add( + PreencherModelo(dr)); + } + return lista; + } + + + #endregion + + #region Dashboard + + public DataTable Dashboard() + { + using SqlConnection conn = + new(connectionString); + + string sql = @" + SELECT + COUNT(*) TOTAL, + SUM( + CASE + WHEN ATIVO='SIM' + THEN 1 + ELSE 0 + END + ) AS ATIVOS + FROM Coord_impres"; + + using SqlDataAdapter da = + new(sql, conn); + + DataTable dt = new(); + + da.Fill(dt); + + return dt; + } + + #endregion + + #region Helpers + + private static ModeloCoordImpres + PreencherModelo(SqlDataReader dr) + { + return new ModeloCoordImpres + { + ID_COORD_IMPRES = + Convert.ToInt32( + dr["ID_COORD_IMPRES"]), + + CODIGO = + Convert.ToString( + dr["CODIGO"]) + ?? string.Empty, + + COD_MODELO = + Convert.ToString( + dr["COD_MODELO"]) + ?? string.Empty, + + NOME_CAMPO = + Convert.ToString( + dr["NOME_CAMPO"]) + ?? string.Empty, + + COD_CAMPO = + Convert.ToString( + dr["COD_CAMPO"]) + ?? string.Empty, + + TIPO = + Convert.ToString( + dr["TIPO"]) + ?? string.Empty, + + CX = + Convert.ToString( + dr["CX"]) + ?? string.Empty, + + CY = + Convert.ToString( + dr["CY"]) + ?? string.Empty, + + COMP = + Convert.ToString( + dr["COMP"]) + ?? string.Empty, + + ATIVO = + Convert.ToString( + dr["ATIVO"]) + ?? string.Empty + }; + } + + private static void PreencherParametros( + SqlCommand cmd, + ModeloCoordImpres modelo) + { + cmd.Parameters.AddWithValue( + "@COD_MODELO", + modelo.COD_MODELO); + + cmd.Parameters.AddWithValue( + "@NOME_CAMPO", + modelo.NOME_CAMPO); + + cmd.Parameters.AddWithValue( + "@COD_CAMPO", + modelo.COD_CAMPO); + + cmd.Parameters.AddWithValue( + "@TIPO", + modelo.TIPO); + + cmd.Parameters.AddWithValue( + "@CX", + modelo.CX); + + cmd.Parameters.AddWithValue( + "@CY", + modelo.CY); + + cmd.Parameters.AddWithValue( + "@COMP", + modelo.COMP); + + cmd.Parameters.AddWithValue( + "@ATIVO", + modelo.ATIVO); + } + + #endregion + } +} \ No newline at end of file diff --git a/MLL/ModeloEmpresas.cs b/MLL/ModeloEmpresas.cs index 6ea3dc8..575f6cf 100644 --- a/MLL/ModeloEmpresas.cs +++ b/MLL/ModeloEmpresas.cs @@ -4,6 +4,9 @@ namespace MLL { public class ModeloEmpresas { + public ModeloEmpresas() + { + } public ModeloEmpresas(int iD_EMPRESAS, string cODIGO, string nOME, string fANTASIA, string eNDERECO, string nUMERO, string cOMPLEM, string bAIRRO, string cIDADE, string uF, string cEP, string cNPJ_CPF, string rG_IE, string eMAIL, string sITE, diff --git a/UI/ArquivosAuxiliares/Triggers/CoordImpress_trigger.sql b/UI/ArquivosAuxiliares/Triggers/CoordImpress_trigger.sql new file mode 100644 index 0000000..9407d33 --- /dev/null +++ b/UI/ArquivosAuxiliares/Triggers/CoordImpress_trigger.sql @@ -0,0 +1,47 @@ +CREATE OR ALTER TRIGGER TR_CoordImpres_GerarCodigo +ON Coord_impres +AFTER INSERT +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @UltimoNumero INT; + + SELECT + @UltimoNumero = + ISNULL( + MAX( + TRY_CAST( + REPLACE(CODIGO,'CI','') + AS INT) + ), + 99) + FROM Coord_impres + WHERE CODIGO LIKE 'CI%'; + + ;WITH Numerados AS + ( + SELECT + ID_COORD_IMPRES, + ROW_NUMBER() OVER + ( + ORDER BY ID_COORD_IMPRES + ) AS Linha + FROM inserted + ) + UPDATE C + SET + CODIGO = + 'CI' + + RIGHT( + '0000' + + CAST( + @UltimoNumero + N.Linha + AS VARCHAR), + 4) + FROM Coord_impres C + INNER JOIN Numerados N + ON C.ID_COORD_IMPRES = + N.ID_COORD_IMPRES; +END +GO \ No newline at end of file diff --git a/UI/ArquivosAuxiliares/Triggers/Despesas_triggers.sql b/UI/ArquivosAuxiliares/Triggers/Despesas_triggers.sql new file mode 100644 index 0000000..2a8fafe --- /dev/null +++ b/UI/ArquivosAuxiliares/Triggers/Despesas_triggers.sql @@ -0,0 +1,47 @@ +CREATE OR ALTER TRIGGER TR_Despesas_GerarCodigo +ON Despesas +AFTER INSERT +AS +BEGIN + SET NOCOUNT ON; + + DECLARE @UltimoNumero INT; + + SELECT + @UltimoNumero = + ISNULL( + MAX( + TRY_CAST( + REPLACE(CODIGO,'DE','') + AS INT) + ), + 99) + FROM Despesas + WHERE CODIGO LIKE 'DE%'; + + ;WITH Numerados AS + ( + SELECT + ID_DESPESAS, + ROW_NUMBER() OVER + ( + ORDER BY ID_DESPESAS + ) AS Linha + FROM inserted + ) + UPDATE D + SET + CODIGO = + 'DE' + + RIGHT( + '0000' + + CAST( + @UltimoNumero + N.Linha + AS VARCHAR), + 4) + FROM Despesas D + INNER JOIN Numerados N + ON D.ID_DESPESAS = + N.ID_DESPESAS; +END +GO \ No newline at end of file