forked from OCA/account-financial-tools
-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1635 from OCA/16.0
Syncing from upstream OCA/account-financial-tools (16.0)
- Loading branch information
Showing
27 changed files
with
996 additions
and
204 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). | ||
|
||
from . import common | ||
from . import test_account_chart_update |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,196 @@ | ||
# Copyright 2023 Tecnativa - Pedro M. Baeza | ||
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). | ||
|
||
from odoo.tests import common, tagged | ||
|
||
|
||
@tagged("-at_install", "post_install") | ||
class TestAccountChartUpdateCommon(common.TransactionCase): | ||
@classmethod | ||
def _create_xml_id(cls, record): | ||
return cls.env["ir.model.data"].create( | ||
{ | ||
"module": "account_chart_update", | ||
"name": "{}-{}".format(record._table, record.id), | ||
"model": record._name, | ||
"res_id": record.id, | ||
} | ||
) | ||
|
||
@classmethod | ||
def _create_account_tmpl(cls, name, code, account_type, chart_template): | ||
record = cls.env["account.account.template"].create( | ||
{ | ||
"name": name, | ||
"code": code, | ||
"account_type": account_type, | ||
"chart_template_id": chart_template and chart_template.id, | ||
} | ||
) | ||
cls._create_xml_id(record) | ||
return record | ||
|
||
@classmethod | ||
def _create_tax_tmpl(cls, name, chart_template): | ||
record = cls.env["account.tax.template"].create( | ||
{ | ||
"name": name, | ||
"amount": 0, | ||
"chart_template_id": chart_template.id, | ||
"tax_group_id": cls.env.ref("account.tax_group_taxes").id, | ||
"refund_repartition_line_ids": [ | ||
(0, 0, {"repartition_type": "base", "factor_percent": 100.0}), | ||
(0, 0, {"repartition_type": "tax", "factor_percent": 100.0}), | ||
(0, 0, {"repartition_type": "tax", "factor_percent": 100.0}), | ||
], | ||
"invoice_repartition_line_ids": [ | ||
(0, 0, {"repartition_type": "base", "factor_percent": 100.0}), | ||
(0, 0, {"repartition_type": "tax", "factor_percent": 100.0}), | ||
(0, 0, {"repartition_type": "tax", "factor_percent": 100.0}), | ||
], | ||
} | ||
) | ||
cls._create_xml_id(record) | ||
return record | ||
|
||
def _create_tax_template_with_account(self, name, chart_template, account): | ||
record = self.env["account.tax.template"].create( | ||
{ | ||
"name": name, | ||
"amount": 0, | ||
"chart_template_id": chart_template.id, | ||
"tax_group_id": self.env.ref("account.tax_group_taxes").id, | ||
"refund_repartition_line_ids": [ | ||
(0, 0, {"repartition_type": "base", "factor_percent": 100.0}), | ||
( | ||
0, | ||
0, | ||
{ | ||
"repartition_type": "tax", | ||
"factor_percent": 100.0, | ||
"account_id": account.id, | ||
}, | ||
), | ||
], | ||
"invoice_repartition_line_ids": [ | ||
(0, 0, {"repartition_type": "base", "factor_percent": 100.0}), | ||
( | ||
0, | ||
0, | ||
{ | ||
"repartition_type": "tax", | ||
"factor_percent": 100.0, | ||
"account_id": account.id, | ||
}, | ||
), | ||
], | ||
} | ||
) | ||
self._create_xml_id(record) | ||
return record | ||
|
||
@classmethod | ||
def _create_fp_tmpl(cls, name, chart_template): | ||
record = cls.env["account.fiscal.position.template"].create( | ||
{"name": name, "chart_template_id": chart_template.id} | ||
) | ||
cls._create_xml_id(record) | ||
return record | ||
|
||
def _get_model_data(self, record): | ||
return self.env["ir.model.data"].search( | ||
[("model", "=", record._name), ("res_id", "=", record.id)] | ||
) | ||
|
||
@classmethod | ||
def setUpClass(cls): | ||
super().setUpClass() | ||
cls.env = cls.env( | ||
context=dict( | ||
cls.env.context, | ||
mail_create_nolog=True, | ||
mail_create_nosubscribe=True, | ||
mail_notrack=True, | ||
no_reset_password=True, | ||
tracking_disable=True, | ||
) | ||
) | ||
cls.account_template = cls._create_account_tmpl( | ||
"Test", "100000", "income", False | ||
) | ||
cls.chart_template = cls.env["account.chart.template"].create( | ||
{ | ||
"name": "Test account_chart_update chart", | ||
"currency_id": cls.env.ref("base.EUR").id, | ||
"code_digits": 6, | ||
"cash_account_code_prefix": "570", | ||
"bank_account_code_prefix": "572", | ||
"transfer_account_code_prefix": "100000", | ||
"property_account_receivable_id": cls.account_template.id, | ||
"property_account_payable_id": cls.account_template.id, | ||
"property_account_expense_categ_id": cls.account_template.id, | ||
"property_account_income_categ_id": cls.account_template.id, | ||
} | ||
) | ||
cls.account_template.chart_template_id = cls.chart_template.id | ||
cls.account_template_pl = cls._create_account_tmpl( | ||
"Undistributed Profits/Losses", | ||
"999999", | ||
"equity", | ||
cls.chart_template, | ||
) | ||
cls.tax_template = cls._create_tax_tmpl("Test tax", cls.chart_template) | ||
cls.fp_template = cls._create_fp_tmpl("Test fp", cls.chart_template) | ||
cls.fp_template_tax = cls.env["account.fiscal.position.tax.template"].create( | ||
{"tax_src_id": cls.tax_template.id, "position_id": cls.fp_template.id} | ||
) | ||
cls._create_xml_id(cls.fp_template_tax) | ||
cls.fp_template_account = cls.env[ | ||
"account.fiscal.position.account.template" | ||
].create( | ||
{ | ||
"account_src_id": cls.account_template.id, | ||
"account_dest_id": cls.account_template.id, | ||
"position_id": cls.fp_template.id, | ||
} | ||
) | ||
cls._create_xml_id(cls.fp_template_account) | ||
cls.tax_group = cls.env["account.tax.group"].create({"name": "Test tax group"}) | ||
cls.account_tag_1 = cls.env["account.account.tag"].create( | ||
{"name": "Test account tag 1"} | ||
) | ||
cls.account_tag_2 = cls.env["account.account.tag"].create( | ||
{"name": "Test account tag 2"} | ||
) | ||
cls.company = cls.env["res.company"].create( | ||
{ | ||
"name": "Test account_chart_update company", | ||
"currency_id": cls.chart_template.currency_id.id, | ||
"country_id": cls.env.ref("base.es").id, | ||
} | ||
) | ||
chart_by_company_user = cls.chart_template.with_company(cls.company) | ||
chart_by_company_user.try_loading() | ||
cls.tax = cls.env["account.tax"].search( | ||
[ | ||
("name", "=", cls.tax_template.name), | ||
("company_id", "=", cls.company.id), | ||
] | ||
) | ||
cls.account = cls.env["account.account"].search( | ||
[ | ||
("code", "=", cls.account_template.code), | ||
("company_id", "=", cls.company.id), | ||
] | ||
) | ||
cls.fp = cls.env["account.fiscal.position"].search( | ||
[("name", "=", cls.fp_template.name), ("company_id", "=", cls.company.id)] | ||
) | ||
# Prepare wizard values | ||
cls.wizard_obj = cls.env["wizard.update.charts.accounts"] | ||
cls.wizard_vals = { | ||
"company_id": cls.company.id, | ||
"chart_template_id": cls.chart_template.id, | ||
"code_digits": 6, | ||
"lang": "en_US", | ||
} |
Oops, something went wrong.