36 lines
975 B
Python
Executable File
36 lines
975 B
Python
Executable File
# Copyright 2013 Guewen Baconnier, Camptocamp SA
|
|
# Copyright 2022 Aritz Olea, Landoo SL
|
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
|
from odoo import fields, models
|
|
|
|
|
|
class SaleOrder(models.Model):
|
|
_inherit = "sale.order"
|
|
|
|
cancel_reason_id = fields.Many2one(
|
|
"sale.order.cancel.reason",
|
|
string="Reason for cancellation",
|
|
readonly=True,
|
|
ondelete="restrict",
|
|
tracking=True,
|
|
copy=False,
|
|
)
|
|
|
|
def _show_cancel_wizard(self):
|
|
for order in self:
|
|
if not order._context.get("disable_cancel_warning"):
|
|
return True
|
|
return False
|
|
|
|
def action_draft(self):
|
|
res = super().action_draft()
|
|
self.write({"cancel_reason_id": False})
|
|
return res
|
|
|
|
|
|
class SaleOrderCancelReason(models.Model):
|
|
_name = "sale.order.cancel.reason"
|
|
_description = "Sale Order Cancel Reason"
|
|
|
|
name = fields.Char("Reason", required=True, translate=True)
|