Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
2 Trả lời
4706 Lượt xem

Hello everyone,

I am using Odoo 12 and need to run a code after printing a report.

The code I am inheriting from 'account.invoice' is:

    @api.multi
    def invoice_print(self):

         res = super(AccountInvoice, self).invoice_print()

         # First, I need to print the report... and then
         # ...run the code here (after printing the report)...

First, I need to print the report and then execute a code to change a value of a field.

Can anyone help me please?

Thank you all in advance

Regards

PM

Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

Hi Paulo,

If the order doesn't strictly matter, then the following code is the easiest approach:

@api.multi
def invoice_print(self):
    res = super(ReportController, self).invoice_print()
    self.write({'print_button_pressed': True})
    return res

The main thing to note is that you are returning the result of the super, which contains the print action. As I mentioned, the order wrong in this, but in most case it shouldn't matter. This change will technically come into effect before the invoice is printed, which will only matter if you are showing that field on the invoice and need the value from before the change.

If you do need the original value, you can use the following at the end of the invoice report:

<t t-set="dummy" t-value="o.your_function_name()"/>

Then create a function your_function_name on the invoice with the code you need.


Ảnh đại diện
Huỷ bỏ
Tác giả

Thank you @Jake Robinson,

This is what I need: <t t-set="dummy" t-value="o.your_function_name()"/>

Best regards

PM

Câu trả lời hay nhất

Report will print only if you return report action from a function which means you can not run code after print report.

You can call another function from qweb report which will get called during report print. With browse object you can call function of same class in qweb code.

Thanks

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
1
thg 1 20
4358
2
thg 12 19
5059
3
thg 12 19
7482
1
thg 2 19
9817
1
thg 11 24
1621