[[ repeatIn(objects,'o') ]] [[ o.name ]] [[ adr_get(o, 'invoice')['name'] ]] [[ adr_get(o, 'invoice')['street'] ]] [[ adr_get(o, 'invoice')['zip'] ]] [[ adr_get(o, 'invoice')['city'] ]] [[ adr_get(o, 'invoice')['country_id'][1] ]] VAT: [[ o.vat ]] Document: Customer account statement Date: [[ time.strftime('%d/%m/%Y') ]] Customer Ref: [[ o.id ]] Dear Sir/Madam, Exception made if there was a mistake of ours, it seems that the following bills staid unpaid. Please, take appropriate measures in order to carry out this payment in the next 8 days. Would your payment have been carried out after this mail was sent, please consider the present one as void. Do not hesitate to contact our accounting departement at (+32).10.68.94.39. Best regards. Date Description Ref Maturity date Due Paid Maturity Li. [[repeatIn(getLines(o), 'line') ]] [[ line['date'] ]] [[ line['name'] ]] [[ line['ref'] ]] [[ line['date_maturity'] ]] [[ line['debit'] and '%.2f' % line['debit'] or '' ]] [[ line['credit'] and '%.2f' % line['credit'] or '' ]] [[ (line['date_maturity'] < time.strftime('%Y-%m-%d')) and (line['debit'] - line['credit']) or '' ]] [[ line['blocked'] and 'X' or '' ]] Sub-Total: [[ '%.2f' % (reduce(lambda x,y: x+y['debit'], getLines(o), 0)) ]] [[ '%.2f' % (reduce(lambda x,y: x+y['credit'], getLines(o), 0)) ]] [[ reduce(lambda x,y: x+(y['debit'] - y['credit']), filter(lambda x: x['date_maturity'] < time.strftime('%Y-%m-%d'), getLines(o)), 0) ]] Balance: [[ '%.2f' % (reduce(lambda x,y: x+(y['debit'] - y['credit']), getLines(o), 0)) ]] Total amount due: [[ '%.2f' % (reduce(lambda x,y: x+(y['debit']-y['credit']), getLines(o), 0)) ]] [[ company.currency_id.code ]].