def decideRelevantInvoice()

in src/main/scala/com/gu/invoicing/refund/Impl.scala [215:224]


  def decideRelevantInvoice(
      refund: BigDecimal,
      invoices: List[Invoice],
      itemsByInvoiceId: Map[String, List[InvoiceItem]],
  ): (String, Invoice, List[InvoiceItem]) = {
    joinInvoiceWithInvoiceItemsOnInvoiceIdKey(invoices, itemsByInvoiceId).iterator
      .filter({ case (_, invoice, _) => invoice.Status == "Posted" })
      .filter({ case (_, invoice, _) => invoice.Amount >= refund })
      .maxBy({ case (_, invoice, _) => invoice.TargetDate })
  }