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); } } }