[MIG] account_asset_transfer: Migration to 16.0

This commit is contained in:
Saran440
2023-12-28 16:28:08 +07:00
parent 1285aaef4a
commit 0ae43e318e
6 changed files with 36 additions and 58 deletions

View File

@@ -7,7 +7,7 @@ Asset Transfer from AUC to Asset
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:54bc585229303c2c59b323b6c4dd583945abda7880b25b67463697dbadc42dd5 !! source digest: sha256:5fb144c4441c023dcd6f27dcd7be70952e7b51761699c1c4e0a08f50f8bc9c97
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png .. |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 :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html
:alt: License: AGPL-3 :alt: License: AGPL-3
.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Faccount--financial--tools-lightgray.png?logo=github .. |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 :alt: OCA/account-financial-tools
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png .. |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 :alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png .. |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 :alt: Try me on Runboat
|badge1| |badge2| |badge3| |badge4| |badge5| |badge1| |badge2| |badge3| |badge4| |badge5|
@@ -68,7 +68,7 @@ Bug Tracker
Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-financial-tools/issues>`_. Bugs are tracked on `GitHub Issues <https://github.com/OCA/account-financial-tools/issues>`_.
In case of trouble, please check there if your issue has already been reported. 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 If you spotted it first, help us to smash it by providing a detailed and welcomed
`feedback <https://github.com/OCA/account-financial-tools/issues/new?body=module:%20account_asset_transfer%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_. `feedback <https://github.com/OCA/account-financial-tools/issues/new?body=module:%20account_asset_transfer%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**>`_.
Do not contact contributors directly about support or help with technical issues. Do not contact contributors directly about support or help with technical issues.
@@ -110,6 +110,6 @@ Current `maintainer <https://odoo-community.org/page/maintainer-role>`__:
|maintainer-kittiu| |maintainer-kittiu|
This module is part of the `OCA/account-financial-tools <https://github.com/OCA/account-financial-tools/tree/15.0/account_asset_transfer>`_ project on GitHub. This module is part of the `OCA/account-financial-tools <https://github.com/OCA/account-financial-tools/tree/16.0/account_asset_transfer>`_ project on GitHub.
You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

View File

@@ -3,7 +3,7 @@
{ {
"name": "Asset Transfer from AUC to Asset", "name": "Asset Transfer from AUC to Asset",
"version": "15.0.1.0.0", "version": "16.0.1.0.0",
"license": "AGPL-3", "license": "AGPL-3",
"depends": ["account_asset_management"], "depends": ["account_asset_management"],
"author": "Ecosoft, Odoo Community Association (OCA)", "author": "Ecosoft, Odoo Community Association (OCA)",

View File

@@ -367,9 +367,9 @@ ul.auto-toc {
!! This file is generated by oca-gen-addon-readme !! !! This file is generated by oca-gen-addon-readme !!
!! changes will be overwritten. !! !! changes will be overwritten. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
!! source digest: sha256:54bc585229303c2c59b323b6c4dd583945abda7880b25b67463697dbadc42dd5 !! source digest: sha256:5fb144c4441c023dcd6f27dcd7be70952e7b51761699c1c4e0a08f50f8bc9c97
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
<p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/account-financial-tools/tree/15.0/account_asset_transfer"><img alt="OCA/account-financial-tools" src="https://img.shields.io/badge/github-OCA%2Faccount--financial--tools-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-financial-tools-15-0/account-financial-tools-15-0-account_asset_transfer"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/account-financial-tools&amp;target_branch=15.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p> <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/account-financial-tools/tree/16.0/account_asset_transfer"><img alt="OCA/account-financial-tools" src="https://img.shields.io/badge/github-OCA%2Faccount--financial--tools-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/account-financial-tools-16-0/account-financial-tools-16-0-account_asset_transfer"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/account-financial-tools&amp;target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p>
<p>This module allow transferring assets under construction (AUC) to normal assets.</p> <p>This module allow transferring assets under construction (AUC) to normal assets.</p>
<p>AUC is Asset under construction where some assets are in construction phase and <p>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 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</p>
<p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-financial-tools/issues">GitHub Issues</a>. <p>Bugs are tracked on <a class="reference external" href="https://github.com/OCA/account-financial-tools/issues">GitHub Issues</a>.
In case of trouble, please check there if your issue has already been reported. 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 If you spotted it first, help us to smash it by providing a detailed and welcomed
<a class="reference external" href="https://github.com/OCA/account-financial-tools/issues/new?body=module:%20account_asset_transfer%0Aversion:%2015.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p> <a class="reference external" href="https://github.com/OCA/account-financial-tools/issues/new?body=module:%20account_asset_transfer%0Aversion:%2016.0%0A%0A**Steps%20to%20reproduce**%0A-%20...%0A%0A**Current%20behavior**%0A%0A**Expected%20behavior**">feedback</a>.</p>
<p>Do not contact contributors directly about support or help with technical issues.</p> <p>Do not contact contributors directly about support or help with technical issues.</p>
</div> </div>
<div class="section" id="credits"> <div class="section" id="credits">
@@ -445,7 +445,7 @@ mission is to support the collaborative development of Odoo features and
promote its widespread use.</p> promote its widespread use.</p>
<p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p> <p>Current <a class="reference external" href="https://odoo-community.org/page/maintainer-role">maintainer</a>:</p>
<p><a class="reference external image-reference" href="https://github.com/kittiu"><img alt="kittiu" src="https://github.com/kittiu.png?size=40px" /></a></p> <p><a class="reference external image-reference" href="https://github.com/kittiu"><img alt="kittiu" src="https://github.com/kittiu.png?size=40px" /></a></p>
<p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-financial-tools/tree/15.0/account_asset_transfer">OCA/account-financial-tools</a> project on GitHub.</p> <p>This module is part of the <a class="reference external" href="https://github.com/OCA/account-financial-tools/tree/16.0/account_asset_transfer">OCA/account-financial-tools</a> project on GitHub.</p>
<p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p> <p>You are welcome to contribute. To learn how please visit <a class="reference external" href="https://odoo-community.org/page/Contribute">https://odoo-community.org/page/Contribute</a>.</p>
</div> </div>
</div> </div>

View File

@@ -98,7 +98,7 @@ class TestAccountAssetTransfer(TestAssetManagement):
assets += asset_auc assets += asset_auc
self.assertFalse(list(set(assets.mapped("can_transfer")))[0]) self.assertFalse(list(set(assets.mapped("can_transfer")))[0])
assets.validate() assets.validate()
assets.invalidate_cache() assets.invalidate_model()
# can_transfer = True after validate # can_transfer = True after validate
self.assertTrue(list(set(assets.mapped("can_transfer")))[0]) self.assertTrue(list(set(assets.mapped("can_transfer")))[0])
self.assertEqual(list(set(assets.mapped("is_transfer"))), [False]) self.assertEqual(list(set(assets.mapped("is_transfer"))), [False])

View File

@@ -1,13 +1,14 @@
# Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th) # Copyright 2020 Ecosoft Co., Ltd. (http://ecosoft.co.th)
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). # 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.exceptions import UserError
from odoo.tools import float_compare from odoo.tools import float_compare
class AccountAssetTransfer(models.TransientModel): class AccountAssetTransfer(models.TransientModel):
_name = "account.asset.transfer" _name = "account.asset.transfer"
_inherit = "analytic.mixin"
_description = "Transfer Asset" _description = "Transfer Asset"
_check_company_auto = True _check_company_auto = True
@@ -60,14 +61,6 @@ class AccountAssetTransfer(models.TransientModel):
comodel_name="res.partner", comodel_name="res.partner",
string="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 @api.model
def default_get(self, field_list): def default_get(self, field_list):
@@ -79,20 +72,22 @@ class AccountAssetTransfer(models.TransientModel):
company.ensure_one() company.ensure_one()
journals = assets.mapped("profile_id.transfer_journal_id") journals = assets.mapped("profile_id.transfer_journal_id")
partners = assets.mapped("partner_id") partners = assets.mapped("partner_id")
analytics = assets.mapped("account_analytic_id") analytics = assets.mapped("analytic_distribution")
tags = assets[:1].analytic_tag_ids # Combine analytic to dict
for asset in assets: analytic_dict = {}
if asset.analytic_tag_ids != tags: unique_elements = set()
# When not all tags are the same, no default for analytic in analytics:
tags = self.env["account.analytic.tag"] if analytic is not False:
break 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 # Assign values
res["company_id"] = company.id res["company_id"] = company.id
res["partner_id"] = partners[0].id if len(partners) == 1 else False 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["from_asset_ids"] = [(4, asset_id) for asset_id in assets.ids]
res["transfer_journal_id"] = journals[:1].id res["transfer_journal_id"] = journals[:1].id
res["analytic_account_id"] = analytics[0].id if len(analytics) == 1 else False res["analytic_distribution"] = analytic_dict
res["analytic_tag_ids"] = [(4, tag_id) for tag_id in tags.ids]
return res return res
@api.depends("from_asset_ids", "to_asset_ids") @api.depends("from_asset_ids", "to_asset_ids")
@@ -152,8 +147,7 @@ class AccountAssetTransfer(models.TransientModel):
return { return {
"name": move_line.name, "name": move_line.name,
"account_id": move_line.account_id.id, "account_id": move_line.account_id.id,
"analytic_account_id": move_line.analytic_account_id.id or False, "analytic_distribution": move_line.analytic_distribution or {},
"analytic_tag_ids": [(4, tag.id) for tag in move_line.analytic_tag_ids],
"debit": move_line.credit, "debit": move_line.credit,
"credit": move_line.debit, "credit": move_line.debit,
"partner_id": move_line.partner_id.id, "partner_id": move_line.partner_id.id,
@@ -164,8 +158,7 @@ class AccountAssetTransfer(models.TransientModel):
return { return {
"name": asset.name, "name": asset.name,
"account_id": asset.profile_id.account_asset_id.id, "account_id": asset.profile_id.account_asset_id.id,
"analytic_account_id": asset.account_analytic_id.id, "analytic_distribution": asset.analytic_distribution or {},
"analytic_tag_ids": [(4, tag.id) for tag in asset.analytic_tag_ids],
"debit": 0.0, "debit": 0.0,
"credit": asset.purchase_value or 0.0, "credit": asset.purchase_value or 0.0,
"partner_id": asset.partner_id.id, "partner_id": asset.partner_id.id,
@@ -176,8 +169,7 @@ class AccountAssetTransfer(models.TransientModel):
return { return {
"name": to_asset.asset_name, "name": to_asset.asset_name,
"account_id": to_asset.asset_profile_id.account_asset_id.id, "account_id": to_asset.asset_profile_id.account_asset_id.id,
"analytic_account_id": to_asset.analytic_account_id.id, "analytic_distribution": to_asset.analytic_distribution or {},
"analytic_tag_ids": [(4, tag.id) for tag in to_asset.analytic_tag_ids],
"debit": to_asset.asset_value, "debit": to_asset.asset_value,
"credit": 0.0, "credit": 0.0,
"partner_id": to_asset.partner_id.id, "partner_id": to_asset.partner_id.id,
@@ -186,15 +178,14 @@ class AccountAssetTransfer(models.TransientModel):
} }
def _get_transfer_data(self): def _get_transfer_data(self):
move_lines = []
# Create lines from assets # Create lines from assets
move_lines += [ move_lines = [
(0, 0, self._get_move_line_from_asset(from_asset)) Command.create(self._get_move_line_from_asset(from_asset))
for from_asset in self.from_asset_ids for from_asset in self.from_asset_ids
] ]
# Create lines for new assets # Create lines for new assets
move_lines += [ 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 for to_asset in self.to_asset_ids
] ]
return move_lines return move_lines
@@ -212,6 +203,7 @@ class AccountAssetTransfer(models.TransientModel):
class AccountAssetTransferLine(models.TransientModel): class AccountAssetTransferLine(models.TransientModel):
_name = "account.asset.transfer.line" _name = "account.asset.transfer.line"
_inherit = "analytic.mixin"
_description = "Transfer To Asset" _description = "Transfer To Asset"
transfer_id = fields.Many2one( transfer_id = fields.Many2one(
@@ -243,14 +235,6 @@ class AccountAssetTransferLine(models.TransientModel):
comodel_name="res.partner", comodel_name="res.partner",
string="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") @api.depends("quantity", "price_unit")
def _compute_asset_value(self): def _compute_asset_value(self):

View File

@@ -9,6 +9,7 @@
<group> <group>
<field name="date_transfer" /> <field name="date_transfer" />
<field name="company_id" groups="base.group_multi_company" /> <field name="company_id" groups="base.group_multi_company" />
<field name="company_id" invisible="1" />
<field name="currency_id" invisible="1" /> <field name="currency_id" invisible="1" />
<field name="from_asset_value" /> <field name="from_asset_value" />
<field name="to_asset_value" /> <field name="to_asset_value" />
@@ -17,8 +18,7 @@
<group> <group>
<field name="transfer_journal_id" /> <field name="transfer_journal_id" />
<field name="partner_id" invisible="1" /> <field name="partner_id" invisible="1" />
<field name="analytic_account_id" invisible="1" /> <field name="analytic_distribution" invisible="1" />
<field name="analytic_tag_ids" invisible="1" />
</group> </group>
</group> </group>
<notebook> <notebook>
@@ -36,8 +36,7 @@
context="{ context="{
'default_asset_value': balance, 'default_asset_value': balance,
'default_partner_id': partner_id, 'default_partner_id': partner_id,
'default_analytic_account_id': analytic_account_id, 'default_analytic_distribution': analytic_distribution,
'default_analytic_tag_ids': analytic_tag_ids,
}" }"
> >
<tree editable="bottom"> <tree editable="bottom">
@@ -48,14 +47,9 @@
<field name="asset_value" /> <field name="asset_value" />
<field name="partner_id" /> <field name="partner_id" />
<field <field
name="analytic_account_id" name="analytic_distribution"
groups="analytic.group_analytic_accounting" groups="analytic.group_analytic_accounting"
/> />
<field
name="analytic_tag_ids"
groups="analytic.group_analytic_accounting"
widget="many2many_tags"
/>
</tree> </tree>
</field> </field>
</page> </page>