Esempio n. 1
0
        public async Task <ActionResult> DeleteConfirmed(int id)
        {
            CompraFornecedor compraFornecedor = await db.ComprasFornecedores.FindAsync(id);

            db.ComprasFornecedores.Remove(compraFornecedor);
            await db.SaveChangesAsync();

            return(RedirectToAction("Index"));
        }
Esempio n. 2
0
        // GET: CompraaFornecedores/Details/5
        public async Task <ActionResult> Details(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }

            CompraFornecedor compraFornecedor = await db.ComprasFornecedores.FindAsync(id);

            if (compraFornecedor == null)
            {
                return(HttpNotFound());
            }

            return(View(compraFornecedor));
        }
Esempio n. 3
0
        public async Task <ActionResult> Create([Bind(Include = "CompraFornecedorId,FornecedorId,CompraFornecedorProdutos,Data")] CompraFornecedor compraFornecedor)
        {
            if (ModelState.IsValid)
            {
                db.ComprasFornecedores.Add(compraFornecedor);

                await db.SaveChangesAsync();

                return(RedirectToAction("Index"));
            }

            ViewBag.Fornecedores = await db.Fornecedores.ToListAsync();

            ViewBag.ProdutoFornecedores = await db.ProdutosFornecedores
                                          .Include(p => p.Produto)
                                          .Include(p => p.Fornecedor)
                                          .ToListAsync();

            return(View(compraFornecedor));
        }
Esempio n. 4
0
        // GET: CompraaFornecedores/Edit/5
        public async Task <ActionResult> Edit(int?id)
        {
            if (id == null)
            {
                return(new HttpStatusCodeResult(HttpStatusCode.BadRequest));
            }


            CompraFornecedor compraFornecedor = await db.ComprasFornecedores.FindAsync(id);

            if (compraFornecedor == null)
            {
                return(HttpNotFound());
            }


            ViewBag.ProdutoFornecedores = await db.ProdutosFornecedores
                                          .Include(pf => pf.Produto)
                                          .Include(pf => pf.Fornecedor)
                                          .Where(pf => pf.FornecedorId == compraFornecedor.FornecedorId)
                                          .ToListAsync();

            return(View(compraFornecedor));
        }
Esempio n. 5
0
        public async Task <ActionResult> Edit([Bind(Include = "CompraFornecedorId,FornecedorId,CompraFornecedorProdutos,Data")] CompraFornecedor compraFornecedor)
        {
            if (ModelState.IsValid)
            {
                using (var scope = new TransactionScope(TransactionScopeAsyncFlowOption.Enabled))
                {
                    //Produtos Apagados
                    var produtosOriginais = await db.ComprasFornecedoresProdutos
                                            .AsNoTracking()
                                            .Where(c => c.CompraFornecedorId == compraFornecedor.CompraFornecedorId)
                                            .ToListAsync();

                    foreach (var produtoOriginal in produtosOriginais)
                    {
                        var existe = compraFornecedor.CompraFornecedorProdutos
                                     .Any(p => p.CompraFornecedorProdutoId == produtoOriginal.CompraFornecedorProdutoId);

                        if (!existe)
                        {
                            var produtoExcluido = await db.ComprasFornecedoresProdutos
                                                  .FirstOrDefaultAsync(p => p.CompraFornecedorProdutoId == produtoOriginal.CompraFornecedorProdutoId);

                            db.ComprasFornecedoresProdutos.Remove(produtoExcluido);
                        }
                    }

                    await db.SaveChangesAsync();

                    //Produtos Editados
                    foreach (var produto in compraFornecedor.CompraFornecedorProdutos)
                    {
                        //Produtos Editados
                        if (produto.CompraFornecedorProdutoId > 0)
                        {
                            db.Entry(produto).State = EntityState.Modified;
                        }
                        else
                        {
                            //Produtos Criados
                            produto.CompraFornecedorId = compraFornecedor.CompraFornecedorId;
                            db.ComprasFornecedoresProdutos.Add(produto);
                        }
                    }

                    await db.SaveChangesAsync();

                    db.Entry(compraFornecedor).State = EntityState.Modified;
                    await db.SaveChangesAsync();

                    scope.Complete();
                    return(RedirectToAction("Index"));
                }
            }

            ViewBag.ProdutoFornecedores = await db.ProdutosFornecedores
                                          .Include(p => p.Produto)
                                          .Include(p => p.Fornecedor)
                                          .ToListAsync();

            return(View(compraFornecedor));
        }