diff --git a/account_asset_transfer/README.rst b/account_asset_transfer/README.rst index a8484c355..16085c5c8 100644 --- a/account_asset_transfer/README.rst +++ b/account_asset_transfer/README.rst @@ -7,7 +7,7 @@ Asset Transfer from AUC to Asset !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:54bc585229303c2c59b323b6c4dd583945abda7880b25b67463697dbadc42dd5 + !! source digest: sha256:5fb144c4441c023dcd6f27dcd7be70952e7b51761699c1c4e0a08f50f8bc9c97 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -17,13 +17,13 @@ Asset Transfer from AUC to Asset :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--financial--tools-lightgray.png?logo=github - :target: https://github.com/OCA/account-financial-tools/tree/15.0/account_asset_transfer + :target: https://github.com/OCA/account-financial-tools/tree/16.0/account_asset_transfer :alt: OCA/account-financial-tools .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/account-financial-tools-15-0/account-financial-tools-15-0-account_asset_transfer + :target: https://translation.odoo-community.org/projects/account-financial-tools-16-0/account-financial-tools-16-0-account_asset_transfer :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/account-financial-tools&target_branch=15.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/account-financial-tools&target_branch=16.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -68,7 +68,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 to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -110,6 +110,6 @@ Current `maintainer `__: |maintainer-kittiu| -This module is part of the `OCA/account-financial-tools `_ project on GitHub. +This module is part of the `OCA/account-financial-tools `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/account_asset_transfer/__manifest__.py b/account_asset_transfer/__manifest__.py index 6490c9d6b..f1b834eae 100644 --- a/account_asset_transfer/__manifest__.py +++ b/account_asset_transfer/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Asset Transfer from AUC to Asset", - "version": "15.0.1.0.0", + "version": "16.0.1.0.0", "license": "AGPL-3", "depends": ["account_asset_management"], "author": "Ecosoft, Odoo Community Association (OCA)", diff --git a/account_asset_transfer/static/description/index.html b/account_asset_transfer/static/description/index.html index 7f0975bae..2fad89adc 100644 --- a/account_asset_transfer/static/description/index.html +++ b/account_asset_transfer/static/description/index.html @@ -367,9 +367,9 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:54bc585229303c2c59b323b6c4dd583945abda7880b25b67463697dbadc42dd5 +!! source digest: sha256:5fb144c4441c023dcd6f27dcd7be70952e7b51761699c1c4e0a08f50f8bc9c97 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/account-financial-tools Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/account-financial-tools Translate me on Weblate Try me on Runboat

This module allow transferring assets under construction (AUC) to normal assets.

AUC is Asset under construction where some assets are in construction phase and cost needs to be captured for the time being. Once asset is fully completed then @@ -414,7 +414,7 @@ cost would be transferred to final asset

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 to smash it by providing a detailed and welcomed -feedback.

+feedback.

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

@@ -445,7 +445,7 @@ mission is to support the collaborative development of Odoo features and promote its widespread use.

Current maintainer:

kittiu

-

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

+

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

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

diff --git a/account_asset_transfer/tests/test_account_asset_transfer.py b/account_asset_transfer/tests/test_account_asset_transfer.py index 633f7b46c..d495b7139 100644 --- a/account_asset_transfer/tests/test_account_asset_transfer.py +++ b/account_asset_transfer/tests/test_account_asset_transfer.py @@ -98,7 +98,7 @@ class TestAccountAssetTransfer(TestAssetManagement): assets += asset_auc self.assertFalse(list(set(assets.mapped("can_transfer")))[0]) assets.validate() - assets.invalidate_cache() + assets.invalidate_model() # can_transfer = True after validate self.assertTrue(list(set(assets.mapped("can_transfer")))[0]) self.assertEqual(list(set(assets.mapped("is_transfer"))), [False]) diff --git a/account_asset_transfer/wizard/account_asset_transfer.py b/account_asset_transfer/wizard/account_asset_transfer.py index cdbb9ee10..df9fd4a3a 100644 --- a/account_asset_transfer/wizard/account_asset_transfer.py +++ b/account_asset_transfer/wizard/account_asset_transfer.py @@ -1,13 +1,14 @@ # Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). -from odoo import _, api, fields, models +from odoo import Command, _, api, fields, models from odoo.exceptions import UserError from odoo.tools import float_compare class AccountAssetTransfer(models.TransientModel): _name = "account.asset.transfer" + _inherit = "analytic.mixin" _description = "Transfer Asset" _check_company_auto = True @@ -60,14 +61,6 @@ class AccountAssetTransfer(models.TransientModel): comodel_name="res.partner", string="Partner", ) - analytic_account_id = fields.Many2one( - comodel_name="account.analytic.account", - string="Analytic account", - ) - analytic_tag_ids = fields.Many2many( - comodel_name="account.analytic.tag", - string="Analytic tags", - ) @api.model def default_get(self, field_list): @@ -79,20 +72,22 @@ class AccountAssetTransfer(models.TransientModel): company.ensure_one() journals = assets.mapped("profile_id.transfer_journal_id") partners = assets.mapped("partner_id") - analytics = assets.mapped("account_analytic_id") - tags = assets[:1].analytic_tag_ids - for asset in assets: - if asset.analytic_tag_ids != tags: - # When not all tags are the same, no default - tags = self.env["account.analytic.tag"] - break + analytics = assets.mapped("analytic_distribution") + # Combine analytic to dict + analytic_dict = {} + unique_elements = set() + for analytic in analytics: + if analytic is not False: + for key, value in analytic.items(): + if key not in analytic_dict and key not in unique_elements: + analytic_dict[key] = value + unique_elements.add(key) # Assign values res["company_id"] = company.id res["partner_id"] = partners[0].id if len(partners) == 1 else False res["from_asset_ids"] = [(4, asset_id) for asset_id in assets.ids] res["transfer_journal_id"] = journals[:1].id - res["analytic_account_id"] = analytics[0].id if len(analytics) == 1 else False - res["analytic_tag_ids"] = [(4, tag_id) for tag_id in tags.ids] + res["analytic_distribution"] = analytic_dict return res @api.depends("from_asset_ids", "to_asset_ids") @@ -152,8 +147,7 @@ class AccountAssetTransfer(models.TransientModel): return { "name": move_line.name, "account_id": move_line.account_id.id, - "analytic_account_id": move_line.analytic_account_id.id or False, - "analytic_tag_ids": [(4, tag.id) for tag in move_line.analytic_tag_ids], + "analytic_distribution": move_line.analytic_distribution or {}, "debit": move_line.credit, "credit": move_line.debit, "partner_id": move_line.partner_id.id, @@ -164,8 +158,7 @@ class AccountAssetTransfer(models.TransientModel): return { "name": asset.name, "account_id": asset.profile_id.account_asset_id.id, - "analytic_account_id": asset.account_analytic_id.id, - "analytic_tag_ids": [(4, tag.id) for tag in asset.analytic_tag_ids], + "analytic_distribution": asset.analytic_distribution or {}, "debit": 0.0, "credit": asset.purchase_value or 0.0, "partner_id": asset.partner_id.id, @@ -176,8 +169,7 @@ class AccountAssetTransfer(models.TransientModel): return { "name": to_asset.asset_name, "account_id": to_asset.asset_profile_id.account_asset_id.id, - "analytic_account_id": to_asset.analytic_account_id.id, - "analytic_tag_ids": [(4, tag.id) for tag in to_asset.analytic_tag_ids], + "analytic_distribution": to_asset.analytic_distribution or {}, "debit": to_asset.asset_value, "credit": 0.0, "partner_id": to_asset.partner_id.id, @@ -186,15 +178,14 @@ class AccountAssetTransfer(models.TransientModel): } def _get_transfer_data(self): - move_lines = [] # Create lines from assets - move_lines += [ - (0, 0, self._get_move_line_from_asset(from_asset)) + move_lines = [ + Command.create(self._get_move_line_from_asset(from_asset)) for from_asset in self.from_asset_ids ] # Create lines for new assets move_lines += [ - (0, 0, self._get_move_line_to_asset(to_asset)) + Command.create(self._get_move_line_to_asset(to_asset)) for to_asset in self.to_asset_ids ] return move_lines @@ -212,6 +203,7 @@ class AccountAssetTransfer(models.TransientModel): class AccountAssetTransferLine(models.TransientModel): _name = "account.asset.transfer.line" + _inherit = "analytic.mixin" _description = "Transfer To Asset" transfer_id = fields.Many2one( @@ -243,14 +235,6 @@ class AccountAssetTransferLine(models.TransientModel): comodel_name="res.partner", string="Partner", ) - analytic_account_id = fields.Many2one( - comodel_name="account.analytic.account", - string="Analytic account", - ) - analytic_tag_ids = fields.Many2many( - comodel_name="account.analytic.tag", - string="Analytic tags", - ) @api.depends("quantity", "price_unit") def _compute_asset_value(self): diff --git a/account_asset_transfer/wizard/account_asset_transfer.xml b/account_asset_transfer/wizard/account_asset_transfer.xml index 87a7403ab..4afc8ac35 100644 --- a/account_asset_transfer/wizard/account_asset_transfer.xml +++ b/account_asset_transfer/wizard/account_asset_transfer.xml @@ -9,6 +9,7 @@ + @@ -17,8 +18,7 @@ - - + @@ -36,8 +36,7 @@ context="{ 'default_asset_value': balance, 'default_partner_id': partner_id, - 'default_analytic_account_id': analytic_account_id, - 'default_analytic_tag_ids': analytic_tag_ids, + 'default_analytic_distribution': analytic_distribution, }" > @@ -48,14 +47,9 @@ -