diff --git a/sale_zero_stock/__init__.py b/sale_zero_stock/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/sale_zero_stock/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/sale_zero_stock/__manifest__.py b/sale_zero_stock/__manifest__.py new file mode 100644 index 00000000000..784778e4745 --- /dev/null +++ b/sale_zero_stock/__manifest__.py @@ -0,0 +1,10 @@ +{ + "name": "sale_zero_stock", + "depends": ["sale"], + "category": "sale", + "installable": True, + "application": True, + "data": ["views/sale_zero_stock.xml"], + "author": "RADHR", + "license": "LGPL-3", +} diff --git a/sale_zero_stock/models/__init__.py b/sale_zero_stock/models/__init__.py new file mode 100644 index 00000000000..06ba4c532b6 --- /dev/null +++ b/sale_zero_stock/models/__init__.py @@ -0,0 +1 @@ +from . import sale_zero_stock diff --git a/sale_zero_stock/models/sale_zero_stock.py b/sale_zero_stock/models/sale_zero_stock.py new file mode 100644 index 00000000000..ece5cdae3f4 --- /dev/null +++ b/sale_zero_stock/models/sale_zero_stock.py @@ -0,0 +1,23 @@ +from odoo import fields, models, api +from odoo.exceptions import UserError + + +class SaleZeroStock(models.Model): + _inherit = "sale.order" + + zero_stock_approval = fields.Boolean(string="Zero Stock Approval") + access_user = fields.Boolean(compute="_compute_has_access") + + @api.depends_context("uid") + def _compute_has_access(self): + + has_user_access = self.env.user._is_admin() + for record in self: + record.access_user = not has_user_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/views/sale_zero_stock.xml b/sale_zero_stock/views/sale_zero_stock.xml new file mode 100644 index 00000000000..62d06ab0874 --- /dev/null +++ b/sale_zero_stock/views/sale_zero_stock.xml @@ -0,0 +1,12 @@ + + + sale.zero.stock.view.form + sale.order + + + + + + + + \ No newline at end of file