LevelOS-Core/DAL/DALEmpresa.cs

315 lines
14 KiB
C#

using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using Microsoft.Data.SqlClient;
using MLL;
namespace DALL
{
public class DALEmpresa
{
private readonly string connectionString;
public DALEmpresa(string conn)
{
connectionString = conn;
}
// 🔹 LISTAR
public List<ModeloEmpresa> Listar()
{
var lista = new List<ModeloEmpresa>();
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
string sql = "SELECT * FROM Empresa";
using (SqlCommand cmd = new SqlCommand(sql, conn))
using (SqlDataReader dr = cmd.ExecuteReader())
{
while (dr.Read())
{
lista.Add(new ModeloEmpresa(
Convert.ToInt32(dr["IdEmpresa"]),
dr["Nome"]?.ToString(),
dr["CNPJ"]?.ToString(),
dr["TipoEmpresa"]?.ToString(),
dr["RegimeTributario"]?.ToString(),
dr["CNAE"]?.ToString(),
dr["Cep"]?.ToString(),
dr["Endereco"]?.ToString(),
Convert.ToInt32(dr["Numero"]),
dr["Complemento"]?.ToString(),
dr["Bairro"]?.ToString(),
dr["Cidade"]?.ToString(),
dr["UF"]?.ToString(),
dr["Pais"]?.ToString(),
dr["Telefone1"]?.ToString(),
dr["Telefone2"]?.ToString(),
dr["Celular"]?.ToString(),
dr["Whatsapp"]?.ToString(),
dr["Email"]?.ToString(),
dr["Site"]?.ToString(),
dr["InscricaoEstadual"]?.ToString(),
dr["InscricaoMunicipal"]?.ToString(),
dr["CNPJCPF_Contador"]?.ToString(),
dr["Nome_Contador"]?.ToString(),
dr["TextoParaRecibo"]?.ToString(),
Convert.ToBoolean(dr["Ativo"]),
Convert.ToDateTime(dr["CriadoEm"]),
Convert.ToDateTime(dr["AtualizadoEm"])
));
}
}
}
}
catch
{
return new List<ModeloEmpresa>();
}
return lista;
}//listarEmpresa
// 🔹 CARREGAR POR ID
public ModeloEmpresa CarregarModeloEmpresa(int id)
{
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
string sql = "SELECT * FROM Empresa WHERE IdEmpresa = @Id";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@Id", id);
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
return new ModeloEmpresa(
Convert.ToInt32(dr["Id"]),
dr["Nome"]?.ToString(),
dr["CNPJ"]?.ToString(),
dr["TipoEmpresa"]?.ToString(),
dr["RegimeTributario"]?.ToString(),
dr["CNAE"]?.ToString(),
dr["Cep"]?.ToString(),
dr["Endereco"]?.ToString(),
Convert.ToInt32(dr["Numero"]),
dr["Complemento"]?.ToString(),
dr["Bairro"]?.ToString(),
dr["Cidade"]?.ToString(),
dr["UF"]?.ToString(),
dr["Pais"]?.ToString(),
dr["Telefone1"]?.ToString(),
dr["Telefone2"]?.ToString(),
dr["Celular"]?.ToString(),
dr["Whatsapp"]?.ToString(),
dr["Email"]?.ToString(),
dr["Site"]?.ToString(),
dr["InscricaoEstadual"]?.ToString(),
dr["InscricaoMunicipal"]?.ToString(),
dr["CNPJCPF_Contador"]?.ToString(),
dr["Nome_Contador"]?.ToString(),
dr["TextoParaRecibo"]?.ToString(),
Convert.ToBoolean(dr["Ativo"]),
Convert.ToDateTime(dr["CriadoEm"]),
Convert.ToDateTime(dr["AtualizadoEm"])
);
}
}
}
}
}
catch { }
return null;
}//CarregarModeloEmpresaPorID
// 🔹 INSERIR
public bool Inserir(ModeloEmpresa obj)
{
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
string sql = @"INSERT INTO Empresa
(Nome, CNPJ, TipoEmpresa, RegimeTributario, CNAE, Cep, Endereco, Numero,
Complemento, Bairro, Cidade, UF, Pais, Telefone1, Telefone2, Celular,
Whatsapp, Email, Site, InscricaoEstadual, InscricaoMunicipal,
CNPJCPF_Contador, Nome_Contador, TextoParaRecibo, Ativo)
VALUES
(@Nome, @CNPJ, @TipoEmpresa, @RegimeTributario, @CNAE, @Cep, @Endereco, @Numero,
@Complemento, @Bairro, @Cidade, @UF, @Pais, @Telefone1, @Telefone2, @Celular,
@Whatsapp, @Email, @Site, @InscricaoEstadual, @InscricaoMunicipal,
@CNPJCPF_Contador, @Nome_Contador, @TextoParaRecibo, @Ativo)";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
PreencherParametros(cmd, obj);
return cmd.ExecuteNonQuery() > 0;
}
}
}
catch
{
return false;
}
}//Incluir
// 🔹 ALTERAR
public bool Alterar(ModeloEmpresa obj)
{
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
string sql = @"UPDATE Empresa SET
Nome=@Nome, CNPJ=@CNPJ, TipoEmpresa=@TipoEmpresa, RegimeTributario=@RegimeTributario,
CNAE=@CNAE, Cep=@Cep, Endereco=@Endereco, Numero=@Numero,
Complemento=@Complemento, Bairro=@Bairro, Cidade=@Cidade, UF=@UF,
Pais=@Pais, Telefone1=@Telefone1, Telefone2=@Telefone2,
Celular=@Celular, Whatsapp=@Whatsapp, Email=@Email, Site=@Site,
InscricaoEstadual=@InscricaoEstadual, InscricaoMunicipal=@InscricaoMunicipal,
CNPJCPF_Contador=@CNPJCPF_Contador, Nome_Contador=@Nome_Contador,
TextoParaRecibo=@TextoParaRecibo, Ativo=@Ativo,
AtualizadoEm=GETDATE()
WHERE IdEmpresa=@Id";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
PreencherParametros(cmd, obj);
cmd.Parameters.AddWithValue("@Id", obj.Id);
return cmd.ExecuteNonQuery() > 0;
}
}
}
catch
{
return false;
}
}//Alterar
// 🔹 EXCLUIR
public bool Excluir(int id)
{
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
string sql = "DELETE FROM Empresa WHERE IdEmpresa=@Id";
using (SqlCommand cmd = new SqlCommand(sql, conn))
{
cmd.Parameters.AddWithValue("@Id", id);
return cmd.ExecuteNonQuery() > 0;
}
}
}
catch
{
return false;
}
}//Excluir
// 🔹 MÉTODO AUXILIAR (evita repetição)
private void PreencherParametros(SqlCommand cmd, ModeloEmpresa obj)
{
cmd.Parameters.AddWithValue("@Nome", obj.Nome ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@CNPJ", obj.CNPJ ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@TipoEmpresa", obj.TipoEmpresa ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@RegimeTributario", obj.RegimeTributario ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@CNAE", obj.CNAE ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Cep", obj.Cep ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Endereco", obj.Endereco ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Numero", obj.Numero);
cmd.Parameters.AddWithValue("@Complemento", obj.Complemento ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Bairro", obj.Bairro ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Cidade", obj.Cidade ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@UF", obj.UF ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Pais", obj.Pais ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Telefone1", obj.Telefone1 ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Telefone2", obj.Telefone2 ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Celular", obj.Celular ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Whatsapp", obj.Whatsapp ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Email", obj.Email ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Site", obj.Site ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@InscricaoEstadual", obj.InscricaoEstadual ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@InscricaoMunicipal", obj.InscricaoMunicipal ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@CNPJCPF_Contador", obj.CNPJCPF_Contador ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Nome_Contador", obj.Nome_Contador ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@TextoParaRecibo", obj.TextoParaRecibo ?? (object)DBNull.Value);
cmd.Parameters.AddWithValue("@Ativo", obj.Ativo);
}//Preencher parametros
public ModeloEmpresa? CarregarEmpresaAtiva()
{
try
{
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
// Retorna a primeira empresa com Ativo = true
string sql = "SELECT TOP 1 * FROM Empresa WHERE Ativo = 1";
using (SqlCommand cmd = new SqlCommand(sql, conn))
using (SqlDataReader dr = cmd.ExecuteReader())
{
if (dr.Read())
{
return new ModeloEmpresa(
Convert.ToInt32(dr["IdEmpresa"]),
dr["Nome"]?.ToString(),
dr["CNPJ"]?.ToString(),
dr["TipoEmpresa"]?.ToString(),
dr["RegimeTributario"]?.ToString(),
dr["CNAE"]?.ToString(),
dr["Cep"]?.ToString(),
dr["Endereco"]?.ToString(),
Convert.ToInt32(dr["Numero"]),
dr["Complemento"]?.ToString(),
dr["Bairro"]?.ToString(),
dr["Cidade"]?.ToString(),
dr["UF"]?.ToString(),
dr["Pais"]?.ToString(),
dr["Telefone1"]?.ToString(),
dr["Telefone2"]?.ToString(),
dr["Celular"]?.ToString(),
dr["Whatsapp"]?.ToString(),
dr["Email"]?.ToString(),
dr["Site"]?.ToString(),
dr["InscricaoEstadual"]?.ToString(),
dr["InscricaoMunicipal"]?.ToString(),
dr["CNPJCPF_Contador"]?.ToString(),
dr["Nome_Contador"]?.ToString(),
dr["TextoParaRecibo"]?.ToString(),
Convert.ToBoolean(dr["Ativo"]),
Convert.ToDateTime(dr["CriadoEm"]),
Convert.ToDateTime(dr["AtualizadoEm"])
);
}
}
}
}
catch { }
return null;
}//CarregarEmpresaAtiva
}
}