public override void Alterar()
        {
            this.txtPesquisa.Clear();
            //Foca grid
            this.dgDados.Focus();
            //Verifica se há linhas na grid
            if (this.dgDados.Rows.Count > 0)
            {
                //Verifica se a linha esta selecionada
                if (this.dgDados.CurrentRow.Cells[2].Selected | this.dgDados.CurrentRow.Cells[3].Selected |
                    this.dgDados.CurrentRow.Cells[4].Selected | this.dgDados.CurrentRow.Cells[6].Selected)
                {
                    //Tratamento de erros
                    try
                    {
                        //Obtendo dados da ficha de avaliacao
                        this.nFichaDeAvaliacao = new FichaDeAvaliacao();

                        Paciente pacienteTemp = new Paciente();
                        this.nFichaDeAvaliacao.id              = Convert.ToInt32(this.dgDados.CurrentRow.Cells[0].Value.ToString());
                        pacienteTemp.id                        = Convert.ToInt32(this.dgDados.CurrentRow.Cells[1].Value.ToString());
                        this.nFichaDeAvaliacao.paciente        = pacienteTemp;
                        this.nFichaDeAvaliacao.dataDaAvaliacao =
                            Convert.ToDateTime(this.dgDados.CurrentRow.Cells[3].Value.ToString());
                        this.nFichaDeAvaliacao.dataProxAvaliacao =
                            Convert.ToDateTime(this.dgDados.CurrentRow.Cells[4].Value.ToString());
                        this.nFichaDeAvaliacao.diasDeAula       = this.dgDados.CurrentRow.Cells[5].Value.ToString();
                        this.nFichaDeAvaliacao.dataDeVencimento =
                            Convert.ToDateTime(this.dgDados.CurrentRow.Cells[6].Value.ToString());
                        this.nFichaDeAvaliacao.diagnostico = this.dgDados.CurrentRow.Cells[7].Value.ToString();
                        this.nFichaDeAvaliacao.objetivo    = this.dgDados.CurrentRow.Cells[8].Value.ToString();
                        this.nFichaDeAvaliacao.conduta     = this.dgDados.CurrentRow.Cells[9].Value.ToString();

                        //Ocultando colunas
                        this.dgDados.Columns[0].Visible = false;
                        this.dgDados.Columns[1].Visible = false;

                        //Direcionando
                        FormFichaDeAvaliacaoCadastro form = new FormFichaDeAvaliacaoCadastro(this.nSessao, this.nFichaDeAvaliacao.id, false, this.nFichaDeAvaliacao);
                        form.ShowDialog(this);
                        this.preencheGrid();
                    }
                    //Atualiza grid
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message, "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                    }
                }
                else
                {
                    MessageBox.Show("Selecione a ficha de avaliação que deseja alterar!", "Aviso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            else
            {
                MessageBox.Show("Não há ficha de avaliação cadastradas para alterar!", "Aviso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }
            //base.Alterar();
        }
        /// <summary>
        /// Alterar ficha de avaliacao.
        /// </summary>
        /// <param name="ficha">Objeto com dados.</param>
        /// <returns>Retorna true se a ficha foi alterada se não false.</returns>
        public Boolean alterar(FichaDeAvaliacao ficha)
        {
            //Obtendo dados para conexao
            Boolean retorno = false;

            this.connMysql.Open();
            this.transacaoMysql           = this.connMysql.BeginTransaction();
            this.comandoMysql             = this.connMysql.CreateCommand();
            this.comandoMysql.Transaction = this.transacaoMysql;
            this.comandoMysql.Connection  = this.connMysql;

            //Tratamento de excecoes.
            try
            {
                this.comandoMysql.CommandText = "UPDATE " + FichaDeAvaliacao.entidade + " SET paciente_id = " + ficha.paciente.id +
                                                ", data_da_avaliacao = '" + ficha.dataDaAvaliacao.ToString("yyyy/MM/dd") + "', data_prox_avaliacao = '" + ficha.dataProxAvaliacao.ToString("yyyy/MM/dd") +
                                                "', dias_de_aula = '" + ficha.diasDeAula + "', data_de_vencimento = '" + ficha.dataDeVencimento.ToString("yyyy/MM/dd") +
                                                "', diagnostico = '" + ficha.diagnostico + "', objetivo = '" + ficha.objetivo + "', conduta = '" + ficha.conduta +
                                                "' WHERE id = " + ficha.id + ";";

                //Executando comando SQL.
                this.comandoMysql.ExecuteNonQuery();

                //Comitando transacao.
                this.transacaoMysql.Commit();

                //Retorno.
                retorno = true;
            }
            catch (MySqlException ex)
            {
                this.transacaoMysql.Rollback();//Retorna ao ponto inicial
                throw new Exception("Não foi possível alterar o cadastro!", ex);
            }
            finally
            {
                //Finalizando operacao.
                this.connMysql.Close();
                this.comandoMysql   = null;
                this.transacaoMysql = null;
            }
            return(retorno);
        }
        /// <summary>
        /// Cadastrar ficha de avaliação.
        /// </summary>
        /// <param name="ficha">Objeto com dados</param>
        /// <returns>Retorna true se a Ficha de avalicao for cadastrada se não false.</returns>
        public Boolean cadastrar(FichaDeAvaliacao ficha)
        {
            //Obtendo dados para conexao
            Boolean retorno = false;

            this.connMysql.Open();
            this.transacaoMysql           = this.connMysql.BeginTransaction();
            this.comandoMysql             = this.connMysql.CreateCommand();
            this.comandoMysql.Transaction = this.transacaoMysql;
            this.comandoMysql.Connection  = this.connMysql;

            //Tratamento de excecoes
            try
            {
                this.comandoMysql.CommandText = "INSERT INTO " + FichaDeAvaliacao.entidade + "(paciente_id, data_da_avaliacao, " +
                                                "data_prox_avaliacao, dias_de_aula, data_de_vencimento, diagnostico, objetivo, conduta) VALUES(" +
                                                ficha.paciente.id + ", '" + ficha.dataDaAvaliacao.ToString("yyyy/MM/dd") + "', '" + ficha.dataProxAvaliacao.ToString("yyyy/MM/dd") + "', '" + ficha.diasDeAula +
                                                "', '" + ficha.dataDeVencimento.ToString("yyyy/MM/dd") + "', '" + ficha.diagnostico + "', '" + ficha.objetivo +
                                                "', '" + ficha.conduta + "');";

                //Executando o comando.
                this.comandoMysql.ExecuteNonQuery();

                //Comitando a trasacao.
                this.transacaoMysql.Commit();

                //Retorno
                retorno = true;
            }
            catch (MySqlException ex)
            {
                this.transacaoMysql.Rollback(); //Retorna ao ponto inicial;
                throw new Exception("Não possível realizar o cadastro!", ex);
            }
            finally
            {
                //Finaliza operacao.
                this.connMysql.Close();
                this.transacaoMysql = null;
                this.comandoMysql   = null;
            }
            return(retorno);
        }
 /// <summary>
 /// Construtor
 /// </summary>
 /// <param name="sessao">Objeto sessão</param>
 /// <param name="id">Identificação do cadastro</param>
 /// <param name="Visualizar">Boolean Visualizar</param>
 /// <param name="objCliente">Objeto com dados da ficha de avaliacao/param>
 public FormFichaDeAvaliacaoCadastro(Object sessao, int id, Boolean visualizar, object objFichaDeAvaliacao)
 {
     InitializeComponent();
     //Globais
     this.nSessao               = (Sessao)sessao;
     this.nUtil                 = new Utils();
     this.nFichaDeAvaliacao     = new FichaDeAvaliacao();
     this.nFichaDeAvaliacao.id  = id;
     this.daoPaciente           = new PacienteDAO(this.nSessao.connMysql);
     this.daoFichaDeAvaliacao   = new FichaDeAvaliacaoDAO(this.nSessao.connMysql);
     this.txtDataAvaliacao.Text = DateTime.Now.ToString("dd/MM/yyyy");
     this.nPaciente             = new Paciente();
     this.parametroVisualizar   = visualizar;
     //Checando objeto cliente
     if (objFichaDeAvaliacao != null)
     {
         this.nFichaDeAvaliacao = (FichaDeAvaliacao)objFichaDeAvaliacao;
     }
 }
        private void Salvar()
        {
            //Tratamento de erros
            try
            {
                // Validação
                if (this.cbPaciente.SelectedIndex == -1)
                {
                    errorProvider1.Clear();
                    errorProvider1.SetError(cbPaciente, "Informe o paciente da ficha de avaliação!");
                    this.cbPaciente.Focus();
                }
                else if (nUtil.validaData(this.txtDataAvaliacao.Text) == false)
                {
                    errorProvider1.Clear();
                    errorProvider1.SetError(txtDataAvaliacao, "Data inválida!");
                    this.txtDataAvaliacao.Focus();
                }
                else if (nUtil.validaData(this.txtDataVencimento.Text) == false)
                {
                    errorProvider1.Clear();
                    errorProvider1.SetError(txtDataVencimento, "Data inválida!");
                    this.txtDataVencimento.Focus();
                }
                else if (this.txtDataProximaAvaliacao.Text.Replace("/", "").Trim().Length > 0 &&
                         this.nUtil.validaData(this.txtDataProximaAvaliacao.Text) == false)
                {
                    errorProvider1.Clear();
                    errorProvider1.SetError(txtDataProximaAvaliacao, "Data inválida!");
                    this.txtDataProximaAvaliacao.Focus();
                }
                else if (this.txtDiagnostico.Text.Length == 0)
                {
                    errorProvider1.Clear();
                    errorProvider1.SetError(txtDiagnostico, "Informe os dados do diagnostico do paciente!");
                    this.txtDiagnostico.Focus();
                }
                else if (this.txtObjetivo.Text.Length == 0)
                {
                    errorProvider1.Clear();
                    errorProvider1.SetError(txtObjetivo, "Informe os objetivos do tratamento!");
                    this.txtObjetivo.Focus();
                }
                else if (this.txtConduta.Text.Length == 0)
                {
                    errorProvider1.Clear();
                    errorProvider1.SetError(txtConduta, "Informe a conduta do paciente!");
                    this.txtConduta.Focus();
                }
                else
                {
                    errorProvider1.Clear();
                    //Obtendo dados
                    FichaDeAvaliacao tempFichaDeAvaliacao = new FichaDeAvaliacao();

                    this.nPaciente.id                    = Convert.ToInt32(this.cbPaciente.SelectedValue.ToString());
                    tempFichaDeAvaliacao.paciente        = this.nPaciente;
                    tempFichaDeAvaliacao.dataDaAvaliacao = Convert.ToDateTime(this.txtDataAvaliacao.Text);
                    if (this.txtDataProximaAvaliacao.Text.Replace("/", "").Trim().Length == 0)
                    {
                        tempFichaDeAvaliacao.dataProxAvaliacao = Convert.ToDateTime(null);
                    }
                    else
                    {
                        tempFichaDeAvaliacao.dataProxAvaliacao = Convert.ToDateTime(this.txtDataProximaAvaliacao.Text);
                    }
                    tempFichaDeAvaliacao.diasDeAula       = this.txtDiasDeAula.Text;
                    tempFichaDeAvaliacao.dataDeVencimento = Convert.ToDateTime(this.txtDataVencimento.Text);
                    tempFichaDeAvaliacao.diagnostico      = this.txtDiagnostico.Text;
                    tempFichaDeAvaliacao.objetivo         = this.txtObjetivo.Text;
                    tempFichaDeAvaliacao.conduta          = this.txtConduta.Text;

                    //Verificando falsh salvar
                    if (this.nFichaDeAvaliacao.id == 0 && this.parametroVisualizar == false)
                    {
                        //Salvando
                        if (this.daoFichaDeAvaliacao.cadastrar(tempFichaDeAvaliacao))
                        {
                            //Mensagem
                            MessageBox.Show("Ficha de avaliação cadastrada com sucesso!", "Aviso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            //Questiona usuário se deseja cadastrar outro
                            DialogResult dr = MessageBox.Show("Deseja cadastrar outra ficha de avaliação?", "Questão!", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                            //Verifica decisão
                            if (dr == DialogResult.Yes)
                            {
                                //Limpando cadastro
                                this.LimpaControles();
                            }
                            else
                            {
                                this.Close();
                            }
                        }
                        else
                        {
                            MessageBox.Show("Não foi possível cadastrar a ficha de avaliação!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                    else if (this.nFichaDeAvaliacao.id > 0 && this.parametroVisualizar == false)
                    {
                        //Obtendo id
                        tempFichaDeAvaliacao.id = this.nFichaDeAvaliacao.id;
                        //Atualizando o fisioterapeuta
                        if (this.daoFichaDeAvaliacao.alterar(tempFichaDeAvaliacao))
                        {
                            //Mensagem
                            MessageBox.Show("Ficha de avaliação alterada com sucesso!", "Aviso!", MessageBoxButtons.OK, MessageBoxIcon.Information);
                            //Direcionando para tela principal
                            this.Close();
                        }
                        else
                        {
                            MessageBox.Show("Não foi possível alterar a ficha de avaliação!", "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "Erro!", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }