/// <summary>
 /// Popula o DataTable com a table de model
 /// </summary>
 private void PopulaDataTableListaModel(DataTable dt)
 {
     DataRow linha;
     rProduto regraProduto = new rProduto();
     mProduto modelProduto = new mProduto();
     try
     {
         foreach (mVendaProduto model in this._listaModelVendaProduto)
         {
             modelProduto = regraProduto.BuscaUnicoRegistro(model.IdProduto);
             linha = dt.NewRow();
             linha["id_prdto"] = modelProduto.IdProduto;
             linha["dsc_prdto"] = modelProduto.DescProduto;
             linha["Qtd"] = model.Qtd;
             dt.Rows.Add(linha);
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         linha = null;
         regraProduto = null;
         modelProduto = null;
     }
 }
 /// <summary>
 /// Verifica as seleções de filtro que o usuario escolheu e retorna um DataTable populado com os dados
 /// </summary>
 /// <returns>DataTable com os dados escolhidos para o filtro</returns>
 private DataTable BuscaDadosGrid()
 {
     rProduto regraProduto = new rProduto();
     int idTipoProduto;
     try
     {
         idTipoProduto = Convert.ToInt32(this.cboTipoProduto.SelectedValue);
         //Veririfica se o Indice Selecionado é Motor (id 1)
         //-------------------------------------------------
         if (idTipoProduto == 1)
         {
             if (rdbCodigo.Checked == true)
             {
                 return regraProduto.BuscaProdutoFamiliaMotorCodigo(this.txtBuscaFiltro.Text);
             }
             else
             {
                 return regraProduto.BuscaProdutoFamiliaMotorNome(this.txtBuscaFiltro.Text);
             }
         }
         //Não verifica outro id pois, sistema abrange apenas venda de Motores e kits, por enquanto
         //----------------------------------------------------------------------------------------
         else if (idTipoProduto == 2)
         {
             if (rdbCodigo.Checked == true)
             {
                 return regraProduto.BuscaProdutoKitCodigo(this.txtBuscaFiltro.Text);
             }
             else
             {
                 return regraProduto.BuscaProdutoKitNome(this.txtBuscaFiltro.Text);
             }
         }
         else
         {
             return regraProduto.BuscaTodosProdutos();
         }
     }
     catch (Exception ex)
     {
         throw ex;
     }
     finally
     {
         regraProduto = null;
     }
 }
        private mProduto PegaDadosTela()
        {
            mProduto model = new mProduto();
            rProduto regra = new rProduto();

            try
            {
                model.IdProduto = regra.BuscaIdMaximo();
                model.DescProduto = this.txtDescProduto.Text;

                if (this.rdbFamMotor.Checked == true)
                {
                    model.IdFamMotor = this._modelFamMotor.IdFamiliaMotor;
                    model.IdKit = null;
                    model.IdTipoProduto = 1;
                }
                else
                {
                    model.IdKit = this._modelKit.IdKit;
                    model.IdFamMotor = null;
                    model.IdTipoProduto = 2;
                }
                model.FlgAtivo = true;
                model.DatAlt = DateTime.Now;

                return model;
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                model = null;
            }
        }
        private void CriaNoProduto(int idProduto)
        {
            rProduto regraProduto = new rProduto();
            TreeNode noProduto = null;
            TreeNode noFamiliaMotor = null;
            TreeNode noKit = null;
            DataTable dtProduto = null;
            try
            {
                int qtdeProduto = 0;
                dtProduto = regraProduto.BuscaProdutosVenda(idProduto, this._idVenda);
                foreach (DataRow linha in dtProduto.Rows)
                {
                    noProduto = new TreeNode("Produto: " + linha["dsc_prdto"].ToString() + " | Qtde: " + linha["qtd"].ToString());
                    qtdeProduto = Convert.ToInt32(linha["qtd"]);

                    if (linha["id_fam_motor"] != DBNull.Value)
                    {
                        noFamiliaMotor = this.CriaNoFamiliaMotor(Convert.ToInt32(linha["id_fam_motor"]),qtdeProduto);
                        noProduto.Nodes.Add(noFamiliaMotor);
                    }
                    else if (linha["id_kit"] != DBNull.Value)
                    {
                        this.CriaNoKitGrupoPeca(Convert.ToInt32(linha["id_kit"]), qtdeProduto, noProduto);
                        //noProduto.Nodes.Add(noKit);
                    }

                    this.tvOrdemProducao.Nodes.Add(noProduto);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                noProduto = null;
                regraProduto = null;
                noFamiliaMotor = null;
                noKit = null;
                if (dtProduto != null)
                {
                    dtProduto.Dispose();
                    dtProduto = null;
                }
            }
        }
 private void Insere()
 {
     mProduto model;
     rProduto regra = new rProduto();
     try
     {
         this.ValidaDadosNulos();
         model = this.PegaDadosTela();
         regra.ValidarInsere(model);
         this.btnLimpar_Click(null, null);
         this.btnAceitar.Enabled = false;
         MessageBox.Show("Registro salvo com sucesso!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
     }
     catch (BUSINESS.Exceptions.Produto.FamiliaOuKitVazioException)
     {
         MessageBox.Show("É Necessário Buscar uma Familia de Motores ou um Kit de Peças!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.btnBuscarProduto.Focus();
     }
     catch (BUSINESS.Exceptions.Produto.DescricaoProdutoVazioException)
     {
         MessageBox.Show("Informe uma Descrição para o Produto!", "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
         this.txtDescProduto.Focus();
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message, "Atenção", MessageBoxButtons.OK, MessageBoxIcon.Asterisk, MessageBoxDefaultButton.Button1);
     }
     finally
     {
         model = null;
         regra = null;
     }
 }