public int cadastrar(string strConn, Funcionario func, Usuario user)
        {
            #region Declaração

            funcionarioDAO funcionario = null;

            #endregion

            #region Implementação

            funcionario = new funcionarioDAO();

            return funcionario.insertFuncionario(strConn, func, user);

            #endregion
        }
        public bool Update(string strConn, Funcionario funcionario)
        {
            #region Declaração

             SqlConnection conn = null;
             SqlCommand cmd = null;

             #endregion

             #region Implementação

             try
             {
            conn = new SqlConnection();
            conn.ConnectionString = strConn;

            cmd = new SqlCommand();
            cmd.Connection = conn;
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.CommandText = "sp_update_funcionario";

            /* Parametros da Procedure
             * @idfuncionario INT,
             * @telefone VARCHAR(10),
             * @celular VARCHAR(10),
             * @cargo VARCHAR(20),
             * @rua VARCHAR(50),
             * @casanum INT,
             * @referencia VARCHAR(30),
             * @idcidade INT,
             * @excluido BIT */

            cmd.Parameters.AddWithValue("@idfuncionario", funcionario.Id);
            cmd.Parameters.AddWithValue("@email", funcionario.Email);
            cmd.Parameters.AddWithValue("@telefone", funcionario.Telefone);
            cmd.Parameters.AddWithValue("@celular", funcionario.Celular);
            cmd.Parameters.AddWithValue("@cargo", funcionario.Cargo);
            cmd.Parameters.AddWithValue("@rua", funcionario.Rua);
            cmd.Parameters.AddWithValue("@casanum", funcionario.CasaNumero);
            cmd.Parameters.AddWithValue("@referencia", funcionario.Referencia);
            cmd.Parameters.AddWithValue("@idcidade", funcionario.IdCidade);
            cmd.Parameters.AddWithValue("@excluido", funcionario.Ativo);

            conn.Open();

            cmd.ExecuteNonQuery();

            return true;

             }
             catch (Exception ex)
             {
            throw ex;
             }
             finally
             {
            conn.Close();
            cmd.Dispose();
             }
             #endregion
        }
        public int insertFuncionario(string strConn, Funcionario funcionario, Usuario usuario)
        {
            #region Declaração

             SqlConnection conn = null;
             SqlCommand cmd = null;
             string sql = string.Empty;
             int ID = 0;

             #endregion

             #region Implementação

             conn = new SqlConnection();
             cmd = new SqlCommand();
             try
             {

            conn.ConnectionString = strConn;
            cmd.Connection = conn;
            cmd.CommandType = System.Data.CommandType.StoredProcedure;

            //sql = @"INSERT INTO dbo.Funcionario (nome, dataNascimento, usuario, senha, perfil, email, cpf, rg, ctps, ctpsSerie, telefone, celular, rua, casaNum, idCidade, idEstado, cargo, Referencia)
            //VALUES (@nome, @datanascimento, @usuario, @senha, @perfil, @email, @cpf, @rg, @ctps, @ctpsserie, @telefone, @celular, @rua, @casanum, @idcidade, @idestado, @cargo, @referencia) set @id = @@identity";

            cmd.CommandText = "sp_insert_funcionario";

            cmd.Parameters.AddWithValue("@nome", funcionario.Nome);
            cmd.Parameters.AddWithValue("@datanascimento", funcionario.DataNascimento);
            cmd.Parameters.AddWithValue("@email", funcionario.Email);
            cmd.Parameters.AddWithValue("@cpf", funcionario.Cpf);
            cmd.Parameters.AddWithValue("@rg", funcionario.Rg);
            cmd.Parameters.AddWithValue("@ctps", funcionario.Ctps);
            cmd.Parameters.AddWithValue("@ctpsserie", funcionario.CtpsSerie);
            cmd.Parameters.AddWithValue("@telefone", funcionario.Telefone);
            cmd.Parameters.AddWithValue("@celular", funcionario.Celular);
            cmd.Parameters.AddWithValue("@rua", funcionario.Rua);
            cmd.Parameters.AddWithValue("@casanum", funcionario.CasaNumero);
            cmd.Parameters.AddWithValue("@idcidade", funcionario.IdCidade);
            cmd.Parameters.AddWithValue("@idestado", funcionario.IdEstado);
            cmd.Parameters.AddWithValue("@cargo", funcionario.Cargo);
            cmd.Parameters.AddWithValue("@referencia", funcionario.Referencia);
            cmd.Parameters.AddWithValue("@excluido", funcionario.Ativo);
            cmd.Parameters.Add("@id", 0).Direction = System.Data.ParameterDirection.Output;

            conn.Open();

            cmd.ExecuteNonQuery();

            ID = Convert.ToInt32(cmd.Parameters["@id"].Value);

            if (usuario != null)
            {

               conn.Close();

               cmd = null;
               cmd = new SqlCommand();

               conn.ConnectionString = strConn;
               cmd.Connection = conn;
               cmd.CommandType = System.Data.CommandType.StoredProcedure;

               cmd.CommandText = "sp_insert_usuario";

               cmd.Parameters.AddWithValue("@usuario", usuario.User);
               cmd.Parameters.AddWithValue("@senha", usuario.Senha);
               cmd.Parameters.AddWithValue("@perfil", usuario.Perfil);
               cmd.Parameters.AddWithValue("idfuncionario", ID);
               cmd.Parameters.AddWithValue("@ativo", usuario.Ativo);

               conn.Open();

               cmd.ExecuteNonQuery();

            }

            return ID;

             }
             catch (Exception ex)
             {
            return ID;
             }
             finally
             {
            conn.Close();
             }

             #endregion
        }
        public bool update(string strConn, Funcionario funcio)
        {
            #region Declaração
             funcionarioDAO func = null;

             #endregion

             #region Implementação

             func = new funcionarioDAO();

             return func.Update(strConn, funcio);

             #endregion
        }
        private void btnSalvar_Click(object sender, System.EventArgs e)
        {
            #region Declaração

              funcionarioControler funcionControl = null;
              Funcionario funcionario = null;
              string CPF = string.Empty;
              string Fone = string.Empty;
              string Celular = string.Empty;
              int ID = 0;
              int comparaString = 0;
              #endregion

              #region Implementação

              funcionControl = new funcionarioControler();
              funcionario = new Funcionario();

              CPF = mtbCpf.Text;
              Fone = mtbFone.Text;
              Celular = mtbCelular.Text;

              if (tbNome.Text != "" && CPF != "" && tbRG.Text != "")
              {
            CPF = CPF.Replace(".", "").Replace("/", "").Replace("-", "");
            Fone = Fone.Replace("(", "").Replace(")", "").Replace(" ", "").Replace("-", "");
            Celular = Celular.Replace("(", "").Replace(")", "").Replace(" ", "");

            //funcionario.Id = int.Parse(tbMatricula.Text);
            funcionario.Nome = tbNome.Text;
            funcionario.DataNascimento = dtpNascimento.Text;
            funcionario.Email = tbEmail.Text;
            funcionario.Cpf = CPF;
            funcionario.Rg = tbRG.Text;
            funcionario.Ctps = tbCartProf.Text;
            funcionario.CtpsSerie = tbSerieCart.Text;
            funcionario.Telefone = Fone;
            funcionario.Celular = Celular;
            funcionario.Rua = tbRua.Text;
            if (tbNumero.Text != "")
              funcionario.CasaNumero = int.Parse(tbNumero.Text);
            else
              funcionario.CasaNumero = 0;
            funcionario.Referencia = tbReferencia.Text;
            funcionario.IdCidade = int.Parse(cbCidade.SelectedValue.ToString());
            funcionario.Cidade = cbCidade.Text;
            funcionario.IdEstado = Convert.ToInt32(cbUF.SelectedIndex);
            funcionario.Estado = cbUF.Text;
            funcionario.Cargo = tbCargo.Text;
            funcionario.Ativo = cbxAtivo.Checked;

            if (cbxAtivaUsuario.Checked == true)
            {
              comparaString = tbSenha.Text.CompareTo(tbSenha2.Text);

              if (comparaString == 0) // senhas iguais
              {
            if (cbNivel.Text != "")
            {
              Usuario usuario = new Usuario();

              usuario.User = tbUsuario.Text;
              usuario.Senha = tbSenha.Text;
              usuario.Perfil = cbNivel.Text;
              usuario.Acesso = cbxAtivaUsuario.Checked;
              usuario.Ativo = cbxAtivo.Checked;

              ID = funcionControl.cadastrar(strConn, funcionario, usuario);

            }
            else
              MessageBox.Show("Selecione o Nivel de acesso!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
              }
              else
            MessageBox.Show("As senhas digitadas são diferentes!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
            }
              }
              else
            MessageBox.Show("Alguns campos são Obrigatórios!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);

              ID = funcionControl.cadastrar(strConn, funcionario, null);
              if (ID > 0)
              {
             MessageBox.Show("Cadastrado com secesso! \n A Matricula do funcionário é: " + ID, "Sucesso");
             btnNovo.Enabled = true;
             desabilitaCampos();
             this.Size = new System.Drawing.Size(459, 546);
             tbMatricula.Text = ID.ToString();
              }

              #endregion
        }
        private void btnSalvar_Click(object sender, EventArgs e)
        {
            #region Declaração

             Funcionario funcionario = null;
             funcionarioControler funcioControl = null;
             #endregion

             #region Implementação

             funcionario = new Funcionario();
             funcioControl = new funcionarioControler();

             funcionario.Id = int.Parse(tbMatricula.Text);
             funcionario.Cargo = tbCargo.Text.Trim();
             funcionario.Email = tbEmail.Text.Trim();
             funcionario.Telefone = mtbFone.Text.Replace("(", "").Replace(")", "").Replace("-", "");
             funcionario.Celular = mtbCelular.Text.Replace("(", "").Replace(")", "").Replace("-", "");
             funcionario.IdCidade = int.Parse(cbCidade.SelectedValue.ToString());
             funcionario.Rua = tbRua.Text.Trim();
             funcionario.CasaNumero = int.Parse(tbNumero.Text.Trim());
             funcionario.Referencia = tbReferencia.Text.Trim();
             funcionario.Ativo = cbxExcluir.Checked;

             if (funcioControl.update(strConn, funcionario))
            MessageBox.Show("Alterado com Sucesso", "Sucesso", MessageBoxButtons.OK, MessageBoxIcon.Information);
             else
            MessageBox.Show("Verifique os campos", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Stop);
             #endregion
        }