# -*- coding: utf-8 -*- # Copyright 2026 Nexa Systems Inc. # License OPL-1 (Odoo Proprietary License v1.0) # Part of the Fusion Plating product family. from odoo import models class AccountMove(models.Model): _inherit = 'account.move' def _get_mail_template(self): """Prefer the Fusion Plating-branded invoice template over Odoo default. Called by the account.move.send wizard when the user clicks "Send" on an invoice. Override returns our fp_mail_template_invoice_posted (which attaches the branded Invoice PDF) for out_invoice moves. Credit notes / self-billing fall back to Odoo's built-in templates. """ if all(m.move_type == 'out_invoice' for m in self): tpl = self.env.ref( 'fusion_plating_notifications.fp_mail_template_invoice_posted', raise_if_not_found=False, ) if tpl: return tpl return super()._get_mail_template() def action_post(self): res = super().action_post() Dispatch = self.env['fp.notification.template'] for move in self: if move.move_type != 'out_invoice' or not move.partner_id: continue so = False if move.invoice_origin: so = self.env['sale.order'].search( [('name', '=', move.invoice_origin)], limit=1, ) Dispatch._dispatch( 'invoice_posted', move, move.partner_id, sale_order=so, ) return res