Exemplo n.º 1
0
        public CompraViewModel Adicionar(CompraViewModel compraViewModel)
        {
            var compra = Mapper.Map <CompraViewModel, Compra>(compraViewModel);

            BeginTransaction();
            _compraService.Adicionar(compra);
            Commit();
            return(compraViewModel);
        }
Exemplo n.º 2
0
        public async Task <ActionResult> AdicionarCompra(AdicionarCompraRequest adicionarRequest)
        {
            var cpfToken = User.Identity.Name; //cpf deve estar contido no jwt; Se não tiver, há erro de autenticação

            var compra = new Compra
            {
                Codigo = adicionarRequest.Codigo,
                Valor  = adicionarRequest.Valor,
                Data   = adicionarRequest.Data,
            };

            return(TratarRetorno <AdicionarCompraResponse>(
                       await _compraService.Adicionar(compra, adicionarRequest.CPFRevendedor, cpfToken),
                       nameof(AdicionarCompra)));
        }
Exemplo n.º 3
0
        public async Task <ActionResult> Adicionar(CompraDTO compraDTO)
        {
            try
            {
                if (!ModelState.IsValid)
                {
                    return(StatusCode(StatusCodes.Status412PreconditionFailed));
                }

                var produto = await _produtoService.ObterPorId(compraDTO.ProdutoId);

                if (produto.QtdEstoque < compraDTO.QtdComprada)
                {
                    return(StatusCode(StatusCodes.Status412PreconditionFailed));
                }

                PagamentoDTO pagamentoDTO = new PagamentoDTO();
                pagamentoDTO.Cartao = compraDTO.Cartao;
                pagamentoDTO.Valor  = (produto.ValorUnitario * compraDTO.QtdComprada);

                produto.QtdEstoque = (produto.QtdEstoque - compraDTO.QtdComprada);

                var result = await _cartaoService.TransacaoCartaoCredito(pagamentoDTO);

                if (result == null)
                {
                    return(StatusCode(StatusCodes.Status412PreconditionFailed));
                }

                if (result.Estado.Contains("APROVADO"))
                {
                    await _produtoService.Atualizar(produto);

                    await _compraService.Adicionar(_mapper.Map <Compra>(compraDTO));

                    return(Ok());
                }
                else
                {
                    return(StatusCode(StatusCodes.Status412PreconditionFailed));
                }
            }
            catch
            {
                return(BadRequest());
            }
        }