private void FormEstoqueContagem_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < dataGridViewLancarEstoqueDetalhes.ColumnCount; i++)
            {
                dataGridViewLancarEstoqueDetalhes.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet;
            }


            if (gridLancarEstoqueColecao.Count > 0)
            {
                estoqueContarInfo = negocioEstoque.ConstularEstoqueContarId(gridLancarEstoqueColecao[0].id);

                if (estoqueContarInfo != null)
                {
                    if (estoqueContarInfo.estoquecontarconfirmado == 1 && estoqueContarInfo.estoquecontaridunidade == Form1.Unidade.uniid)
                    {
                        PreencherFormEstoque(estoqueContarInfo);
                    }
                }
            }

            if (ProdContagem)
            {
                this.Text            = "CONTAGEM POR PRODUTO";
                this.labelTitle.Text = "CONTAGEM POR PRODUTO";
            }
            else
            {
                this.Text            = "CONTAGEM DO ESTOQUE";
                this.labelTitle.Text = "CONTAGEM DO ESTOQUE";
            }
        }
 private void PreencherFormEstoque(EstoqueContarInfo estoqueContarInfo)
 {
     textBoxValorCod.Enabled   = false;
     textBoxValorCod.Text      = string.Format("{0:000000}", estoqueContarInfo.estoquecontarid);
     labelValorData.Text       = string.Format("{0:dddd, dd MMMM yyyy HH:mm}", estoqueContarInfo.estoquecontardata);
     groupBoxItem.Enabled      = true;
     buttonInicializar.Enabled = false;
     buttonFechar.Text         = "Cancel.";
     Cancelar = true;
     textBoxProdutoCod.Select();
 }
        public int InsertEstoqueContar(EstoqueContarInfo estoqueContarInfo)
        {
            if (accessDbMySql.Conectar())
            {
                accessDbMySql.AddParametrosMySql("@func", estoqueContarInfo.estoquecontaridfunc);
                accessDbMySql.AddParametrosMySql("@unid", estoqueContarInfo.estoquecontaridunidade);
                accessDbMySql.AddParametrosMySql("@contardata", estoqueContarInfo.estoquecontardata);

                return(accessDbMySql.ExecutarScalarMySql("spInsertEstoqueContar"));
            }
            else
            {
                return(0);
            }
        }
        public int UpdateEstoqueContarId(EstoqueContarInfo estoqueContarInfo)
        {
            if (accessDbMySql.Conectar())
            {
                accessDbMySql.AddParametrosMySql("@id", estoqueContarInfo.estoquecontarid);
                accessDbMySql.AddParametrosMySql("@conf", estoqueContarInfo.estoquecontarconfirmado);
                accessDbMySql.AddParametrosMySql("@valor", estoqueContarInfo.estoquecontarvalor);
                accessDbMySql.AddParametrosMySql("@quant", estoqueContarInfo.estoquecontarquant);

                return(accessDbMySql.ExecutarScalarMySql("spUpdateEstoqueContarId"));
            }
            else
            {
                return(0);
            }
        }
        private EstoqueContarColecao PreencherEstoqueContar(DataTable dataTable)
        {
            EstoqueContarColecao estoqueContarColecao = new EstoqueContarColecao();

            foreach (DataRow row in dataTable.Rows)
            {
                EstoqueContarInfo contar = new EstoqueContarInfo
                {
                    estoquecontarconfirmado = Convert.ToInt32(row["estoquecontarconfirmado"]),
                    estoquecontardata       = Convert.ToDateTime(row["estoquecontardata"]),
                    estoquecontarid         = Convert.ToInt32(row["estoquecontarid"]),
                    estoquecontaridfunc     = Convert.ToInt32(row["estoquecontaridfunc"]),
                    estoquecontaridunidade  = Convert.ToInt32(row["estoquecontaridunidade"]),
                    estoquecontarquant      = Convert.ToInt32(row["estoquecontarquant"]),
                    estoquecontarvalor      = Convert.ToInt32(row["estoquecontarvalor"]),
                };

                estoqueContarColecao.Add(contar);
            }

            return(estoqueContarColecao);
        }
        private void buttonInicializar_Click(object sender, EventArgs e)
        {
            if (string.IsNullOrEmpty(textBoxValorCod.Text))
            {
                if (FormMessage.ShowMessegeQuestion("Deseja realizar uma nova contagem do estoque?") == DialogResult.Yes)
                {
                    estoqueContarInfo = new EstoqueContarInfo
                    {
                        estoquecontardata      = DateTime.Now,
                        estoquecontaridfunc    = Form1.User.useidfuncionario,
                        estoquecontaridunidade = Form1.Unidade.uniid
                    };

                    int cod = negocioEstoque.InsertEstoqueContar(estoqueContarInfo);

                    if (cod > 0)
                    {
                        estoqueContarInfo.estoquecontarid = cod;
                        PreencherFormEstoque(estoqueContarInfo);
                        PreencherGrid();
                    }
                    else
                    {
                        FormMessage.ShowMessegeWarning("Falha ao tentar salvar!");
                    }
                }
            }
            else
            {
                if (int.TryParse(textBoxValorCod.Text, out int cod))
                {
                    estoqueContarInfo = negocioEstoque.ConstularEstoqueContarId(cod);

                    if (estoqueContarInfo != null)
                    {
                        if (estoqueContarInfo.estoquecontarconfirmado != 1)
                        {
                            PreencherFormEstoque(estoqueContarInfo);

                            EstoqueContarDetalhesColecao contar = negocioEstoque.ConsultarEstoqueContarDetalhesIdContar(estoqueContarInfo.estoquecontarid);

                            if (contar != null)
                            {
                                gridLancarEstoqueColecao = new GridLancarEstoqueColecao();
                                foreach (EstoqueContarDetalhesInfo item in contar)
                                {
                                    ProdutoInfo           prod = negocioEstoque.ConsultarProdutosId(item.estoquecontardetalhesidproduto);
                                    GridLancarEstoqueInfo grid = new GridLancarEstoqueInfo
                                    {
                                        descricao  = prod.proCodBarras + " - " + prod.proDescricao,
                                        id         = item.estoquecontardetalhesid,
                                        idestoque  = estoqueContarInfo.estoquecontarid,
                                        idproduto  = item.estoquecontardetalhesidproduto,
                                        quant      = item.estoquecontardetalhesquant,
                                        valorTotal = item.estoquecontardetalhesvalor * item.estoquecontardetalhesquant,
                                        valorUnit  = item.estoquecontardetalhesvalor
                                    };

                                    gridLancarEstoqueColecao.Add(grid);
                                }
                            }

                            PreencherGridDataSource();
                        }
                        else
                        {
                            FormMessage.ShowMessegeWarning("Esta contagem já foi encerrada!");
                        }
                    }
                    else
                    {
                        FormMessage.ShowMessegeWarning("Estoque não encontrado!");
                        textBoxValorCod.Select();
                    }
                }
                else
                {
                    FormMessage.ShowMessegeWarning("Insira um valor válido!");
                    textBoxValorCod.Clear();
                    textBoxValorCod.Select();
                }
            }
        }