private void btFinalizar_Click(object sender, EventArgs e)
        {
            DialogResult resultado = MessageBox.Show("DESEJA FINALIZAR A ORDEM DE SERVICO?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (resultado == DialogResult.Yes)
            {
                txtDataFinal.Text = System.DateTime.Now.ToShortDateString() + " - " + System.DateTime.Now.ToShortTimeString();
                txtSituacao.Text  = "FINALIZADO";

                DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
                cx.Conectar();
                cx.IniciarTransacao();

                try
                {
                    //Inserindo Dados da Tabela OS
                    ModelOrdemServico modeloOS = new ModelOrdemServico();
                    modeloOS.DataInicial = txtDataInicial.Text;
                    modeloOS.DataFinal   = txtDataFinal.Text;
                    modeloOS.Situacao    = txtSituacao.Text;
                    modeloOS.Observacao  = txtObservacao.Text;
                    modeloOS.IdCliente   = Convert.ToInt32(txtCodCliente.Text);
                    BLLOrdemServico bllOS = new BLLOrdemServico(cx);

                    //Inserindo dados da Tabela OSItens
                    ModelOrdemServicoItens modeloOSItens = new ModelOrdemServicoItens();
                    BLLOrdemServicoItens   bllOSItens    = new BLLOrdemServicoItens(cx);


                    if (txtCodigo.Text != "")
                    {
                        //Alterar
                        modeloOS.IdOS = Int32.Parse(txtCodigo.Text);
                        bllOS.Alterar(modeloOS);
                        bllOSItens.ExcluirTodosOsItens(modeloOS.IdOS);

                        //cadastrar itens da OS
                        for (int i = 0; i < dgvItens.RowCount; i++)
                        {
                            modeloOSItens.IdOSItens = i + 1;
                            modeloOSItens.IdOS      = modeloOS.IdOS;
                            modeloOSItens.IdServico = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value);
                            modeloOSItens.Detalhes  = dgvItens.Rows[i].Cells[2].Value.ToString();
                            bllOSItens.Incluir(modeloOSItens);
                        }
                        MessageBox.Show("Ordem de serviço finalizado com sucesso!!!");
                    }
                    else
                    {
                        MessageBox.Show("Campo código da OS esta vazia por favor verifique!!!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                    }
                    this.LimpaTela();
                    cx.TerminarTransacao();
                    cx.Desconectar();
                    this.Close();
                }
                catch (Exception erro)
                {
                    MessageBox.Show(erro.Message);
                    cx.CancelaTransacao();
                    cx.Desconectar();
                }
            }
            else
            {
                return;
            }
        }
        private void btnAlterar_Click(object sender, EventArgs e)
        {
            DALConexao           cx       = new DALConexao(DadosDaConexao.StringDeConexao);
            BLLOrdemServico      bll      = new BLLOrdemServico(cx);
            BLLOrdemServicoItens bllitens = new BLLOrdemServicoItens(cx);
            frmCadastroOS        f        = new frmCadastroOS(AcaoTela.Alterar);

            f.btFinalizar.Enabled = true;
            if (dgvDados.SelectedRows.Count == 0)
            {
                MessageBox.Show("Nenhum registro selecionado!", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
                return;
            }
            else
            {
                this.cod = Convert.ToInt32(dgvDados.CurrentRow.Cells[0].Value);
                ModelOrdemServico modelo = bll.CarregaModelOrdemServico(cod);
                f.txtCodigo.Text      = modelo.IdOS.ToString();
                f.txtDataInicial.Text = modelo.DataInicial;
                f.txtDataFinal.Text   = modelo.DataFinal;
                f.txtSituacao.Text    = modelo.Situacao;
                f.txtObservacao.Text  = modelo.Observacao;
                f.txtCodCliente.Text  = modelo.IdCliente.ToString();
                f.txtCodCliente_Leave(sender, e);

                //servicos itens
                DataTable tabela = bllitens.Localizar(modelo.IdOS);
                for (int i = 0; i < tabela.Rows.Count; i++)
                {
                    string   idser   = tabela.Rows[i]["idser"].ToString();
                    string   nomeser = tabela.Rows[i]["nomeser"].ToString();
                    string   det     = tabela.Rows[i]["detalhes"].ToString();
                    String[] it      = new String[] { idser, nomeser, det };
                    f.dgvItens.Rows.Add(it);
                }

                //NAO DEIXA A OS SER EDITADA MAIS
                if ((f.txtSituacao.Text == "FINALIZADO") || (f.txtSituacao.Text == "CANCELADO"))
                {
                    f.gbDadosOS.Enabled        = false;
                    f.gbLancarServicos.Enabled = false;
                    f.txtObservacao.Enabled    = false;
                    f.btFinalizar.Enabled      = false;
                    f.btnGravar.Enabled        = false;
                    f.btnSair.Enabled          = false;
                }

                f.ShowDialog();
                f.Dispose();
                if (cbSituacao.SelectedIndex == 0)
                {
                    dgvDados.DataSource = bll.LocalizarTodos(txtPesquisar.Text);
                    dgvDados.ClearSelection();
                }
                else if (cbSituacao.SelectedIndex == 1)
                {
                    dgvDados.DataSource = bll.LocalizarAbertos(txtPesquisar.Text);
                    dgvDados.ClearSelection();
                }
                else if (cbSituacao.SelectedIndex == 2)
                {
                    dgvDados.DataSource = bll.LocalizarFinalizados(txtPesquisar.Text);
                    dgvDados.ClearSelection();
                }
                else if (cbSituacao.SelectedIndex == 3)
                {
                    dgvDados.DataSource = bll.LocalizarCancelados(txtPesquisar.Text);
                    dgvDados.ClearSelection();
                }
                dgvDados.ClearSelection();
            }
        }
        private void BtnGravar_Click(object sender, EventArgs e)
        {
            DALConexao    cx = new DALConexao(DadosDaConexao.StringDeConexao);
            frmConsultaOS f  = new frmConsultaOS();

            cx.Conectar();
            cx.IniciarTransacao();

            try
            {
                //Inserindo Dados da Tabela OS
                ModelOrdemServico modeloOS = new ModelOrdemServico();
                modeloOS.DataInicial = txtDataInicial.Text;
                modeloOS.DataFinal   = txtDataFinal.Text;
                modeloOS.Situacao    = txtSituacao.Text;
                modeloOS.Observacao  = txtObservacao.Text;
                modeloOS.IdCliente   = Convert.ToInt32(txtCodCliente.Text);
                BLLOrdemServico bllOS = new BLLOrdemServico(cx);

                //Inserindo dados da Tabela OSItens
                ModelOrdemServicoItens modeloOSItens = new ModelOrdemServicoItens();
                BLLOrdemServicoItens   bllOSItens    = new BLLOrdemServicoItens(cx);

                //Inserir ou alterar
                if (txtCodigo.Text == "")
                {
                    //inclui dados da tabela OS
                    bllOS.Incluir(modeloOS);

                    //Percorre o grid com itens e insere na tabela OSItens
                    for (int i = 0; i < dgvItens.RowCount; i++)
                    {
                        modeloOSItens.IdOSItens = i + 1;
                        modeloOSItens.IdOS      = modeloOS.IdOS;
                        modeloOSItens.IdServico = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value);
                        modeloOSItens.Detalhes  = dgvItens.Rows[i].Cells[2].Value.ToString();
                        bllOSItens.Incluir(modeloOSItens);
                    }
                    MessageBox.Show("Ordem de serviço salva com sucesso: Código " + modeloOS.IdOS.ToString());
                }
                else
                {
                    //Alterar
                    modeloOS.IdOS = Int32.Parse(txtCodigo.Text);
                    bllOS.Alterar(modeloOS);
                    bllOSItens.ExcluirTodosOsItens(modeloOS.IdOS);

                    //cadastrar itens da OS
                    for (int i = 0; i < dgvItens.RowCount; i++)
                    {
                        modeloOSItens.IdOSItens = i + 1;
                        modeloOSItens.IdOS      = modeloOS.IdOS;
                        modeloOSItens.IdServico = Convert.ToInt32(dgvItens.Rows[i].Cells[0].Value);
                        modeloOSItens.Detalhes  = dgvItens.Rows[i].Cells[2].Value.ToString();
                        bllOSItens.Incluir(modeloOSItens);
                    }
                    MessageBox.Show("Cadastro Alterado com sucesso!!!");
                    this.Close();
                }
                this.LimpaTela();
                cx.TerminarTransacao();
                cx.Desconectar();
            }
            catch (Exception erro)
            {
                MessageBox.Show(erro.Message);
                cx.CancelaTransacao();
                cx.Desconectar();
            }
        }