250 lines
8.7 KiB
C#
250 lines
8.7 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Data.SqlClient;
|
|
using Microsoft.Data.SqlClient;
|
|
|
|
public class DALEmpresaConfig
|
|
{
|
|
private readonly string _connectionString;
|
|
|
|
public DALEmpresaConfig(string connectionString)
|
|
{
|
|
_connectionString = connectionString;
|
|
}
|
|
|
|
#region INSERT
|
|
public bool Inserir(ModeloEmpresaConfig config)
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_connectionString))
|
|
{
|
|
string sql = @"
|
|
INSERT INTO Empresa_config (
|
|
IdEmpresa,
|
|
NomeSistema,
|
|
CorPrimaria,
|
|
CorSecundaria,
|
|
Logo,
|
|
Favicon,
|
|
ExibirCPFCliente,
|
|
ExibirTelefoneCliente,
|
|
ExibirGarantia,
|
|
DiasGarantiaPadrao,
|
|
GerarReciboAutomatico,
|
|
ExibirValoresOS,
|
|
EnviarEmailAutomatico,
|
|
EnviarWhatsappAutomatico,
|
|
ModoEscuro,
|
|
PermitirEdicaoOSFinalizada
|
|
)
|
|
SELECT
|
|
@IdEmpresa,
|
|
@NomeSistema,
|
|
@CorPrimaria,
|
|
@CorSecundaria,
|
|
@Logo,
|
|
@Favicon,
|
|
@ExibirCPFCliente,
|
|
@ExibirTelefoneCliente,
|
|
@ExibirGarantia,
|
|
@DiasGarantiaPadrao,
|
|
@GerarReciboAutomatico,
|
|
@ExibirValoresOS,
|
|
@EnviarEmailAutomatico,
|
|
@EnviarWhatsappAutomatico,
|
|
@ModoEscuro,
|
|
@PermitirEdicaoOSFinalizada
|
|
WHERE EXISTS (
|
|
SELECT 1 FROM Empresa
|
|
WHERE IdEmpresa = @IdEmpresa AND Ativo = 1
|
|
)
|
|
AND NOT EXISTS (
|
|
SELECT 1 FROM Empresa_config
|
|
WHERE IdEmpresa = @IdEmpresa
|
|
);";
|
|
|
|
SqlCommand cmd = new SqlCommand(sql, conn);
|
|
AddParametros(cmd, config);
|
|
|
|
conn.Open();
|
|
int linhas = cmd.ExecuteNonQuery();
|
|
|
|
if (linhas == 0)
|
|
throw new Exception("Empresa não encontrada, inativa ou já possui configuração.");
|
|
|
|
return true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region UPDATE
|
|
public bool Atualizar(ModeloEmpresaConfig config)
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_connectionString))
|
|
{
|
|
string sql = @"
|
|
UPDATE Empresa_config
|
|
SET
|
|
NomeSistema = @NomeSistema,
|
|
CorPrimaria = @CorPrimaria,
|
|
CorSecundaria = @CorSecundaria,
|
|
Logo = @Logo,
|
|
Favicon = @Favicon,
|
|
ExibirCPFCliente = @ExibirCPFCliente,
|
|
ExibirTelefoneCliente = @ExibirTelefoneCliente,
|
|
ExibirGarantia = @ExibirGarantia,
|
|
DiasGarantiaPadrao = @DiasGarantiaPadrao,
|
|
GerarReciboAutomatico = @GerarReciboAutomatico,
|
|
ExibirValoresOS = @ExibirValoresOS,
|
|
EnviarEmailAutomatico = @EnviarEmailAutomatico,
|
|
EnviarWhatsappAutomatico = @EnviarWhatsappAutomatico,
|
|
ModoEscuro = @ModoEscuro,
|
|
PermitirEdicaoOSFinalizada = @PermitirEdicaoOSFinalizada,
|
|
AtualizadoEm = GETDATE()
|
|
WHERE IdEmpresaConfig = @IdEmpresaConfig
|
|
AND EXISTS (
|
|
SELECT 1 FROM Empresa
|
|
WHERE IdEmpresa = @IdEmpresa AND Ativo = 1
|
|
);";
|
|
|
|
SqlCommand cmd = new SqlCommand(sql, conn);
|
|
AddParametros(cmd, config);
|
|
cmd.Parameters.AddWithValue("@IdEmpresaConfig", config.IdEmpresaConfig);
|
|
|
|
conn.Open();
|
|
int linhas = cmd.ExecuteNonQuery();
|
|
|
|
if (linhas == 0)
|
|
throw new Exception("Não foi possível atualizar.");
|
|
|
|
return true;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region DELETE
|
|
public bool Excluir(int id)
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_connectionString))
|
|
{
|
|
string sql = "DELETE FROM Empresa_config WHERE IdEmpresaConfig = @Id";
|
|
|
|
SqlCommand cmd = new SqlCommand(sql, conn);
|
|
cmd.Parameters.AddWithValue("@Id", id);
|
|
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region GET POR EMPRESA
|
|
public ModeloEmpresaConfig ObterPorEmpresa(int idEmpresa)
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_connectionString))
|
|
{
|
|
string sql = "SELECT * FROM Empresa_config WHERE IdEmpresa = @IdEmpresa";
|
|
|
|
SqlCommand cmd = new SqlCommand(sql, conn);
|
|
cmd.Parameters.AddWithValue("@IdEmpresa", idEmpresa);
|
|
|
|
conn.Open();
|
|
SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
if (dr.Read())
|
|
return Mapear(dr);
|
|
|
|
return null;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region AUXILIARES
|
|
private void AddParametros(SqlCommand cmd, ModeloEmpresaConfig config)
|
|
{
|
|
cmd.Parameters.AddWithValue("@IdEmpresa", config.IdEmpresa);
|
|
cmd.Parameters.AddWithValue("@NomeSistema", config.NomeSistema ?? (object)DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CorPrimaria", config.CorPrimaria ?? (object)DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CorSecundaria", config.CorSecundaria ?? (object)DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@Logo", config.Logo ?? (object)DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@Favicon", config.Favicon ?? (object)DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@ExibirCPFCliente", config.ExibirCPFCliente);
|
|
cmd.Parameters.AddWithValue("@ExibirTelefoneCliente", config.ExibirTelefoneCliente);
|
|
cmd.Parameters.AddWithValue("@ExibirGarantia", config.ExibirGarantia);
|
|
cmd.Parameters.AddWithValue("@DiasGarantiaPadrao", config.DiasGarantiaPadrao);
|
|
cmd.Parameters.AddWithValue("@GerarReciboAutomatico", config.GerarReciboAutomatico);
|
|
cmd.Parameters.AddWithValue("@ExibirValoresOS", config.ExibirValoresOS);
|
|
cmd.Parameters.AddWithValue("@EnviarEmailAutomatico", config.EnviarEmailAutomatico);
|
|
cmd.Parameters.AddWithValue("@EnviarWhatsappAutomatico", config.EnviarWhatsappAutomatico);
|
|
cmd.Parameters.AddWithValue("@ModoEscuro", config.ModoEscuro);
|
|
cmd.Parameters.AddWithValue("@PermitirEdicaoOSFinalizada", config.PermitirEdicaoOSFinalizada);
|
|
}
|
|
public List<ModeloEmpresaConfig> LocalizarTodas()
|
|
{
|
|
List<ModeloEmpresaConfig> lista = new List<ModeloEmpresaConfig>();
|
|
|
|
using (SqlConnection conn = new SqlConnection(_connectionString))
|
|
{
|
|
string sql = "SELECT * FROM Empresa_config";
|
|
|
|
SqlCommand cmd = new SqlCommand(sql, conn);
|
|
|
|
conn.Open();
|
|
SqlDataReader dr = cmd.ExecuteReader();
|
|
|
|
while (dr.Read())
|
|
{
|
|
lista.Add(Mapear(dr));
|
|
}
|
|
}
|
|
|
|
return lista;
|
|
}
|
|
|
|
private ModeloEmpresaConfig Mapear(SqlDataReader dr)
|
|
{
|
|
return new ModeloEmpresaConfig
|
|
{
|
|
IdEmpresaConfig = (int)dr["IdEmpresaConfig"],
|
|
IdEmpresa = (int)dr["IdEmpresa"],
|
|
NomeSistema = dr["NomeSistema"]?.ToString(),
|
|
CorPrimaria = dr["CorPrimaria"]?.ToString(),
|
|
CorSecundaria = dr["CorSecundaria"]?.ToString(),
|
|
Logo = dr["Logo"]?.ToString(),
|
|
Favicon = dr["Favicon"]?.ToString(),
|
|
ExibirCPFCliente = (bool)dr["ExibirCPFCliente"],
|
|
ExibirTelefoneCliente = (bool)dr["ExibirTelefoneCliente"],
|
|
ExibirGarantia = (bool)dr["ExibirGarantia"],
|
|
DiasGarantiaPadrao = (int)dr["DiasGarantiaPadrao"],
|
|
GerarReciboAutomatico = (bool)dr["GerarReciboAutomatico"],
|
|
ExibirValoresOS = (bool)dr["ExibirValoresOS"],
|
|
EnviarEmailAutomatico = (bool)dr["EnviarEmailAutomatico"],
|
|
EnviarWhatsappAutomatico = (bool)dr["EnviarWhatsappAutomatico"],
|
|
ModoEscuro = (bool)dr["ModoEscuro"],
|
|
PermitirEdicaoOSFinalizada = (bool)dr["PermitirEdicaoOSFinalizada"],
|
|
CriadoEm = (DateTime)dr["CriadoEm"],
|
|
AtualizadoEm = (DateTime)dr["AtualizadoEm"]
|
|
};
|
|
}
|
|
public int ObterEmpresaAtivaId()
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_connectionString))
|
|
{
|
|
string sql = @"
|
|
SELECT TOP 1 IdEmpresa
|
|
FROM Empresa
|
|
WHERE Ativo = 1";
|
|
|
|
SqlCommand cmd = new SqlCommand(sql, conn);
|
|
|
|
conn.Open();
|
|
|
|
object result = cmd.ExecuteScalar();
|
|
|
|
if (result == null)
|
|
throw new Exception("Nenhuma empresa ativa encontrada.");
|
|
|
|
return Convert.ToInt32(result);
|
|
}
|
|
}
|
|
#endregion
|
|
} |