diff --git a/app_base_chinese/__manifest__.py b/app_base_chinese/__manifest__.py
index 32e9113f..749ea471 100644
--- a/app_base_chinese/__manifest__.py
+++ b/app_base_chinese/__manifest__.py
@@ -50,7 +50,7 @@
15. 销售团队改为中国
16. 精简语言的显示,如 Chinese简体中文改为 中文
21. 多语言支持,多公司支持
- 22. Odoo 17,16,15,14,13,12, 企业版,社区版,在线SaaS.sh版,等全版本支持
+ 22. Odoo 18,17,16,15,14,13,12, 企业版,社区版,在线SaaS.sh版,等全版本支持
23. 代码完全开源
======
1. Chinese address format, applicable to all Chinese customers, suppliers, partners, users, employee information etc.
@@ -69,7 +69,7 @@
14.Common decimal precision adjustments made.
15.Sales team changed to [China].
21. Multi-language Support. Multi-Company Support.
- 22. Support Odoo 17,16,15,14,13,12, Enterprise and Community and odoo.sh Edition.
+ 22. Support Odoo 18,17,16,15,14,13,12, Enterprise and Community and odoo.sh Edition.
23. Full Open Source.
''',
'pre_init_hook': 'pre_init_hook',
diff --git a/app_base_chinese/static/description/index.html b/app_base_chinese/static/description/index.html
index ad19ff98..ee00a822 100644
--- a/app_base_chinese/static/description/index.html
+++ b/app_base_chinese/static/description/index.html
@@ -75,7 +75,7 @@
- 22. Support Odoo 17,16,15,14,13,12, Enterprise and Community and odoo.sh Edition.
+ 22. Support Odoo 18,17,16,15,14,13,12, Enterprise and Community and odoo.sh Edition.
diff --git a/app_odoo_customize/static/description/index_cn.html b/app_odoo_customize/static/description/index_cn.html
index 972ea6ac..c253e9ff 100644
--- a/app_odoo_customize/static/description/index_cn.html
+++ b/app_odoo_customize/static/description/index_cn.html
@@ -115,7 +115,7 @@
Addons
- 支持odoo 17,16,15,14,13,12, 11, 10, 9 版本,社区版企业版通用
+ 支持Odoo 18,17,16,15,14,13,12, 11, 10, 9 版本,社区版企业版通用
- 1. 删除菜单导航页脚的 Odoo 标签
- 2. 将弹出窗口中 "Odoo" 设置为自定义名称
@@ -380,7 +380,7 @@
This moduld allows user to quickly customize and debranding Odoo. Quick debug, Language Switcher,
Online Documentation Access,Quick Data Clear.
-
Support Odoo 17,16,15,14,13, 12, 11, 10, 9. Including community and enterprise version.
+
Support Odoo 18,17,16,15,14,13, 12, 11, 10, 9. Including community and enterprise version.
diff --git a/l10n_cn_standard_latest/__manifest__.py b/l10n_cn_standard_latest/__manifest__.py
index aee94474..2d53d31b 100644
--- a/l10n_cn_standard_latest/__manifest__.py
+++ b/l10n_cn_standard_latest/__manifest__.py
@@ -23,26 +23,24 @@
""",
'description': """
最新中国化财务,主要针对标准会计科目表作了优化。
- 1. 2025最新会计科目表,处理营改增后会计科目调整。更新至最新税率。odoo 18专用。
- 2. 将菜单中设置为"财务"。
- 3. 补充分类及标签信息。
- 4. 更新税信息。
- 5. 增加树状结构,支持二级科目,可设置上级科目,配合 "app_web_superbar" 使用可轻易实现树状导航。
- 6. 使用金蝶的会计科目命名法对多级科目进行初始化。可自行调整为用友科目命名法
- 7. 增加中文数字和阿拉伯数字的转换(需安装cn2an库,pip3 install cn2an)
- 8. 注意,必须在没有业务数据,没有会计科目的初始环境。可以使用 "app_odoo_customize" 模块清除财务数据,重置会计科目。
+ 1. 2025最新会计科目表,处理营改增后会计科目调整。odoo 18专用。
+ 2. 超级管理员自动开启全部会计功能,可管理会计科目表等。
+ 3. 增强对生产企业会计科目的支持,增加数据资产入表支持。
+ 4. 将菜单中设置为"财务"。
+ 5. 补充分类及标签信息。
+ 6. 更多的税项处理,处理营改增,更新至最新税率。
+ 7. 会计科目表增加上下级支持,增加树状结构,支持多级科目,配合 "app_web_superbar" 使用可轻易实现树状导航。
+ 8. 使用金蝶的会计科目命名法对多级科目进行初始化。可自行调整为用友科目命名法
+ 9. 增加中文数字和阿拉伯数字的转换(可安装cn2an库,pip3 install cn2an)
+ 10. 注意,建议在没有业务数据,没有会计科目的初始环境。可以使用 "app_odoo_customize" 模块清除财务数据,重置会计科目。
- 如果是多语种环境需要自行更改翻译,主要体现在1%,3%,6%,13%增值税处理。
中国财务,中国会计,中国城市
欧度智能,odooai.cn
The Latest Chinese Account
Including the following data in the Accounting Standards for Business Enterprises
包含企业会计准则以下数据
-
* Chart of Accounts
- * 科目表模板
- * Account templates
- * 科目模板
+ * 中国会计科目表模板
* Tax templates
* 税金模板
""",
@@ -52,6 +50,7 @@
],
'images': ['static/description/banner.png'],
'data': [
+ 'security/res_groups.xml',
'views/account_account_views.xml',
'views/account_views.xml',
'data/account_account_tag_data.xml',
diff --git a/l10n_cn_standard_latest/data/template/account.account-cn_standard.csv b/l10n_cn_standard_latest/data/template/account.account-cn_standard.csv
index 99c343c6..7669a073 100644
--- a/l10n_cn_standard_latest/data/template/account.account-cn_standard.csv
+++ b/l10n_cn_standard_latest/data/template/account.account-cn_standard.csv
@@ -38,7 +38,11 @@
"account_1403","1403","原材料","","False","asset_current",""
"account_1404","1404","材料成本差异","","False","asset_current",""
"account_1405","1405","库存商品","","False","asset_current",""
-"account_1405_01","1405.01","其中:数据资源","account_1405","False","asset_current",""
+"account_1405_01","1405.01","库存商品-产成品","account_1405","False","asset_current",""
+"account_1405_02","1405.02","库存商品-自制产成品","account_1405","False","asset_current",""
+"account_1405_03","1405.03","库存商品-外购商品","account_1405","False","asset_current",""
+"account_1405_04","1405.04","库存商品-委外加工商品","account_1405","False","asset_current",""
+"account_1405_05","1405.05","库存商品-数据资源","account_1405","False","asset_current",""
"account_1406","1406","发出商品","","False","asset_current",""
"account_1407","1407","商品进销差价","","False","asset_current",""
"account_1408","1408","委托加工物资","","False","asset_current",""
@@ -72,7 +76,14 @@
"account_1631","1631","油气资产","","False","asset_current","l10n_cn_standard_latest.tag28"
"account_1632","1632","累计折耗","","False","asset_current","l10n_cn_standard_latest.tag28"
"account_1701","1701","无形资产","","False","asset_current",""
-"account_1701_01","1701.01","其中:数据资源","account_1701","False","asset_current",""
+"account_1701_01","1701.01","无形资产-土地使用权","account_1701","False","asset_current",""
+"account_1701_02","1701.02","无形资产-软件","account_1701","False","asset_current",""
+"account_1701_03","1701.03","无形资产-专利权","account_1701","False","asset_current",""
+"account_1701_04","1701.04","无形资产-非专利技术","account_1701","False","asset_current",""
+"account_1701_05","1701.05","无形资产-商标权","account_1701","False","asset_current",""
+"account_1701_06","1701.06","无形资产-著作权","account_1701","False","asset_current",""
+"account_1701_07","1701.07","无形资产-数据资源","account_1701","False","asset_current",""
+"account_1701_09","1701.09","无形资产-其它","account_1701","False","asset_current",""
"account_1702","1702","累计摊销","","False","asset_current",""
"account_1703","1703","无形资产减值准备","","False","asset_current",""
"account_1711","1711","商誉","","False","asset_current",""
@@ -156,7 +167,9 @@
"account_5101","5101","制造费用","","False","asset_current",""
"account_5201","5201","劳务成本","","False","asset_current",""
"account_5301","5301","研发支出","","False","asset_current",""
-"account_5301_01","5301.01","其中:数据资源","account_5301","False","asset_current",""
+"account_5301_01","5301.01","研发支出-费用化支出","account_5301","False","asset_current",""
+"account_5301_02","5301.02","研发支出-资本化支出","account_5301","False","asset_current",""
+"account_5301_03","5301.03","研发支出-数据资源","account_5301","False","asset_current",""
"account_5401","5401","工程施工","","False","asset_current","l10n_cn_standard_latest.tag30"
"account_5402","5402","工程结算","","False","asset_current","l10n_cn_standard_latest.tag30"
"account_5403","5403","机械作业","","False","asset_current","l10n_cn_standard_latest.tag30"
diff --git a/l10n_cn_standard_latest/models/account_account.py b/l10n_cn_standard_latest/models/account_account.py
index 4912f16a..75502e1d 100644
--- a/l10n_cn_standard_latest/models/account_account.py
+++ b/l10n_cn_standard_latest/models/account_account.py
@@ -28,16 +28,29 @@ class AccountAccount(models.Model):
parent_id = fields.Many2one('account.account', 'Parent Chart', index=True, ondelete='cascade')
child_ids = fields.One2many('account.account', 'parent_id', 'Child Chart')
parent_path = fields.Char(index=True)
+ # todo: view 类型只用于上级,不可在凭证中选择使用。 odoo 中使用 _compute_account_type 处理是找不到自动设置为 其上级科目
+ # 故暂时不增加此类型
+ # account_type = fields.fields.Selection(selection_add=[
+ # ('view', 'View Only'),
+ # ])
@api.model
- def _search_new_account_code(self, company, digits, prefix, cache=None):
+ def _search_new_account_code(self, start_code, cache=None):
# 分隔符,金蝶为 ".",用友为"",注意odoo中一级科目,现金默认定义是4位头,银行是6位头
- delimiter = '.'
- for num in range(1, 100):
- new_code = str(prefix.ljust(digits - 1, '0')) + delimiter + '%02d' % (num)
- if new_code in (cache or []):
- continue
- rec = self.search([('code', '=', new_code), ('company_id', 'child_of', company.root_id.id)], limit=1)
- if not rec:
- return new_code
- raise UserError(_('Cannot generate an unused account code.'))
+ # 在 odoo18已优化可处理
+ """
+ Examples:
+ | start_code | codes checked for availability |
+ +--------------+------------------------------------------------------------+
+ | 102100 | 102101, 102102, 102103, 102104, ... |
+ | 1598 | 1599, 1600, 1601, 1602, ... |
+ | 10.01.08 | 10.01.09, 10.01.10, 10.01.11, 10.01.12, ... |
+ | 10.01.97 | 10.01.98, 10.01.99, 10.01.97.copy2, 10.01.97.copy3, ... |
+ | 1021A | 1021A, 1022A, 1023A, 1024A, ... |
+ | hello | hello.copy, hello.copy2, hello.copy3, hello.copy4, ... |
+ | 9998 | 9999, 9998.copy, 9998.copy2, 9998.copy3, ... |
+ """
+ # delimiter = '.'
+ # start_code = start_code + delimiter + '01'
+ res = super()._search_new_account_code(start_code, cache)
+ return res
diff --git a/l10n_cn_standard_latest/models/account_journal.py b/l10n_cn_standard_latest/models/account_journal.py
index 0526f5ee..3be707f9 100644
--- a/l10n_cn_standard_latest/models/account_journal.py
+++ b/l10n_cn_standard_latest/models/account_journal.py
@@ -8,26 +8,11 @@ class AccountJournal(models.Model):
_inherit = "account.journal"
@api.model
- def _prepare_liquidity_account(self, name, company, currency_id, type):
- digits = 6
- chart = self.company_id.chart_template_id
- if chart:
- digits = int(chart.code_digits)
- # Seek the next available number for the account code
- if type == 'bank':
- account_code_prefix = company.bank_account_code_prefix or ''
- else:
- account_code_prefix = company.cash_account_code_prefix or company.bank_account_code_prefix or ''
- digits = len(account_code_prefix)
- # 获取上级
- p_account = self.env['account.account'].search([('code', '=', account_code_prefix), ('company_id', '=', company.id)], limit=1)
-
- return {
- 'name': name,
- 'currency_id': currency_id or False,
- 'code': self.env['account.account']._search_new_account_code(company, digits, account_code_prefix),
- 'account_type': 'asset_cash',
- 'parent_id': p_account and p_account.id or False,
- 'group_id': p_account and p_account.group_id and p_account.group_id.id or False,
- 'company_id': company.id,
- }
+ def _prepare_liquidity_account_vals(self, company, code, vals):
+ res = super()._prepare_liquidity_account_vals(company, code, vals)
+ # 分隔符,金蝶为 ".",用友为"",注意odoo中一级科目,现金默认定义是4位头,银行是6位头
+ delimiter = '.'
+ code = code + delimiter + '01'
+ new_code = self.env['account.account']._search_new_account_code(code),
+ res.update({'code': new_code})
+ return res
diff --git a/l10n_cn_standard_latest/models/template_cn_standard.py b/l10n_cn_standard_latest/models/template_cn_standard.py
index 7bb2e8b3..ae4373f0 100644
--- a/l10n_cn_standard_latest/models/template_cn_standard.py
+++ b/l10n_cn_standard_latest/models/template_cn_standard.py
@@ -36,7 +36,7 @@ class AccountChartTemplate(models.AbstractModel):
self.env.company.id: {
'account_fiscal_country_id': 'base.cn',
'cash_account_code_prefix': '1001',
- 'bank_account_code_prefix': '1002',
+ 'bank_account_code_prefix': '1002.01',
'transfer_account_code_prefix': '1003',
'account_default_pos_receivable_account_id': 'account_1124',
'account_sale_tax_id': 'l10n_cn_standard_sale_included_13',
diff --git a/l10n_cn_standard_latest/security/res_groups.xml b/l10n_cn_standard_latest/security/res_groups.xml
new file mode 100644
index 00000000..065de67e
--- /dev/null
+++ b/l10n_cn_standard_latest/security/res_groups.xml
@@ -0,0 +1,9 @@
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/l10n_cn_standard_latest/static/description/banner.png b/l10n_cn_standard_latest/static/description/banner.png
index a69a762b..460a8763 100644
Binary files a/l10n_cn_standard_latest/static/description/banner.png and b/l10n_cn_standard_latest/static/description/banner.png differ
diff --git a/l10n_cn_standard_latest/static/description/banner1.png b/l10n_cn_standard_latest/static/description/banner1.png
new file mode 100644
index 00000000..51c74aff
Binary files /dev/null and b/l10n_cn_standard_latest/static/description/banner1.png differ
diff --git a/l10n_cn_standard_latest/static/description/cnreadme.png b/l10n_cn_standard_latest/static/description/cnreadme.png
index ed2b6e7c..40b5942e 100644
Binary files a/l10n_cn_standard_latest/static/description/cnreadme.png and b/l10n_cn_standard_latest/static/description/cnreadme.png differ
diff --git a/l10n_cn_standard_latest/static/description/index.html b/l10n_cn_standard_latest/static/description/index.html
index 5023d628..f9c930dd 100644
--- a/l10n_cn_standard_latest/static/description/index.html
+++ b/l10n_cn_standard_latest/static/description/index.html
@@ -1,10 +1,23 @@
+
+
+
+
+
+
+ Latest Chinese Account chart 2025. For Odoo 18
+ 2025最新中国会计科目表.企业标准会计
+
+
-
App Latest Chinese Account chart 2024.
-
Set all chinese default value. Like Default country, timezone, currency, partner...
-
Lastest update: v17.24.11.04
+
Lastest update: v18.24.11.04
@@ -14,7 +27,7 @@
-
- The Latest Account Chart for Odoo17.
+ The Latest Account Chart for Odoo18.