From 027df6acca8d6cbdd0b54c7d20d5689f6a1bdf4a Mon Sep 17 00:00:00 2001 From: Sergej Lozikov Date: Wed, 14 Nov 2018 19:09:45 +0000 Subject: [PATCH 01/24] [MIG] purchase_procurement_analytic > procurement_mto_analytic: Migration and adaptation to 11.0 --- procurement_mto_analytic/README.rst | 100 ++++++++++++++++++ procurement_mto_analytic/__init__.py | 4 + procurement_mto_analytic/__manifest__.py | 19 ++++ .../i18n/purchase_procurement_analytic.pot | 30 ++++++ procurement_mto_analytic/models/__init__.py | 5 + .../models/procurement.py | 26 +++++ procurement_mto_analytic/models/sale_order.py | 17 +++ procurement_mto_analytic/models/stock.py | 16 +++ procurement_mto_analytic/readme/CONFIGURE.rst | 4 + .../readme/DESCRIPTION.rst | 2 + procurement_mto_analytic/readme/USAGE.rst | 5 + .../static/description/icon.png | Bin 0 -> 9455 bytes procurement_mto_analytic/tests/__init__.py | 3 + .../test_purchase_procurement_analytic.py | 49 +++++++++ 14 files changed, 280 insertions(+) create mode 100644 procurement_mto_analytic/README.rst create mode 100644 procurement_mto_analytic/__init__.py create mode 100644 procurement_mto_analytic/__manifest__.py create mode 100644 procurement_mto_analytic/i18n/purchase_procurement_analytic.pot create mode 100644 procurement_mto_analytic/models/__init__.py create mode 100644 procurement_mto_analytic/models/procurement.py create mode 100644 procurement_mto_analytic/models/sale_order.py create mode 100644 procurement_mto_analytic/models/stock.py create mode 100644 procurement_mto_analytic/readme/CONFIGURE.rst create mode 100644 procurement_mto_analytic/readme/DESCRIPTION.rst create mode 100644 procurement_mto_analytic/readme/USAGE.rst create mode 100644 procurement_mto_analytic/static/description/icon.png create mode 100644 procurement_mto_analytic/tests/__init__.py create mode 100644 procurement_mto_analytic/tests/test_purchase_procurement_analytic.py diff --git a/procurement_mto_analytic/README.rst b/procurement_mto_analytic/README.rst new file mode 100644 index 0000000000..ecba0803ba --- /dev/null +++ b/procurement_mto_analytic/README.rst @@ -0,0 +1,100 @@ +======================= +Purchase Analytic (MTO) +======================= + +.. !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! 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%2Faccount--analytic-lightgray.png?logo=github + :target: https://github.com/OCA/account-analytic/tree/11.0/procurement_mto_analytic + :alt: OCA/account-analytic +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/account-analytic-11-0/account-analytic-11-0-procurement_mto_analytic + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png + :target: https://runbot.odoo-community.org/runbot/87/11.0 + :alt: Try me on Runbot + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module takes account analytic value from sale order to the created +purchase order line. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +To configure this module, you need to: + +#. Go to your user settings. +#. Enable *Analytic Accounting for Purchases* in *Technical Settings*. + +Usage +===== + +#. Add any product with *Make To Order* option enabled into a new sale order. +#. Set *Analytic Account*. +#. *Confirm Sale* +#. The generated purchase order line will have this analytic account. + They won't be grouped if analytic account is different. + +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 +~~~~~~~ + +* Tecnativa +* VentorTech + +Contributors +~~~~~~~~~~~~ + +* `Tecnativa `__: + + * Carlos Dauden + * Pedro M. Baeza + * Vicent Cubells + +* Ventor-Tech: + + * Sergej Lozikov + +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/account-analytic `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/procurement_mto_analytic/__init__.py b/procurement_mto_analytic/__init__.py new file mode 100644 index 0000000000..ec50cfc0f3 --- /dev/null +++ b/procurement_mto_analytic/__init__.py @@ -0,0 +1,4 @@ +# -*- coding: utf-8 -*- +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import models diff --git a/procurement_mto_analytic/__manifest__.py b/procurement_mto_analytic/__manifest__.py new file mode 100644 index 0000000000..7592afb3b2 --- /dev/null +++ b/procurement_mto_analytic/__manifest__.py @@ -0,0 +1,19 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +{ + 'name': 'Purchase Analytic (MTO)', + 'summary': 'This module sets analytic account in purchase order line from ' + 'sale order analytic account', + 'version': '11.0.1.0.0', + 'category': 'Analytic', + 'license': 'AGPL-3', + 'author': "Tecnativa," + "VentorTech, " + "Odoo Community Association (OCA)", + 'website': 'https://github.com/OCA/account-analytic', + 'depends': [ + 'sale_stock', + 'purchase', + ], + 'installable': True, +} diff --git a/procurement_mto_analytic/i18n/purchase_procurement_analytic.pot b/procurement_mto_analytic/i18n/purchase_procurement_analytic.pot new file mode 100644 index 0000000000..84f595f1bc --- /dev/null +++ b/procurement_mto_analytic/i18n/purchase_procurement_analytic.pot @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * purchase_procurement_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.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: purchase_procurement_analytic +#: model:ir.model,name:purchase_procurement_analytic.model_procurement_rule +msgid "Procurement Rule" +msgstr "" + +#. module: purchase_procurement_analytic +#: model:ir.model,name:purchase_procurement_analytic.model_sale_order_line +msgid "Sales Order Line" +msgstr "" + +#. module: purchase_procurement_analytic +#: model:ir.model,name:purchase_procurement_analytic.model_stock_move +msgid "Stock Move" +msgstr "" + diff --git a/procurement_mto_analytic/models/__init__.py b/procurement_mto_analytic/models/__init__.py new file mode 100644 index 0000000000..a8fd21f0fb --- /dev/null +++ b/procurement_mto_analytic/models/__init__.py @@ -0,0 +1,5 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import procurement +from . import stock +from . import sale_order diff --git a/procurement_mto_analytic/models/procurement.py b/procurement_mto_analytic/models/procurement.py new file mode 100644 index 0000000000..9ccbe18bf3 --- /dev/null +++ b/procurement_mto_analytic/models/procurement.py @@ -0,0 +1,26 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class ProcurementRule(models.Model): + _inherit = 'procurement.rule' + + @api.multi + def _prepare_purchase_order_line(self, product_id, product_qty, + product_uom, values, po, supplier): + res = super(ProcurementRule, self).\ + _prepare_purchase_order_line(product_id, product_qty, + product_uom, values, po, supplier) + res.update({ + 'account_analytic_id': + values.get('account_analytic_id', False) + }) + return res + + def _make_po_get_domain(self, values, partner): + res = super(ProcurementRule, self).\ + _make_po_get_domain(values, partner) + res += (('order_line.account_analytic_id', '=', + values.get('account_analytic_id', False)),) + return res diff --git a/procurement_mto_analytic/models/sale_order.py b/procurement_mto_analytic/models/sale_order.py new file mode 100644 index 0000000000..2228be8abf --- /dev/null +++ b/procurement_mto_analytic/models/sale_order.py @@ -0,0 +1,17 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import api, models + + +class SaleOrderLine(models.Model): + _inherit = 'sale.order.line' + + @api.multi + def _prepare_procurement_values(self, group_id=False): + res = super(SaleOrderLine, self).\ + _prepare_procurement_values(group_id) + res.update({ + 'account_analytic_id': + self.order_id.analytic_account_id.id, + }) + return res diff --git a/procurement_mto_analytic/models/stock.py b/procurement_mto_analytic/models/stock.py new file mode 100644 index 0000000000..8c5a410dc4 --- /dev/null +++ b/procurement_mto_analytic/models/stock.py @@ -0,0 +1,16 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo import models + + +class StockMove(models.Model): + _inherit = 'stock.move' + + def _prepare_procurement_values(self): + res = super(StockMove, self).\ + _prepare_procurement_values() + res.update({ + 'account_analytic_id': + self.group_id.sale_id.analytic_account_id.id, + }) + return res diff --git a/procurement_mto_analytic/readme/CONFIGURE.rst b/procurement_mto_analytic/readme/CONFIGURE.rst new file mode 100644 index 0000000000..b97292105d --- /dev/null +++ b/procurement_mto_analytic/readme/CONFIGURE.rst @@ -0,0 +1,4 @@ +To configure this module, you need to: + +#. Go to your user settings. +#. Enable *Analytic Accounting for Purchases* in *Technical Settings*. diff --git a/procurement_mto_analytic/readme/DESCRIPTION.rst b/procurement_mto_analytic/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..2c2d33a343 --- /dev/null +++ b/procurement_mto_analytic/readme/DESCRIPTION.rst @@ -0,0 +1,2 @@ +This module takes account analytic value from sale order to the created +purchase order line. diff --git a/procurement_mto_analytic/readme/USAGE.rst b/procurement_mto_analytic/readme/USAGE.rst new file mode 100644 index 0000000000..69fc9607d6 --- /dev/null +++ b/procurement_mto_analytic/readme/USAGE.rst @@ -0,0 +1,5 @@ +#. Add any product with *Make To Order* option enabled into a new sale order. +#. Set *Analytic Account*. +#. *Confirm Sale* +#. The generated purchase order line will have this analytic account. + They won't be grouped if analytic account is different. diff --git a/procurement_mto_analytic/static/description/icon.png b/procurement_mto_analytic/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/procurement_mto_analytic/tests/__init__.py b/procurement_mto_analytic/tests/__init__.py new file mode 100644 index 0000000000..dbdc831a88 --- /dev/null +++ b/procurement_mto_analytic/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_purchase_procurement_analytic diff --git a/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py b/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py new file mode 100644 index 0000000000..9a328ed7a0 --- /dev/null +++ b/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py @@ -0,0 +1,49 @@ +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from odoo.tests import common + + +class TestPurchaseProcurementAnalytic(common.SavepointCase): + """ Use case : Prepare some data for current test case """ + + @classmethod + def setUpClass(cls): + super(TestPurchaseProcurementAnalytic, cls).setUpClass() + cls.vendor = cls.env['res.partner'].create({ + 'name': 'Partner #2', + }) + cls.supplierinfo = cls.env['product.supplierinfo'].create({ + 'name': cls.vendor.id, + }) + cls.mto = cls.env.ref('stock.route_warehouse0_mto') + cls.buy = cls.env.ref('purchase.route_warehouse0_buy') + cls.product = cls.env['product.product'].create({ + 'name': 'Product Test', + 'seller_ids': [(6, 0, [cls.supplierinfo.id])], + 'route_ids': [(6, 0, [cls.buy.id, + cls.mto.id])], + }) + cls.partner = cls.env['res.partner'].create({ + 'name': 'Partner #1', + }) + cls.analytic_account = cls.env['account.analytic.account'].create({ + 'name': 'Test Analytic Account', + }) + cls.sale_order = cls.env['sale.order'].create({ + 'partner_id': cls.partner.id, + 'analytic_account_id': cls.analytic_account.id, + 'order_line': [(0, 0, { + 'product_id': cls.product.id, + 'product_uom_qty': 1, + 'price_unit': cls.product.list_price, + 'name': cls.product.name, + })], + 'picking_policy': 'direct', + }) + + def test_sale_to_procurement(self): + self.sale_order.with_context(test_enabled=True).action_confirm() + + purcahse_order = self.env['purchase.order.line'].search( + [('account_analytic_id', '=', self.analytic_account.id)]) + self.assertTrue(purcahse_order) From 556d6f021aa452e9308737ca0084874746b52248 Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Tue, 20 Nov 2018 10:01:56 +0000 Subject: [PATCH 02/24] [UPD] README.rst --- procurement_mto_analytic/README.rst | 13 - .../static/description/index.html | 434 ++++++++++++++++++ 2 files changed, 434 insertions(+), 13 deletions(-) create mode 100644 procurement_mto_analytic/static/description/index.html diff --git a/procurement_mto_analytic/README.rst b/procurement_mto_analytic/README.rst index ecba0803ba..2f288c2cba 100644 --- a/procurement_mto_analytic/README.rst +++ b/procurement_mto_analytic/README.rst @@ -69,19 +69,6 @@ Authors * Tecnativa * VentorTech -Contributors -~~~~~~~~~~~~ - -* `Tecnativa `__: - - * Carlos Dauden - * Pedro M. Baeza - * Vicent Cubells - -* Ventor-Tech: - - * Sergej Lozikov - Maintainers ~~~~~~~~~~~ diff --git a/procurement_mto_analytic/static/description/index.html b/procurement_mto_analytic/static/description/index.html new file mode 100644 index 0000000000..d7b21acdd8 --- /dev/null +++ b/procurement_mto_analytic/static/description/index.html @@ -0,0 +1,434 @@ + + + + + + +Purchase Analytic (MTO) + + + +
+

Purchase Analytic (MTO)

+ + +

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

+

This module takes account analytic value from sale order to the created +purchase order line.

+

Table of contents

+ +
+

Configuration

+

To configure this module, you need to:

+
    +
  1. Go to your user settings.
  2. +
  3. Enable Analytic Accounting for Purchases in Technical Settings.
  4. +
+
+
+

Usage

+
    +
  1. Add any product with Make To Order option enabled into a new sale order.
  2. +
  3. Set Analytic Account.
  4. +
  5. Confirm Sale
  6. +
  7. The generated purchase order line will have this analytic account. +They won’t be grouped if analytic account is different.
  8. +
+
+
+

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

+
    +
  • Tecnativa
  • +
  • VentorTech
  • +
+
+
+

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/account-analytic project on GitHub.

+

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

+
+
+
+ + From 5cb00d79cb4ccf1a8b47c70cccbf5829e5648bc4 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Tue, 20 Nov 2018 11:15:22 +0000 Subject: [PATCH 03/24] [UPD] Update procurement_mto_analytic.pot --- .../i18n/procurement_mto_analytic.pot | 30 +++++++++++++++++++ 1 file changed, 30 insertions(+) create mode 100644 procurement_mto_analytic/i18n/procurement_mto_analytic.pot diff --git a/procurement_mto_analytic/i18n/procurement_mto_analytic.pot b/procurement_mto_analytic/i18n/procurement_mto_analytic.pot new file mode 100644 index 0000000000..8d49113a90 --- /dev/null +++ b/procurement_mto_analytic/i18n/procurement_mto_analytic.pot @@ -0,0 +1,30 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * procurement_mto_analytic +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 11.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: procurement_mto_analytic +#: model:ir.model,name:procurement_mto_analytic.model_procurement_rule +msgid "Procurement Rule" +msgstr "" + +#. module: procurement_mto_analytic +#: model:ir.model,name:procurement_mto_analytic.model_sale_order_line +msgid "Sales Order Line" +msgstr "" + +#. module: procurement_mto_analytic +#: model:ir.model,name:procurement_mto_analytic.model_stock_move +msgid "Stock Move" +msgstr "" + From ed41abd56438789c15ce8b1529da0318953ce336 Mon Sep 17 00:00:00 2001 From: Duc Dao Date: Mon, 18 Feb 2019 12:34:49 +0700 Subject: [PATCH 04/24] [MIG] procurement_mto_analytic: Migration to 12.0 --- procurement_mto_analytic/__init__.py | 1 - procurement_mto_analytic/__manifest__.py | 5 +++-- procurement_mto_analytic/models/__init__.py | 4 ++-- .../models/{stock.py => stock_move.py} | 0 .../models/{procurement.py => stock_rule.py} | 13 ++++++------- procurement_mto_analytic/readme/CONTRIBUTORS.rst | 1 + .../tests/test_purchase_procurement_analytic.py | 2 +- 7 files changed, 13 insertions(+), 13 deletions(-) rename procurement_mto_analytic/models/{stock.py => stock_move.py} (100%) rename procurement_mto_analytic/models/{procurement.py => stock_rule.py} (62%) create mode 100644 procurement_mto_analytic/readme/CONTRIBUTORS.rst diff --git a/procurement_mto_analytic/__init__.py b/procurement_mto_analytic/__init__.py index ec50cfc0f3..69f7babdfb 100644 --- a/procurement_mto_analytic/__init__.py +++ b/procurement_mto_analytic/__init__.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import models diff --git a/procurement_mto_analytic/__manifest__.py b/procurement_mto_analytic/__manifest__.py index 7592afb3b2..0592607897 100644 --- a/procurement_mto_analytic/__manifest__.py +++ b/procurement_mto_analytic/__manifest__.py @@ -4,7 +4,7 @@ 'name': 'Purchase Analytic (MTO)', 'summary': 'This module sets analytic account in purchase order line from ' 'sale order analytic account', - 'version': '11.0.1.0.0', + 'version': '12.0.1.0.0', 'category': 'Analytic', 'license': 'AGPL-3', 'author': "Tecnativa," @@ -13,7 +13,8 @@ 'website': 'https://github.com/OCA/account-analytic', 'depends': [ 'sale_stock', - 'purchase', + 'stock', + 'purchase_stock', ], 'installable': True, } diff --git a/procurement_mto_analytic/models/__init__.py b/procurement_mto_analytic/models/__init__.py index a8fd21f0fb..471544947c 100644 --- a/procurement_mto_analytic/models/__init__.py +++ b/procurement_mto_analytic/models/__init__.py @@ -1,5 +1,5 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from . import procurement -from . import stock from . import sale_order +from . import stock_move +from . import stock_rule diff --git a/procurement_mto_analytic/models/stock.py b/procurement_mto_analytic/models/stock_move.py similarity index 100% rename from procurement_mto_analytic/models/stock.py rename to procurement_mto_analytic/models/stock_move.py diff --git a/procurement_mto_analytic/models/procurement.py b/procurement_mto_analytic/models/stock_rule.py similarity index 62% rename from procurement_mto_analytic/models/procurement.py rename to procurement_mto_analytic/models/stock_rule.py index 9ccbe18bf3..000872db51 100644 --- a/procurement_mto_analytic/models/procurement.py +++ b/procurement_mto_analytic/models/stock_rule.py @@ -3,15 +3,14 @@ from odoo import api, models -class ProcurementRule(models.Model): - _inherit = 'procurement.rule' +class StockRule(models.Model): + _inherit = 'stock.rule' @api.multi def _prepare_purchase_order_line(self, product_id, product_qty, product_uom, values, po, supplier): - res = super(ProcurementRule, self).\ - _prepare_purchase_order_line(product_id, product_qty, - product_uom, values, po, supplier) + res = super(StockRule, self)._prepare_purchase_order_line( + product_id, product_qty, product_uom, values, po, supplier) res.update({ 'account_analytic_id': values.get('account_analytic_id', False) @@ -19,8 +18,8 @@ def _prepare_purchase_order_line(self, product_id, product_qty, return res def _make_po_get_domain(self, values, partner): - res = super(ProcurementRule, self).\ - _make_po_get_domain(values, partner) + res = super(StockRule, self)._make_po_get_domain( + values, partner) res += (('order_line.account_analytic_id', '=', values.get('account_analytic_id', False)),) return res diff --git a/procurement_mto_analytic/readme/CONTRIBUTORS.rst b/procurement_mto_analytic/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..2ab9eb2cf4 --- /dev/null +++ b/procurement_mto_analytic/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Duc, Dao Dong (https://komit-consulting.com) diff --git a/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py b/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py index 9a328ed7a0..d4651a605e 100644 --- a/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py +++ b/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py @@ -16,7 +16,7 @@ def setUpClass(cls): 'name': cls.vendor.id, }) cls.mto = cls.env.ref('stock.route_warehouse0_mto') - cls.buy = cls.env.ref('purchase.route_warehouse0_buy') + cls.buy = cls.env.ref('purchase_stock.route_warehouse0_buy') cls.product = cls.env['product.product'].create({ 'name': 'Product Test', 'seller_ids': [(6, 0, [cls.supplierinfo.id])], From 70427d23333342e31ddd661c9e01ff336fecb2fb Mon Sep 17 00:00:00 2001 From: Duc Dao Date: Tue, 19 Feb 2019 18:25:16 +0700 Subject: [PATCH 05/24] [ADD] Add feature to set analytic account for purchase lines of service products --- procurement_mto_analytic/__manifest__.py | 1 - procurement_mto_analytic/models/__init__.py | 2 +- .../{sale_order.py => sale_order_line.py} | 12 +++ .../test_purchase_procurement_analytic.py | 79 +++++++++++++------ 4 files changed, 69 insertions(+), 25 deletions(-) rename procurement_mto_analytic/models/{sale_order.py => sale_order_line.py} (51%) diff --git a/procurement_mto_analytic/__manifest__.py b/procurement_mto_analytic/__manifest__.py index 0592607897..586e2ab9c0 100644 --- a/procurement_mto_analytic/__manifest__.py +++ b/procurement_mto_analytic/__manifest__.py @@ -13,7 +13,6 @@ 'website': 'https://github.com/OCA/account-analytic', 'depends': [ 'sale_stock', - 'stock', 'purchase_stock', ], 'installable': True, diff --git a/procurement_mto_analytic/models/__init__.py b/procurement_mto_analytic/models/__init__.py index 471544947c..3278c53276 100644 --- a/procurement_mto_analytic/models/__init__.py +++ b/procurement_mto_analytic/models/__init__.py @@ -1,5 +1,5 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from . import sale_order +from . import sale_order_line from . import stock_move from . import stock_rule diff --git a/procurement_mto_analytic/models/sale_order.py b/procurement_mto_analytic/models/sale_order_line.py similarity index 51% rename from procurement_mto_analytic/models/sale_order.py rename to procurement_mto_analytic/models/sale_order_line.py index 2228be8abf..7e0ad9ab3f 100644 --- a/procurement_mto_analytic/models/sale_order.py +++ b/procurement_mto_analytic/models/sale_order_line.py @@ -15,3 +15,15 @@ def _prepare_procurement_values(self, group_id=False): self.order_id.analytic_account_id.id, }) return res + + @api.multi + def _purchase_service_prepare_line_values(self, purchase_order, + quantity=False): + res = super(SaleOrderLine, self).\ + _purchase_service_prepare_line_values( + purchase_order=purchase_order, quantity=quantity) + res.update({ + 'account_analytic_id': + self.order_id.analytic_account_id.id, + }) + return res diff --git a/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py b/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py index d4651a605e..342aab5ae0 100644 --- a/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py +++ b/procurement_mto_analytic/tests/test_purchase_procurement_analytic.py @@ -9,41 +9,74 @@ class TestPurchaseProcurementAnalytic(common.SavepointCase): @classmethod def setUpClass(cls): super(TestPurchaseProcurementAnalytic, cls).setUpClass() - cls.vendor = cls.env['res.partner'].create({ + vendor = cls.env['res.partner'].create({ 'name': 'Partner #2', }) - cls.supplierinfo = cls.env['product.supplierinfo'].create({ - 'name': cls.vendor.id, + supplierinfo = cls.env['product.supplierinfo'].create({ + 'name': vendor.id, }) - cls.mto = cls.env.ref('stock.route_warehouse0_mto') - cls.buy = cls.env.ref('purchase_stock.route_warehouse0_buy') + mto = cls.env.ref('stock.route_warehouse0_mto') + buy = cls.env.ref('purchase_stock.route_warehouse0_buy') cls.product = cls.env['product.product'].create({ 'name': 'Product Test', - 'seller_ids': [(6, 0, [cls.supplierinfo.id])], - 'route_ids': [(6, 0, [cls.buy.id, - cls.mto.id])], + 'seller_ids': [(6, 0, [supplierinfo.id])], + 'route_ids': [(6, 0, [buy.id, mto.id])], + }) + supplierinfo_service = cls.env['product.supplierinfo'].create({ + 'name': vendor.id, + }) + cls.service_product = cls.env['product.product'].create({ + 'name': 'Product Service Test', + 'seller_ids': [(6, 0, [supplierinfo_service.id])], + 'type': 'service', + 'service_to_purchase': True, }) cls.partner = cls.env['res.partner'].create({ 'name': 'Partner #1', }) - cls.analytic_account = cls.env['account.analytic.account'].create({ + + def test_sale_to_procurement(self): + analytic_account = self.env['account.analytic.account'].create({ 'name': 'Test Analytic Account', }) - cls.sale_order = cls.env['sale.order'].create({ - 'partner_id': cls.partner.id, - 'analytic_account_id': cls.analytic_account.id, - 'order_line': [(0, 0, { - 'product_id': cls.product.id, - 'product_uom_qty': 1, - 'price_unit': cls.product.list_price, - 'name': cls.product.name, - })], + sale_order = self.env['sale.order'].create({ + 'partner_id': self.partner.id, + 'analytic_account_id': analytic_account.id, + 'order_line': [ + (0, 0, { + 'product_id': self.product.id, + 'product_uom_qty': 1, + 'price_unit': self.product.list_price, + 'name': self.product.name, + }) + ], 'picking_policy': 'direct', }) + sale_order.with_context(test_enabled=True).action_confirm() - def test_sale_to_procurement(self): - self.sale_order.with_context(test_enabled=True).action_confirm() + purchase_order = self.env['purchase.order.line'].search( + [('account_analytic_id', '=', analytic_account.id)]) + self.assertTrue(purchase_order) + + def test_sale_service_product(self): + analytic_account = self.env['account.analytic.account'].create({ + 'name': 'Test Service Analytic Account', + }) + sale_order = self.env['sale.order'].create({ + 'partner_id': self.partner.id, + 'analytic_account_id': analytic_account.id, + 'order_line': [ + (0, 0, { + 'product_id': self.service_product.id, + 'product_uom_qty': 1, + 'price_unit': self.product.list_price, + 'name': self.product.name, + }) + ], + 'picking_policy': 'direct', + }) + sale_order.with_context(test_enabled=True).action_confirm() - purcahse_order = self.env['purchase.order.line'].search( - [('account_analytic_id', '=', self.analytic_account.id)]) - self.assertTrue(purcahse_order) + purchase_order = self.env['purchase.order.line'].search( + [('account_analytic_id', '=', analytic_account.id)]) + self.assertTrue(purchase_order) From 983b82b43785ac26524fa3af5a255ad3c578fb1d Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 25 Feb 2019 08:59:58 +0000 Subject: [PATCH 06/24] [UPD] README.rst --- procurement_mto_analytic/README.rst | 15 ++++++++++----- .../static/description/index.html | 17 ++++++++++++----- 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/procurement_mto_analytic/README.rst b/procurement_mto_analytic/README.rst index 2f288c2cba..ee2f20365d 100644 --- a/procurement_mto_analytic/README.rst +++ b/procurement_mto_analytic/README.rst @@ -14,13 +14,13 @@ Purchase Analytic (MTO) :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--analytic-lightgray.png?logo=github - :target: https://github.com/OCA/account-analytic/tree/11.0/procurement_mto_analytic + :target: https://github.com/OCA/account-analytic/tree/12.0/procurement_mto_analytic :alt: OCA/account-analytic .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/account-analytic-11-0/account-analytic-11-0-procurement_mto_analytic + :target: https://translation.odoo-community.org/projects/account-analytic-12-0/account-analytic-12-0-procurement_mto_analytic :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png - :target: https://runbot.odoo-community.org/runbot/87/11.0 + :target: https://runbot.odoo-community.org/runbot/87/12.0 :alt: Try me on Runbot |badge1| |badge2| |badge3| |badge4| |badge5| @@ -56,7 +56,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. @@ -69,6 +69,11 @@ Authors * Tecnativa * VentorTech +Contributors +~~~~~~~~~~~~ + +* Duc, Dao Dong (https://komit-consulting.com) + Maintainers ~~~~~~~~~~~ @@ -82,6 +87,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/account-analytic `_ project on GitHub. +This module is part of the `OCA/account-analytic `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/procurement_mto_analytic/static/description/index.html b/procurement_mto_analytic/static/description/index.html index d7b21acdd8..14c693e240 100644 --- a/procurement_mto_analytic/static/description/index.html +++ b/procurement_mto_analytic/static/description/index.html @@ -367,7 +367,7 @@

Purchase Analytic (MTO)

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

+

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

This module takes account analytic value from sale order to the created purchase order line.

Table of contents

@@ -378,7 +378,8 @@

Purchase Analytic (MTO)

  • Bug Tracker
  • Credits
  • @@ -406,7 +407,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.

    @@ -418,14 +419,20 @@

    Authors

  • VentorTech
  • +
    -

    Maintainers

    +

    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/account-analytic project on GitHub.

    +

    This module is part of the OCA/account-analytic project on GitHub.

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

    From 94437b5b19b9c33e6246285b2e4b7481d5c51ba5 Mon Sep 17 00:00:00 2001 From: oca-travis Date: Mon, 25 Feb 2019 09:30:45 +0000 Subject: [PATCH 07/24] [UPD] Update procurement_mto_analytic.pot --- .../i18n/procurement_mto_analytic.pot | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/procurement_mto_analytic/i18n/procurement_mto_analytic.pot b/procurement_mto_analytic/i18n/procurement_mto_analytic.pot index 8d49113a90..28e58ef1a6 100644 --- a/procurement_mto_analytic/i18n/procurement_mto_analytic.pot +++ b/procurement_mto_analytic/i18n/procurement_mto_analytic.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 11.0\n" +"Project-Id-Version: Odoo Server 12.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: <>\n" "Language-Team: \n" @@ -13,11 +13,6 @@ msgstr "" "Content-Transfer-Encoding: \n" "Plural-Forms: \n" -#. module: procurement_mto_analytic -#: model:ir.model,name:procurement_mto_analytic.model_procurement_rule -msgid "Procurement Rule" -msgstr "" - #. module: procurement_mto_analytic #: model:ir.model,name:procurement_mto_analytic.model_sale_order_line msgid "Sales Order Line" @@ -28,3 +23,8 @@ msgstr "" msgid "Stock Move" msgstr "" +#. module: procurement_mto_analytic +#: model:ir.model,name:procurement_mto_analytic.model_stock_rule +msgid "Stock Rule" +msgstr "" + From bb221ab265ae5c5b7db271d0052b2f36fe65d78e Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 29 Jul 2019 02:31:47 +0000 Subject: [PATCH 08/24] [UPD] README.rst --- procurement_mto_analytic/static/description/index.html | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/procurement_mto_analytic/static/description/index.html b/procurement_mto_analytic/static/description/index.html index 14c693e240..1b6ad50ab6 100644 --- a/procurement_mto_analytic/static/description/index.html +++ b/procurement_mto_analytic/static/description/index.html @@ -3,7 +3,7 @@ - + Purchase Analytic (MTO)