public override bool Atualizar()
        {
            var result = MessageBox.Show("Deseja realmente atualizar o cadastro deste funcionario?", "Atualização de Dados", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.Yes)
            {

                FuncionariosDTO dto = new FuncionariosDTO();
                dto.FUNC_NOME = txtNome.Text;
                dto.FUNC_DATANASC = DateTime.Parse(dtpDataNascimento.Text);
                dto.FUNC_CPF = mtbCpf.Text;
                dto.SET_ID = int.Parse(cbSetId.SelectedValue.ToString());
                dto.FUNC_EMAIL = txtEmail.Text;
                dto.FUNC_ENDERECO = txtEndereco.Text;
                dto.FUNC_BAIRRO = txtBairro.Text;
                dto.FUNC_CIDADE = txtCidade.Text;
                dto.FUNC_ESTADO = cbEstado.SelectedText;
                dto.FUNC_TELEFONE = int.Parse(txttelefone.Text);
                dto.FUNC_SALARIO = double.Parse(txtSalario.Text);

                bll.Atualizar(dto);
                CarregaGrid();

                return true;

            }

            return false;
        }
        public void Atualizar(FuncionariosDTO func)
        {
            try
            {
                ConexaoDAL conex = new ConexaoDAL();
                conex.Conectar();

                SqlCommand commando = new SqlCommand();
                commando.Connection = conex.Conexao;

                commando.CommandText = "UPDATE FUNCIONARIOS SET FUNC_CPF = @FUNC_CPF, SET_ID = @SET_ID, FUNC_NOME = @FUNC_NOME, FUNC_DATANASC = @FUNC_DATANASC, FUNC_EMAIL = @FUNC_EMAIL, FUNC_ENDERECO = @FUNC_ENDERECO, FUNC_BAIRRO = @FUNC_BAIRRO, FUNC_CIDADE = @FUNC_CIDADE, FUNC_ESTADO = @FUNC_ESTADO, FUNC_TELEFONE = @FUNC_TELEFONE, FUNC_SALARIO = @FUNC_SALARIO WHERE FUNC_CPF = @FUNC_CPF";

                commando.Parameters.Add("@FUNC_CPF", SqlDbType.VarChar, 15);
                commando.Parameters["@FUNC_CPF"].Value = func.FUNC_CPF;

                commando.Parameters.Add("@SET_ID", SqlDbType.Int);
                commando.Parameters["@SET_ID"].Value = func.SET_ID;

                commando.Parameters.Add("@FUNC_NOME", SqlDbType.VarChar, 100);
                commando.Parameters["@FUNC_NOME"].Value = func.FUNC_NOME;

                commando.Parameters.Add("@FUNC_DATANASC", SqlDbType.Date);
                commando.Parameters["@FUNC_DATANASC"].Value = func.FUNC_DATANASC;

                commando.Parameters.Add("@FUNC_EMAIL", SqlDbType.VarChar, 50);
                commando.Parameters["@FUNC_EMAIL"].Value = func.FUNC_EMAIL;

                commando.Parameters.Add("@FUNC_ENDERECO", SqlDbType.VarChar, 100);
                commando.Parameters["@FUNC_ENDERECO"].Value = func.FUNC_ENDERECO;

                commando.Parameters.Add("@FUNC_BAIRRO", SqlDbType.VarChar, 100);
                commando.Parameters["@FUNC_BAIRRO"].Value = func.FUNC_BAIRRO;

                commando.Parameters.Add("@FUNC_CIDADE", SqlDbType.VarChar, 100);
                commando.Parameters["@FUNC_CIDADE"].Value = func.FUNC_CIDADE;

                commando.Parameters.Add("@FUNC_ESTADO", SqlDbType.Char, 2);
                commando.Parameters["@FUNC_ESTADO"].Value = func.FUNC_ESTADO;

                commando.Parameters.Add("@FUNC_TELEFONE", SqlDbType.Decimal);
                commando.Parameters["@FUNC_TELEFONE"].Value = func.FUNC_TELEFONE;

                commando.Parameters.Add("@FUNC_SALARIO", SqlDbType.Float);
                commando.Parameters["@FUNC_SALARIO"].Value = func.FUNC_SALARIO;

                commando.ExecuteNonQuery();

                conex.Desconectar();

            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message);

            }
        }
        public override bool Salvar()
        {
            string cpf;

            if (txtNome.Text ==" " || dtpDataNascimento.Text ==" "  || mtbCpf.Text =="" || cbSetId.Text =="" || txtEmail.Text =="" || txtEndereco.Text =="" || txtBairro.Text =="" || txtCidade.Text =="" || cbEstado.Text =="" || txttelefone.Text == "" || txtSalario.Text == "")
            {

                MessageBox.Show("Preencha todos os campos.", "Erro", MessageBoxButtons.OK, MessageBoxIcon.Error);

            }
            if (CadFuncionarioBLL.ValidaTelefone(txttelefone.Text) == false)
            {
                MessageBox.Show("Telefone esta  em um formato invalido!");

            }

            else
            {
                FuncionariosDTO dto = new FuncionariosDTO();

                dto.FUNC_NOME = txtNome.Text;
                dto.FUNC_DATANASC = DateTime.Parse(dtpDataNascimento.Text);
                dto.FUNC_CPF = mtbCpf.Text;
                dto.SET_ID = int.Parse(cbSetId.SelectedValue.ToString());
                dto.FUNC_EMAIL = txtEmail.Text;
                dto.FUNC_ENDERECO = txtEndereco.Text;
                dto.FUNC_BAIRRO = txtBairro.Text;
                dto.FUNC_CIDADE = txtCidade.Text;
                dto.FUNC_ESTADO = cbEstado.Text;
                dto.FUNC_TELEFONE = int.Parse(txttelefone.Text);
                dto.FUNC_SALARIO = double.Parse(txtSalario.Text);

                cpf = mtbCpf.Text;

                if (bll.VerificaDados(cpf) == false)
                {
                    MessageBox.Show("CPF ja cadastrado!");
                }
                else
                {

                    bll.Salvar(dto);
                    CarregaGrid();
                    return true;
                }

            }
            return false;
        }
        public void Salvar(FuncionariosDTO func)
        {
            try
            {
                con = new ConexaoDAL();
                con.Conectar();

                SqlCommand commando = new SqlCommand();
                commando.Connection = con.Conexao;

                commando.CommandText = "INSERT INTO FUNCIONARIOS(FUNC_CPF,SET_ID,FUNC_NOME,FUNC_DATANASC,FUNC_EMAIL,FUNC_ENDERECO,FUNC_BAIRRO,FUNC_CIDADE,FUNC_ESTADO,FUNC_TELEFONE,FUNC_SALARIO) VALUES (@FUNC_CPF,@SET_ID,@FUNC_NOME,@FUNC_DATANASC,@FUNC_EMAIL,@FUNC_ENDERECO,@FUNC_BAIRRO,@FUNC_CIDADE,@FUNC_ESTADO,@FUNC_TELEFONE,@FUNC_SALARIO)";

                commando.Parameters.Add("@FUNC_CPF", SqlDbType.VarChar, 15);
                commando.Parameters["@FUNC_CPF"].Value = func.FUNC_CPF;

                commando.Parameters.Add("@SET_ID", SqlDbType.Int);
                commando.Parameters["@SET_ID"].Value = func.SET_ID;

                commando.Parameters.Add("@FUNC_NOME", SqlDbType.VarChar, 100);
                commando.Parameters["@FUNC_NOME"].Value = func.FUNC_NOME;

                commando.Parameters.Add("@FUNC_DATANASC", SqlDbType.Date);
                commando.Parameters["@FUNC_DATANASC"].Value = func.FUNC_DATANASC;

                commando.Parameters.Add("@FUNC_EMAIL", SqlDbType.VarChar, 50);
                commando.Parameters["@FUNC_EMAIL"].Value = func.FUNC_EMAIL;

                commando.Parameters.Add("@FUNC_ENDERECO", SqlDbType.VarChar, 100);
                commando.Parameters["@FUNC_ENDERECO"].Value = func.FUNC_ENDERECO;

                commando.Parameters.Add("@FUNC_BAIRRO", SqlDbType.VarChar, 100);
                commando.Parameters["@FUNC_BAIRRO"].Value = func.FUNC_BAIRRO;

                commando.Parameters.Add("@FUNC_CIDADE", SqlDbType.VarChar, 100);
                commando.Parameters["@FUNC_CIDADE"].Value = func.FUNC_CIDADE;

                commando.Parameters.Add("@FUNC_ESTADO", SqlDbType.Char, 2);
                commando.Parameters["@FUNC_ESTADO"].Value = func.FUNC_ESTADO;

                commando.Parameters.Add("@FUNC_TELEFONE", SqlDbType.Decimal);
                commando.Parameters["@FUNC_TELEFONE"].Value = func.FUNC_TELEFONE;

                commando.Parameters.Add("@FUNC_SALARIO", SqlDbType.Float);
                commando.Parameters["@FUNC_SALARIO"].Value = func.FUNC_SALARIO;

                commando.ExecuteNonQuery();

                con.Desconectar();

            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message);

            }
        }
        public void Excluir(FuncionariosDTO func)
        {
            try
            {
                con = new ConexaoDAL();
                con.Conectar();

                SqlCommand commando = new SqlCommand();
                commando.Connection = con.Conexao;

                commando.CommandText = "DELETE FROM FUNCIONARIOS WHERE FUNC_CPF = @FUNC_CPF ";
                commando.Parameters.Add("@FUNC_CPF", SqlDbType.VarChar);
                commando.Parameters["@FUNC_CPF"].Value = func.FUNC_CPF;

                commando.ExecuteNonQuery();

                con.Desconectar();

            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message);

            }
        }