public ModelOrdemServicoItens CarregaModelOrdemServicoItens(int idOSitens, int idOs, int idServico)
        {
            ModelOrdemServicoItens modelo = new ModelOrdemServicoItens();
            SqlCommand             cmd    = new SqlCommand();

            cmd.Connection  = conexao.ObjetoConexao;
            cmd.CommandText = "select * from ordemservicoitens where id = @id and idos = @idos and idservico = @idservico";
            cmd.Parameters.AddWithValue("@id", idOSitens);
            cmd.Parameters.AddWithValue("@idos", idOs);
            cmd.Parameters.AddWithValue("@idservico", idServico);
            conexao.Conectar();
            SqlDataReader registro = cmd.ExecuteReader();

            if (registro.HasRows)
            {
                registro.Read();
                modelo.IdOSItens = idOSitens;
                modelo.IdOS      = idOs;
                modelo.IdServico = idServico;
                modelo.Detalhes  = Convert.ToString(registro["detalhes"]);
            }
            registro.Close();
            conexao.Desconectar();
            return(modelo);
        }
        public void Alterar(ModelOrdemServicoItens modelo)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Connection  = conexao.ObjetoConexao;
            cmd.Transaction = this.conexao.ObjetoTransacao;
            cmd.CommandText = "update ordemservicoitens set detalhes=@detalhes where id=@id and idos= @idos and idservico= @idservico;";
            cmd.Parameters.AddWithValue("@idos", modelo.IdOS);
            cmd.Parameters.AddWithValue("@idservico", modelo.IdServico);
            cmd.Parameters.AddWithValue("@detalhes", modelo.Detalhes);;
            cmd.Parameters.AddWithValue("@id", modelo.IdOSItens);
            cmd.ExecuteNonQuery();
        }
        public void Incluir(ModelOrdemServicoItens modelo)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Connection  = conexao.ObjetoConexao;
            cmd.Transaction = this.conexao.ObjetoTransacao;
            cmd.CommandText = "insert into ordemservicoitens (idos, idservico, detalhes) values (@idos, @idservico, @detalhes); select @@IDENTITY;";
            //cmd.Parameters.AddWithValue("@id", modelo.IdOSItens);
            cmd.Parameters.AddWithValue("@idos", modelo.IdOS);
            cmd.Parameters.AddWithValue("@idservico", modelo.IdServico);
            cmd.Parameters.AddWithValue("@detalhes", modelo.Detalhes);
            modelo.IdOS = Convert.ToInt32(cmd.ExecuteScalar());
        }
        public void Incluir(ModelOrdemServicoItens modelo)
        {
            if (modelo.IdOS <= 0)
            {
                throw new Exception("O código da OS deve ser maior que zero!");
            }
            if (modelo.IdServico <= 0)
            {
                throw new Exception("O código do servico deve ser maior que zero!");
            }
            DALOrdemServicoItens DALObj = new DALOrdemServicoItens(conexao);

            DALObj.Incluir(modelo);
        }
        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 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();
            }
        }