private void buttonConfirmar_Click(object sender, EventArgs e)
        {
            progressBar1.Visible = true;
            if (dataGridViewLancarEstoqueDetalhes.Rows.Count > 0)
            {
                if (!ProdContagem) //somente zerar o estoque caso não for no modo contagem
                {
                    negocioEstoque.UpdateProdEstoqueZerar(Form1.Unidade.uniid, estoqueContarInfo.estoquecontarid);
                }

                int cont = 1;
                foreach (DataGridViewRow row in dataGridViewLancarEstoqueDetalhes.Rows)
                {
                    progressBar1.Value = cont * (100 / dataGridViewLancarEstoqueDetalhes.Rows.Count);
                    cont++;
                    GridLancarEstoqueInfo     gridLancarEstoqueInfo     = (GridLancarEstoqueInfo)row.DataBoundItem;
                    EstoqueContarDetalhesInfo estoqueContarDetalhesInfo = new EstoqueContarDetalhesInfo
                    {
                        estoquecontardetalhesid        = 0,
                        estoquecontardetalhesidcontar  = gridLancarEstoqueInfo.idestoque,
                        estoquecontardetalhesidproduto = gridLancarEstoqueInfo.idproduto,
                        estoquecontardetalhesquant     = gridLancarEstoqueInfo.quant,
                        estoquecontardetalhesvalor     = gridLancarEstoqueInfo.valorUnit
                    };

                    if (!(negocioEstoque.InsertEstoqueContarDetalhes(estoqueContarDetalhesInfo) > 0))
                    {
                        FormMessage.ShowMessegeWarning("Falha ao tentar salvar!");
                        return;
                    }

                    ProdutoInfo produto = negocioEstoque.ConsultarEstoqueIdProdutoUnid(gridLancarEstoqueInfo.idproduto, Form1.Unidade.uniid);
                    produto.prodestoquequant = gridLancarEstoqueInfo.quant;
                    if (!(negocioEstoque.UpdateEstoqueId(produto) > 0))
                    {
                        FormMessage.ShowMessegeWarning("Falha ao tentar salvar!");
                        return;
                    }
                }

                estoqueContarInfo.estoquecontarconfirmado = 1;
                estoqueContarInfo.estoquecontarquant      = Convert.ToInt32(labelValorTotalQuant.Text);
                estoqueContarInfo.estoquecontarvalor      = Convert.ToDecimal(labelValorTotal.Text.Replace("R$ ", ""));

                if (negocioEstoque.UpdateEstoqueContarId(estoqueContarInfo) > 0)
                {
                    progressBar1.Visible = false;
                    FormMessage.ShowMessegeInfo("O estoque foi contado com sucesso!");
                    LimparForm();
                }
            }
            else
            {
                FormMessage.ShowMessegeWarning("Adicione um produto antes!");
            }
        }
        public int UpdateEstoqueContarDetalhes(EstoqueContarDetalhesInfo estoqueContarDetalhesInfo)
        {
            if (accessDbMySql.Conectar())
            {
                accessDbMySql.AddParametrosMySql("@id", estoqueContarDetalhesInfo.estoquecontardetalhesid);
                accessDbMySql.AddParametrosMySql("@quant", estoqueContarDetalhesInfo.estoquecontardetalhesquant);
                accessDbMySql.AddParametrosMySql("@valor", estoqueContarDetalhesInfo.estoquecontardetalhesvalor);

                return(accessDbMySql.ExecutarScalarMySql("spUpdateEstoqueContarDetalhes"));
            }
            else
            {
                return(0);
            }
        }
        public int InsertEstoqueContarDetalhes(EstoqueContarDetalhesInfo estoqueContarDetalhesInfo)
        {
            if (accessDbMySql.Conectar())
            {
                accessDbMySql.AddParametrosMySql("@contar", estoqueContarDetalhesInfo.estoquecontardetalhesidcontar);
                accessDbMySql.AddParametrosMySql("@prod", estoqueContarDetalhesInfo.estoquecontardetalhesidproduto);
                accessDbMySql.AddParametrosMySql("@quant", estoqueContarDetalhesInfo.estoquecontardetalhesquant);
                accessDbMySql.AddParametrosMySql("@valor", estoqueContarDetalhesInfo.estoquecontardetalhesvalor);

                return(accessDbMySql.ExecutarScalarMySql("spInsertEstoqueContarDetalhes"));
            }
            else
            {
                return(0);
            }
        }
        private EstoqueContarDetalhesColecao PreencherEstoqueContarDetalhes(DataTable dataTable)
        {
            EstoqueContarDetalhesColecao estoqueContarDetalhesColecao = new EstoqueContarDetalhesColecao();

            foreach (DataRow row in dataTable.Rows)
            {
                EstoqueContarDetalhesInfo estoqueContarDetalhesInfo = new EstoqueContarDetalhesInfo
                {
                    estoquecontardetalhesid        = Convert.ToInt32(row["estoquecontardetalhesid"]),
                    estoquecontardetalhesidcontar  = Convert.ToInt32(row["estoquecontardetalhesidcontar"]),
                    estoquecontardetalhesidproduto = Convert.ToInt32(row["estoquecontardetalhesidproduto"]),
                    estoquecontardetalhesquant     = Convert.ToInt32(row["estoquecontardetalhesquant"]),
                    estoquecontardetalhesvalor     = Convert.ToDecimal(row["estoquecontardetalhesvalor"]),
                };

                estoqueContarDetalhesColecao.Add(estoqueContarDetalhesInfo);
            }

            return(estoqueContarDetalhesColecao);
        }
        private void PreencherGrid()
        {
            if (produtoInfo != null)
            {
                int quant = Convert.ToInt32(textBoxQuant.Text);

                GridLancarEstoqueInfo gridLancarEstoqueInfo = new GridLancarEstoqueInfo
                {
                    descricao  = string.IsNullOrEmpty(produtoInfo.proCodBarras)? produtoInfo.prodetalhes : produtoInfo.proCodBarras + " - " + produtoInfo.prodetalhes,
                    idestoque  = estoqueContarInfo.estoquecontarid,
                    idproduto  = produtoInfo.proId,
                    quant      = quant,
                    valorTotal = quant * produtoInfo.proValorCompra,
                    valorUnit  = produtoInfo.proValorCompra,
                };

                if (gridLancarEstoqueColecao.Count > 0)
                {
                    for (int i = 0; i < gridLancarEstoqueColecao.Count; i++)
                    {
                        if (gridLancarEstoqueColecao[i].idproduto == gridLancarEstoqueInfo.idproduto)
                        {
                            gridLancarEstoqueInfo.quant     += gridLancarEstoqueColecao[i].quant;
                            gridLancarEstoqueInfo.valorTotal = gridLancarEstoqueInfo.quant * gridLancarEstoqueInfo.valorUnit;
                            gridLancarEstoqueColecao.RemoveAt(i);
                        }
                    }
                }

                EstoqueContarDetalhesInfo estoquecontar = new EstoqueContarDetalhesInfo
                {
                    estoquecontardetalhesid        = gridLancarEstoqueInfo.id,
                    estoquecontardetalhesidcontar  = gridLancarEstoqueInfo.idestoque,
                    estoquecontardetalhesidproduto = gridLancarEstoqueInfo.idproduto,
                    estoquecontardetalhesquant     = gridLancarEstoqueInfo.quant,
                    estoquecontardetalhesvalor     = gridLancarEstoqueInfo.valorUnit
                };

                EstoqueContarDetalhesInfo contar = negocioEstoque.ConsultarEstoqueContarDetalhesIdProd(gridLancarEstoqueInfo.idproduto, gridLancarEstoqueInfo.id);

                if (contar != null)
                {
                    estoquecontar.estoquecontardetalhesid = contar.estoquecontardetalhesid;
                    negocioEstoque.UpdateEstoqueContarDetalhes(estoquecontar);
                }
                else
                {
                    negocioEstoque.InsertEstoqueContarDetalhes(estoquecontar);
                }

                GridLancarEstoqueColecao novo = new GridLancarEstoqueColecao
                {
                    gridLancarEstoqueInfo
                };

                for (int i = 0; i < gridLancarEstoqueColecao.Count; i++)
                {
                    novo.Add(gridLancarEstoqueColecao[i]);
                }

                gridLancarEstoqueColecao = novo;
            }

            PreencherGridDataSource();
        }