422 lines
16 KiB
C#
422 lines
16 KiB
C#
using System;
|
|
using System.Data;
|
|
using System.Collections.Generic;
|
|
using Microsoft.Data.SqlClient;
|
|
using MLL;
|
|
|
|
namespace DALL
|
|
{
|
|
public class DALFuncionarios
|
|
{
|
|
private readonly string _conexao;
|
|
|
|
public DALFuncionarios(string conexao)
|
|
{
|
|
_conexao = conexao;
|
|
}
|
|
|
|
#region INSERT
|
|
public bool Inserir(ModeloFuncionarios f)
|
|
{
|
|
try
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_conexao))
|
|
{
|
|
string sql = @"INSERT INTO Funcionarios
|
|
(CODIGO, NOME, PAI, MAE, CPF, CI, CTPS, CNH, CAT_CNH,
|
|
ECIVIL, REGIME, CEP, ENDERECO, ENDNUMERO, BAIRRO, CIDADE, UF,
|
|
BANCO, AGENCIA, CONTA, TELEFONE, PASS,
|
|
MASTERUSER, VENDEDOR, TECNICO, DEMITIDO,
|
|
FTECNICO, FVENDEDOR, FPATH, OBSERV,
|
|
DATA_ADM, DATA_DEM, ANIVER)
|
|
VALUES
|
|
(@CODIGO, @NOME, @PAI, @MAE, @CPF, @CI, @CTPS, @CNH, @CAT_CNH,
|
|
@ECIVIL, @REGIME, @CEP, @ENDERECO, @ENDNUMERO, @BAIRRO, @CIDADE, @UF,
|
|
@BANCO, @AGENCIA, @CONTA, @TELEFONE, @PASS,
|
|
@MASTERUSER, @VENDEDOR, @TECNICO, @DEMITIDO,
|
|
@FTECNICO, @FVENDEDOR, @FPATH, @OBSERV,
|
|
@DATA_ADM, @DATA_DEM, @ANIVER)";
|
|
|
|
using (SqlCommand cmd = new SqlCommand(sql, conn))
|
|
{
|
|
PreencherParametros(cmd, f);
|
|
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region UPDATE
|
|
public bool Alterar(ModeloFuncionarios f)
|
|
{
|
|
try
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_conexao))
|
|
{
|
|
string sql = @"UPDATE Funcionarios SET
|
|
CODIGO=@CODIGO, NOME=@NOME, PAI=@PAI, MAE=@MAE,
|
|
CPF=@CPF, CI=@CI, CTPS=@CTPS, CNH=@CNH, CAT_CNH=@CAT_CNH,
|
|
ECIVIL=@ECIVIL, REGIME=@REGIME,
|
|
CEP=@CEP, ENDERECO=@ENDERECO, ENDNUMERO=@ENDNUMERO,
|
|
BAIRRO=@BAIRRO, CIDADE=@CIDADE, UF=@UF,
|
|
BANCO=@BANCO, AGENCIA=@AGENCIA, CONTA=@CONTA,
|
|
TELEFONE=@TELEFONE, PASS=@PASS,
|
|
MASTERUSER=@MASTERUSER, VENDEDOR=@VENDEDOR,
|
|
TECNICO=@TECNICO, DEMITIDO=@DEMITIDO,
|
|
FTECNICO=@FTECNICO, FVENDEDOR=@FVENDEDOR,
|
|
FPATH=@FPATH, OBSERV=@OBSERV,
|
|
DATA_ADM=@DATA_ADM, DATA_DEM=@DATA_DEM, ANIVER=@ANIVER
|
|
WHERE ID_FUNCIONARIO=@ID";
|
|
|
|
using (SqlCommand cmd = new SqlCommand(sql, conn))
|
|
{
|
|
PreencherParametros(cmd, f);
|
|
cmd.Parameters.AddWithValue("@ID", f.ID_FUNCIONARIO);
|
|
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region DELETE
|
|
public bool Excluir(int id)
|
|
{
|
|
try
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_conexao))
|
|
{
|
|
string sql = "DELETE FROM Funcionarios WHERE ID_FUNCIONARIO=@ID";
|
|
|
|
using (SqlCommand cmd = new SqlCommand(sql, conn))
|
|
{
|
|
cmd.Parameters.AddWithValue("@ID", id);
|
|
|
|
conn.Open();
|
|
return cmd.ExecuteNonQuery() > 0;
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
return false;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region SELECT BY ID
|
|
public ModeloFuncionarios Carregar(int id)
|
|
{
|
|
ModeloFuncionarios f = null;
|
|
|
|
using (SqlConnection conn = new SqlConnection(_conexao))
|
|
{
|
|
string sql = "SELECT * FROM Funcionarios WHERE ID_FUNCIONARIO=@ID";
|
|
|
|
using (SqlCommand cmd = new SqlCommand(sql, conn))
|
|
{
|
|
cmd.Parameters.AddWithValue("@ID", id);
|
|
|
|
conn.Open();
|
|
using (SqlDataReader dr = cmd.ExecuteReader())
|
|
{
|
|
if (dr.Read())
|
|
{
|
|
f = new ModeloFuncionarios();
|
|
PreencherModelo(f, dr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return f;
|
|
}
|
|
#endregion
|
|
|
|
#region SELECT LISTA
|
|
public List<ModeloFuncionarios> Listar()
|
|
{
|
|
List<ModeloFuncionarios> lista = new List<ModeloFuncionarios>();
|
|
|
|
using (SqlConnection conn = new SqlConnection(_conexao))
|
|
{
|
|
string sql = "SELECT * FROM Funcionarios";
|
|
|
|
using (SqlCommand cmd = new SqlCommand(sql, conn))
|
|
{
|
|
conn.Open();
|
|
|
|
using (SqlDataReader dr = cmd.ExecuteReader())
|
|
{
|
|
while (dr.Read())
|
|
{
|
|
ModeloFuncionarios f = new ModeloFuncionarios();
|
|
PreencherModelo(f, dr);
|
|
lista.Add(f);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return lista;
|
|
}//List<ModeloFuncionarios>
|
|
public List<ModeloFuncionarios> LocalizarOtimizado(ModeloFuncionarios filtro)
|
|
{
|
|
List<ModeloFuncionarios> lista = new List<ModeloFuncionarios>();
|
|
|
|
using (SqlConnection conn = new SqlConnection(_conexao))
|
|
{
|
|
string sql = "SELECT * FROM Funcionarios WHERE 1=1 ";
|
|
SqlCommand cmd = new SqlCommand();
|
|
|
|
cmd.Connection = conn;
|
|
|
|
// 🔎 FILTROS DINÂMICOS
|
|
|
|
if (!string.IsNullOrEmpty(filtro.CODIGO))
|
|
{
|
|
sql += " AND CODIGO LIKE @CODIGO";
|
|
cmd.Parameters.AddWithValue("@CODIGO", "%" + filtro.CODIGO + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(filtro.NOME))
|
|
{
|
|
sql += " AND NOME LIKE @NOME";
|
|
cmd.Parameters.AddWithValue("@NOME", "%" + filtro.NOME + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(filtro.CPF))
|
|
{
|
|
sql += " AND CPF = @CPF";
|
|
cmd.Parameters.AddWithValue("@CPF", filtro.CPF);
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(filtro.CIDADE))
|
|
{
|
|
sql += " AND CIDADE LIKE @CIDADE";
|
|
cmd.Parameters.AddWithValue("@CIDADE", "%" + filtro.CIDADE + "%");
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(filtro.UF))
|
|
{
|
|
sql += " AND UF = @UF";
|
|
cmd.Parameters.AddWithValue("@UF", filtro.UF);
|
|
}
|
|
|
|
if (!string.IsNullOrEmpty(filtro.TELEFONE))
|
|
{
|
|
sql += " AND TELEFONE LIKE @TEL";
|
|
cmd.Parameters.AddWithValue("@TEL", "%" + filtro.TELEFONE + "%");
|
|
}
|
|
|
|
// 🔹 BOOL (BIT)
|
|
if (filtro.VENDEDOR)
|
|
{
|
|
sql += " AND VENDEDOR = @VENDEDOR";
|
|
cmd.Parameters.AddWithValue("@VENDEDOR", true);
|
|
}
|
|
|
|
if (filtro.TECNICO)
|
|
{
|
|
sql += " AND TECNICO = @TECNICO";
|
|
cmd.Parameters.AddWithValue("@TECNICO", true);
|
|
}
|
|
|
|
if (filtro.DEMITIDO)
|
|
{
|
|
sql += " AND DEMITIDO = @DEMITIDO";
|
|
cmd.Parameters.AddWithValue("@DEMITIDO", true);
|
|
}
|
|
|
|
// 🔹 DATAS
|
|
if (filtro.DATA_ADM.HasValue)
|
|
{
|
|
sql += " AND DATA_ADM = @DATA_ADM";
|
|
cmd.Parameters.AddWithValue("@DATA_ADM", filtro.DATA_ADM.Value);
|
|
}
|
|
|
|
if (filtro.DATA_DEM.HasValue)
|
|
{
|
|
sql += " AND DATA_DEM = @DATA_DEM";
|
|
cmd.Parameters.AddWithValue("@DATA_DEM", filtro.DATA_DEM.Value);
|
|
}
|
|
|
|
// 🔥 ORDENAÇÃO (importante)
|
|
sql += " ORDER BY NOME";
|
|
|
|
cmd.CommandText = sql;
|
|
|
|
conn.Open();
|
|
|
|
using (SqlDataReader dr = cmd.ExecuteReader())
|
|
{
|
|
while (dr.Read())
|
|
{
|
|
ModeloFuncionarios f = new ModeloFuncionarios();
|
|
PreencherModelo(f, dr);
|
|
lista.Add(f);
|
|
}
|
|
}
|
|
}
|
|
|
|
return lista;
|
|
}//LocalizarOtimizado
|
|
public string ObterNomePorCodigo(string codigo)
|
|
{
|
|
try
|
|
{
|
|
using (SqlConnection conn = new SqlConnection(_conexao))
|
|
{
|
|
string sql = "SELECT NOME FROM Funcionarios WHERE CODIGO = @CODIGO";
|
|
|
|
using (SqlCommand cmd = new SqlCommand(sql, conn))
|
|
{
|
|
cmd.Parameters.AddWithValue("@CODIGO", codigo);
|
|
|
|
conn.Open();
|
|
|
|
object result = cmd.ExecuteScalar();
|
|
|
|
return result != null ? result.ToString() : null;
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
return null;
|
|
}
|
|
}//ObterNomePorCodigo
|
|
public ModeloFuncionarios CarregarPorCodigo(string codigo)
|
|
{
|
|
ModeloFuncionarios f = null;
|
|
|
|
using (SqlConnection conn = new SqlConnection(_conexao))
|
|
{
|
|
string sql = "SELECT * FROM Funcionarios WHERE CODIGO = @CODIGO";
|
|
|
|
using (SqlCommand cmd = new SqlCommand(sql, conn))
|
|
{
|
|
cmd.Parameters.AddWithValue("@CODIGO", codigo);
|
|
|
|
conn.Open();
|
|
|
|
using (SqlDataReader dr = cmd.ExecuteReader())
|
|
{
|
|
if (dr.Read())
|
|
{
|
|
f = new ModeloFuncionarios();
|
|
PreencherModelo(f, dr);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
return f;
|
|
}//CarregarPorCodigo
|
|
#endregion
|
|
|
|
#region PARAMETROS
|
|
private void PreencherParametros(SqlCommand cmd, ModeloFuncionarios f)
|
|
{
|
|
cmd.Parameters.AddWithValue("@CODIGO", (object?)f.CODIGO ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@NOME", (object?)f.NOME ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@PAI", (object?)f.PAI ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@MAE", (object?)f.MAE ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CPF", (object?)f.CPF ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CI", (object?)f.CI ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CTPS", (object?)f.CTPS ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CNH", (object?)f.CNH ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CAT_CNH", (object?)f.CAT_CNH ?? DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@ECIVIL", (object?)f.ECIVIL ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@REGIME", (object?)f.REGIME ?? DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@CEP", (object?)f.CEP ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@ENDERECO", (object?)f.ENDERECO ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@ENDNUMERO", (object?)f.ENDNUMERO ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@BAIRRO", (object?)f.BAIRRO ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CIDADE", (object?)f.CIDADE ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@UF", (object?)f.UF ?? DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@BANCO", (object?)f.BANCO ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@AGENCIA", (object?)f.AGENCIA ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@CONTA", (object?)f.CONTA ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@TELEFONE", (object?)f.TELEFONE ?? DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@PASS", (object?)f.PASS ?? DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@MASTERUSER", f.MASTERUSER);
|
|
cmd.Parameters.AddWithValue("@VENDEDOR", f.VENDEDOR);
|
|
cmd.Parameters.AddWithValue("@TECNICO", f.TECNICO);
|
|
cmd.Parameters.AddWithValue("@DEMITIDO", f.DEMITIDO);
|
|
|
|
cmd.Parameters.AddWithValue("@FTECNICO", (object?)f.FTECNICO ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@FVENDEDOR", (object?)f.FVENDEDOR ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@FPATH", (object?)f.FPATH ?? DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@OBSERV", (object?)f.OBSERV ?? DBNull.Value);
|
|
|
|
cmd.Parameters.AddWithValue("@DATA_ADM", f.DATA_ADM ?? (object)DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@DATA_DEM", f.DATA_DEM ?? (object)DBNull.Value);
|
|
cmd.Parameters.AddWithValue("@ANIVER", f.ANIVER ?? (object)DBNull.Value);
|
|
}
|
|
#endregion
|
|
|
|
#region MODEL
|
|
private void PreencherModelo(ModeloFuncionarios f, SqlDataReader dr)
|
|
{
|
|
f.ID_FUNCIONARIO = Convert.ToInt32(dr["ID_FUNCIONARIO"]);
|
|
f.CODIGO = dr["CODIGO"]?.ToString();
|
|
f.NOME = dr["NOME"]?.ToString();
|
|
f.PAI = dr["PAI"]?.ToString();
|
|
f.MAE = dr["MAE"]?.ToString();
|
|
f.CPF = dr["CPF"]?.ToString();
|
|
f.CI = dr["CI"]?.ToString();
|
|
f.CTPS = dr["CTPS"]?.ToString();
|
|
f.CNH = dr["CNH"]?.ToString();
|
|
f.CAT_CNH = dr["CAT_CNH"]?.ToString();
|
|
f.ECIVIL = dr["ECIVIL"]?.ToString();
|
|
f.REGIME = dr["REGIME"]?.ToString();
|
|
|
|
f.CEP = dr["CEP"]?.ToString();
|
|
f.ENDERECO = dr["ENDERECO"]?.ToString();
|
|
f.ENDNUMERO = dr["ENDNUMERO"]?.ToString();
|
|
f.BAIRRO = dr["BAIRRO"]?.ToString();
|
|
f.CIDADE = dr["CIDADE"]?.ToString();
|
|
f.UF = dr["UF"]?.ToString();
|
|
|
|
f.BANCO = dr["BANCO"]?.ToString();
|
|
f.AGENCIA = dr["AGENCIA"]?.ToString();
|
|
f.CONTA = dr["CONTA"]?.ToString();
|
|
f.TELEFONE = dr["TELEFONE"]?.ToString();
|
|
f.PASS = dr["PASS"]?.ToString();
|
|
|
|
f.MASTERUSER = dr["MASTERUSER"] != DBNull.Value && Convert.ToBoolean(dr["MASTERUSER"]);
|
|
f.VENDEDOR = dr["VENDEDOR"] != DBNull.Value && Convert.ToBoolean(dr["VENDEDOR"]);
|
|
f.TECNICO = dr["TECNICO"] != DBNull.Value && Convert.ToBoolean(dr["TECNICO"]);
|
|
f.DEMITIDO = dr["DEMITIDO"] != DBNull.Value && Convert.ToBoolean(dr["DEMITIDO"]);
|
|
|
|
f.FTECNICO = dr["FTECNICO"]?.ToString();
|
|
f.FVENDEDOR = dr["FVENDEDOR"]?.ToString();
|
|
f.FPATH = dr["FPATH"]?.ToString();
|
|
f.OBSERV = dr["OBSERV"]?.ToString();
|
|
|
|
f.DATA_ADM = dr["DATA_ADM"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(dr["DATA_ADM"]);
|
|
f.DATA_DEM = dr["DATA_DEM"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(dr["DATA_DEM"]);
|
|
f.ANIVER = dr["ANIVER"] == DBNull.Value ? null : (DateTime?)Convert.ToDateTime(dr["ANIVER"]);
|
|
}
|
|
#endregion
|
|
}
|
|
} |