quel suggerimento serviva per capire "dove" scrivere il codice e ovviamente non "cosa" scrivere
nel tuo parser dovrai aggiungere una nuova variabile in localcontext, tipo "get_invoice_lines_by_ddt", dopodichè nel metodo associato potrai fare qualcosa tipo:
def _get_invoice_lines_by_ddt(self, ddt, lines):
for line in lines:
if ddt.name in line.origin:
(allora stampa la riga sotto il riferimento del ddt)
ovviamente se invece di fare affidamento sul campo name del picking e su origin sulla riga fattura, ti aggiungi dei campi di relazione, molto meglio...
inoltre dovrai prima aggiungere un'altra funzione che si passa tutte le righe fatture per capire quanti DDT sono stati fatturati contemporaneamente per poi ciclare su quella lista e passare il ddt alla funzione di raggruppo delle linee.