public Venda Salvar(long id, long[] produtoId, decimal[] quantidade, DateTime dataVenda, string cliente ) { Venda venda = null; if (id > 0) { venda = _vendaRepository.GetById(id); } else { venda = new Venda { NomeCliente = cliente, DataVenda = DateTime.Now }; } //Atualiza de acordo com o que foi digitado venda.Itens.Clear(); for (int i = 0; i < produtoId.Count(); i++) { var prod = _produtoRepository.GetById(produtoId[i]); var item = new VendaItem() { Venda = venda, Produto = prod, Quantidade = quantidade[i], Total = quantidade[i] * prod.Preco }; var msg = string.Empty; //if (prod.QuantidadeEstoque < quantidade[i]) if (!item.Verifica_Estoque_E_Qtd_Zerada(out msg)) { throw new InvalidOperationException(msg); } prod.Diminuir_Quantidade_Venda(quantidade[i]); venda.Itens.Add(item); } venda.Total = venda.Itens.Sum(x => x.Total); _vendaRepository.Save(venda); _vendaRepository.CommitTran(); return(venda); }
public void Verifica_Estoque_E_Qtd_Zerada_Passando_Quantidade_Menor_Estoque() { var msg = String.Empty; var vendaItem = new VendaItem(); var produto = new Produto(); vendaItem.Quantidade = 3; produto.QuantidadeEstoque = 3; vendaItem.Produto = produto; var obj = vendaItem.Verifica_Estoque_E_Qtd_Zerada(out msg); Assert.AreEqual(true, obj); }