Search code examples
python-2.7odoo-9

How can' i override the print function of the button 'print'


i'm using odoo 9 and i want to modify the function on the button print in invoices .So i have created a custom module to override the function invoice_print to satisfy my conditions but i notice that only the button print in the workflow bar ha been changed ,the other button print which is next to the button Action doesn't apply the modification. I have spend many hours to search the function of this button but i don't know where is the function of this button any help please ??

enter image description here

here is the function that i have modified :

 @api.multi
def invoice_print(self):
 if (self.partner_id.CodeTVA == False) or (self.partner_id.street == False):
        raise UserError(
            _("vous ne pouvez pas lancer l impression. Veuillez remplir le code TVA et/ou l'adresse du partenaire" ))

    elif (self.partner_id.CodeTVA == True) and (self.partner_id.street == True):
        self.ensure_one()
        self.sent = True
    # return self.env['report'].get_action(self, 'account.report_invoice')
    return self.env['report'].get_action(self, 'bi_professional_reports_templates.report_invoice')

Solution

  • Login with admin credentials, activate developer mode, goto Technical settings -> Reports (Under actions section), search for the print menu you want to customize, open the record, view metadata, get xml ID and look for that ID in the source code. If you want to customize that report, inherit the report record or action and do your customizations.