Example #1
0
        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);
        }