Poderiam dar uma luz? Tentando calcular o valor total subtraindo o desconto, queria fazer com stream, mas estou apanhando.
public class Pedido {
@EqualsAndHashCode.Include
@Id
@GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
private BigDecimal subtotal;
private BigDecimal taxaFrete;
private BigDecimal valorTotal;
@Enumerated(EnumType.STRING)
private StatusPedido status = StatusPedido.CRIADO;
@CreationTimestamp
private OffsetDateTime dataCriacao;
private OffsetDateTime dataConfirmacao;
private OffsetDateTime dataCancelamento;
private OffsetDateTime dataEntrega;
@JsonIgnoreProperties
@OneToMany(mappedBy = "pedido", cascade = CascadeType.ALL)
private List<ItemPedido> itens = new ArrayList<>();
public void calcularValorTotal() {
getItens().forEach(ItemPedido::calcularPrecoTotal);
this.subtotal = getItens().stream()
.map(item -> item.getPrecoTotal())
.reduce(BigDecimal.ZERO, BigDecimal::add);
// this.valorTotal = this.subtotal.add(this.taxaFrete);
}
public void calcularDesconto(){
getItens().stream().forEach(item->item.setDesconto(new BigDecimal(String.valueOf(item.getPrecoUnitario().multiply(BigDecimal.valueOf(0.10))))));