public async Task Registrar(Venda venda) { if (!venda.EhValido()) { Notificar(venda.ValidationResult); return; } await _vendaRepository.Adicionar(venda); foreach (var produtoVenda in venda.VendasProdutos) { var produto = await ObterProduto(produtoVenda); if (!QuantidadeSuficienteNoEstoque(produtoVenda, produto)) { Notificar("Não há itens suficientes em estoque para concluir essa operação."); return; } produtoVenda.GerarKardex(produto.Quantidade, produtoVenda.Quantidade); produto.DecrementarEstoque(produtoVenda.Quantidade); _produtoRepository.Atualizar(produto); await _vendaProdutoRepository.Adicionar(produtoVenda); } var cliente = await ObterClientePorId(venda.ClienteId); await GerarRegistroClienteCompra(cliente, venda); await _UoW.Commit(); }
public async Task Adicionar(Venda venda) { if (!ExecutarValidacao(new VendaValidation(), venda)) { return; } if (_vendaRepository.Buscar(v => v.Id == venda.Id).Result.Any()) { Notificar("Esta venda já foi cadastrada"); return; } await _vendaRepository.Adicionar(venda); }
public void CriarVendaRepositorioTeste() { // Criar venda Venda venda = new Venda(new DateTime(2000, 12, 30), new List <ItemVenda>()); // Adicionar ao banco _repositorio.Adicionar(venda); // Buscar no banco Venda novaVenda = _contextoTeste.Venda.Find(venda.Id); //.Include(itv => itv.Produto).Where(itv => itv.Id == itemVenda.Id).FirstOrDefault(); // Assert Assert.IsTrue(novaVenda.Id > 0); Assert.AreEqual(novaVenda.Data, new DateTime(2000, 12, 30)); }
public async Task Adicionar(Venda venda) { //Verifica se existe uma Venda cadastrada com o mesmo Id if (!ExecutarValidacao(new VendaValidation(), venda)) { return; } //Ver se realmente é necessário if (_vendaRepository.Buscar(v => v.Id == venda.Id).Result.Any()) { Notificar("Esta venda já foi cadastrada"); return; } await _vendaRepository.Adicionar(venda); }
public Venda Adicionar(Venda venda) { if (!venda.EhValido()) { return(venda); } venda.ValidationResult = new VendaCadastroOkValidation(_estoqueRepository, _vendaRepository).Validate(venda); if (venda.ValidationResult.IsValid) { venda.DataVenda = DateTime.Now; } _vendaRepository.Adicionar(venda); _estoqueService.RemoverQuantidadeProdutoEstoque(venda.ProdutoId, (int)venda.Quantidade); return(venda); }
public async Task <ActionResult <VendaViewModel> > AdicionarVenda(VendaViewModel vendaViewModel) { if (!ModelState.IsValid) { return(BadRequest()); } var venda = await _vendaRepository.ObterPorId(vendaViewModel.Id); if (venda != null) { return(BadRequest("Venda já Cadastrada. Informe um ID único, por favor!!")); } //if (!ValidarDados(vendaViewModel)) return BadRequest("Há infromações erradas na venda. Confira os IDs do carro, vendedor, cliente"); var carro = await _carroRepository.ObterPorId(vendaViewModel.CarroId); if (carro == null) { return(BadRequest("Id do Carro não é válido")); } var vendedor = await _vendedorRepository.ObterPorId(vendaViewModel.VendedorId); if (vendedor == null) { return(BadRequest("Id do Vendedor não é válido")); } var cliente = await _clienteRepository.ObterPorId(vendaViewModel.ClienteId); if (cliente == null) { return(BadRequest("Id do Cliente não é válido")); } await _vendaRepository.Adicionar(_mapper.Map <Venda>(vendaViewModel)); return(Ok(vendaViewModel)); }
public async Task <Venda> Adicionar(Venda venda) { if (venda == null) { return(null); } if (venda.ProdutoId == Guid.Empty) { Notificar("Venda sem produto relacionado."); } else if ((await __vendaRepository.Buscar(x => x.ProdutoId == venda.ProdutoId)).Count() > 0) { Notificar("Produto Já Foi Vendido."); } else { venda.EmailComprador = venda.EmailComprador ?? _user.GetUserEmail(); venda.Data = DateTime.Now; await __vendaRepository.Adicionar(venda); } return(await __vendaRepository.ObterVendaProduto(venda.Id)); }
public void Adicionar(Venda venda) { venda.Valida(); _vendaRepository.Adicionar(venda); }
public Venda CriarVenda(Venda venda) { return(_repositorio.Adicionar(venda)); }
public Venda Adiciona(Venda venda) { venda.Validate(); return(_vendaRepository.Adicionar(venda)); }