示例#1
0
        public async Task <StatusResponseDto> ObterStatus(StatusPedidoDto statusPedido)
        {
            var pedidoEntity = await ObterPorId(statusPedido.Pedido);

            var response = new StatusResponseDto {
                Pedido = statusPedido.Pedido
            };

            if (pedidoEntity == null)
            {
                response.Status.Add(Status.CodigoPedidoInvalido.Value);

                return(response);
            }

            if (statusPedido.Status.Equals(Status.Reprovado.Value))
            {
                response.Status.Add(Status.Reprovado.Value);

                return(response);
            }

            decimal valorTotalItens = pedidoEntity.Itens.Sum(item => item.PrecoUnitario * item.Qtd);
            int     qtdTotalItens   = pedidoEntity.Itens.Sum(item => item.Qtd);

            if (statusPedido.Status.Equals(Status.Aprovado.Value))
            {
                if (statusPedido.ItensAprovados == qtdTotalItens && statusPedido.ValorAprovado == valorTotalItens)
                {
                    response.Status.Add(Status.Aprovado.Value);
                    return(response);
                }

                if (statusPedido.ValorAprovado < valorTotalItens)
                {
                    response.Status.Add(Status.AprovadoValorAMenor.Value);
                }

                if (statusPedido.ValorAprovado < valorTotalItens)
                {
                    response.Status.Add(Status.AprovadoValorAMaior.Value);
                }

                if (statusPedido.ItensAprovados < qtdTotalItens)
                {
                    response.Status.Add(Status.AprovadoQtdMenor.Value);
                }

                if (statusPedido.ItensAprovados > qtdTotalItens)
                {
                    response.Status.Add(Status.AprovadoQtdMaior.Value);
                }
            }

            return(response);
        }
示例#2
0
        public async Task <ActionResult <StatusResponseDto> > ObterStatus(StatusPedidoDto statusPedido)
        {
            var statusPedidoDto = await PedidoService.ObterStatus(statusPedido);

            return(statusPedidoDto);
        }