Trattandosi di fattura
accompagnatoria differita non è questione di chiarezza ma è obbligatorio riportare data e numero di DDT nella fattura, non ci si puo' esimere dal farlo altrimenti il documento non è conforme alla legge.
Se ti puo' essere di aiuto ti linko qui il codice che ho realizzato come esempio per poi finalizzare l'implementazione che pero' e' troppo specifica per essere utilizzata.
gist.github.com/gigidn/49f39f51bf23be7a89ab
Qualcosa fatta in 30 min ... comunque funzionava piu' o meno ... spero ti sia utile. Il codice è brutto ma non era quello il suo scopo, volevo semplicemente validare l'approccio.
per quando riguarda l'ordinamento ... prova con qualcosa del genere nel report:
sorted(o.invoice_lines, key=lambda x: x['reference'])
o qualcosa di simile ... non posso provare ma essendo il recordset un iterator dovresti poter usare sort ... da sperimentare comunque.