Skip to content

税务的一些知识点

  • ✅ 一般纳税人
  • ✅ 小规模纳税人

我会按 “能直接配置”的结构来给你(Tax + 科目 + 逻辑)。


一、整体设计思路(先理解这一点)

在 Odoo 中我们这样建模:

👉 增值税 → 负债科目(不进利润) 👉 附加税 → 费用科目(进利润表:税金及附加)


二、会计科目(Chart of Accounts)

建议先建这些科目(关键)

1️⃣ 负债类(应交税费)

text
222101 应交税费-应交增值税(销项税额)
222102 应交税费-应交增值税(进项税额)
222103 应交税费-未交增值税

2️⃣ 费用类(税金及附加)

text
640301 税金及附加-城市维护建设税
640302 税金及附加-教育费附加
640303 税金及附加-地方教育附加
640304 税金及附加-印花税

👉 也可以合并为一个:

text
640300 税金及附加

三、一般纳税人配置(重点)


1️⃣ 增值税(VAT)

✔ 销项税(销售)

text
Name: VAT 13% (Sales)
Tax Type: Percentage
Amount: 13%
Scope: Sales

会计映射:

  • Tax Received Account → 222101(销项税额)

✔ 进项税(采购)

text
Name: VAT 13% (Purchase)
Amount: 13%
Scope: Purchases

会计映射:

  • Tax Paid Account → 222102(进项税额)

2️⃣ 附加税(核心)

👉 这些是“营业税替代物” = 税金及附加


✔ 城建税

text
Name: Urban Maintenance Tax 7%
Tax Type: Percentage of Tax
Amount: 7%
Base Tax: VAT
Scope: Sales

会计:

  • Expense Account → 640301

✔ 教育费附加

text
Name: Education Surcharge 3%
Amount: 3%
Base: VAT

会计:

  • Expense → 640302

✔ 地方教育附加

text
Name: Local Education Surcharge 2%
Amount: 2%
Base: VAT

会计:

  • Expense → 640303

🔥 关键设置(必须)

在 Odoo Tax 中:

  • ✅ 勾选:Affect base of subsequent taxes
  • 或使用:Tax Computation = Based on other taxes

👉 让附加税 = 基于增值税计算


3️⃣ 组合税(推荐做法)

创建一个 Group Tax:

text
Name: CN VAT 13% + Surcharges
Includes:
 - VAT 13%
 - Urban Tax 7%
 - Education 3%
 - Local Education 2%

👉 销售时直接选一个税就行


四、小规模纳税人配置


1️⃣ 增值税(简化版)

text
Name: VAT 3% (Small-scale)
Amount: 3%
Scope: Sales

👉 特点:

  • 不分进项/销项
  • 直接计入应交税费

2️⃣ 附加税(同样适用)

还是:

  • 城建税:7%
  • 教育附加:3%
  • 地方附加:2%

👉 但注意:

👉 基数变了 = 3% VAT


3️⃣ 示例

销售 1000:

  • VAT:30
  • 城建税:2.1
  • 教育附加:0.9
  • 地方附加:0.6

五、Odoo中利润表表现


一般纳税人:

项目是否进利润
收入
VAT
附加税

小规模:

👉 技术上 VAT 也走负债 但很多企业会:

👉 把 VAT 视为成本(简化核算)

👉 可以配置两种方式:

✔ 严格模式(推荐)

  • VAT → 负债
  • 附加税 → 费用

✔ 简化模式

  • VAT → 直接进费用科目

六、一个完整配置结构(你可以照抄)

text
TAX GROUP: CN SALES TAX (GENERAL)

- VAT 13%
  → 222101

- Urban Maintenance 7% (on VAT)
  → 640301

- Education 3% (on VAT)
  → 640302

- Local Education 2% (on VAT)
  → 640303

七、常见坑(非常重要)


❗坑1:附加税没绑定VAT

👉 会变成按收入算(错误)


❗坑2:VAT进了费用

👉 利润直接错


❗坑3:没有做 Tax Group

👉 用户操作复杂、容易选错


❗坑4:中国本地化缺失

建议:

  • 使用 Odoo China Localization(l10n_cn)
  • 或自建税表 + 报表

好,这一块我给你直接做成 Odoo 17 可落地的“财务实操方案”,不是概念,是你可以照着配置/做自动化的。

分三部分:


一、自动结转“未交增值税”(核心难点)

📌 中国逻辑先说清

月末要做这一步:

text
借:应交税费-应交增值税(销项税额)
贷:应交税费-应交增值税(进项税额)
贷/借:应交税费-未交增值税

👉 本质:

👉 销项 - 进项 = 应交(或留抵)


✅ 在 Odoo 17 的实现方式(推荐)

Odoo 没有“中国自动结转”,要自己做:


方法一(推荐):自动 Journal Entry(调度任务)

1️⃣ 建一个专用日记账

text
Name: VAT Settlement
Type: Miscellaneous

2️⃣ 核心逻辑(你可以让开发或用Studio实现)

每月执行:

Step 1:取余额

  • 222101(销项税额)
  • 222102(进项税额)

Step 2:计算

text
VAT Payable = Output VAT - Input VAT

Step 3:生成分录

✔ 情况1:应交税

text
Dr 222101(销项税额)
Cr 222102(进项税额)
Cr 222103(未交增值税)

✔ 情况2:留抵税额

text
Dr 222101
Cr 222102
Dr 222103(留抵)

🧠 Odoo实现方式(技术)

你可以用:

✔ 方式A:Server Action(无代码)

逻辑:

  • Python Code(Odoo Studio):
python
output = sum(env['account.move.line'].search([
    ('account_id.code', '=', '222101'),
    ('date', '<=', context.get('date_end'))
]).mapped('balance'))

input_vat = sum(env['account.move.line'].search([
    ('account_id.code', '=', '222102'),
    ('date', '<=', context.get('date_end'))
]).mapped('balance'))

vat_payable = output - input_vat

然后生成 move


✔ 方式B:定时任务(推荐)

  • 每月1号自动跑
  • 或关账前手动触发

❗关键点

  • 必须按期间过滤(本月)
  • 不要用累计数(否则错)

二、Odoo 月末结账流程(中国版)

我给你一个标准闭账流程(适用于Odoo 17)


🧾 Step 1:发票完整性检查

  • 所有销售已开票
  • 所有采购已入账
  • 发票状态 = Posted

🧾 Step 2:税检查

  • VAT 报表核对
  • 附加税是否生成

🧾 Step 3:计提附加税(如果没自动)

👉 有些公司月底才计提:

text
借:税金及附加
贷:应交税费

(如果你已经用 Tax 自动算,这一步可以跳)


🧾 Step 4:增值税结转(重点)

👉 执行你上面的自动脚本


🧾 Step 5:成本结转(库存类企业)

  • Odoo自动(AVCO/FIFO)

🧾 Step 6:折旧/摊销

  • 固定资产模块(或手动)

🧾 Step 7:损益结转

text
借:收入类
贷:本年利润

借:本年利润
贷:费用类

👉 Odoo中:

  • Closing Entry(期末结转)

🧾 Step 8:锁账(重要)

Odoo路径:

Accounting → Settings → Lock Dates

设置:

  • Lock Date(普通用户)
  • Tax Lock Date(税务锁定)

三、金税系统对接逻辑(发票)

这个是很多人最关心的,我给你讲真实企业做法


📌 核心原则

👉 Odoo ≠ 金税系统 👉 必须对接(或人工同步)


方案一(最常见):中间层对接

架构:

text
Odoo → API → 中间服务 → 金税系统

1️⃣ 销项发票流程

Odoo:

  • 创建 Invoice(客户发票)
  • 状态 = Posted

触发:

👉 调用 API:

json
{
  "buyer": "...",
  "amount": 1000,
  "tax": 130,
  "items": [...]
}

金税系统:

  • 开票
  • 返回:
json
{
  "invoice_code": "xxx",
  "invoice_number": "xxx",
  "pdf_url": "..."
}

回写 Odoo:

字段:

text
invoice_number
invoice_code
pdf附件

2️⃣ 进项发票(采购)

👉 两种方式:


✔ 手动录入(常见)

  • 会计拿发票
  • 在 Odoo 建 Vendor Bill

✔ OCR / 电子发票导入(高级)

  • 读取 PDF / XML
  • 自动生成 Bill

四、Odoo中要加的字段(很关键)

建议你在 invoice 上加:

text
金税发票号
发票代码
开票日期
发票PDF
是否已开票(boolean)

五、税控系统对接方式(现实选择)

常见厂商:

  • 百望云
  • 航信(税控盘)
  • 电子发票平台(全电发票)

接入方式:

方式说明
API最推荐
RPA模拟开票(低端)
插件第三方

六、你可以直接用的整体架构

text
Odoo 17

Tax Engine(VAT + 附加税)

Auto VAT Settlement(自动结转)

P&L(税金及附加)

API Integration

金税系统(开票)

下面给你一份可直接保存的 “中国会计常见税种计算表”。我按企业实务里最常见的口径整理,默认是现行通用规则;其中房产税、城镇土地使用税还要结合地方具体标准。相关税率和计税依据均来自现行税法/条例及财政税务公告。(国家税务总局政策法规库)

中国会计常见税种计算表

税种计税依据基本公式常用税率/标准会计常见科目归类备注
城市维护建设税依法实际缴纳的增值税、消费税税额应纳税额 = 计税依据 × 税率市区 7%;县城、镇 5%;其他地区 1%税金及附加不是按收入或发票金额直接算;进口货物及部分跨境情形不征。(国家税务总局政策法规库)
教育费附加实际缴纳的增值税、消费税税额应纳费额 = 计征依据 × 3%3%税金及附加与增值税、消费税同时缴纳。(政府网站)
地方教育附加实际缴纳的增值税、消费税税额应纳费额 = 计征依据 × 2%2%税金及附加全国统一征收标准为 2%。(国家税务总局政策法规库)
印花税按应税凭证类型确定:合同金额、产权转移金额、营业账簿金额、证券成交金额等应纳税额 = 计税依据 × 适用税率按税目分别适用税率税金及附加合同/产权转移书据一般按不含单独列明增值税的金额计税;证券交易只对出让方征。(广东省税务局)
房产税1)房产余值;2)租金收入从价:房产原值 ×(1−扣除比例)× 1.2%;从租:租金收入 × 12%从价 1.2%;从租 12%;扣除比例由地方定,一般 10%–30%税金及附加出租与自用算法不同;地方对特殊住房/出租住房可能有优惠。(国家税务总局政策法规库)
城镇土地使用税实际占用土地面积应纳税额 = 实际占地面积 × 适用单位税额每平方米年税额:大城市 1.5–30元;中等城市 1.2–24元;小城市 0.9–18元;县城/建制镇/工矿区 0.6–12元税金及附加具体适用单价由各地政府在法定幅度内确定。(国家税务总局政策法规库)

印花税可直接记的几个常见口径

因为印花税不是一个统一税率,我把企业最常碰到的两个补在这里:

常见税目计税依据常见税率
买卖合同合同所列金额(不含单独列明增值税)万分之三
营业账簿实收资本(股本)+资本公积万分之二点五

这些都属于印花税法附表税目税率体系的一部分。(广东省税务局)

两个速算例子

例 1:城建税 + 教育附加 + 地方教育附加 某企业本月实际缴纳增值税 10万元,无消费税,位于市区: 城建税 = 100,000 × 7% = 7,000 教育费附加 = 100,000 × 3% = 3,000 地方教育附加 = 100,000 × 2% = 2,000。(国家税务总局政策法规库)

例 2:房产税(从价计征) 房产原值 500万元,当地规定扣除 30%: 房产税 = 5,000,000 × (1−30%) × 1.2% = 42,000元/年。(国家税务总局政策法规库)

现在很实用的一条优惠提醒

截至 2027年12月31日,对增值税小规模纳税人、小型微利企业和个体工商户,城建税、房产税、城镇土地使用税、印花税(不含证券交易印花税)、教育费附加、地方教育附加等实行减半征收。(政府网站)

你要的话,我可以下一条把这张表改成 Excel风格版本,再加一列“申报频率/纳税义务时间”。