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); }
public async Task <ActionResult <StatusResponseDto> > ObterStatus(StatusPedidoDto statusPedido) { var statusPedidoDto = await PedidoService.ObterStatus(statusPedido); return(statusPedidoDto); }