diff --git a/sale_order_zero_stock_blockage/__init__.py b/sale_order_zero_stock_blockage/__init__.py new file mode 100644 index 00000000000..0650744f6bc --- /dev/null +++ b/sale_order_zero_stock_blockage/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/sale_order_zero_stock_blockage/__manifest__.py b/sale_order_zero_stock_blockage/__manifest__.py new file mode 100644 index 00000000000..deac470dd6c --- /dev/null +++ b/sale_order_zero_stock_blockage/__manifest__.py @@ -0,0 +1,10 @@ +{ + 'name': "sale_order_zero_stock_blockage", + 'author': "pkhu", + 'license': "LGPL-3", + 'depends': ['sale_management', 'stock'], + 'data': [ + 'views/sale_order_views.xml', + ], + 'auto_install': True, +} diff --git a/sale_order_zero_stock_blockage/models/__init__.py b/sale_order_zero_stock_blockage/models/__init__.py new file mode 100644 index 00000000000..6aacb753131 --- /dev/null +++ b/sale_order_zero_stock_blockage/models/__init__.py @@ -0,0 +1 @@ +from . import sale_order diff --git a/sale_order_zero_stock_blockage/models/sale_order.py b/sale_order_zero_stock_blockage/models/sale_order.py new file mode 100644 index 00000000000..97111b6f4a5 --- /dev/null +++ b/sale_order_zero_stock_blockage/models/sale_order.py @@ -0,0 +1,17 @@ +from odoo import fields, models +from odoo.exceptions import AccessError + + +class SaleOrder(models.Model): + _inherit = ['sale.order'] + + zero_stock_approval = fields.Boolean(default=False, string="Approval") + + def action_confirm(self): + for record in self: + for line in record.order_line: + # if not record.zero_stock_approval and not self.env.user.has_group('sales_team.group_sale_manager'): + if not record.zero_stock_approval and not self.env.user.has_group('sales_team.group_sale_manager') and line.product_id.type == 'consu' and line.product_id.is_storable and line.product_id.qty_available < line.product_uom_qty: + raise AccessError( + "Access denied: You are not authorized to confirm this sales order.") + return super().action_confirm() diff --git a/sale_order_zero_stock_blockage/views/sale_order_views.xml b/sale_order_zero_stock_blockage/views/sale_order_views.xml new file mode 100644 index 00000000000..2bd0816d022 --- /dev/null +++ b/sale_order_zero_stock_blockage/views/sale_order_views.xml @@ -0,0 +1,17 @@ + + + + + sale.order.form.inherit.sale.new + sale.order + + + + + + + + + + +