コード例 #1
0
        public List <CompraProduto> CalcularValorRatiado(List <ProdutoDTO> produtos, decimal?frete, decimal?seguro, decimal?outros)
        {
            var result       = new List <CompraProduto>(produtos.Count);
            var totalProduto = produtos.Sum(e => e.ValorUnitario * e.Quantidade);
            var totalCusto   = (frete ?? 0) + (seguro ?? 0) + (outros ?? 0);

            foreach (var produto in produtos)
            {
                var percentualProd = (produto.Quantidade * produto.ValorUnitario) / totalProduto;
                var custoProd      = percentualProd * totalCusto;
                var custoUnitario  = produto.ValorUnitario + (custoProd / produto.Quantidade);

                var prodCompra = new CompraProduto()
                {
                    ProdutoId     = produto.Produto.Id,
                    Produto       = produto.Produto,
                    ValorUnitario = produto.ValorUnitario,
                    Desconto      = produto.Desconto,
                    Quantidade    = produto.Quantidade,
                    IPI           = produto.IPI,
                    CustoUnitario = custoUnitario,
                };

                result.Add(prodCompra);
            }

            return(result);
        }
コード例 #2
0
        public ActionResult Index(FormCollection collection)
        {
            if (Session["idCompra"] != null)
            {
                // compra em curso
                // vou adicionar o produto À compra existente


                var idProduto  = collection["idProduto"];
                var quantidade = collection["quantidade"];
                var idCompra   = Session["idCompra"].ToString();

                CompraProduto cp = new CompraProduto();
                cp.IDCompra   = Int32.Parse(idCompra);
                cp.IDProduto  = Int32.Parse(idProduto);
                cp.Quantidade = Int32.Parse(quantidade);

                db.ComprasProduto.Add(cp);
                db.SaveChanges();


                int auxIdCompra = int.Parse(Session["idCompra"].ToString());
                ICollection <CompraProduto> x = db.ComprasProduto.Where(i => i.IDCompra == auxIdCompra).ToList();
                ViewBag.ListaProdutosNaCompra = x;
            }
            else
            {
                // vou criar uma compra
                Compra c = new Compra();
                c.DataDaCompra    = DateTime.Now;
                c.ApplicationUser = db.Users.Find(User.Identity.GetUserId());

                db.Compra.Add(c);
                db.SaveChanges();
                // vou adicionar o produto seleccionado à compra

                var idProduto  = collection["idProduto"];
                var quantidade = collection["quantidade"];
                var idCompra   = c.IDCompra;

                CompraProduto cp = new CompraProduto();
                cp.IDCompra   = idCompra;
                cp.IDProduto  = Int32.Parse(idProduto);
                cp.Quantidade = Int32.Parse(quantidade);

                db.ComprasProduto.Add(cp);
                db.SaveChanges();

                // vou definir a variavel de sessão com o id da compra
                Session["idCompra"] = c.IDCompra;

                int auxIdCompra = int.Parse(Session["idCompra"].ToString());
                ICollection <CompraProduto> x = db.ComprasProduto.Where(i => i.IDCompra == auxIdCompra).ToList();
                ViewBag.ListaProdutosNaCompra = x;
            }



            return(View(db.Produto.ToList()));
        }
コード例 #3
0
 /* O método ExecuteProcedure é o metodo encapsulado para montar os
  * comandos que serão executados no banco, o método encapsulado
  * AddPaarmeter adiciona os parametros que são pedidos nas
  * procedures e para finalizar o método ExecuteNonQuery executa procedures
  * que não retornam valores */
 public void InserirCompraProduto(CompraProduto compraProduto)
 {
     ExecuteProcedure(Procedures.CSSP_InsCompraProduto);
     AddParameter("@IdProduto", compraProduto.Produto.IdProduto);
     AddParameter("@IdCompra", compraProduto.IdCompra);
     AddParameter("@QtdeProduto", compraProduto.QtdeCompra);
     ExecuteNonQuery();
 }
コード例 #4
0
 public int Inserir(CompraProduto compraProduto)
 {
     compraProduto.DataCriacao   = DateTime.Now;
     compraProduto.RegistroAtivo = true;
     context.ComprasProdutos.Add(compraProduto);
     context.SaveChanges();
     return(compraProduto.Id);
 }
コード例 #5
0
        public ActionResult DeleteConfirmed(int id)
        {
            CompraProduto compraProduto = db.ComprasProduto.Find(id);

            db.ComprasProduto.Remove(compraProduto);
            db.SaveChanges();
            return(RedirectToAction("Index"));
        }
コード例 #6
0
        private void ValidarPrecoProduto(CompraProduto compraProduto, Produto produto)
        {
            if (produto.ValorCompra > compraProduto.ValorUnitario)
            {
                return;
            }

            produto.AtualizarValorCompra(compraProduto.ValorUnitario);
        }
コード例 #7
0
 private int verificaLista(List <CompraProduto> lista, CompraProduto cp)
 {
     for (int i = 0; i < lista.Count; i++)
     {
         if (lista.ElementAt(i).Produto.CodigoProduto == cp.Produto.CodigoProduto)
         {
             return(i);
         }
     }
     return(-1);
 }
コード例 #8
0
        public bool Apagar(int id)
        {
            CompraProduto compraProduto = (from x in context.ComprasProdutos where x.Id == id select x).FirstOrDefault();

            if (compraProduto == null)
            {
                return(false);
            }
            compraProduto.RegistroAtivo = false;
            return(context.SaveChanges() == 1);
        }
コード例 #9
0
        public JsonResult ModificarQuantidade(CompraProduto compraProduto)
        {
            if (compraProduto.Quantidade < 1)
            {
                compraProduto.Quantidade = 1;
            }

            var resultado = compraProdutoRepository.Atualizar(compraProduto);

            return(Json(resultado));
        }
コード例 #10
0
        private void btnEntrarClick(object sender, RoutedEventArgs e)
        {
            MainWindow main     = (MainWindow)DataContext;
            int        compraId = int.Parse(main.valueCompra.Content.ToString());
            string     login    = tbLogin.Text;
            string     senha    = tbSenha.Password;

            CompraProdutosViewModel rowdata = (CompraProdutosViewModel)main.dgCompraProdutos.SelectedItem;


            var db = new PadariaContext();

            try
            {
                var registro = db.Usuarios.Where(x => x.Login == login && x.Senha == senha).First();
                if (registro != null)
                {
                    if (registro.isAdministrador == true)
                    {
                        CompraProduto compraProduto = db.CompraProdutos.Find(rowdata.CompraProdutoId);
                        db.CompraProdutos.Remove(compraProduto);
                        db.SaveChanges();

                        var CompraProdutos = db.CompraProdutos.Where(x => x.CompraId == compraId).ToList();
                        List <CompraProdutosViewModel> listViewModel = new List <CompraProdutosViewModel>();
                        foreach (var cp in CompraProdutos)
                        {
                            var Produto = db.Produtos.Where(x => x.ProdutoId == cp.ProdutoId).First();
                            CompraProdutosViewModel viewModel = new CompraProdutosViewModel();
                            viewModel.CompraProdutoId   = cp.CompraProdutoId;
                            viewModel.CodigoBarra       = Produto.CodigoBarra;
                            viewModel.Nome              = Produto.Nome;
                            viewModel.Preco             = Produto.Preco;
                            viewModel.QuantidadeProduto = cp.QuantidadeProduto;
                            viewModel.ValorTotal        = cp.ValorTotal;
                            listViewModel.Add(viewModel);
                        }
                        main.valuePrecoTotal.Content      = listViewModel.Sum(item => item.ValorTotal);
                        main.dgCompraProdutos.ItemsSource = listViewModel;
                        main.txStatus.Text = "Produto Removido!";
                        Close();
                    }
                    else
                    {
                        MessageBox.Show("Usuário fornecido não é um Administrador!", "Status Autenticação");
                    }
                }
            }
            catch
            {
                MessageBox.Show("Usuário não encontrado!", "Status Autenticação");
            }
        }
コード例 #11
0
 public ActionResult Edit([Bind(Include = "IDCompraProduto,IDCompra,IDProduto,Quantidade")] CompraProduto compraProduto)
 {
     if (ModelState.IsValid)
     {
         db.Entry(compraProduto).State = EntityState.Modified;
         db.SaveChanges();
         return(RedirectToAction("Index"));
     }
     ViewBag.IDCompra  = new SelectList(db.Compra, "IDCompra", "IDCompra", compraProduto.IDCompra);
     ViewBag.IDProduto = new SelectList(db.Produto, "IDProduto", "Nome", compraProduto.IDProduto);
     return(View(compraProduto));
 }
コード例 #12
0
        // GET: CompraProdutoes/Details/5
        public ActionResult Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CompraProduto compraProduto = db.ComprasProduto.Find(id);

            if (compraProduto == null)
            {
                return(HttpNotFound());
            }
            return(View(compraProduto));
        }
コード例 #13
0
        public JsonResult ObterPeloId(int id)
        {
            CompraProduto compra = compraProdutoRepository.ObterPeloId(id);

            if (compra.Bebida != null)
            {
                compra.ValorTotal = compra.Quantidade * compra.Bebida.Valor;
            }
            else if (compra.Acessorio != null)
            {
                compra.ValorTotal = compra.Quantidade * compra.Acessorio.Preco;
            }

            return(Json(compra, JsonRequestBehavior.AllowGet));
        }
コード例 #14
0
        // GET: CompraProdutoes/Edit/5
        public ActionResult Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }
            CompraProduto compraProduto = db.ComprasProduto.Find(id);

            if (compraProduto == null)
            {
                return(HttpNotFound());
            }
            ViewBag.IDCompra  = new SelectList(db.Compra, "IDCompra", "IDCompra", compraProduto.IDCompra);
            ViewBag.IDProduto = new SelectList(db.Produto, "IDProduto", "Nome", compraProduto.IDProduto);
            return(View(compraProduto));
        }
コード例 #15
0
        public bool Atualizar(CompraProduto compraProduto)
        {
            CompraProduto compraProdutoOriginal = (from x in context.ComprasProdutos where x.Id == compraProduto.Id select x).FirstOrDefault();

            if (compraProdutoOriginal == null)
            {
                return(false);
            }
            compraProdutoOriginal.Id          = compraProduto.Id;
            compraProdutoOriginal.IdBebida    = compraProduto.IdBebida;
            compraProdutoOriginal.IdAcessorio = compraProduto.IdAcessorio;
            compraProdutoOriginal.Quantidade  = compraProduto.Quantidade;

            context.SaveChanges();
            return(true);
        }
コード例 #16
0
        public void Devolver(List <DevolucaoCompra> devolucaoCompra)
        {
            Parallel.ForEach(devolucaoCompra, async t =>
            {
                EstoqueProduto estoqueProduto = await _estoqueProdutoService.GetEstoqueProdutoByProdutoIdAsync(t.ProdutoId);
                CompraProduto compProd        = new CompraProduto();
                compProd = (t.CompraProduto is null)
                ? await _compraProdutoService.GetByIdAsync(t.CompraProdutoId)
                : t.CompraProduto;
                estoqueProduto.QuantidadeProduto = estoqueProduto.QuantidadeProduto - compProd.QuantidadeComprada;

                SaidaProdutoEstoque saidaProdutoEstoque = new SaidaProdutoEstoque(t.ProdutoId, estoqueProduto.EstoqueId, compProd.QuantidadeComprada);
                _saidaProdutoEstoqueService.AddAsync(saidaProdutoEstoque);

                AddAsync(t);
            });
        }
コード例 #17
0
        public ActionResult AdicionarCompra(int id, int quantidade)
        {
            Usuario usuario = new Usuario();

            if (Session["usuarioLogado"] != null)
            {
                usuario = Session["usuarioLogado"] as Usuario;
            }
            Compra compra = _homeContext.Compras.Where(x => x.Status == Types.StatusCompra.Aberto && x.UsuarioId == usuario.Id).FirstOrDefault();

            if (compra == null)
            {
                compra           = new Compra();
                compra.UsuarioId = usuario.Id;
                compra.Status    = Types.StatusCompra.Aberto;
                compra.Data      = DateTime.Now;
                CompraProduto item = new CompraProduto();
                item.ProdutoId  = id;
                item.Quantidade = quantidade;

                base._homeContext.Compras.Add(compra);
                item.CompraId = compra.Id;
                base._homeContext.CompraProdutos.Add(item);

                base._homeContext.SaveChanges();
            }
            else
            {
                CompraProduto item = base._homeContext.CompraProdutos.FirstOrDefault(c => c.ProdutoId == id && c.CompraId == compra.Id);
                if (item == null)
                {
                    item = new CompraProduto()
                    {
                        CompraId  = compra.Id,
                        ProdutoId = id
                    };
                    base._homeContext.CompraProdutos.Add(item);
                }
                item.Quantidade++;
                base._homeContext.SaveChanges();
            }
            return(RedirectToAction("Compra", "Carrinho"));
        }
コード例 #18
0
        private void btnIncluirProduto_Click(object sender, EventArgs e)
        {
            ProdutoController pc        = new ProdutoController();
            ProdutoDAO        pd        = new ProdutoDAO();
            DataTable         dtproduto = pc.retornaProduto(ttbProduto.Text.Trim());
            DataRow           dr        = dtproduto.Rows[0];
            Produto           p         = new Produto();

            p.CodigoProduto = Convert.ToInt32(dr["codproduto"]);
            p.Custo         = Convert.ToDouble(dr["prod_precocusto"]);
            p.NomeProduto   = dr["prod_produto"].ToString();
            p.Venda         = Convert.ToDouble(dr["prod_precovenda"]);
            p.Quantidade    = Convert.ToInt32(dr["prod_qtde"]);
            p.Observacao    = dr["prod_obs"].ToString();
            p.Marca         = pd.retornaMarca(Convert.ToInt32(dr["codmarca"]));
            p.Categoria     = pd.retornaCateria(Convert.ToInt32(dr["codcategoria"]));
            CompraProduto cp = new CompraProduto();

            cp.Produto = p;
            cp.Qtde    = Convert.ToInt32(ttbQuantidade.Text);
            double custo = 0;

            double.TryParse(mskCusto.Text, out custo);
            cp.Valor = custo;
            int v = verificaLista(lista, cp);

            if (v >= 0)
            {
                lista.ElementAt(v).Qtde += cp.Qtde;
            }
            else
            {
                lista.Add(cp);
            }
            carregaDGV(lista);
            somavalor();
            ttbProduto.Clear();
            ttbQuantidade.Clear();
            mskCusto.Clear();
            mskVenda.Clear();
        }
コード例 #19
0
        public ActionResult RemoverItem(int id)
        {
            Usuario usuario = new Usuario();

            if (Session["usuarioLogado"] != null)
            {
                usuario = Session["usuarioLogado"] as Usuario;
            }
            Compra compra = _homeContext.Compras.Where(x => x.Status == Types.StatusCompra.Aberto && x.UsuarioId == usuario.Id).FirstOrDefault();

            if (compra == null)
            {
                return(RedirectToAction("Catalogo", "Loja"));
            }

            CompraProduto item = this._homeContext.CompraProdutos.FirstOrDefault(c => c.Id == id);

            _homeContext.CompraProdutos.Remove(item);
            _homeContext.SaveChanges();
            return(RedirectToAction("Compra", "Carrinho"));
        }
コード例 #20
0
        public ActionResult Store(int IdBebida)
        {
            var cliente = (Cliente)Session["Cliente"];
            var compra  = repositoryCompra.ObterCompraPeloIdCliente(cliente.Id);

            if (compra == null)
            {
                compra = new Compra()
                {
                    IdCliente     = cliente.Id,
                    RegistroAtivo = true,
                    Total         = 0,
                    DataCriacao   = DateTime.Now,
                    DataCompra    = DateTime.Now,
                };
                repositoryCompra.Inserir(compra);
            }

            var _compraProduto = repository.ObterPeloIdBebida(IdBebida);

            if (_compraProduto != null)
            {
                _compraProduto.Quantidade++;
                repository.Atualizar(_compraProduto);
                return(RedirectToAction("Index", "Home"));
            }
            var compraProduto = new CompraProduto()
            {
                IdBebida      = IdBebida,
                IdCompra      = compra.Id,
                DataCriacao   = DateTime.Now,
                RegistroAtivo = true,
                Quantidade    = 1
            };

            repository.Inserir(compraProduto);
            return(RedirectToAction("Index", "Home"));
        }
コード例 #21
0
        private void btnAdicionarProdutoClick(object sender, RoutedEventArgs e)
        {
            MainWindow main       = (MainWindow)DataContext;
            int        produtoId  = int.Parse(txAdicionarProduto.Text);
            int        compraId   = int.Parse(main.valueCompra.Content.ToString());
            int        quantidade = int.Parse(txQuantidade.Text);
            var        db         = new PadariaContext();

            Produto novoProduto = db.Produtos.Where(x => x.ProdutoId == produtoId).First();

            //adiciona no banco o novo registro de compraproduto
            CompraProduto compraProduto = new CompraProduto();

            compraProduto.QuantidadeProduto = quantidade;
            compraProduto.ValorTotal        = quantidade * novoProduto.Preco;
            compraProduto.CompraId          = compraId;
            compraProduto.ProdutoId         = produtoId;
            db.CompraProdutos.Add(compraProduto);
            db.SaveChanges();

            var CompraProdutos = db.CompraProdutos.Where(x => x.CompraId == compraId).ToList();
            List <CompraProdutosViewModel> listViewModel = new List <CompraProdutosViewModel>();

            foreach (var cp in CompraProdutos)
            {
                var Produto = db.Produtos.Where(x => x.ProdutoId == cp.ProdutoId).First();
                CompraProdutosViewModel viewModel = new CompraProdutosViewModel();
                viewModel.CompraProdutoId   = cp.CompraProdutoId;
                viewModel.CodigoBarra       = Produto.CodigoBarra;
                viewModel.Nome              = Produto.Nome;
                viewModel.Preco             = Produto.Preco;
                viewModel.QuantidadeProduto = cp.QuantidadeProduto;
                viewModel.ValorTotal        = cp.ValorTotal;
                listViewModel.Add(viewModel);
            }
            main.valuePrecoTotal.Content      = listViewModel.Sum(item => item.ValorTotal);
            main.dgCompraProdutos.ItemsSource = listViewModel;
        }
コード例 #22
0
 private async Task <Produto> ObterProduto(CompraProduto compraProduto)
 {
     return(await _produtoRepository.ObterPorId(compraProduto.ProdutoId));
 }
コード例 #23
0
 private void AtualizarEstoque(CompraProduto compraProduto, Produto produto)
 {
     produto.IncrementarEstoque(compraProduto.Quantidade);
 }