巴西根级税务模块
项目描述
税务分类
首先,此模块引入了各种税务产品、合作伙伴或企业的登记。在发出诸如NF-e、NFS-e等税务文件时,即使是简化制度或MEI的企业也需要这些登记。而正常制度的企业需要这些登记来计算税费或发出税务文件。
- 产品
税务类型
NCM(与税费有关联)
税务类别
CEST
NBM
NBS
服务类型
税务单位
- 合作伙伴
CNAE
税务概要
税务文件概念
Odoo原生没有税务文件概念。最相似的概念可能是account.move,甚至在10.0版本之前,位置扩展了发票以仅支持NF-e和NFS-e。在那个时代,您考虑在Odoo中做SPED是不合理的,因为Odoo的核心尚未成熟,因此当时仅支持Odoo发票中的NFe案例是合理的。
然而,在v12中,我们使XML/SOAP框架成熟,使其可以支持多种税务文件(NF-e、NFS-e、MDF-e、CT-e、EFD-Reinf、e-Social、GNRE、BP-e...)在Odoo中达到OCA质量。此外,尽管复杂,但Odoo核心最终对SPED企业操作提供了足够的支持。
在Odoo的发票之外,拥有独立的概念“税务文档l10n_br_fiscal.document”变得很有趣,以支持所有税务文档,即使是以模块化的方式。在“account”模块之外拥有税务文档概念的另一个原因是,当您分析此模块l10n_br_fiscal的代码时,其中大部分几乎无法通过Odoo的“account”模块来完成。因此,拥有不依赖于“account”模块的“l10n_br_fiscal”模块,也是模块化本地化以简化维护的一种方式,特别是在涉及迁移时,模块可能发生了很大的变化,例如在v8.0到v9.0或v12.0到v13.0之间。这还简化了项目治理,允许人们负责不同的部分。模块“l10n_br_fiscal”主要是从v7.0到v10.0的“l10n_br_l10n_br_account_product”模块提取出来的。
该模块l10n_br_fiscal对任何XML或SOAP技术都是无关的。它只包含税务文档中的共性,但后者是在其他模块中实现的。对于特定的税务文档,例如Nf-e,例如
nfelib:一个纯Python数据绑定包(不依赖于Odoo)。通常我们使用代码生成器,从税务署的XSD模式生成这些绑定。
l10n_br_nfe_spec:一个Odoo混合模块,也来自XSD。这些混合模块只是规格的结构数据,在注入到现有的Odoo对象之前(如res.partner或l10n_br_fiscal.document),或者如果不存在Odoo或OCA中的对象,则将其具体化。
l10n_br_nfe:一个处理将这些税务映射注入到Odoo对象并实现逻辑的Odoo模块,如用于传输向导。
传输是通过传输库,如erpbrasil.doc(基于Python Zeep)来实现的。重要提示:在NFS-e的情况下,由于目前缺乏国家标准和模型(与NFe相比)的简单性,因此决定不使用Odoo管理的混合税务模块,映射是通过绑定库手动完成的,按NFS-e的系列分系列。
此外,“l10n_br_fiscal.document”和其行l10n_br_fiscal.document.line的大多数代码实际上是在10n_br_fiscal.document.mixin和10n_br_fiscal.document.line.mixin混合中实现的。因此,这些混合可以注入到其他Odoo对象中,这些对象在税务文档之前,并可以存储相同类型的信息:sale.order、purchase.order、stock.picking等等。这在扩展此模块的模块中非常明显。
|-- l10n_br_fiscal
|-- l10n_br_sale
|-- l10n_br_purchase
|-- l10n_br_account
|-- ...
然而,在l10n_br_account模块中的Odoo发票的情况则不同。因为已经有了独立于税务文档的表,其中大多数税务字段(在许多税务文档类型的情况下)与Odoo发票的字段不重复。如果我们把这些混合模块注入到发票中,那么这些数百个字段将在发票和税务文档之间重复。因此,在l10n_br_account模块中采用的系统是,Odoo发票现在有了_inherits = "l10n_br_fiscal.document",这样就可以通过发票来驾驶税务文档,提供与之前相同类型的集成。类似机制也发生在税务文档行上。
因此,通过 _inherits,Odoo 的发票及其行会自动拉取所有税务字段,就像它们来自各自的表一样,而不会在数据库中重复它们。如果再注入 10n_br_fiscal.document.mixin 和 10n_br_fiscal.document.line.mixin 混合到发票和发票行中,这些税务字段也将出现在 account_move 和 account_move_line 表中,与通过 _inherits 拉取的字段重复。为了避免这个问题,将带有字段的基本税务方法从混合中提取出来:在模块 l10n_br_account 中分别注入到对象 account_move 和 account_move_line 中的 10n_br_fiscal.document.mixin.methods 和 10n_br_fiscal.document.line.mixin.methods。
巴西税务
l10n_br_fiscal 模块处理主要的巴西税务,例如
简单国家 ICMS
常规 ICMS
IPI
PIS
COFINS
ISSQN
IRPJ
II
CSLL
INSS
l10n_br_fiscal 模块还处理
ST
扣款
显然,巴西的税务计算非常特别和复杂。这通常是国际 ERP 在巴西市场占有率不高的原因。
直到 10.0 版本,我们尝试使用和扩展 Odoo 的 account.tax 对象。Akretion 甚至创建了项目 OCA/account-fiscal-rule,以根据税务操作的参数确定每个税务的税率。然而,我们几乎没有在税务部分使用 account.fiscal.position 的原生功能,相反,这迫使我们为每个税率创建一个 account.tax 记录,并迫使我们必须维护数百个税率和数十万个规则来选择 Odoo 应应用的“税务位置”。您还必须管理这些数十万个规则,以便针对特定企业的常规制度。结论:在较小的项目中尝试将逻辑与 Odoo 的税务计算逻辑相结合是不切实际的。
因此,在这个模块中,我们创建了代表巴西税务实际操作的税率模型。除了计算外,这些模型还帮助我们加载税务表。此外,在模块 l10n_br_account 中,我们将原生对象 account.tax 连接到巴西税务的税率。
当然,这些税务模型适用于常规制度的企业,但值得记住,即使是简化制度的企业也需要这些模型来执行 ST(税务替代)操作...
税务操作
在 Odoo 原生中,与税务操作最相似的概念是 account.fiscal.position。直到 10.0 版本,我们一直在使用它。然而,Odoo 的税务位置并不能很好地解决我们的问题,因为
在巴西,每个税务文件行都有一个税务操作
Odoo 的税务位置不了解巴西税务参数的配置逻辑
由于我们在 l10n_br_fiscal 模块中将税务登记从 account 模块(不依赖于它)之外提取出来,因此在这个模块中还没有 account.fiscal.position 对象。
因此,我们选择创建一个 l10n_br_fiscal.operation 对象,该对象正好满足我们对巴西的需求。随后,在模块 l10n_br_account 中,我们实现了 Odoo 税务位置与该税务操作之间的集成。
目录
安装
要安装 l10n_br_fiscal 模块,您需要先安装以下 Python 软件包
erpbrasil.base
erpbrasil.assinatura
配置
为了良好的税务配置,您必须仔细审查
在设置中:您将使用的税务操作、操作税务行以及这些行上的税率定义。
您公司的税务配置(税务选项卡)
客户和供应商的税务配置(税务选项卡)以及产品的税务配置(税务选项卡)。
使用
您可以直接通过税务菜单创建税务文件,但最初您将使用Odoo发票、l10n_br_account、l10n_br_sale、l10n_br_purchase等附加模块来试点税务文件的创建。
错误追踪
错误在GitHub Issues上跟踪。如果在出现问题时,请检查是否已报告您的问题。如果您是第一个发现它的人,请通过提供详细和受欢迎的反馈来帮助我们解决这个问题。
请不要直接联系贡献者以获取支持或技术问题的帮助。
致谢
贡献者
-
Renato Lima <renato.lima@akretion.com.br>
Raphaël Valyi <raphael.valyi@akretion.com.br>
Magno Costa <magno.costa@akretion.com.br>
KMEE:
Luis Felipe Mileo <mileo@kmee.com.br>
Luis Otavio Malta Conceição <luis.malta@kmee.com.br>
-
Marcel Savegnago <marcel.savegnago@escodoo.com.br>
-
Antônio S. Pereira Neto <neto@engenere.one>
Felipe Motter Pereira <felipe@engenere.one>
维护者
此模块由OCA维护。
OCA,即Odoo社区协会,是一个非营利组织,其使命是支持Odoo功能的协作开发并促进其广泛使用。
当前维护者
此模块是GitHub上的OCA/l10n-brazil项目的一部分。
欢迎您贡献力量。要了解如何操作,请访问https://odoo-community.org/page/Contribute。
项目详细信息
散列值 for odoo14_addon_l10n_br_fiscal-14.0.23.5.0-py3-none-any.whl
算法 | 散列摘要 | |
---|---|---|
SHA256 | f533b685c0b60853302ce741cdee9c4d56a4b0a9e0cdb7cb44977ea71a103b6f |
|
MD5 | a7966ca63325352eece61242cd7b8666 |
|
BLAKE2b-256 | 0754b62992238d229782e9c73ff7d9d70f333d7889eb30f34e9795509a6f3882 |