diff --git a/sale_zero_stock_blockage/__init__.py b/sale_zero_stock_blockage/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/sale_zero_stock_blockage/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/sale_zero_stock_blockage/__manifest__.py b/sale_zero_stock_blockage/__manifest__.py new file mode 100644 index 00000000000..436a978a5c0 --- /dev/null +++ b/sale_zero_stock_blockage/__manifest__.py @@ -0,0 +1,12 @@ +{ + "name": "Sale Zero Stock Blockage", + "application": False, + "installable": True, + "author": "sngoh", + "depends": ["sale"], + "auto_install": True, + "license": "LGPL-3", + "data": [ + "views/sale_order_views.xml", + ], +} diff --git a/sale_zero_stock_blockage/models/__init__.py b/sale_zero_stock_blockage/models/__init__.py new file mode 100644 index 00000000000..6aacb753131 --- /dev/null +++ b/sale_zero_stock_blockage/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order diff --git a/sale_zero_stock_blockage/models/sale_order.py b/sale_zero_stock_blockage/models/sale_order.py new file mode 100644 index 00000000000..50a01d77b5f --- /dev/null +++ b/sale_zero_stock_blockage/models/sale_order.py @@ -0,0 +1,22 @@ +from odoo import api, fields, models +from odoo.exceptions import UserError + + +class SaleOrder(models.Model): + _inherit = "sale.order" + + zero_stock_approval = fields.Boolean(string="Zero Stock Approval") + has_user_access = fields.Boolean(compute="_compute_has_user_access") + + @api.depends_context("uid") + def _compute_has_user_access(self): + has_access = self.env.user._is_admin() + for record in self: + record.has_user_access = not has_access + + def action_confirm(self): + for order in self: + if not order.zero_stock_approval: + raise UserError("Please confirm the zero stock approval") + + return super().action_confirm() diff --git a/sale_zero_stock_blockage/views/sale_order_views.xml b/sale_zero_stock_blockage/views/sale_order_views.xml new file mode 100644 index 00000000000..ccc409bd9fd --- /dev/null +++ b/sale_zero_stock_blockage/views/sale_order_views.xml @@ -0,0 +1,16 @@ + + + + + sale.order.form.inherit.sale.zero.stock.blockage + sale.order + + + + + + + + +