@Override
  protected void step_validate_after_aggregation(
      List<I_C_Invoice_Candidate> invoiceCandidates,
      List<I_M_InOutLine> inOutLines,
      List<IInvoiceHeader> invoices) {
    // guard
    assertThat(config_IsSOTrx(), is(false));

    assertEquals("We are expecting one invoice: " + invoices, 1, invoices.size());

    final IInvoiceHeader invoice1 = invoices.remove(0);

    assertThat(invoice1.isSOTrx(), is(config_IsSOTrx()));

    assertThat(invoice1.getPOReference(), is(IC_PO_REFERENCE));
    assertThat(invoice1.getDateAcct(), is(IC_DATE_ACCT));

    assertThat(invoice1.isSOTrx(), is(config_IsSOTrx()));
    final List<IInvoiceLineRW> invoiceLines1 = getInvoiceLines(invoice1);
    assertEquals("We are expecting one invoice line: " + invoiceLines1, 1, invoiceLines1.size());

    final IInvoiceLineRW il1 = getSingleForInOutLine(invoiceLines1, iol111);
    assertNotNull("Missing IInvoiceLineRW for iol111=" + iol111, il1);
    assertThat(il1.getQtyToInvoice(), comparesEqualTo(config_GetQtyToInvoice_Override()));
    assertThat(il1.getC_InvoiceCandidate_InOutLine_IDs().size(), equalTo(2));

    final IInvoiceCandidateInOutLineToUpdate icIolToUpdate111 =
        retrieveIcIolToUpdateIfExists(il1, iol111);
    assertThat(icIolToUpdate111.getQtyInvoiced(), is(FIFTY));

    final IInvoiceCandidateInOutLineToUpdate icIolToUpdate121 =
        retrieveIcIolToUpdateIfExists(il1, iol121);
    assertThat(icIolToUpdate121.getQtyInvoiced(), is(FIFTY.add(TWENTY)));
  }
 /** Returns 120. */
 @Override
 BigDecimal config_GetQtyToInvoice_Override() {
   return FIFTY.add(FIFTY).add(TWENTY);
 }