Files
rma/rma_sale/models/account_move.py
2023-08-29 20:09:32 +02:00

31 lines
1.1 KiB
Python

# Copyright 2023 Tecnativa - Pedro M. Baeza
# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl).
from odoo import models
class AccountMove(models.Model):
_inherit = "account.move"
def button_cancel(self):
"""If this a refund linked to an RMA, undo the linking of the reception move for
having proper quantities and status.
"""
for rma in self.env["rma"].search([("refund_id", "in", self.ids)]):
if rma.sale_line_id:
rma._unlink_refund_with_reception_move()
return super().button_cancel()
def button_draft(self):
"""Relink the reception move when passing the refund again to draft."""
for rma in self.env["rma"].search([("refund_id", "in", self.ids)]):
if rma.sale_line_id:
rma._link_refund_with_reception_move()
return super().button_draft()
def unlink(self):
"""If the invoice is removed, rollback the quantities correction"""
for rma in self.invoice_line_ids.rma_id.filtered("sale_line_id"):
rma._unlink_refund_with_reception_move()
return super().unlink()