private void butFuncionario_Click(object sender, EventArgs e)
 {
     this.Hide();
     funcionario funcionario = new funcionario();
     funcionario.Show();
 }
        private void Actualizar_Click(object sender, EventArgs e)
        {
            if (panelCaixasTexto.Enabled)
            {
                nIFTextBox.Enabled = false;

                if (verificaCaixasTexto(sender, e) == false)
                {
                    MessageBox.Show("Todos os campos devem estar preenchidos!", "Verificação");
                    return;
                }

                SqlConnection conn = Global.Conn;
                SqlCommand cmd = new SqlCommand("Spupdateidentificacao", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("NIF", int.Parse(nIFTextBox.Text));
                cmd.Parameters.AddWithValue("nTelefone", int.Parse(nTelefoneTextBox.Text));
                cmd.Parameters.AddWithValue("nome", nomeTextBox.Text);
                cmd.Parameters.AddWithValue("dataNascimento", DateTime.Parse(dataNascimentoDateTimePicker.Text));
                cmd.Parameters.AddWithValue("país", paísTextBox.Text);
                cmd.Parameters.AddWithValue("localidade", localidadeTextBox.Text);
                cmd.Parameters.AddWithValue("endereco", enderecoTextBox.Text);
                cmd.Parameters.AddWithValue("codPostal", codPostalTextBox.Text);
                cmd.Parameters.AddWithValue("gênero", gêneroTextBox.Text);
                cmd.Parameters.AddWithValue("idade", int.Parse(idadeTextBox.Text));

                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao actualizar identificação!\n " + ex.Message);
                    return;
                }
                finally
                {
                    conn.Close();
                }

                conn = Global.Conn;
                cmd = new SqlCommand("Spupdatefuncionario", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("NIF", int.Parse(nIFTextBox.Text));
                cmd.Parameters.AddWithValue("idFuncionario", int.Parse(idFuncionarioTextBox.Text));
                cmd.Parameters.AddWithValue("horarioT", horarioTTextBox.Text);
                cmd.Parameters.AddWithValue("funcao", funcaoTextBox.Text);
                cmd.Parameters.AddWithValue("salario", SqlMoney.Parse(salarioTextBox.Text));
                cmd.Parameters.AddWithValue("balcaoTrabalho", balcaoTrabalhoTextBox.Text);
                cmd.Parameters.AddWithValue("nbalcao", nbalcaoTextBox.Text);

                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao actualizar funcionário!\n " + ex.Message);
                    return;
                }
                finally
                {
                    conn.Close();
                }

                panelCaixasTexto.Enabled = false;
                nIFTextBox.Enabled = true;
                butActualizar.Text = "Actualizar";
                funcionario funcionario = new funcionario();
                this.Close();
                funcionario.Show();
            }
            else
            {
                nIFTextBox.Enabled = false;
                panelCaixasTexto.Enabled = true;
                butActualizar.Text = "Guardar";
                butCancelar.Visible = true;
                butInserir.Enabled = false;
                butEliminar.Enabled = false;
            }
        }
        private void Eliminar_Click(object sender, EventArgs e)
        {
            if (butEliminar.Text == "Confirmar")
            {
                SqlConnection conn = Global.Conn;
                SqlCommand cmd = new SqlCommand("Deletefuncionario", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("NIF", int.Parse(nIFTextBox.Text));
                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao eliminar funcionário! Antes de eliminar o funcionário deve em primeiro lugar eliminar as operações associadas ao funcionário.\n " + ex.Message);
                    return;
                }
                finally
                {
                    conn.Close();
                }

                conn = Global.Conn;
                cmd = new SqlCommand("Deleteidentificacao", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("NIF", int.Parse(nIFTextBox.Text));
                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao eliminar identificação!\n " + ex.Message);
                    return;
                }
                finally
                {
                    conn.Close();
                }

                butEliminar.Text = "Eliminar";
                funcionario funcionario = new funcionario();
                this.Close();
                funcionario.Show();
            }
            else
            {
                butEliminar.Text = "Confirmar";
                butCancelar.Visible = true;
                butInserir.Enabled = false;
                butActualizar.Enabled = false;
            }
        }
        private void Inserir_Click(object sender, EventArgs e)
        {
            if (panelCaixasTexto.Enabled)
            {
                if (verificaCaixasTexto(sender, e) == false)
                {
                    MessageBox.Show("Todos os campos devem estar preenchidos!", "Verificação");
                    return;
                }

                if (Global.exists(sender, e, "identificacao", "NIF", nIFTextBox.Text))
                {
                    MessageBox.Show("O campo NIF deve ser único!", "Verificação");
                    return;
                }

                int newIDFuncionario = Global.getLastID(sender, e, "funcionario", "idFuncionario");

                SqlConnection conn = Global.Conn;
                SqlCommand cmd = new SqlCommand("Spinsertidentificacao", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("NIF", int.Parse(nIFTextBox.Text));
                cmd.Parameters.AddWithValue("nTelefone", int.Parse(nTelefoneTextBox.Text));
                cmd.Parameters.AddWithValue("nome", nomeTextBox.Text);
                cmd.Parameters.AddWithValue("dataNascimento", DateTime.Parse(dataNascimentoDateTimePicker.Text));
                cmd.Parameters.AddWithValue("país", paísTextBox.Text);
                cmd.Parameters.AddWithValue("localidade", localidadeTextBox.Text);
                cmd.Parameters.AddWithValue("endereco", enderecoTextBox.Text);
                cmd.Parameters.AddWithValue("codPostal", codPostalTextBox.Text);
                cmd.Parameters.AddWithValue("gênero", gêneroTextBox.Text);
                cmd.Parameters.AddWithValue("idade", int.Parse(idadeTextBox.Text));

                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao inserir identificação!\n " + ex.Message);
                    return;
                }
                finally
                {
                    conn.Close();
                }

                conn = Global.Conn;
                cmd = new SqlCommand("Spinsertfuncionario", conn);
                cmd.CommandType = CommandType.StoredProcedure;
                cmd.Parameters.AddWithValue("NIF", int.Parse(nIFTextBox.Text));
                cmd.Parameters.AddWithValue("idFuncionario", int.Parse(idFuncionarioTextBox.Text));
                cmd.Parameters.AddWithValue("horarioT", horarioTTextBox.Text);
                cmd.Parameters.AddWithValue("funcao", funcaoTextBox.Text);
                cmd.Parameters.AddWithValue("salario", SqlMoney.Parse(salarioTextBox.Text));
                cmd.Parameters.AddWithValue("balcaoTrabalho", balcaoTrabalhoTextBox.Text);
                cmd.Parameters.AddWithValue("nbalcao", nbalcaoTextBox.Text);

                try
                {
                    conn.Open();
                    cmd.ExecuteNonQuery();
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro ao inserir funcionário!\n " + ex.Message);
                    return;
                }
                finally
                {
                    conn.Close();
                }

                panelCaixasTexto.Enabled = false;
                butInserir.Text = "Inserir";
                funcionario funcionario = new funcionario();
                this.Close();
                funcionario.Show();
            }
            else
            {
                //nBalcaoTextBox.Text = Global.getLastID(sender, e, "balcao", "nbalcao").ToString();
                //ntelefoneTextBox.Text = "";
                //nomeTextBox.Text = "";
                //horarioTextBox.Text = "";
                //paísTextBox.Text = "";
                //localidadeTextBox.Text = "";
                //enderecoTextBox.Text = "";
                //codPostalTextBox.Text = "";
                //servicosTextBox.Text = "";
                //faxTextBox.Text = "";

                int newIDFuncionario = Global.getLastID(sender, e, "funcionario", "idFuncionario");

                //idClienteTextBox.Text = newIDCliente.ToString();

                panelCaixasTexto.Enabled = true;
                butInserir.Text = "Guardar";
                butCancelar.Visible = true;
                butActualizar.Enabled = false;
                butEliminar.Enabled = false;
            }
        }
 private void butCancelar_Click(object sender, EventArgs e)
 {
     funcionario funcionario = new funcionario();
     this.Close();
     funcionario.Show();
 }