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 })
}