From c77fd6c5eb4e14c5a031489d924a89bc331ff75b Mon Sep 17 00:00:00 2001 From: NuriaXForgeFlow Date: Thu, 10 Mar 2022 10:44:03 +0100 Subject: [PATCH 01/15] [14.0][ADD] account_move_line_mrp_info --- account_move_line_mrp_info/README.rst | 83 ++++ account_move_line_mrp_info/__init__.py | 4 + account_move_line_mrp_info/__manifest__.py | 18 + account_move_line_mrp_info/hooks.py | 51 +++ account_move_line_mrp_info/models/__init__.py | 4 + .../models/account_move_line.py | 39 ++ .../models/mrp_production.py | 20 + .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 1 + account_move_line_mrp_info/readme/USAGE.rst | 6 + .../security/ir.model.access.csv | 5 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 433 ++++++++++++++++++ .../views/account_move_line_view.xml | 15 + .../views/mrp_production_view.xml | 24 + 15 files changed, 704 insertions(+) create mode 100644 account_move_line_mrp_info/README.rst create mode 100644 account_move_line_mrp_info/__init__.py create mode 100644 account_move_line_mrp_info/__manifest__.py create mode 100644 account_move_line_mrp_info/hooks.py create mode 100644 account_move_line_mrp_info/models/__init__.py create mode 100644 account_move_line_mrp_info/models/account_move_line.py create mode 100644 account_move_line_mrp_info/models/mrp_production.py create mode 100644 account_move_line_mrp_info/readme/CONTRIBUTORS.rst create mode 100644 account_move_line_mrp_info/readme/DESCRIPTION.rst create mode 100644 account_move_line_mrp_info/readme/USAGE.rst create mode 100644 account_move_line_mrp_info/security/ir.model.access.csv create mode 100644 account_move_line_mrp_info/static/description/icon.png create mode 100644 account_move_line_mrp_info/static/description/index.html create mode 100644 account_move_line_mrp_info/views/account_move_line_view.xml create mode 100644 account_move_line_mrp_info/views/mrp_production_view.xml diff --git a/account_move_line_mrp_info/README.rst b/account_move_line_mrp_info/README.rst new file mode 100644 index 000000000..7d2b7c8d1 --- /dev/null +++ b/account_move_line_mrp_info/README.rst @@ -0,0 +1,83 @@ +============================ +Account Move Line Mrp Info +============================ + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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/14.0/account_move_line_stock_info + :alt: OCA/manufacture +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/manufacture-14-0/manufacture-14-0-account_move_line_stock_info + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/153/14.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds the manufacturing orders and unbuild orders to the account move lines that it generates. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +* The stock manager can check the journal items by accessing to 'Manufacturing > + Operations > Manufacturing Orders> Miscellaneous page'. + +* A user belonging to the group 'Show Full Accounting Features' can review the + details of a move that is associated to a journal item through + 'Invoicing > Accounting > Journal Entries (or Journal items)'. + +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 +~~~~~~~ + +* ForgeFlow + +Contributors +~~~~~~~~~~~~ + +* Nuria Xifre Martin + +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/account_move_line_mrp_info/__init__.py b/account_move_line_mrp_info/__init__.py new file mode 100644 index 000000000..01aac13a6 --- /dev/null +++ b/account_move_line_mrp_info/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import models +from .hooks import pre_init_hook diff --git a/account_move_line_mrp_info/__manifest__.py b/account_move_line_mrp_info/__manifest__.py new file mode 100644 index 000000000..e09e0b590 --- /dev/null +++ b/account_move_line_mrp_info/__manifest__.py @@ -0,0 +1,18 @@ +# © 2022ForgeFlow S.L. +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). +{ + "name": "Account Move Line Mrp Info", + "version": "14.0.1.0.0", + "author": "ForgeFlow," "Odoo Community Association (OCA)", + "website": "https://github.com/OCA/manufacture", + "category": "Manufacture", + "depends": ["account_move_line_stock_info", "mrp"], + "installable": True, + "pre_init_hook": "pre_init_hook", + "license": "AGPL-3", + "data": [ + "security/ir.model.access.csv", + "views/account_move_line_view.xml", + "views/mrp_production_view.xml", + ], +} diff --git a/account_move_line_mrp_info/hooks.py b/account_move_line_mrp_info/hooks.py new file mode 100644 index 000000000..bcb4d1f15 --- /dev/null +++ b/account_move_line_mrp_info/hooks.py @@ -0,0 +1,51 @@ +import logging + +from psycopg2 import sql + + +def pre_init_hook(cr): + """Precreate move_type and fill with appropriate values to prevent + a MemoryError when the ORM attempts to call its compute method on a large + amount of preexisting moves. Note that the order of the mapping is + important as one move can have move lines on accounts of multiple types + and the move type is set in the order of precedence.""" + logger = logging.getLogger(__name__) + logger.info("Add mrp_info") + cr.execute( + "ALTER TABLE account_move_line ADD COLUMN IF NOT EXISTS mrp_production_id INTEGER" + ) + query = sql.SQL( + """ + with q2 as ( + select aml.id as account_move_id, + coalesce(sm.production_id,sm.raw_material_production_id) as mrp_id + from account_move_line aml + inner join stock_move sm + on sm.id=aml.stock_move_id + where coalesce(sm.production_id,sm.raw_material_production_id) is not null) + update account_move_line + set mrp_production_id = q2.mrp_id + from q2 + where q2.account_move_id=account_move_line.id; + """ + ) + cr.execute(query) + cr.execute( + "ALTER TABLE account_move_line ADD COLUMN IF NOT EXISTS unbuild_id INTEGER" + ) + query = sql.SQL( + """ + with q2 as ( + select aml.id as account_move_id, + sm.unbuild_id as unb_id + from account_move_line aml + inner join stock_move sm + on sm.id=aml.stock_move_id + where sm.unbuild_id is not null) + update account_move_line + set unbuild_id = q2.unb_id + from q2 + where q2.account_move_id=account_move_line.id; + """ + ) + cr.execute(query) diff --git a/account_move_line_mrp_info/models/__init__.py b/account_move_line_mrp_info/models/__init__.py new file mode 100644 index 000000000..1865fc612 --- /dev/null +++ b/account_move_line_mrp_info/models/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html). + +from . import account_move_line +from . import mrp_production diff --git a/account_move_line_mrp_info/models/account_move_line.py b/account_move_line_mrp_info/models/account_move_line.py new file mode 100644 index 000000000..6406cb67c --- /dev/null +++ b/account_move_line_mrp_info/models/account_move_line.py @@ -0,0 +1,39 @@ +# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import api, fields, models + + +class AccountMoveLine(models.Model): + _inherit = "account.move.line" + + mrp_production_id = fields.Many2one( + comodel_name="mrp.production", + string="Manufacturing Order", + compute="_compute_mrp_production", + store=True, + ) + unbuild_id = fields.Many2one( + comodel_name="mrp.unbuild", + string="Unbuild Order", + compute="_compute_mrp_unbuild", + store=True, + ) + + @api.depends("stock_move_id") + def _compute_mrp_production(self): + for rec in self: + if rec.stock_move_id.production_id: + rec.mrp_production_id = rec.stock_move_id.production_id.id + elif rec.stock_move_id.raw_material_production_id: + rec.mrp_production_id = rec.stock_move_id.raw_material_production_id.id + else: + rec.mrp_production_id = False + + @api.depends("stock_move_id") + def _compute_mrp_unbuild(self): + for rec in self: + if rec.stock_move_id.unbuild_id: + rec.unbuild_id = rec.stock_move_id.unbuild_id.id + else: + rec.unbuild_id = False diff --git a/account_move_line_mrp_info/models/mrp_production.py b/account_move_line_mrp_info/models/mrp_production.py new file mode 100644 index 000000000..b7943a75f --- /dev/null +++ b/account_move_line_mrp_info/models/mrp_production.py @@ -0,0 +1,20 @@ +# Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo import fields, models + + +class MrpProduction(models.Model): + _inherit = "mrp.production" + + account_move_line_ids = fields.One2many( + comodel_name="account.move.line", inverse_name="mrp_production_id", copy=False + ) + + +class MrpUnbuild(models.Model): + _inherit = "mrp.unbuild" + + account_move_line_ids = fields.One2many( + comodel_name="account.move.line", inverse_name="unbuild_id", copy=False + ) diff --git a/account_move_line_mrp_info/readme/CONTRIBUTORS.rst b/account_move_line_mrp_info/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..3eeb31a71 --- /dev/null +++ b/account_move_line_mrp_info/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Nuria Xifre Martin diff --git a/account_move_line_mrp_info/readme/DESCRIPTION.rst b/account_move_line_mrp_info/readme/DESCRIPTION.rst new file mode 100644 index 000000000..ae70eee65 --- /dev/null +++ b/account_move_line_mrp_info/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds the manufacturing orders and unbuild orders to the account move lines that it generates. diff --git a/account_move_line_mrp_info/readme/USAGE.rst b/account_move_line_mrp_info/readme/USAGE.rst new file mode 100644 index 000000000..4a18f3d3d --- /dev/null +++ b/account_move_line_mrp_info/readme/USAGE.rst @@ -0,0 +1,6 @@ +* The stock manager can check the journal items by accessing to 'Manufacturing > + Operations > Manufacturing Orders> Miscellaneous page'. + +* A user belonging to the group 'Show Full Accounting Features' can review the + details of a move that is associated to a journal item through + 'Invoicing > Accounting > Journal Entries (or Journal items)'. diff --git a/account_move_line_mrp_info/security/ir.model.access.csv b/account_move_line_mrp_info/security/ir.model.access.csv new file mode 100644 index 000000000..32b1ebde7 --- /dev/null +++ b/account_move_line_mrp_info/security/ir.model.access.csv @@ -0,0 +1,5 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_account_move_line, account.move.line,account.model_account_move_line,stock.group_stock_manager,1,0,0,0 +access_mrp_production_account_invoice,mrp.production account invoice,mrp.model_mrp_production,account.group_account_invoice,1,0,0,0 +access_mrp_production_account_user,mrp.production account user,mrp.model_mrp_production,account.group_account_user,1,0,0,0 +access_mrp_production_account_manager,mrp.production account user,mrp.model_mrp_production,account.group_account_manager,1,0,0,0 diff --git a/account_move_line_mrp_info/static/description/icon.png b/account_move_line_mrp_info/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/account_move_line_mrp_info/static/description/index.html b/account_move_line_mrp_info/static/description/index.html new file mode 100644 index 000000000..f950692f9 --- /dev/null +++ b/account_move_line_mrp_info/static/description/index.html @@ -0,0 +1,433 @@ + + + + + + +Account Move Line Mrp Info + + + +
+

Account Move Line Stock Info

+ + +

Beta License: AGPL-3 OCA/stock-logistics-warehouse Translate me on Weblate Try me on Runbot

+

This module adds the stock move to the account move lines that it generates.

+

Table of contents

+ +
+

Usage

+
    +
  • The stock manager can check the journal items by accessing to ‘Inventory > +Reports > Stock moves’.
  • +
  • A user belonging to the group ‘Show Full Accounting Features’ can review the +details of a move that is associated to a journal item through +‘Invoicing > Accounting > Journal Entries (or Journal items)’.
  • +
+
+
+

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

+
    +
  • ForgeFlow
  • +
+
+
+

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/stock-logistics-warehouse project on GitHub.

+

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

+
+
+
+ + diff --git a/account_move_line_mrp_info/views/account_move_line_view.xml b/account_move_line_mrp_info/views/account_move_line_view.xml new file mode 100644 index 000000000..44d690cd2 --- /dev/null +++ b/account_move_line_mrp_info/views/account_move_line_view.xml @@ -0,0 +1,15 @@ + + + + account.move.line.form + account.move.line + + + + + + + + + + diff --git a/account_move_line_mrp_info/views/mrp_production_view.xml b/account_move_line_mrp_info/views/mrp_production_view.xml new file mode 100644 index 000000000..623482a0f --- /dev/null +++ b/account_move_line_mrp_info/views/mrp_production_view.xml @@ -0,0 +1,24 @@ + + + + mrp.production + + + + + + + + + + + + mrp.unbuild + + + + + + + + From 3e11480ff604017f5d0c6b17a4fd84812a983d9d Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 27 Jun 2022 09:46:13 +0000 Subject: [PATCH 02/15] [UPD] Update account_move_line_mrp_info.pot --- .../i18n/account_move_line_mrp_info.pot | 67 +++++++++++++++++++ 1 file changed, 67 insertions(+) create mode 100644 account_move_line_mrp_info/i18n/account_move_line_mrp_info.pot diff --git a/account_move_line_mrp_info/i18n/account_move_line_mrp_info.pot b/account_move_line_mrp_info/i18n/account_move_line_mrp_info.pot new file mode 100644 index 000000000..59b4aee6c --- /dev/null +++ b/account_move_line_mrp_info/i18n/account_move_line_mrp_info.pot @@ -0,0 +1,67 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * account_move_line_mrp_info +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 14.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: account_move_line_mrp_info +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_mrp_production__account_move_line_ids +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_mrp_unbuild__account_move_line_ids +msgid "Account Move Line" +msgstr "" + +#. module: account_move_line_mrp_info +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_account_move_line__display_name +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_mrp_production__display_name +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_mrp_unbuild__display_name +msgid "Display Name" +msgstr "" + +#. module: account_move_line_mrp_info +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_account_move_line__id +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_mrp_production__id +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_mrp_unbuild__id +msgid "ID" +msgstr "" + +#. module: account_move_line_mrp_info +#: model:ir.model,name:account_move_line_mrp_info.model_account_move_line +msgid "Journal Item" +msgstr "" + +#. module: account_move_line_mrp_info +#: model_terms:ir.ui.view,arch_db:account_move_line_mrp_info.mrp_production_form_view +msgid "Journal Items" +msgstr "" + +#. module: account_move_line_mrp_info +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_account_move_line____last_update +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_mrp_production____last_update +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_mrp_unbuild____last_update +msgid "Last Modified on" +msgstr "" + +#. module: account_move_line_mrp_info +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_account_move_line__mrp_production_id +msgid "Manufacturing Order" +msgstr "" + +#. module: account_move_line_mrp_info +#: model:ir.model,name:account_move_line_mrp_info.model_mrp_production +msgid "Production Order" +msgstr "" + +#. module: account_move_line_mrp_info +#: model:ir.model,name:account_move_line_mrp_info.model_mrp_unbuild +#: model:ir.model.fields,field_description:account_move_line_mrp_info.field_account_move_line__unbuild_id +msgid "Unbuild Order" +msgstr "" From d030731e8a15d48be00f8715520ebc3051ca2d30 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 27 Jun 2022 10:05:44 +0000 Subject: [PATCH 03/15] [UPD] README.rst --- account_move_line_mrp_info/README.rst | 16 ++++++------- .../static/description/index.html | 23 ++++++++----------- 2 files changed, 18 insertions(+), 21 deletions(-) diff --git a/account_move_line_mrp_info/README.rst b/account_move_line_mrp_info/README.rst index 7d2b7c8d1..ac4891a41 100644 --- a/account_move_line_mrp_info/README.rst +++ b/account_move_line_mrp_info/README.rst @@ -1,6 +1,6 @@ -============================ +========================== Account Move Line Mrp Info -============================ +========================== .. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! This file is generated by oca-gen-addon-readme !! @@ -14,16 +14,16 @@ Account Move Line Mrp Info :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/14.0/account_move_line_stock_info + :target: https://github.com/OCA/manufacture/tree/14.0/account_move_line_mrp_info :alt: OCA/manufacture .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/manufacture-14-0/manufacture-14-0-account_move_line_stock_info + :target: https://translation.odoo-community.org/projects/manufacture-14-0/manufacture-14-0-account_move_line_mrp_info :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/153/14.0 + :target: https://runbot.odoo-community.org/runbot/129/14.0 :alt: Try me on Runbot -|badge1| |badge2| |badge3| |badge4| |badge5| +|badge1| |badge2| |badge3| |badge4| |badge5| This module adds the manufacturing orders and unbuild orders to the account move lines that it generates. @@ -48,7 +48,7 @@ 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 `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -78,6 +78,6 @@ 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. +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/account_move_line_mrp_info/static/description/index.html b/account_move_line_mrp_info/static/description/index.html index f950692f9..f2459aaa8 100644 --- a/account_move_line_mrp_info/static/description/index.html +++ b/account_move_line_mrp_info/static/description/index.html @@ -360,15 +360,15 @@ ul.auto-toc { -
-

Account Move Line Stock Info

+
+

Account Move Line Mrp Info

-

Beta License: AGPL-3 OCA/stock-logistics-warehouse Translate me on Weblate Try me on Runbot

-

This module adds the stock move to the account move lines that it generates.

+

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

+

This module adds the manufacturing orders and unbuild orders to the account move lines that it generates.

Table of contents

    @@ -385,8 +385,8 @@ ul.auto-toc {

    Usage

      -
    • The stock manager can check the journal items by accessing to ‘Inventory > -Reports > Stock moves’.
    • +
    • The stock manager can check the journal items by accessing to ‘Manufacturing > +Operations > Manufacturing Orders> Miscellaneous page’.
    • A user belonging to the group ‘Show Full Accounting Features’ can review the details of a move that is associated to a journal item through ‘Invoicing > Accounting > Journal Entries (or Journal items)’.
    • @@ -394,10 +394,10 @@ details of a move that is associated to a journal item through

    Bug Tracker

    -

    Bugs are tracked on GitHub Issues. +

    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.

    +feedback.

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

    @@ -411,10 +411,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

    Contributors

    @@ -424,7 +421,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome

    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/stock-logistics-warehouse project on GitHub.

    +

    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.

    From 09b0c6258a0c335272f4b6eae4235159c6748367 Mon Sep 17 00:00:00 2001 From: ThiagoMForgeFlow Date: Mon, 5 Dec 2022 11:58:28 +0100 Subject: [PATCH 04/15] [14.0][IMP] account_move_line_mrp_info: journal items are now accessed from a smart button --- .../models/mrp_production.py | 37 ++++ account_move_line_mrp_info/readme/USAGE.rst | 3 +- account_move_line_mrp_info/tests/__init__.py | 1 + .../tests/test_mrp_journal_items.py | 159 ++++++++++++++++++ .../views/mrp_production_view.xml | 42 ++++- 5 files changed, 233 insertions(+), 9 deletions(-) create mode 100644 account_move_line_mrp_info/tests/__init__.py create mode 100644 account_move_line_mrp_info/tests/test_mrp_journal_items.py diff --git a/account_move_line_mrp_info/models/mrp_production.py b/account_move_line_mrp_info/models/mrp_production.py index b7943a75f..7d675eb09 100644 --- a/account_move_line_mrp_info/models/mrp_production.py +++ b/account_move_line_mrp_info/models/mrp_production.py @@ -1,5 +1,6 @@ # Copyright 2019 ForgeFlow S.L. (https://www.forgeflow.com) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +from ast import literal_eval from odoo import fields, models @@ -11,6 +12,24 @@ class MrpProduction(models.Model): comodel_name="account.move.line", inverse_name="mrp_production_id", copy=False ) + def view_journal_items(self): + self.ensure_one() + domain = [ + ( + "id", + "in", + (self.account_move_line_ids).ids, + ) + ] + action = self.env["ir.actions.act_window"]._for_xml_id( + "account_move_line_mrp_info.action_view_journal_items" + ) + context = literal_eval(action["context"]) + context.update(self.env.context) + context["no_at_date"] = True + context["search_default_group_by_product_id"] = False + return dict(action, domain=domain, context=context) + class MrpUnbuild(models.Model): _inherit = "mrp.unbuild" @@ -18,3 +37,21 @@ class MrpUnbuild(models.Model): account_move_line_ids = fields.One2many( comodel_name="account.move.line", inverse_name="unbuild_id", copy=False ) + + def view_journal_items(self): + self.ensure_one() + domain = [ + ( + "id", + "in", + (self.account_move_line_ids).ids, + ) + ] + action = self.env["ir.actions.act_window"]._for_xml_id( + "account_move_line_mrp_info.action_view_journal_items" + ) + context = literal_eval(action["context"]) + context.update(self.env.context) + context["no_at_date"] = True + context["search_default_group_by_product_id"] = False + return dict(action, domain=domain, context=context) diff --git a/account_move_line_mrp_info/readme/USAGE.rst b/account_move_line_mrp_info/readme/USAGE.rst index 4a18f3d3d..bb46abe35 100644 --- a/account_move_line_mrp_info/readme/USAGE.rst +++ b/account_move_line_mrp_info/readme/USAGE.rst @@ -1,5 +1,6 @@ * The stock manager can check the journal items by accessing to 'Manufacturing > - Operations > Manufacturing Orders> Miscellaneous page'. + Operations > Manufacturing Orders> Journal Items' and 'Manufacturing > + Operations > Unbuild Orders> Journal Items. * A user belonging to the group 'Show Full Accounting Features' can review the details of a move that is associated to a journal item through diff --git a/account_move_line_mrp_info/tests/__init__.py b/account_move_line_mrp_info/tests/__init__.py new file mode 100644 index 000000000..aedc757e3 --- /dev/null +++ b/account_move_line_mrp_info/tests/__init__.py @@ -0,0 +1 @@ +from . import test_mrp_journal_items diff --git a/account_move_line_mrp_info/tests/test_mrp_journal_items.py b/account_move_line_mrp_info/tests/test_mrp_journal_items.py new file mode 100644 index 000000000..a63c49a05 --- /dev/null +++ b/account_move_line_mrp_info/tests/test_mrp_journal_items.py @@ -0,0 +1,159 @@ +from odoo.tests import Form + +from odoo.addons.mrp.tests.common import TestMrpCommon + + +class TestMrpOrder(TestMrpCommon): + def setUp(self): + super(TestMrpOrder, self).setUp() + self.stock_location = self.env.ref("stock.stock_location_stock") + self.env.ref("base.group_user").write( + {"implied_ids": [(4, self.env.ref("stock.group_production_lot").id)]} + ) + + def test_mrp_with_journal_items(self): + """This test creates a Manufacturing orderand then check if the + Journal Items button links to the journal items of the order. + """ + journal_items_before_production = self.env["account.move.line"].search([]).ids + + mo, bom, p_final, p1, p2 = self.generate_mo() + account = self.env["account.account"].create( + { + "name": "Test Account", + "code": "TestAccount1", + "user_type_id": self.env.ref("account.data_account_type_payable").id, + "reconcile": True, + } + ) + location = self.env["stock.location"].search([("usage", "=", "production")]) + location.valuation_in_account_id = account.id + location.valuation_out_account_id = account.id + pc = self.env["product.category"].create( + { + "name": "Category test", + "property_valuation": "real_time", + "property_cost_method": "fifo", + } + ) + p1.categ_id = pc.id + p1.standard_price = 10 + p2.categ_id = pc.id + p2.standard_price = 5 + p_final.categ_id = pc.id + + self.env["stock.quant"]._update_available_quantity(p1, self.stock_location, 100) + self.env["stock.quant"]._update_available_quantity(p2, self.stock_location, 5) + mo.action_assign() + + mo_form = Form(mo) + mo_form.qty_producing = 5.0 + mo = mo_form.save() + mo.button_mark_done() + + journal_items_after_production = self.env["account.move.line"].search([]).ids + + result = mo.view_journal_items() + domain = result["domain"] + mo_journal_items = list(domain[0][2]) + difference_journal_items = list( + set(journal_items_after_production) - set(journal_items_before_production) + ) + mo_journal_items.sort() + difference_journal_items.sort() + + self.assertTrue( + difference_journal_items, + "There should be new journal items after doing the manufacturing order", + ) + self.assertEqual( + result["res_model"], + "account.move.line", + "You should access to the model account.move.line", + ) + self.assertEqual( + difference_journal_items, + mo_journal_items, + "You should have as domain the ids of the journal items", + ) + + +class TestUnbuild(TestMrpCommon): + def setUp(self): + super(TestUnbuild, self).setUp() + self.stock_location = self.env.ref("stock.stock_location_stock") + self.env.ref("base.group_user").write( + {"implied_ids": [(4, self.env.ref("stock.group_production_lot").id)]} + ) + + def test_unbuild_with_journal_items(self): + """This test creates an Unbuild order from a Manufacturing order and then check if the + Journal Items button links to the journal items of the order. + """ + + mo, bom, p_final, p1, p2 = self.generate_mo() + account = self.env["account.account"].create( + { + "name": "Test Account", + "code": "TestAccount2", + "user_type_id": self.env.ref("account.data_account_type_payable").id, + "reconcile": True, + } + ) + location = self.env["stock.location"].search([("usage", "=", "production")]) + location.valuation_in_account_id = account.id + location.valuation_out_account_id = account.id + pc = self.env["product.category"].create( + { + "name": "Category test", + "property_valuation": "real_time", + "property_cost_method": "fifo", + } + ) + p1.categ_id = pc.id + p1.standard_price = 10 + p2.categ_id = pc.id + p2.standard_price = 5 + p_final.categ_id = pc.id + + self.env["stock.quant"]._update_available_quantity(p1, self.stock_location, 100) + self.env["stock.quant"]._update_available_quantity(p2, self.stock_location, 5) + mo.action_assign() + + mo_form = Form(mo) + mo_form.qty_producing = 5.0 + mo = mo_form.save() + mo.button_mark_done() + journal_items_before_unbuild = self.env["account.move.line"].search([]).ids + + x = Form(self.env["mrp.unbuild"]) + x.product_id = p_final + x.bom_id = bom + x.product_qty = 5 + unbuild = x.save() + unbuild.action_unbuild() + journal_items_after_unbuild = self.env["account.move.line"].search([]).ids + + result = unbuild.view_journal_items() + domain = result["domain"] + unbuild_journal_items = domain[0][2] + difference_journal_items = list( + set(journal_items_after_unbuild) - set(journal_items_before_unbuild) + ) + unbuild_journal_items.sort() + difference_journal_items.sort() + + self.assertTrue( + difference_journal_items, + "There should be new journal items after doing the unbuild", + ) + self.assertEqual( + result["res_model"], + "account.move.line", + "You should access to the model account.move.line", + ) + self.assertEqual( + difference_journal_items, + unbuild_journal_items, + "You should have as domain the ids of the journal items", + ) diff --git a/account_move_line_mrp_info/views/mrp_production_view.xml b/account_move_line_mrp_info/views/mrp_production_view.xml index 623482a0f..6bfaf88d5 100644 --- a/account_move_line_mrp_info/views/mrp_production_view.xml +++ b/account_move_line_mrp_info/views/mrp_production_view.xml @@ -1,14 +1,32 @@ + + Journal Items + ir.actions.act_window + account.move.line + tree,form + +

    + There's no journal item yet +

    +
    +
    + mrp.production - - - - - + +