From c9949af167da5457568ef92e17d10b1790a4eb96 Mon Sep 17 00:00:00 2001 From: Raman Marikanti Date: Thu, 11 Dec 2025 11:53:30 +0000 Subject: [PATCH] cancel mrp order --- custom_addons/cancel_mrp_order/__init__.py | 22 +++ .../cancel_mrp_order/__manifest__.py | 21 +++ .../cancel_mrp_order/doc/RELEASE_NOTES.md | 7 + .../cancel_mrp_order/models/__init__.py | 22 +++ .../cancel_mrp_order/models/mrp_production.py | 134 ++++++++++++++++++ .../security/cancel_mrp_order_groups.xml | 8 ++ .../static/description/icon.png | Bin 0 -> 47964 bytes .../views/mrp_production_views.xml | 31 ++++ 8 files changed, 245 insertions(+) create mode 100644 custom_addons/cancel_mrp_order/__init__.py create mode 100644 custom_addons/cancel_mrp_order/__manifest__.py create mode 100644 custom_addons/cancel_mrp_order/doc/RELEASE_NOTES.md create mode 100644 custom_addons/cancel_mrp_order/models/__init__.py create mode 100644 custom_addons/cancel_mrp_order/models/mrp_production.py create mode 100644 custom_addons/cancel_mrp_order/security/cancel_mrp_order_groups.xml create mode 100644 custom_addons/cancel_mrp_order/static/description/icon.png create mode 100644 custom_addons/cancel_mrp_order/views/mrp_production_views.xml diff --git a/custom_addons/cancel_mrp_order/__init__.py b/custom_addons/cancel_mrp_order/__init__.py new file mode 100644 index 000000000..61e5ca1b5 --- /dev/null +++ b/custom_addons/cancel_mrp_order/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import models diff --git a/custom_addons/cancel_mrp_order/__manifest__.py b/custom_addons/cancel_mrp_order/__manifest__.py new file mode 100644 index 000000000..614674e5f --- /dev/null +++ b/custom_addons/cancel_mrp_order/__manifest__.py @@ -0,0 +1,21 @@ + +{ + 'name': 'Cancel Manufacturing Order', + 'category': 'Manufacturing', + 'summary': 'Allows users to cancel manufacturing order by clicking ' + 'the button "CANCEL"', + 'description': 'Allow users to cancel manufacturing orders' + 'by clicking on "CANCEL" button. Also able to cancel ' + 'multiple manufacturing orders from tree view by clicking ' + 'on the Cancel Manufacturing Order" from Action menu', + 'author': 'Raman', + 'depends': ['base', 'mrp'], + 'data': [ + 'security/cancel_mrp_order_groups.xml', + 'views/mrp_production_views.xml', + ], + 'license': 'LGPL-3', + 'installable': True, + 'auto_install': False, + 'application': False, +} diff --git a/custom_addons/cancel_mrp_order/doc/RELEASE_NOTES.md b/custom_addons/cancel_mrp_order/doc/RELEASE_NOTES.md new file mode 100644 index 000000000..6a9b83054 --- /dev/null +++ b/custom_addons/cancel_mrp_order/doc/RELEASE_NOTES.md @@ -0,0 +1,7 @@ +## Module + +#### 27.05.2025 +#### Version 18.0.1.0.0 +#### ADD + +- Initial Commit for Cancel Manufacturing Order diff --git a/custom_addons/cancel_mrp_order/models/__init__.py b/custom_addons/cancel_mrp_order/models/__init__.py new file mode 100644 index 000000000..a0c1e3a4a --- /dev/null +++ b/custom_addons/cancel_mrp_order/models/__init__.py @@ -0,0 +1,22 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from . import mrp_production diff --git a/custom_addons/cancel_mrp_order/models/mrp_production.py b/custom_addons/cancel_mrp_order/models/mrp_production.py new file mode 100644 index 000000000..a83134d21 --- /dev/null +++ b/custom_addons/cancel_mrp_order/models/mrp_production.py @@ -0,0 +1,134 @@ +# -*- coding: utf-8 -*- +############################################################################# +# +# Cybrosys Technologies Pvt. Ltd. +# +# Copyright (C) 2025-TODAY Cybrosys Technologies() +# Author: Cybrosys Techno Solutions() +# +# You can modify it under the terms of the GNU AFFERO +# GENERAL PUBLIC LICENSE (AGPL v3), Version 3. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU AFFERO GENERAL PUBLIC LICENSE (AGPL v3) for more details. +# +# You should have received a copy of the GNU AFFERO GENERAL PUBLIC LICENSE +# (AGPL v3) along with this program. +# If not, see . +# +############################################################################# +from odoo import models, _ +from odoo.exceptions import UserError +from odoo.tools import float_round +from collections import defaultdict + + +class MrpProduction(models.Model): + """Inherit manufacturing order to add some function """ + _inherit = 'mrp.production' + + def checking_access(self, rec): + """Warning for cancel button in action""" + if self.state == 'done': + rec.action_cancel_manufacturing_order() + else: + raise UserError(_( + "You cannot cancel an order that is not in Done state!")) + + def _create_move_from_existing_move(self, move, factor, location_id, + location_dest_id): + """Create a stock move while creating a manufacturing order""" + return self.env['stock.move'].create({ + 'name': move.name, + 'date': move.create_date, + 'product_id': move.product_id.id, + 'product_uom_qty': move.product_uom_qty * factor, + 'product_uom': move.product_uom.id, + 'procure_method': 'make_to_stock', + 'location_dest_id': location_dest_id.id, + 'location_id': location_id.id, + 'warehouse_id': location_dest_id.warehouse_id.id, + 'company_id': move.company_id.id, + }) + + def action_cancel_manufacturing_order(self): + """To cancel manufacturing order while clicking the button cancel """ + consume_moves = self.env['stock.move'] + produce_moves = self.env['stock.move'] + factor = self.product_qty / self.product_uom_id._compute_quantity( + self.product_qty, self.product_uom_id) + finished_moves = self.move_finished_ids.filtered(lambda l: l.state == 'done') + raw_moves = self.move_raw_ids.filtered(lambda l: l.state == 'done') + for finished_move in finished_moves: + consume_moves += self._create_move_from_existing_move(finished_move, factor, finished_move.location_dest_id, + finished_move.location_id) + for raw_move in raw_moves: + produce_moves += self._create_move_from_existing_move(raw_move, factor, raw_move.location_dest_id, + self.location_dest_id) + if consume_moves: + consume_moves._action_confirm() + if produce_moves: + produce_moves._action_confirm() + finished_moves = consume_moves.filtered(lambda m: m.product_id == self.product_id) + consume_moves -= finished_moves + for finished_move in finished_moves: + if finished_move.has_tracking != 'none': + self.env['stock.move.line'].create({ + 'move_id': finished_move.id, + 'quantity': finished_move.product_uom_qty, + 'product_id': finished_move.product_id.id, + 'product_uom_id': finished_move.product_uom.id, + 'location_id': finished_move.location_id.id, + 'location_dest_id': finished_move.location_dest_id.id, + }) + else: + finished_move.quantity = finished_move.product_uom_qty + qty_already_used = defaultdict(float) + for move in produce_moves | consume_moves: + if move.has_tracking != 'none': + original_move = move in produce_moves and self.move_raw_ids or self.move_finished_ids + moves_lines = original_move.filtered(lambda m: m.product_id == move.product_id).mapped('move_line_ids') + for move_line in moves_lines: + taken_quantity = min(move.product_uom_qty,move_line.quantity - qty_already_used[move_line]) + if taken_quantity: + self.env['stock.move.line'].create({ + 'move_id': move.id, + 'lot_id': move_line.lot_id.id, + 'quantity': taken_quantity, + 'product_id': move.product_id.id, + 'product_uom_id': move_line.product_uom_id.id, + 'location_id': move.location_id.id, + 'location_dest_id': move.location_dest_id.id, + }) + move.product_uom_qty -= taken_quantity + qty_already_used[move_line] += taken_quantity + else: + move.quantity = float_round( + move.product_uom_qty, + precision_rounding=move.product_uom.rounding) + stock_quant = self.env['stock.quant'].search([ + ('product_id', '=', move.product_id.id), + ('location_id', 'in', [self.location_src_id.id]) + ]) + for quant in stock_quant: + quant.sudo().write({'quantity': quant.quantity + move.product_qty}) + + for line in finished_moves: + stock_quant = self.env['stock.quant'].search([ + ('product_id', '=', line.product_id.id), + ('location_id', 'in', [self.location_dest_id.id]) + ]) + for quant in stock_quant: + quant.sudo().write({'quantity': quant.quantity - line.product_qty}) + finished_moves.write({'state': 'done'}) + consume_moves.write({'state': 'done'}) + produce_moves.write({'state': 'done'}) + produced_move_line_ids = produce_moves.mapped('move_line_ids').filtered(lambda ml: ml.quantity > 0) + consume_moves.mapped('move_line_ids').write({'produce_line_ids': [(6, 0, produced_move_line_ids.ids)]}) + raw_moves.sudo().write({'state': 'cancel'}) + raw_moves.mapped('move_line_ids').sudo().write({'state': 'cancel'}) + if self.sudo().mapped('workorder_ids'): + self.sudo().mapped('workorder_ids').write({'state': 'cancel'}) + self.write({'state': 'cancel'}) \ No newline at end of file diff --git a/custom_addons/cancel_mrp_order/security/cancel_mrp_order_groups.xml b/custom_addons/cancel_mrp_order/security/cancel_mrp_order_groups.xml new file mode 100644 index 000000000..4c925bf99 --- /dev/null +++ b/custom_addons/cancel_mrp_order/security/cancel_mrp_order_groups.xml @@ -0,0 +1,8 @@ + + + + + Cancel Manufacturing Orders + + diff --git a/custom_addons/cancel_mrp_order/static/description/icon.png b/custom_addons/cancel_mrp_order/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..182f17cd6aafd0426c43341c3a62c5022dfde8c1 GIT binary patch literal 47964 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

9869kg$iK}G%eMwo0% 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 + + + + mrp.production.view.form.inherit.cancel.mrp.order + mrp.production + + + +