Ejemplo n.º 1
0
  public Invoice issuance(InvoiceRequest invoiceRequest, TaxPolicy taxPolicy) {
    Invoice invoice = invoiceFactory.create(invoiceRequest.getClientData());

    for (RequestItem item : invoiceRequest.getItems()) {
      Money net = item.getTotalCost();
      Tax tax = taxPolicy.calculateTax(item.getProductData().getType(), net);

      InvoiceLine invoiceLine =
          new InvoiceLine(item.getProductData(), item.getQuantity(), net, tax);
      invoice.addItem(invoiceLine);
    }

    return invoice;
  }