private void PreencherProdForm(ProdutoInfo produto)
        {
            if (produto.proControleEstoque)
            {
                produto = negocioEstoque.ConsultarEstoqueIdProdutoUnid(produtoInfo.proId, Form1.Unidade.uniid);
            }
            else
            {
                if (FormMessage.ShowMessegeQuestion("O controle de estoque não está ativo para este produto! Deseja ativar o controle?") == DialogResult.Yes)
                {
                    if (negocioEstoque.UpdateProdutoConfirmarLancEstoqueId(produtoInfo.proId) > 0)
                    {
                        produto = negocioEstoque.ConsultarEstoqueIdProdutoUnid(produtoInfo.proId, Form1.Unidade.uniid);
                    }
                }
                else
                {
                    return;
                }
            }

            labelProdutoDescricao.Text = string.IsNullOrEmpty(produto.proCodBarras) ? produto.proDescricao : produto.proCodBarras + " - " + produto.proDescricao;
            labelValorUnit.Text        = string.Format("{0:C}", produto.proValorCompra);
            buttonAddItem.Enabled      = true;
            labelQuantEstoque.Text     = string.Format("{0:000}", produto.prodestoquequant);

            produtoInfo = produto;
            PreencherGrid();
        }
        private void ConcluirVenda(VendaInfo final)
        {
            foreach (ItemVendaInfo item in colecaoItemVenda)
            {
                if (Form1.Unidade.uniassistencia == EnumAssistencia.Assistencia)
                {
                    //dar baixa no estoque
                    ProdutoInfo produtoInfo = produtoNegocios.ConsultarProdutosId(item.Id);

                    if (vendaEnum == EnumVenda.Taxa) //inserir taxa na tabela
                    {
                        ServicoTaxa = new ServicoOrcamentoInfo();
                        ServicoTaxa.servicoorcamentoidprod    = item.Id;
                        ServicoTaxa.servicoorcamentoquant     = item.Quant;
                        ServicoTaxa.servicoorcamentovalordesc = item.ValorDesc;
                        ServicoTaxa.servicoorcamentovalorunit = item.ValorUnit;
                        ServicoTaxa.servicoorcamentotaxaativo = true;
                    }

                    if (produtoInfo.proControleEstoque == true)
                    {
                        negocioEstoque = new EstoqueNegocios(Form1.Empresa.empconexao, Form1.Unidade.uniassistencia);
                        produtoInfo    = new ProdutoInfo();
                        produtoInfo    = negocioEstoque.ConsultarEstoqueIdProdutoUnid(item.Id, Form1.Unidade.uniid);
                        produtoInfo.prodestoquequant -= item.Quant;

                        if (negocioEstoque.UpdateEstoqueId(produtoInfo) == 0)
                        {
                            FormMessage.ShowMessegeWarning("Falha ao salvar os itens!");
                            return;
                        }

                        MovEstoqueInfo movEstoqueInfo = new MovEstoqueInfo
                        {
                            movestoqueidproduto       = item.Id,
                            movestoqueidtipomovimento = final.venidtipoentrada,
                            movestoquequant           = item.Quant,
                            movestoquevalor           = item.ValorDesc
                        };

                        if (!negocioEstoque.InsertMovEstoque(movEstoqueInfo))
                        {
                            FormMessage.ShowMessegeWarning("Falha ao salvar os itens!");
                            return;
                        }
                    }
                }
            }

            BloquearVenda();
        }
        private void PreencherForm(ProdutoInfo produtosInfo, bool b = false)
        {
            if (produtosInfo != null)
            {
                textBoxCod.Text       = string.Format("{0:000000}", produtosInfo.proId);
                textBoxDescricao.Text = produtosInfo.proDescricao;
                textBoxBarras.Text    = produtosInfo.proCodBarras;
                textBoxCodKit.Text    = produtosInfo.procodkit;
                textBoxCompra.Text    = string.Format("{0}", produtosInfo.proValorCompra);
                textBoxVarejo.Text    = string.Format("{0}", produtosInfo.proValorVarejo);
                textBoxAtacado.Text   = string.Format("{0}", produtosInfo.proValorAtacado);
                textBoxQuant.Text     = produtosInfo.proQuantMinima.ToString();

                if (produtosInfo.proControleEstoque == true)
                {
                    ProdutoInfo contar = estoque.ConsultarEstoqueIdProdutoUnid(produtosInfo.proId, Form1.Unidade.uniid);
                    radioButtonSim.Checked    = true;
                    labelEstoque.Visible      = true;
                    labelEstoqueValor.Visible = true;
                    labelEstoqueValor.Text    = string.Format("{0:0000}", contar.prodestoquequant);
                }
                else
                {
                    radioButtonNao.Checked = true;
                }

                textBoxSub.Text           = Convert.ToString(produtosInfo.proidsubcategoria);
                textBoxMarca.Text         = Convert.ToString(produtosInfo.proidmarca);
                textBoxCodFornecedor.Text = Convert.ToString(produtosInfo.proidfornecedor);
                textBoxStatus.Text        = string.Format("{0:000}", produtosInfo.proidstatus);
                labelValorStatus.Text     = produtosInfo.Desativado;
                BuscarporCod();
                textBoxStatus.Enabled = true;
                buttonSalvar.Text     = "Alterar";
            }
            else
            {
                LimparForm(b);
                buttonSalvar.Enabled = true;
            }
        }
        private void PreencherFormProduto()
        {
            produtoEstoqueInfo         = negocioEstoque.ConsultarEstoqueIdProdutoUnid(produtoInfo.proId, Form1.Unidade.uniid);
            textBoxProdutoCod.Text     = string.Format("{0:000}", produtoInfo.proId);
            labelProdutoDescricao.Text = produtoInfo.proDescricao;
            labelValorUnit.Text        = string.Format("{0:C}", produtoInfo.proValorVarejo);
            labelValorDesc.Text        = string.Format("{0:C}", produtoInfo.proValorVarejo);
            textquant = 1;

            if (produtoEstoqueInfo != null)
            {
                labelQuantEstoque.Text = string.Format("{0:000}", produtoEstoqueInfo.prodestoquequant);
            }
            else
            {
                labelQuantEstoque.Text = "000";
            }

            AoAlterar_textBoxProdutoCod(true);

            textBoxQuantPedido.Select();
        }
        private void PreencherFormProduto()
        {
            ItemVendaInfo itemVendaInfo;

            if (vendaInfo != null)
            {
                foreach (VendaDetalhesInfo detalhes in colecaoDetalhes)
                {
                    produtoInfo = produtoNegocios.ConsultarProdutosId(detalhes.vendetalhesidprod);
                    responsavel = funcNegocios.ConsultarPessoaId(detalhes.vendetalhesidfunc);

                    itemVendaInfo = new ItemVendaInfo
                    {
                        Id        = produtoInfo.proId,
                        ValorDesc = detalhes.vendetalhesvalordesc,
                        Barras    = produtoInfo.proCodBarras,
                        Descricao = produtoInfo.proDescricao,
                        Quant     = detalhes.vendetalhesquant,
                        Total     = detalhes.vendetalhesquant * detalhes.vendetalhesvalordesc,
                        ValorUnit = detalhes.vendetalhesvalorunit,
                        funid     = responsavel.Id,
                        funnome   = responsavel.Nome
                    };

                    colecaoItemVenda.Add(itemVendaInfo);
                }
            }
            else
            {
                bool    estoqueZerado = false;
                decimal dbQuant       = Convert.ToDecimal(textBoxQuant.Text);
                decimal dbTotal       = produtoInfo.proValorVarejo * dbQuant;

                itemVendaInfo = new ItemVendaInfo
                {
                    Id        = produtoInfo.proId,
                    ValorDesc = produtoInfo.proValorVarejo,
                    Barras    = produtoInfo.proCodBarras,
                    Descricao = string.Format("{0:00000}", produtoInfo.proId) + " - " + produtoInfo.proDescricao,
                    Quant     = dbQuant,
                    Total     = dbTotal,
                    ValorUnit = produtoInfo.proValorVarejo,
                    funid     = responsavel.Id,
                    funnome   = responsavel.Nome
                };


                if (produtoInfo.proId > 0)
                {
                    if (colecaoItemVenda.Count > 0)
                    {
                        for (int i = 0; i < colecaoItemVenda.Count; i++)
                        {
                            if (colecaoItemVenda[i].Id == produtoInfo.proId)
                            {
                                itemVendaInfo.ValorDesc = colecaoItemVenda[i].ValorDesc;
                                itemVendaInfo.Quant    += colecaoItemVenda[i].Quant;
                                itemVendaInfo.Total     = colecaoItemVenda[i].ValorDesc * itemVendaInfo.Quant;
                                itemVendaInfo.funid     = colecaoItemVenda[i].funid;
                                itemVendaInfo.funnome   = colecaoItemVenda[i].funnome;
                                colecaoItemVenda.RemoveAt(i);
                                break;
                            }
                        }
                    }

                    colecaoItemVenda.Add(itemVendaInfo);
                }
                else
                {
                    bool b = true;

                    for (int i = 0; i < colecaoItemVenda.Count; i++)
                    {
                        if (colecaoItemVenda[i].Barras == produtoInfo.proCodBarras)
                        {
                            b = false;
                            break;
                        }
                    }

                    if (b)
                    {
                        colecaoItemVenda.Add(itemVendaInfo);
                    }
                }


                if (produtoInfo.proControleEstoque == true)
                {
                    int cod = produtoInfo.proId;
                    produtoInfo    = new ProdutoInfo();
                    negocioEstoque = new EstoqueNegocios(Form1.Empresa.empconexao, Form1.Unidade.uniassistencia);
                    produtoInfo    = negocioEstoque.ConsultarEstoqueIdProdutoUnid(cod, Form1.Unidade.uniid);

                    if (produtoInfo.prodestoquequant < 1)
                    {
                        estoqueZerado = true;
                        FormMessage.ShowMessegeWarning("Verificar o estoque, consta que não tem mais desse produto!");
                    }
                }

                if (produtoInfo.proControleEstoque == true && !estoqueZerado)
                {
                    if (itemVendaInfo.Quant > produtoInfo.prodestoquequant)
                    {
                        FormMessage.ShowMessegeWarning("A quantidade de produto lançada é maior que a " +
                                                       "quantidade que há no estoque!");
                    }
                }

                labelDescricao.Text      = produtoInfo.proDescricao.Length > 99 ? produtoInfo.proDescricao.Substring(0, 95) + "..." : produtoInfo.proDescricao;
                labelValorTotalProd.Text = dbTotal.ToString("C");

                labelValorProdCod.Text    = string.Format("{0:000000}", produtoInfo.proId);
                labelValorProdBarras.Text = produtoInfo.proCodBarras;
                labelValorProdQuant.Text  = dbQuant.ToString("000");
                labelValorProdPreco.Text  = produtoInfo.proValorVarejo.ToString("C");
                labelValorEstoque.Text    = string.Format("{0:000}", produtoInfo.prodestoquequant);

                textBoxQuant.Text = "1,000";
                textBoxBarras.Clear();
                textBoxBarras.Select();
                buttonRemover.Enabled = true;
            }

            //AdicionarItemGrid();
            AdicionarItem();
        }
        private void BuscarProdutos(string id)
        {
            if (!string.IsNullOrEmpty(id))
            {
                if (radioButtonCod.Checked)
                {
                    if (int.TryParse(id, out int cod))
                    {
                        produtoInfo = produtoNegocios.ConsultarProdutosId(cod);
                    }
                    else
                    {
                        FormMessage.ShowMessegeWarning("Insira um código válido!");
                    }
                }
                else
                {
                    produtoInfo = produtoNegocios.ConsultarProdutoCodBarras(textBoxProdutoCod.Text);
                }

                if (produtoInfo != null)
                {
                    if (produtoInfo.proControleEstoque == true)
                    {
                        negocioEstoque = new EstoqueNegocios(Form1.Empresa.empconexao, Form1.Unidade.uniassistencia);
                        ProdutoInfo produto = negocioEstoque.ConsultarEstoqueIdProdutoUnid(produtoInfo.proId, Form1.Unidade.uniid);

                        if (produto != null)
                        {
                            if (textBoxFornecedorCod.Text == "000")
                            {
                                PreencherFormProduto(produto);
                            }
                            else
                            {
                                if (produto.proidfornecedor == infoPessoa.Id)
                                {
                                    PreencherFormProduto(produto);
                                }
                                else
                                {
                                    FormMessage.ShowMessegeWarning("Este produto não pertence a este fornecedor!");
                                    textBoxProdutoCod.Clear();
                                }
                            }
                        }
                        else
                        {
                            negocioEstoque = new EstoqueNegocios(Form1.Empresa.empconexao, Form1.Unidade.uniassistencia);
                            if (negocioEstoque.InsertProdutoEstoque(produtoInfo.proId, Form1.Unidade.uniid) > 0)
                            {
                                produto = negocioEstoque.ConsultarEstoqueIdProdutoUnid(produtoInfo.proId, Form1.Unidade.uniid);
                                PreencherFormProduto(produto);
                            }
                            else
                            {
                                FormMessage.ShowMessegeWarning("Falha!");
                            }
                        }
                    }
                    else
                    {
                        if (FormMessage.ShowMessegeQuestion("O controle de estoque não está ativo para este produto! Deseja ativar o controle?") == DialogResult.Yes)
                        {
                            if (produtoNegocios.UpdateProdutoConfirmarLancEstoqueId(produtoInfo.proId) > 0)
                            {
                                PreencherFormProduto(produtoInfo);
                            }
                        }
                    }
                }
                else
                {
                    FormMessage.ShowMessegeWarning("Código inválido!");
                    textBoxProdutoCod.Clear();
                    textBoxProdutoCod.Select();
                }
            }
        }