public ModelOrdemServico CarregaModelOrdemServico(int codigo)
        {
            ModelOrdemServico modelo = new ModelOrdemServico();
            SqlCommand        cmd    = new SqlCommand();

            cmd.Connection  = conexao.ObjetoConexao;
            cmd.CommandText = "select * from ordemservico where id = @id";
            cmd.Parameters.AddWithValue("@id", codigo);
            conexao.Conectar();
            SqlDataReader registro = cmd.ExecuteReader();

            if (registro.HasRows)
            {
                registro.Read();
                modelo.IdOS        = Convert.ToInt32(registro["id"]);
                modelo.DataInicial = Convert.ToString(registro["datainicial"]);
                modelo.DataFinal   = Convert.ToString(registro["datafinal"]);
                modelo.Observacao  = Convert.ToString(registro["observacao"]);
                modelo.Situacao    = Convert.ToString(registro["situacao"]);
                modelo.IdCliente   = Convert.ToInt32(registro["idcliente"]);
            }
            registro.Close();
            conexao.Desconectar();
            return(modelo);
        }
        public void Incluir(ModelOrdemServico modelo)
        {
            if (modelo.IdCliente <= 0)
            {
                throw new Exception("O cliente é obrigatório!");
            }
            DALOrdemServico DALObj = new DALOrdemServico(conexao);

            DALObj.Incluir(modelo);
        }
 public frmCadastroOS(AcaoTela acaoTela, ModelOrdemServico os)
 {
     InitializeComponent();
     if (acaoTela == AcaoTela.Inserir)
     {
         this.Text = "Cadastro de Cliente - Inserir";
     }
     else if (acaoTela == AcaoTela.Alterar)
     {
         this.Text = "Cadastro de Cliente - Alterar";
     }
     txtCodCliente.Select();
 }
        public void Incluir(ModelOrdemServico modelo)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Connection  = conexao.ObjetoConexao;
            cmd.Transaction = this.conexao.ObjetoTransacao;
            cmd.CommandText = "insert into ordemservico (datainicial, datafinal, observacao, situacao, idcliente) values (@datainicial, @datafinal, @observacao, @situacao, @idcliente); select @@IDENTITY;";
            cmd.Parameters.AddWithValue("@datainicial", modelo.DataInicial);
            cmd.Parameters.AddWithValue("@datafinal", modelo.DataFinal);
            cmd.Parameters.AddWithValue("@observacao", modelo.Observacao);
            cmd.Parameters.AddWithValue("@situacao", modelo.Situacao);
            cmd.Parameters.AddWithValue("@idcliente", modelo.IdCliente);
            modelo.IdOS = Convert.ToInt32(cmd.ExecuteScalar());
        }
        public void Alterar(ModelOrdemServico modelo)
        {
            if (modelo.IdOS <= 0)
            {
                throw new Exception("Código da OS vazio!");
            }
            if (modelo.IdCliente <= 0)
            {
                throw new Exception("O cliente é obrigatório!");
            }
            DALOrdemServico DALObj = new DALOrdemServico(conexao);

            DALObj.Alterar(modelo);
        }
        public void Alterar(ModelOrdemServico modelo)
        {
            SqlCommand cmd = new SqlCommand();

            cmd.Connection  = conexao.ObjetoConexao;
            cmd.Transaction = this.conexao.ObjetoTransacao;
            cmd.CommandText = "update ordemservico set datainicial=@datainicial, datafinal=@datafinal, observacao=@observacao, situacao=@situacao, idcliente=@idcliente where id=@id;";
            cmd.Parameters.AddWithValue("@datainicial", modelo.DataInicial);
            cmd.Parameters.AddWithValue("@datafinal", modelo.DataFinal);
            cmd.Parameters.AddWithValue("@observacao", modelo.Observacao);
            cmd.Parameters.AddWithValue("@situacao", modelo.Situacao);
            cmd.Parameters.AddWithValue("@idcliente", modelo.IdCliente);
            cmd.Parameters.AddWithValue("@id", modelo.IdOS);
            cmd.ExecuteNonQuery();
        }
        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 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();
            }
        }