From 9faf400228df0c42ccc68d21b9180485a1be9275 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adri=C3=A0=20Gil=20Sorribes?= Date: Tue, 26 Feb 2019 11:17:35 +0100 Subject: [PATCH] [11.0][ADD] mrp_production_auto_post_inventory module --- mrp_production_auto_post_inventory/README.rst | 84 ++++ .../__init__.py | 3 + .../__manifest__.py | 19 + .../models/__init__.py | 2 + .../models/company.py | 14 + .../models/res_config_settings.py | 12 + .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 4 + .../readme/USAGE.rst | 4 + .../description/AutoPostInventory_Option.png | Bin 0 -> 71780 bytes .../static/description/index.html | 406 ++++++++++++++++++ .../tests/__init__.py | 1 + .../tests/test_mrp_production.py | 111 +++++ .../views/res_config_settings.xml | 31 ++ .../wizard/__init__.py | 1 + .../wizard/mrp_product_produce.py | 15 + 16 files changed, 708 insertions(+) create mode 100644 mrp_production_auto_post_inventory/README.rst create mode 100644 mrp_production_auto_post_inventory/__init__.py create mode 100644 mrp_production_auto_post_inventory/__manifest__.py create mode 100644 mrp_production_auto_post_inventory/models/__init__.py create mode 100644 mrp_production_auto_post_inventory/models/company.py create mode 100644 mrp_production_auto_post_inventory/models/res_config_settings.py create mode 100644 mrp_production_auto_post_inventory/readme/CONTRIBUTORS.rst create mode 100644 mrp_production_auto_post_inventory/readme/DESCRIPTION.rst create mode 100644 mrp_production_auto_post_inventory/readme/USAGE.rst create mode 100644 mrp_production_auto_post_inventory/static/description/AutoPostInventory_Option.png create mode 100644 mrp_production_auto_post_inventory/static/description/index.html create mode 100644 mrp_production_auto_post_inventory/tests/__init__.py create mode 100644 mrp_production_auto_post_inventory/tests/test_mrp_production.py create mode 100644 mrp_production_auto_post_inventory/views/res_config_settings.xml create mode 100644 mrp_production_auto_post_inventory/wizard/__init__.py create mode 100644 mrp_production_auto_post_inventory/wizard/mrp_product_produce.py diff --git a/mrp_production_auto_post_inventory/README.rst b/mrp_production_auto_post_inventory/README.rst new file mode 100644 index 000000000..67f365e6b --- /dev/null +++ b/mrp_production_auto_post_inventory/README.rst @@ -0,0 +1,84 @@ +============================== +Production Auto Post-Inventory +============================== + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fmanufacture-lightgray.png?logo=github + :target: https://github.com/OCA/manufacture/tree/11.0/mrp_production_auto_post_inventory + :alt: OCA/manufacture +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/manufacture-11-0/manufacture-11-0-mrp_production_auto_post_inventory + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/129/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows the user to set to automatic the post inventory step +in a manufacturing order. Having this option activated, the inventory will +be automatically posted after some quantity has been produced without the +need of completing the whole manufacturing order. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +In Manufacture -> Settings a new checkbox is added: + +.. image:: /mrp_production_auto_post_inventory/static/description/AutoPostInventory_Option.png + :alt: Checkbox added in Manufacture Settings + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Eficent + +Contributors +~~~~~~~~~~~~ + +* Adria Gil Sorribes + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/manufacture `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mrp_production_auto_post_inventory/__init__.py b/mrp_production_auto_post_inventory/__init__.py new file mode 100644 index 000000000..2c9b3790d --- /dev/null +++ b/mrp_production_auto_post_inventory/__init__.py @@ -0,0 +1,3 @@ +from . import models +from . import wizard +from . import tests diff --git a/mrp_production_auto_post_inventory/__manifest__.py b/mrp_production_auto_post_inventory/__manifest__.py new file mode 100644 index 000000000..ee88fb20f --- /dev/null +++ b/mrp_production_auto_post_inventory/__manifest__.py @@ -0,0 +1,19 @@ +# Copyright 2016-19 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Production Auto Post-Inventory', + 'version': '11.0.1.0.0', + 'category': 'MRP', + 'author': 'Eficent, ' + 'Odoo Community Association (OCA)', + 'website': 'https://github.com/oca/manufacture', + 'license': 'AGPL-3', + 'depends': [ + 'mrp', + ], + 'data': [ + 'views/res_config_settings.xml', + ], + 'installable': True, +} diff --git a/mrp_production_auto_post_inventory/models/__init__.py b/mrp_production_auto_post_inventory/models/__init__.py new file mode 100644 index 000000000..338ff08cc --- /dev/null +++ b/mrp_production_auto_post_inventory/models/__init__.py @@ -0,0 +1,2 @@ +from . import company +from . import res_config_settings diff --git a/mrp_production_auto_post_inventory/models/company.py b/mrp_production_auto_post_inventory/models/company.py new file mode 100644 index 000000000..b0dc3eb7a --- /dev/null +++ b/mrp_production_auto_post_inventory/models/company.py @@ -0,0 +1,14 @@ +# Copyright 2016-19 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class ResCompany(models.Model): + _inherit = "res.company" + + mrp_production_auto_post_inventory = fields.Boolean( + string="Production Auto Post-Inventory", + help="Sets to automatic the post-inventory step in a manufacturing" + "order. The inventory will be automatically posted after some " + "quantity has been produced") diff --git a/mrp_production_auto_post_inventory/models/res_config_settings.py b/mrp_production_auto_post_inventory/models/res_config_settings.py new file mode 100644 index 000000000..1607145d9 --- /dev/null +++ b/mrp_production_auto_post_inventory/models/res_config_settings.py @@ -0,0 +1,12 @@ +# © 2017 Akretion (http://www.akretion.com) +# @author Alexis de Lattre +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models, fields + + +class ResConfigSettings(models.TransientModel): + _inherit = 'res.config.settings' + + mrp_production_auto_post_inventory = fields.Boolean( + related='company_id.mrp_production_auto_post_inventory') diff --git a/mrp_production_auto_post_inventory/readme/CONTRIBUTORS.rst b/mrp_production_auto_post_inventory/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..afabf1ede --- /dev/null +++ b/mrp_production_auto_post_inventory/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Adria Gil Sorribes diff --git a/mrp_production_auto_post_inventory/readme/DESCRIPTION.rst b/mrp_production_auto_post_inventory/readme/DESCRIPTION.rst new file mode 100644 index 000000000..aa8fa508c --- /dev/null +++ b/mrp_production_auto_post_inventory/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +This module allows the user to set to automatic the post inventory step +in a manufacturing order. Having this option activated, the inventory will +be automatically posted after some quantity has been produced without the +need of completing the whole manufacturing order. diff --git a/mrp_production_auto_post_inventory/readme/USAGE.rst b/mrp_production_auto_post_inventory/readme/USAGE.rst new file mode 100644 index 000000000..05aa0c1da --- /dev/null +++ b/mrp_production_auto_post_inventory/readme/USAGE.rst @@ -0,0 +1,4 @@ +In Manufacture -> Settings a new checkbox is added: + +.. image:: /mrp_production_auto_post_inventory/static/description/AutoPostInventory_Option.png + :alt: Checkbox added in Manufacture Settings diff --git a/mrp_production_auto_post_inventory/static/description/AutoPostInventory_Option.png b/mrp_production_auto_post_inventory/static/description/AutoPostInventory_Option.png new file mode 100644 index 0000000000000000000000000000000000000000..953f4b260599bfaab6e80e8b9fab06d72f463d63 GIT binary patch literal 71780 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 + + + + + +Production Auto Post-Inventory + + + +

+

Production Auto Post-Inventory

+ + +

Beta License: AGPL-3 OCA/manufacture Translate me on Weblate Try me on Runbot

+

This module allows the user to set to automatic the post inventory step +in a manufacturing order. Having this option activated, the inventory will +be automatically posted after some quantity has been produced without the +need of completing the whole manufacturing order.

+

Table of contents

+ +
+

Usage

+

In Manufacture -> Settings a new checkbox is added:

+Checkbox added in Manufacture Settings +
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us smashing it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Eficent
  • +
+
+
+

Contributors

+ +
+
+

Maintainers

+

This module is maintained by the OCA.

+Odoo Community Association +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/manufacture project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/mrp_production_auto_post_inventory/tests/__init__.py b/mrp_production_auto_post_inventory/tests/__init__.py new file mode 100644 index 000000000..fae3edd10 --- /dev/null +++ b/mrp_production_auto_post_inventory/tests/__init__.py @@ -0,0 +1 @@ +from . import test_mrp_production diff --git a/mrp_production_auto_post_inventory/tests/test_mrp_production.py b/mrp_production_auto_post_inventory/tests/test_mrp_production.py new file mode 100644 index 000000000..14cfeb145 --- /dev/null +++ b/mrp_production_auto_post_inventory/tests/test_mrp_production.py @@ -0,0 +1,111 @@ +# 2018 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +import odoo.tests.common as common + + +class TestMrpProductionAutoPost(common.SavepointCase): + + @classmethod + def setUpClass(cls): + super(TestMrpProductionAutoPost, cls).setUpClass() + + cls.product_obj = cls.env['product.product'] + cls.production_obj = cls.env['mrp.production'] + cls.produce_wiz = cls.env['mrp.product.produce'] + cls.company_obj = cls.env['res.company'] + cls.bom_obj = cls.env['mrp.bom'] + cls.bom_line_obj = cls.env['mrp.bom.line'] + cls.stock_move_obj = cls.env['stock.move'] + + # Get company + cls.company_1 = cls.company_obj._company_default_get('mrp.production') + + # Create products: + cls.product_top = cls.product_obj.create({ + 'name': 'Final Product', + 'type': 'product', + }) + cls.component_1 = cls.product_obj.create({ + 'name': 'RM 01', + 'type': 'product', + 'standard_price': 10.0, + }) + cls.component_2 = cls.product_obj.create({ + 'name': 'RM 01', + 'type': 'product', + 'standard_price': 15.0, + }) + + # Create Bills of Materials: + cls.bom_top = cls.bom_obj.create({ + 'product_tmpl_id': cls.product_top.product_tmpl_id.id, + }) + cls.line_top_1 = cls.bom_line_obj.create({ + 'product_id': cls.component_1.id, + 'bom_id': cls.bom_top.id, + 'product_qty': 2.0, + }) + cls.line_top_2 = cls.bom_line_obj.create({ + 'product_id': cls.component_2.id, + 'bom_id': cls.bom_top.id, + 'product_qty': 3.0, + }) + + def _produce(self, mo, qty=0.0): + wiz = self.produce_wiz.with_context({ + 'active_id': mo.id, + 'active_ids': [mo.id], + }).create({ + 'product_qty': qty or mo.product_qty, + }) + wiz.do_produce() + return True + + def test_01_manufacture_order_no_auto_post(self): + """Create Manufacture Order with auto post inventory False""" + self.company_1.mrp_production_auto_post_inventory = False + mo = self.production_obj.create({ + 'name': 'MO-01', + 'product_id': self.product_top.id, + 'product_uom_id': self.product_top.uom_id.id, + 'product_qty': 5.0, + 'bom_id': self.bom_top.id, + 'company_id': self.company_1.id, + }) + mo.action_assign() + self._produce(mo, 1.0) + raw_moves = self.stock_move_obj.search([ + ('raw_material_production_id', '=', mo.id), + ('state', '=', 'done')] + ) + finished_moves = self.stock_move_obj.search([ + ('production_id', '=', mo.id), + ('state', '=', 'done')] + ) + self.assertEqual(len(raw_moves), 0) + self.assertEqual(len(finished_moves), 0) + + def test_02_manufacture_order_auto_post(self): + """Create Manufacture Order with auto post inventory True""" + self.company_1.mrp_production_auto_post_inventory = True + mo = self.production_obj.create({ + 'name': 'MO-01', + 'product_id': self.product_top.id, + 'product_uom_id': self.product_top.uom_id.id, + 'product_qty': 5.0, + 'bom_id': self.bom_top.id, + 'company_id': self.company_1.id, + }) + mo.action_assign() + self._produce(mo, 1.0) + raw_moves = self.stock_move_obj.search([ + ('raw_material_production_id', '=', mo.id), + ('state', '=', 'done')] + ) + finished_moves = self.stock_move_obj.search([ + ('production_id', '=', mo.id), + ('state', '=', 'done')] + ) + self.assertEqual(len(raw_moves), 2) + self.assertEqual(len(finished_moves), 1) diff --git a/mrp_production_auto_post_inventory/views/res_config_settings.xml b/mrp_production_auto_post_inventory/views/res_config_settings.xml new file mode 100644 index 000000000..20f6cf3f8 --- /dev/null +++ b/mrp_production_auto_post_inventory/views/res_config_settings.xml @@ -0,0 +1,31 @@ + + + + + + + mrp.production.auto.post.inventory.settings.form + res.config.settings + + +
+
+
+ +
+
+
+
+
+
+
+ +
diff --git a/mrp_production_auto_post_inventory/wizard/__init__.py b/mrp_production_auto_post_inventory/wizard/__init__.py new file mode 100644 index 000000000..216003589 --- /dev/null +++ b/mrp_production_auto_post_inventory/wizard/__init__.py @@ -0,0 +1 @@ +from . import mrp_product_produce diff --git a/mrp_production_auto_post_inventory/wizard/mrp_product_produce.py b/mrp_production_auto_post_inventory/wizard/mrp_product_produce.py new file mode 100644 index 000000000..9ac63e3f1 --- /dev/null +++ b/mrp_production_auto_post_inventory/wizard/mrp_product_produce.py @@ -0,0 +1,15 @@ +# Copyright 2016-19 Eficent Business and IT Consulting Services S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class MrpProductProduce(models.TransientModel): + _inherit = "mrp.product.produce" + + @api.multi + def do_produce(self): + res = super(MrpProductProduce, self).do_produce() + if self.production_id.company_id.mrp_production_auto_post_inventory: + self.production_id.post_inventory() + return res