コード例 #1
0
        public async Task Registrar(Compra compra)
        {
            if (!compra.EhValido())
            {
                Notificar(compra.ValidationResult);
                return;
            }

            await _compraRepository.Adicionar(compra);

            foreach (var produtoCompra in compra.ComprasProdutos)
            {
                var produto = await ObterProduto(produtoCompra);

                produtoCompra.GerarKardex(produto.Quantidade, produtoCompra.Quantidade);

                ValidarPrecoProduto(produtoCompra, produto);
                AtualizarEstoque(produtoCompra, produto);

                _produtoRepository.Atualizar(produto);
                await _compraProdutoRepository.Adicionar(produtoCompra);
            }

            await _UoW.Commit();
        }
コード例 #2
0
        public void AdicionarCompra(CompraViewModel compraViewModel)
        {
            var compra = _mapper.Map <Compra>(compraViewModel);

            _compraRepository.Adicionar(compra);

            _compraRepository.UnitOfWork.Commit();
        }
コード例 #3
0
        public async Task <IActionResult> Create(CompraViewComponent compraViewComponent)
        {
            if (!ModelState.IsValid)
            {
                return(View(compraViewComponent));
            }

            var compra = _mapper.Map <Compra>(compraViewComponent);

            await _compraRepository.Adicionar(compra);

            return(RedirectToAction("Index"));
        }
コード例 #4
0
        public void Handle(RegistrarCompraCommand message)
        {
            decimal valorTotalMercadoria = ValorTotalMercadoria(message.Quantidade, message.ValorUnitario);
            decimal totalNF       = TotalNF(valorTotalMercadoria, message.FreteCompra, message.DespesaNF);
            decimal custoUnitario = CustoUnitario(totalNF, message.Quantidade);

            var compra = new Compra(message.Codigo, message.Mercadoria, message.Quantidade, message.ValorUnitario,
                                    valorTotalMercadoria, message.FreteCompra, message.DespesaNF, totalNF, custoUnitario,
                                    message.DataCompra, message.Observacao, message.ClienteId);

            if (!CompraValido(compra))
            {
                return;
            }

            _compraRepository.Adicionar(compra);

            if (Commit())
            {
                _bus.RaiseEvent(new CompraRegistradoEvent(compra.Id, compra.Codigo, compra.Mercadoria, compra.Quantidade,
                                                          compra.ValorUnitario, compra.ValorTotalMercadoria, compra.FreteCompra, compra.DespesaNF, compra.TotalNF,
                                                          compra.CustoUnitario, compra.DataCompra, compra.Observacao));
            }
        }
コード例 #5
0
 public Compra Adicionar(Compra compra)
 {
     return(_compraRepository.Adicionar(compra));
 }
コード例 #6
0
 public async Task Adicionar(Compra compra)
 {
     await _compraRepository.Adicionar(compra);
 }