# Copyright 2013 Agile Business Group sagl () # Copyright 2016 Serpent Consulting Services Pvt. Ltd. # Copyright 2018 Dreambits Technologies Pvt. Ltd. () # Copyright 2020 Ecosoft Co., Ltd. () # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). from odoo import fields, models class SaleOrder(models.Model): _name = "sale.order" _inherit = ["sale.order", "base.revision"] current_revision_id = fields.Many2one( comodel_name="sale.order", ) old_revision_ids = fields.One2many( comodel_name="sale.order", ) # Overwrite as sales.order can be multi-company _sql_constraints = [ ( "revision_unique", "unique(unrevisioned_name, revision_number, company_id)", "Order Reference and revision must be unique per Company.", ) ] def _prepare_revision_data(self, new_revision): vals = super()._prepare_revision_data(new_revision) vals.update({"state": "cancel"}) return vals def action_view_revisions(self): self.ensure_one() result = self.env["ir.actions.act_window"]._for_xml_id("sale.action_orders") result["domain"] = ["|", ("active", "=", False), ("active", "=", True)] result["context"] = { "active_test": 0, "search_default_current_revision_id": self.id, "default_current_revision_id": self.id, } return result