public void Devolver(List <DevolucaoVenda> devolucaoVenda) { Parallel.ForEach(devolucaoVenda, async t => { EstoqueProduto estoqueProduto = await _estoqueProdutoService.GetEstoqueProdutoByProdutoIdAsync(t.ProdutoId); VendaProduto vendaProd = new VendaProduto(); vendaProd = (t.VendaProduto is null) ? await _vendaProdutoService.GetByIdAsync(t.VendaProdutoId) : t.VendaProduto; estoqueProduto.QuantidadeProduto = estoqueProduto.QuantidadeProduto + vendaProd.QuantidadeVedida; EntradaProdutoEstoque entradaProdutoEstoque = new EntradaProdutoEstoque(t.ProdutoId, estoqueProduto.EstoqueId); _entradaProdutoEstoqueService.AddAsync(entradaProdutoEstoque); AddAsync(t); }); }
public async void Recebido(CompraProduto compraProduto, Guid estoqueId) { EstoqueProduto estoqueProdutoService = await _estoqueProdutoService.GetEstoqueProdutoByProdutoIdAsync(compraProduto.ProdutoId); if (estoqueProdutoService is null) { throw (new Exception("Por favor, cadastre o produto nesse estoque, depois realize a operação de recebimento!")); } estoqueProdutoService.QuantidadeProduto += compraProduto.QuantidadeComprada; CompraProduto compraProdutoAntiga = await this.GetByIdAsync(compraProduto.Id); compraProdutoAntiga.IsRecebido = true; EntradaProdutoEstoque entradaProdutoEstoque = new EntradaProdutoEstoque(compraProduto.ProdutoId, estoqueId); _entradaProdutoEstoqueService.Add(entradaProdutoEstoque); }