예제 #1
0
        private void simpleButton1_Click(object sender, EventArgs e)
        {
            try
            {
                decimal percent = ParseUtil.ToDecimal(txtPorcetagemPromocao.Text);
                var     ctx     = new BalcaoContext();
                int     vCount  = list.Count;
                int     i       = 0;
                foreach (var p in list)
                {
                    var pFind     = ctx.ProdutoDao.Find(p.IdProduto);
                    var alteracao = new AlteracaoProduto(p.IdProduto, "P", percent, DateTime.Now,
                                                         p.PrecoVenda, p.PrecoCompra, p.QuantidadeProduto);
                    pFind.PrecoVenda  = pFind.PrecoVenda - ((pFind.PrecoVenda * percent) / 100);
                    pFind.MargemLucro = pFind.CalcularMargemLucro(pFind.PrecoVenda, pFind.PrecoCompra);
                    pFind.AlteracoesProduto.Add(alteracao);
                    ctx.ProdutoDao.Update(pFind);
                    i++;
                }
                if (i == vCount)
                {
                    XMessageIts.Mensagem("Promoção Lançada " +
                                         "=> Devemos criar um estrategia para voltar todos os itens ao normal apos um determinado periodo");

                    this.Dispose();
                }
            }
            catch (Exception ex)
            {
                XMessageIts.ExceptionMessage(ex);
            }
        }
예제 #2
0
        public async Task <bool> AjustarEstoque(List <Produto> produtoList, decimal estoque)
        {
            using (var ctx = new BalcaoContext())
            {
                int i      = 0;
                int vCount = produtoList.Count;
                foreach (var p in produtoList)
                {
                    var pFind     = ctx.ProdutoDao.Find(p.IdProduto);
                    var newQtde   = ParseUtil.ToDecimal(estoque);
                    var alteracao = new AlteracaoProduto(p.IdProduto, "E", 0.0m, DateTime.Now,
                                                         p.PrecoVenda, p.PrecoCompra, p.QuantidadeProduto);
                    pFind.AlteracoesProduto.Add(alteracao);
                    pFind.QuantidadeProduto = GetNewQtdAjustarEstoqueProduto(pFind, newQtde);

                    if (pFind.QuantidadeProduto <= 0)
                    {
                        pFind.StatusProduto = TypeStatusProduto.SemEstoque;
                    }
                    else
                    {
                        pFind.StatusProduto = TypeStatusProduto.Ativo;
                    }

                    bool r = await ctx.ProdutoDao.UpdateAsync(pFind);

                    if (r)
                    {
                        //passa atualizacao pro objeto do grid
                        p.Update(pFind);
                    }

                    i++;
                }

                if (i == vCount)
                {
                    return(true);
                }
                else
                {
                    return(false);
                }
            }
        }