Exemplo n.º 1
0
        public void AtualizarCompra(Compra compra)
        {
            compra.Validar();
            compra.ItensCompra.ForEach(x => x.Validar());
            AssertionConcern.AssertArgumentNotEquals(0, compra.CompraCodigo,
                                                     string.Format(Erros.NotZeroParameter, "CompraCodigo"));
            var compraAtual = _compraRepository.ObterPorCodigoComItensCompra(compra.CompraCodigo);

            if (compra.StatusCompra == StatusCompraEnum.Aberto)
            {
                AplicaValidacoesPadrao(compra);
                AdicionaFornecedorFormaECondicaoDePagamento(compra, compraAtual);
                AtualizaItensCompra(compraAtual, compra.ItensCompra);
                compraAtual.StatusCompra = StatusCompraEnum.Confirmado;
                AdicionaContaPagarNaCompra(compraAtual);
                compraAtual.ContasPagar.ForEach(x => x.Validar());
                AdicionarNoEstoque(compra.ItensCompra, compra);
            }
            else
            {
                compraAtual.StatusCompra = StatusCompraEnum.Cancelado;
                RemoveContaPagarDaCompra(compraAtual);
                AtualizarDoEstoque(compraAtual.ItensCompra);
            }
            _compraRepository.Atualizar(compraAtual);
        }
Exemplo n.º 2
0
        public void AtualizarCompra(CompraViewModel compraViewModel)
        {
            var compra = _mapper.Map <Compra>(compraViewModel);

            _compraRepository.Atualizar(compra);

            _compraRepository.UnitOfWork.Commit();
        }
        public async Task Atualizar(Compra compra)
        {
            if (!ExecutarValidacao(new CompraValidation(), compra))
            {
                return;
            }

            await _compraRepository.Atualizar(compra);
        }
        public void Handle(AtualizarCompraCommand message)
        {
            var compraAtual = _compraRepository.ObterPorId(message.Id);

            if (!CompraExistente(message.Id, message.MessageType))
            {
                return;
            }

            if (compraAtual.ClienteId != _user.GetUserId())
            {
                _bus.RaiseEvent(new DomainNotification(message.MessageType, "Compra não pertence ao cliente."));
                return;
            }

            decimal valorTotalMercadoria = ValorTotalMercadoria(message.Quantidade, message.ValorUnitario);
            decimal totalNF       = TotalNF(valorTotalMercadoria, message.FreteCompra, message.DespesaNF);
            decimal custoUnitario = CustoUnitario(totalNF, message.Quantidade);

            var compra = Compra.CompraFactory.NovoCompraCompleto(message.Id, 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.Atualizar(compra);

            if (Commit())
            {
                _bus.RaiseEvent(new CompraAtualizadoEvent(compra.Id, compra.Codigo, compra.Mercadoria, compra.Quantidade, compra.ValorUnitario,
                                                          compra.ValorTotalMercadoria, compra.FreteCompra, compra.DespesaNF, compra.TotalNF, compra.CustoUnitario,
                                                          compra.DataCompra, compra.Observacao));
            }
        }
Exemplo n.º 5
0
        public async Task <AtualizarCompraResponse> Atualizar(Compra compra, string cpfToken)
        {
            try
            {
                if (compra == null)
                {
                    return(new AtualizarCompraResponse("Compra Invalida", 400));
                }

                var compraDb = await _compraRepository.Obter(compra.Id);

                if (compraDb?.Id == null)
                {
                    return(new AtualizarCompraResponse("Compra não encontrada", 404));
                }


                var mesmoRevendedor = await _revendedorService.ValidarAnalogia(cpfToken, compraDb.IdRevendedor);

                if (!mesmoRevendedor)
                {
                    return(new AtualizarCompraResponse("CPF Inforamdo não corresponde com o Usuário de acesso", 400));
                }

                if (compraDb.Status != StatusCompra.EmValidacao)
                {
                    return(new AtualizarCompraResponse("Não é possível alterar a compra~, compra não está mais em validação.", 400));
                }

                compraDb = AtualizarDados(compraDb, compra);

                if (!ValidarCompra(compraDb))
                {
                    return(new AtualizarCompraResponse("Codigo ou Valor da compra Invalidos", 400));
                }

                await _compraRepository.Atualizar(compraDb);

                return(new AtualizarCompraResponse());
            }
            catch (Exception ex)
            {
                _logger.LogError(ex.Message, ex);
                throw ex;
            }
        }
Exemplo n.º 6
0
        public async Task <IActionResult> Edit(Guid id, CompraViewComponent compraViewComponent)
        {
            if (id != compraViewComponent.Id)
            {
                return(NotFound());
            }

            if (!ModelState.IsValid)
            {
                return(View(compraViewComponent));
            }

            var compraAtualizada = _mapper.Map <Compra>(await _compraRepository.ObterPorId(id));

            compraAtualizada.Nome = compraViewComponent.Nome;
            await _compraRepository.Atualizar(compraAtualizada);

            return(RedirectToAction("Index"));
        }
Exemplo n.º 7
0
 public Compra Atualizar(Compra compra)
 {
     return(_compraRepository.Atualizar(compra));
 }
 public void Atualizar(CompraModel compra)
 {
     _compraRepository.Atualizar(compra);
     //return "Somente é possível atualizar vendas com status \"Em Validação\"";
 }