会计本地化¶
警告
本教程需要了解如何在 Odoo 中构建模块(请参阅 服务器框架101)。
安装流程¶
安装 account 模块时,会自动安装与公司国家/地区代码相对应的本地化模块。如果未设置国家/地区代码或未找到本地化模块,则默认安装 l10n_generic_coa <https://github.com/odoo/odoo/blob/19.0/addons/l10n_generic_coa>`_(美国)本地化模块。检查 `post init hook 了解详细信息。
例如,如果公司的国家/地区为“Switzerland”,则将安装 l10n_ch。
构建本地化模块¶
基本 l10n_XX 模块的结构可以用以下 __manifest__.py 文件描述:
{
"name": "COUNTRY - Accounting",
"version": "1.0.0",
"category": "Accounting/Localizations/Account Charts",
"license": "LGPL-3",
"depends": [
"account",
],
"data": [
"data/other_data.xml",
"views/xxxmodel_views.xml",
],
"demo": [
"demo/demo_company.xml",
]
}
你的工作树应该是这样的
l10n_xx
├── data
│ ├── template
│ │ ├── account.account-xx.csv
│ │ ├── account.group-xx.csv
│ │ └── account.tax.group-xx.csv
│ └── other_data.xml
├── views
│ └── xxxmodel_views.xml
├── demo
│ └── demo_company.xml
├── models
│ ├── template_xx.py
│ └── __init__.py
├── __init__.py
└── __manifest__.py
在第一个文件 models/template_xx.py 中,我们设置科目表的名称以及一些基本字段。
会计科目表¶
账户¶
其他资料
显然,如果没有 Accounts,Chart of Accounts 就不可能存在。您需要在 data/account.account.template.csv 中指定它们。
警告
避免使用
asset_cashaccount_type! Indeed, the bank & cash accounts are created directly at the installation of the localization module and then, are linked to anaccount.journal。对于一般情况,只有一个应付/应收帐类型的帐户就足够了。 然而,我们还需要定义一个 PoS 应收账款账户。 (在 CoA 中链接)
不要创建太多帐户:200-300 个就足够了。但最重要的是,我们试图找到一个良好的平衡点,让 CoA 以后对大多数公司的适应程度最低。
账户组¶
科目组允许描述科目表的层次结构。需要在报告中激活过滤器,然后当您展开日记帐分录时,它将显示帐户的父级。
它与前缀 start/end 一起使用,因此代码以 start 和 end 之间的内容开头的每个帐户都会将此 account.group 作为父组。 此外,帐户组还可以具有父帐户组以形成层次结构。
税收¶
其他资料
要添加税款,您首先需要指定财务状况和税组。通常,每种税率只需要一个税组(0% 除外),因为您需要经常区分免税、0%、非征税等税种。该模型只有两个必填字段:name 和 country。创建文件 data/template/account.tax.group-xx.csv 并列出组。
税收应该至少属于一个财政职位,但可以由许多人共享。如果您希望所有财务职位分担税款,请将该字段留空。
现在您可以通过 data/template/account.tax-xx.csv 文件添加税费。 您定义的第一个税费(采购/销售税)也将成为您产品的默认采购/销售税。
税收也可以替代另一种税收。当使用目标财政状况时,适用这种替换。
税务报告¶
税务报告在 Invoicing (account) 应用中申报,但只有在安装 Accounting (account_accountant) 后才能访问该报告。
其他资料
在上一节中,您注意到字段 invoice_repartition_line_ids 或 refund_repartition_line_ids 并且可能对它们一无所知。好消息:您并不是唯一一个有这种不理解的人。坏消息:你必须弄清楚一点。话题很复杂。的确:
accounting_localization/tax_report.dot > Graph not rendered because `dot` is not installed
简单的版本是,在税务模板中,您在发票/退款重新分区行中指示是否需要在哪个报告行中报告税基或百分比(通过 minus/plus_report_line_ids 字段)。当您检查 Odoo 界面中的税务配置(或检查文档 Tax References、Tax Repartition References)时,这一点也会变得清晰。
因此,一旦您正确配置了税收,您只需添加 data/account_tax_report_data.xml 文件以及 account.report 的记录。为了将其视为税务报告,您需要为其提供正确的 root_report_id。
<odoo>
<record id="tax_report" model="account.report">
<field name="name">Tax Report</field>
<field name="root_report_id" ref="account.generic_tax_report"/>
<field name="country_id" ref="base.XX"/>
</record>
...
</odoo>
…后面是其行的声明,作为 account.report.line 记录。
财政状况¶
在 data/template/account.fiscal.position-xx.csv 文件中指定财务状况。第一个与公司所在国家/地区相匹配的财务状况被视为国内财务状况。
最后步骤¶
最后,您可以添加一个演示公司,这样就可以在演示模式下轻松测试本地化。
会计报告¶
其他资料
会计报告应通过单独的模块 l10n_XX_reports 添加,该模块应转到 enterprise repository。
该模块的基本 __manifest__.py 文件如下所示:
{
"name": "COUNTRY - Accounting Reports",
"category": "Accounting/Localizations/Reporting",
"version": "1.0.0",
"author": "Odoo S.A.",
"license": "OEEL-1",
"depends": [
"l10n_XX", "account_reports"
],
"data": [
"data/balance_sheet.xml",
"data/profit_and_loss.xml",
],
"auto_install": True,
}
财务报告的功能概述位于:报表。
一些很好的例子:
您可以在此处检查字段的含义:
如果您为报告指定了 root_report_id,则现在可以在其变体选择器中找到它。如果没有,您仍然需要为其添加一个菜单项。通过单击 可以从报告的表单视图创建默认菜单项。然后您需要刷新页面才能看到它。或者,要在 Reporting 菜单中为全新报告创建专用部分,您需要创建一个新的 ir.ui.menu 记录(通常在主 l10n_XX 模块中)和一个新的 ir.actions.client (通常在新报告 XML 文件中),该记录使用新的 报告 ID 调用 account.report。然后,将新菜单设置为操作模型中的 parent_id 字段。