This question has been flagged
2 Replies
6092 Views

I'd like to be able to order invoice lines by product reference in Invoice report (account.account_invoices). Is it possible to use repeatIn function so that the list contain invoice line ordered by product reference?

Avatar
Discard
Best Answer

I don't know how to call the python build-in function "sorted" inside a rml file.

a) But you can define a own sort method in the account_print_invoice.py file.

add before the line report_sxw.report_sxw(

def sortByDefault_code(theList):
    theList.sort(key=lambda x: x.default_code, reverse=False)
    return theList  

self.localcontext.update({
    'sortByDefault_code':sortByDefault_code,
})

-- add the same spaces before def and self as already found before def in the account_print_invoice.py file

-- the shiftings in every line are important in python

b) change o.invoice_line to sortByDefault_code(o.invoice_line) in account_print_invoice.rml

<para style="terp_default_1">[[ repeatIn(sortByDefault_code(o.invoice_line),'l') ]]</para>

c) restart the openerp server

Avatar
Discard

Hi, Could you help me change the order on a Purchase order print so the order is in Scheduled Date (date_planned)? Many thanks.

Best Answer

Hi everybody,

I just tried the previous solution but it doesn't work. What I wanna do is sort my invoice lines by name.

Someone could help me ?

I tried with the following code :

def sortByDefault_code(account_invoice):
    account_invoice.sort(key=lambda x: x.name, reverse=False)
    return account_invoice  

self.localcontext.update({
    'sortByDefault_code':sortByDefault_code,
})

Thanks in advance.

JMB

Avatar
Discard
Author

Did you also modify the RML file as herbert6453 mentioned?