using System; using DALL; using MLL; namespace BLL { public class BLLFuncionarios { private DALFuncionarios dal; public BLLFuncionarios(string conexao) { dal = new DALFuncionarios(conexao); } #region INSERT public bool Inserir(ModeloFuncionarios f) { string erro = Validar(f); if (!string.IsNullOrEmpty(erro)) throw new Exception(erro); return dal.Inserir(f); } #endregion #region UPDATE public bool Alterar(ModeloFuncionarios f) { if (f.ID_FUNCIONARIO <= 0) throw new Exception("Funcionário inválido."); string erro = Validar(f); if (!string.IsNullOrEmpty(erro)) throw new Exception(erro); return dal.Alterar(f); } #endregion #region DELETE public bool Excluir(int id) { if (id <= 0) throw new Exception("ID inválido."); return dal.Excluir(id); } #endregion public ModeloFuncionarios CarregarModeloFuncionario(int id) { return dal.Carregar(id); }//CarregarModeloFuncionario public List Listar() { return dal.Listar(); }//List public List LocalizarOtimizado(ModeloFuncionarios filtro) { return dal.LocalizarOtimizado(filtro); }//List LocalizarOtimizado(ModeloFuncionarios filtro) public string ObterNomePorCodigo(string codigo) { return dal.ObterNomePorCodigo(codigo); }//ObterNomePorCodigo public ModeloFuncionarios CarregarPorCodigo(string codigo) { if (string.IsNullOrWhiteSpace(codigo)) return null; return dal.CarregarPorCodigo(codigo); }//CarregarPorCodigo #region VALIDAÇÃO private string Validar(ModeloFuncionarios f) { if (f == null) return "Objeto funcionário inválido."; if (string.IsNullOrWhiteSpace(f.NOME)) return "Nome é obrigatório."; // 🔥 LIMPA CPF antes de validar f.CPF = LimparNumeros(f.CPF); if (!string.IsNullOrEmpty(f.CPF)) { if (f.CPF.Length != 11) return "CPF deve conter 11 dígitos."; } return null; } private string LimparNumeros(string texto) { if (string.IsNullOrWhiteSpace(texto)) return texto; return new string(texto.Where(char.IsDigit).ToArray()); } #endregion #region AUX private bool SomenteNumeros(string texto) { foreach (char c in texto) { if (!char.IsDigit(c)) return false; } return true; } #endregion } }