
Bookkeeping Agency Skill
- 2 installs
- 1 repo stars
- Updated April 16, 2026
- cyhzzz/bookkeeping-agency-skill
Helps with ai & agent building tasks.
About
bookkeeping-agency-skill is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- bookkeeping-agency-skill
- AI & Agent Building
- AI-coding skill
Bookkeeping Agency Skill by the numbers
- 2 all-time installs (skills.sh)
- Ranked #13,956 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Jul 29, 2026 (Skillselion catalog sync)
npx skills add https://github.com/cyhzzz/bookkeeping-agency-skill --skill bookkeeping-agency-skillAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 2 |
|---|---|
| repo stars | ★ 1 |
| Last updated | April 16, 2026 |
| Repository | cyhzzz/bookkeeping-agency-skill ↗ |
What it does
Helps with ai & agent building tasks.
Files
智能客户接入管家
角色
你是代账公司的客户入职助手。员工说"新客户入职",你自动完成全部工作。
员工这样说时,直接启动
- "新客户入职"
- "帮新客户建账"
- "新公司开通"
- "新客户开通服务"
工作流程(3步完成)
Step 1: 收集证件 ✋
告诉员工:
📋 新客户入职 - 请提供以下证件:
必需证件:
1. 营业执照(照片或电子版)
2. 法人身份证(照片)
可选证件:
3. 联系方式(电话/邮箱)
请上传证件照片或电子文件,我来完成后续工作。自动识别:收到证件后,用视觉能力识别营业执照,自动提取:
- 公司名称
- 统一社会信用代码
- 法人姓名
- 注册资本
- 经营范围
- 注册地址
Step 2: 自动建账
自动完成: 1. 判断纳税人类型 - 根据注册资本自动判断(小规模/一般纳税人) 2. 匹配行业 - 根据经营范围匹配行业分类(商贸/服务/建筑/制造) 3. 生成会计科目 - 根据行业和纳税人类型生成科目表 4. 核定税种 - 自动核定增值税、企业所得税、个人所得税等
展示给员工确认:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 信息识别完成!
📌 客户基本信息
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
公司名称:星辰科技有限公司
信用代码:91110000XXXXXXXX
法人代表:张三
注册资本:100万元
行业分类:技术服务
纳税人类型:小规模纳税人 ✓
📌 会计科目(自动生成)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
资产类:1001库存现金、1002银行存款、1122应收账款
负债类:2202应付账款
权益类:4001实收资本
损益类:5001主营业务收入、6001主营业务成本
📌 税种核定(自动核定)
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 增值税 ✅ 企业所得税
✅ 个人所得税 ✅ 附加税
⚠️ 如有信息错误,请告诉我具体需要修改的内容。
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━Step 3: 生成服务包 ✋
一键生成: 1. 代理记账合同 2. 会计科目表 3. 税种核定表 4. 关键日期提醒
完成后告知:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✅ 新客户入职完成!
📁 生成文件:
• 星辰科技_客户接入档案_20260407.md
• 星辰科技_客户接入档案_20260407.docx
• 星辰科技_代理记账合同_20260407.docx
📋 服务包内容:
• 客户基本信息
• 会计科目表(小规模纳税人-技术服务)
• 税种核定表
• 关键日期提醒(申报截止日、汇算清缴等)
💡 建议:
1. 查看Word文档确认内容
2. 如需修改,告诉我具体调整
3. 合同打印后让客户签字盖章
4. 客户资料归档到项目文件夹
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━输出文件
| 文件 | 格式 | 用途 |
|---|---|---|
| 客户接入档案 | MD + DOCX | 存档和交付 |
| 代理记账合同 | DOCX | 客户签字 |
关键约束
1. 一次确认 - 只在Step 2开头和Step 3完成后确认,减少打断 2. 自动纠错 - 发现信息异常自动提示员工 3. 通俗输出 - 中文+emoji,不用JSON或技术术语 4. 双人复核 - 合同生成后由会计复核内容
---
可配置节点(初始化时填写)
以下内容在管理层初始化后自动填充,员工不可见
| 节点 | 可配置项 | 初始化后的实际配置 |
|---|---|---|
| 纳税人类型判定 | 自动/手动/半自动 | 待配置 |
| 行业模板匹配 | 自动/手动 | 待配置 |
| 会计科目生成 | 自动生成/模板确认/手动输入 | 待配置 |
| 合同生成方式 | 自动生成/自定义模板 | 待配置 |
| 必需采集证件 | 营业执照/法人身份证/银行开户许可证/其他 | 待配置 |
| 输出文件清单 | 客户档案表/会计科目表/税种核定表/合同/关键日期 | 待配置 |
参考文件
- 服务协议模板:
references/service-agreement-template.md - 会计科目模板:
references/accounting-templates/
索引
- 模板:
references/service-agreement-template.md - 科目模板:
references/accounting-templates/
*.zip
.DS_Store
Thumbs.db
CLAUDE.md
This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
项目概述
AI代账工具 - 支持初始化定制的代账公司智能化工作台。 管理层初始化时配置品牌标识和县域逻辑,交付员工后直接使用。
项目结构
代理记账/ ← 主控Skill(根目录即skill)
├── SKILL.md ← 主控Skill(双模式:初始化+工作)
├── config/
│ └── skill-config.yaml ← 初始化配置和版本追踪
├── assets/
│ └── report-templates/ ← 报告模板(含品牌占位符)
├── parsers/ ← 财务软件解析器
├── generators/ ← 报告生成器
├── client-onboarding-helper/ ← 子Skill(可定制)
├── monthly-tax-helper/ ← 子Skill(可定制)
├── complex-business-advisor/ ← 子Skill(可定制)
├── risk-monitor-guard/ ← 子Skill(可定制)
└── customer-success-helper/ ← 子Skill(可定制)初始化流程(管理层操作)
说"初始化"启动配置向导,依次完成:
Step 1: 品牌信息
- 公司名称、简称
- 联系电话、地址
- Logo上传
Step 2: 县域实情
- 客户行业分布
- 税务特点(查账/核定)
- 特殊优惠政策
Step 3: 输出格式
- 报告内容定制
- 语言风格(正式/简洁/详细)
- 文件命名规范
Step 4: 确认节点
- 自动化程度(高/标准/严格)
- 特殊业务复核要求
员工使用
初始化完成后,员工直接说需求,AI自动识别意图并调度模块。
版本追踪
每个子Skill在frontmatter中标注:
version: "1.1.0"
last_updated: "2026-04-07"版本号规则:
- 主版本+1:工作流程/输出格式变更
- 子版本+1:触发词/确认节点变更
关键约束
1. 初始化后才能交付 - 首次使用必须完成初始化配置 2. 品牌标识自动更新 - Logo和联系信息自动应用到Word模板 3. 双人复核 - 复杂业务必须人工复核 4. 双格式输出 - MD存档 + Word交付(含品牌标识)
# 一般纳税人-商贸 会计科目表模板
# 适用:一般纳税人,经营范围含批发、零售、贸易、经销、销售
taxpayer_type: 一般纳税人
industry_category: 商贸
description: 一般纳税人商贸企业标准科目表,共18个科目
subjects:
- sequence: 1
code: "1001"
name: "库存现金"
direction: "借"
category: "资产类"
- sequence: 2
code: "1002"
name: "银行存款"
direction: "借"
category: "资产类"
- sequence: 3
code: "1122"
name: "应收账款"
direction: "借"
category: "资产类"
- sequence: 4
code: "1123"
name: "预付账款"
direction: "借"
category: "资产类"
- sequence: 5
code: "1405"
name: "原材料"
direction: "借"
category: "资产类"
- sequence: 6
code: "1601"
name: "固定资产"
direction: "借"
category: "资产类"
- sequence: 7
code: "2201"
name: "应付票据"
direction: "贷"
category: "负债类"
- sequence: 8
code: "2202"
name: "应付账款"
direction: "贷"
category: "负债类"
- sequence: 9
code: "2221"
name: "应交税费"
direction: "贷"
category: "负债类"
- sequence: 10
code: "222101"
name: "应交增值税-进项税额"
direction: "借"
category: "负债类-应交税费"
- sequence: 11
code: "222102"
name: "应交增值税-销项税额"
direction: "贷"
category: "负债类-应交税费"
- sequence: 12
code: "4001"
name: "实收资本"
direction: "贷"
category: "权益类"
- sequence: 13
code: "5001"
name: "主营业务收入"
direction: "贷"
category: "损益类"
- sequence: 14
code: "6401"
name: "主营业务成本"
direction: "借"
category: "损益类"
- sequence: 15
code: "6602"
name: "销售费用"
direction: "借"
category: "损益类"
- sequence: 16
code: "6603"
name: "管理费用"
direction: "借"
category: "损益类"
- sequence: 17
code: "6604"
name: "财务费用"
direction: "借"
category: "损益类"
- sequence: 18
code: "6801"
name: "所得税费用"
direction: "借"
category: "损益类"
# 一般纳税人-服务 会计科目表模板
# 适用:一般纳税人,经营范围含服务、咨询、管理、广告、设计、传媒
taxpayer_type: 一般纳税人
industry_category: 服务
description: 一般纳税人服务企业标准科目表,共16个科目
subjects:
- sequence: 1
code: "1001"
name: "库存现金"
direction: "借"
category: "资产类"
- sequence: 2
code: "1002"
name: "银行存款"
direction: "借"
category: "资产类"
- sequence: 3
code: "1122"
name: "应收账款"
direction: "借"
category: "资产类"
- sequence: 4
code: "1123"
name: "预付账款"
direction: "借"
category: "资产类"
- sequence: 5
code: "1601"
name: "固定资产"
direction: "借"
category: "资产类"
- sequence: 6
code: "2202"
name: "应付账款"
direction: "贷"
category: "负债类"
- sequence: 7
code: "2221"
name: "应交税费"
direction: "贷"
category: "负债类"
- sequence: 8
code: "222101"
name: "应交增值税-进项税额"
direction: "借"
category: "负债类-应交税费"
- sequence: 9
code: "222102"
name: "应交增值税-销项税额"
direction: "贷"
category: "负债类-应交税费"
- sequence: 10
code: "4001"
name: "实收资本"
direction: "贷"
category: "权益类"
- sequence: 11
code: "6051"
name: "其他业务收入"
direction: "贷"
category: "损益类"
- sequence: 12
code: "6403"
name: "其他业务成本"
direction: "借"
category: "损益类"
- sequence: 13
code: "6602"
name: "销售费用"
direction: "借"
category: "损益类"
- sequence: 14
code: "6603"
name: "管理费用"
direction: "借"
category: "损益类"
- sequence: 15
code: "6604"
name: "财务费用"
direction: "借"
category: "损益类"
- sequence: 16
code: "6801"
name: "所得税费用"
direction: "借"
category: "损益类"
# 小规模纳税人-商贸 会计科目表模板
# 适用:小规模纳税人,经营范围含批发、零售、贸易、经销、销售
taxpayer_type: 小规模纳税人
industry_category: 商贸
description: 小规模纳税人商贸企业标准科目表,共8个科目
subjects:
- sequence: 1
code: "1001"
name: "库存现金"
direction: "借"
category: "资产类"
- sequence: 2
code: "1002"
name: "银行存款"
direction: "借"
category: "资产类"
- sequence: 3
code: "1122"
name: "应收账款"
direction: "借"
category: "资产类"
- sequence: 4
code: "2202"
name: "应付账款"
direction: "贷"
category: "负债类"
- sequence: 5
code: "4001"
name: "实收资本"
direction: "贷"
category: "权益类"
- sequence: 6
code: "5001"
name: "主营业务收入"
direction: "贷"
category: "损益类"
- sequence: 7
code: "6401"
name: "主营业务成本"
direction: "借"
category: "损益类"
- sequence: 8
code: "6602"
name: "销售费用"
direction: "借"
category: "损益类"
# 小规模纳税人-建筑 会计科目表模板
# 适用:小规模纳税人,经营范围含建筑、施工、装修、装饰、工程
taxpayer_type: 小规模纳税人
industry_category: 建筑
description: 小规模纳税人建筑企业标准科目表,共9个科目
subjects:
- sequence: 1
code: "1001"
name: "库存现金"
direction: "借"
category: "资产类"
- sequence: 2
code: "1002"
name: "银行存款"
direction: "借"
category: "资产类"
- sequence: 3
code: "1122"
name: "应收账款"
direction: "借"
category: "资产类"
- sequence: 4
code: "1405"
name: "原材料"
direction: "借"
category: "资产类"
- sequence: 5
code: "2202"
name: "应付账款"
direction: "贷"
category: "负债类"
- sequence: 6
code: "4001"
name: "实收资本"
direction: "贷"
category: "权益类"
- sequence: 7
code: "5001"
name: "主营业务收入"
direction: "贷"
category: "损益类"
- sequence: 8
code: "5401"
name: "主营业务成本"
direction: "借"
category: "损益类"
- sequence: 9
code: "6602"
name: "销售费用"
direction: "借"
category: "损益类"
# 小规模纳税人-服务 会计科目表模板
# 适用:小规模纳税人,经营范围含服务、咨询、管理、广告、设计、传媒
taxpayer_type: 小规模纳税人
industry_category: 服务
description: 小规模纳税人服务企业标准科目表,共7个科目
subjects:
- sequence: 1
code: "1001"
name: "库存现金"
direction: "借"
category: "资产类"
- sequence: 2
code: "1002"
name: "银行存款"
direction: "借"
category: "资产类"
- sequence: 3
code: "1123"
name: "预付账款"
direction: "借"
category: "资产类"
- sequence: 4
code: "2202"
name: "应付账款"
direction: "贷"
category: "负债类"
- sequence: 5
code: "4001"
name: "实收资本"
direction: "贷"
category: "权益类"
- sequence: 6
code: "6051"
name: "其他业务收入"
direction: "贷"
category: "损益类"
- sequence: 7
code: "6603"
name: "管理费用"
direction: "借"
category: "损益类"
代理记账服务协议模板
本模板适用于代账公司与客户签订代理记账服务合同。合同内容需包含法定必备条款,可根据实际情况调整。
---
代理记账服务协议
合同编号:[自动生成编号]
签订日期:[公历日期](农历[农历日期])
---
第一条 服务内容
甲方(委托方)委托乙方(受托方)提供以下代理记账服务:
1. 建账服务
- 根据甲方提供的证照资料建立会计账簿
- 配置符合甲方经营特点的会计科目体系
2. 日常记账服务
- 审核原始凭证的合法性和完整性
- 编制记账凭证
- 登记会计账簿
- 编制会计报表(月报、季报、年报)
3. 税务申报服务
- 增值税及附加税费申报(小规模纳税人季报/一般纳税人月报)
- 企业所得税预缴及汇算清缴申报
- 个人所得税代扣代缴申报
- 其他税费申报(印花税等)
4. 工商年报服务
- 年度工商年报填报指导
- 年度财务报告公示
5. 咨询服务
- 日常财税政策咨询
- 税务筹划建议(不另收费项目范围内)
---
第二条 服务期限
1. 本协议服务期限自:[公历日期] 起至 :[公历日期] 止。 2. 服务期限为 :[月数]个月。 3. 协议期满前30日内,如双方无书面异议,本协议自动延续[延续期限]。
---
第三条 服务费用
1. 代理记账服务费:人民币 :[金额] 元/月(含税) 2. 支付方式:每 [季度/半年/年] 支付一次,于每 [期初/期末] 前5个工作日内支付。 3. 年度总计:人民币 :[年度总金额] 元/年(含税) 4. 开票信息:
- 抬头:[甲方公司名称]
- 税号:[统一社会信用代码]
---
第四条 甲方权利与义务
1. 资料提供义务
- 甲方应于每月 [日期] 前提供上月原始凭证
- 甲方应提供真实、合法、完整的经营资料
- 甲方应确保所提供资料的完整性,因资料缺失导致的申报延误不归责于乙方
2. 配合义务
- 甲方应配合乙方完成税务实名认证、财务负责人信息登记
- 甲方应指定专人对接代理记账工作
3. 保密义务
- 甲方对乙方在服务过程中知悉的商业秘密负有保密义务
---
第五条 乙方权利与义务
1. 服务义务
- 乙方应按照《企业会计准则》及相关法规为甲方提供代理记账服务
- 乙方应按时完成税务申报,因乙方原因导致的逾期申报由乙方承担责任
2. 保密义务
- 乙方对甲方财务数据负有保密义务,未经甲方书面同意不得向第三方披露
3. 档案保管义务
- 乙方应妥善保管甲方的会计档案,保管期限不少于15年
---
第六条 违约责任
1. 甲方违约
- 如甲方未按时支付服务费用,每逾期一日应支付未付款项 0.05% 的违约金
- 如甲方提供虚假资料导致的后果,由甲方自行承担
2. 乙方违约
- 如乙方未按时完成申报,每逾期一日应退还当日服务费的 0.1%
- 因乙方操作失误导致甲方补缴税款的,乙方应协助处理并承担相应责任
---
第七条 争议解决
本协议履行过程中如发生争议,双方应协商解决;协商不成的,提交 [甲方/乙方] 所在地人民法院管辖。
---
第八条 其他约定
1. 本协议一式两份,甲乙双方各执一份,具有同等法律效力。 2. 本协议未尽事宜,由双方另行书面协商解决。 3. 本协议自双方签字(盖章)之日起生效。
---
签署栏
| 甲方(委托方) | 乙方(受托方) |
|---|---|
| 公司名称:__________ | 公司名称:__________ |
| 统一社会信用代码:__________ | 统一社会信用代码:__________ |
| 法定代表人:__________ | 法定代表人:__________ |
| 联系地址:__________ | 联系地址:__________ |
| 联系电话:__________ | 联系电话:__________ |
| 开户银行:__________ | 开户银行:__________ |
| 银行账号:__________ | 银行账号:__________ |
| 签字(盖章): | 签字(盖章): |
| 日期:__________ | 日期:__________ |
---
附件清单
1. 营业执照复印件(加盖公章) 2. 法人身份证复印件(加盖公章) 3. 银行开户许可证复印件(加盖公章) 4. 会计科目确认表 5. 税种核定通知书复印件
---
本模板由智能客户接入管家系统生成 生成时间:[公历日期] [农历日期]
跨区域税务协调指南
一、跨区域经营概述
1.1 跨区域经营定义
跨区域经营是指企业在其注册地以外的省市设立分支机构(包括分公司、子公司),进行生产经营活动的商业模式。
1.2 跨区域经营形式
| 形式 | 特征 | 企业所得税处理 |
|---|---|---|
| 分公司 | 非独立法人 | 汇总纳税 |
| 子公司 | 独立法人 | 独立纳税 |
| 办事处 | 无经营实质 | 不独立纳税 |
---
二、企业所得税汇总纳税
2.1 汇总纳税适用范围
以下总机构和分支机构需汇总缴纳企业所得税:
- 在同一直辖市、省、自治区、计划单列市范围内设立的
- 跨省(自治区、直辖市、计划单列市)设立的
2.2 不适用汇总纳税的情形
- 独立核算的分支机构
- 设立不具有主体生产经营职能且不适用当地企业所得税优惠的纯粹辅助性分支机构
- 当年撤销的分支机构
---
三、所得税分摊计算
3.1 分摊比例确定
总机构分摊:应纳所得税额的50%
分支机构分摊:应纳所得税额的50%,按以下因素计算分摊比例:
分支机构分摊比例 = (该分支机构营业收入 / Σ所有分支机构营业收入) × 0.5
+ (该分支机构职工薪酬 / Σ所有分支机构职工薪酬) × 0.53.2 分摊计算公式
总机构分摊所得税 = 企业当期应纳所得税额 × 50%
分支机构分摊所得税 = 企业当期应纳所得税额 × 50% × 该分支机构分摊比例3.3 分摊表样式
总分机构所得税分摊表(____年度第__季度)
企业名称:________
总机构所在地:____省____市
一、基本信息
企业当期应纳所得税额:____元
总机构分摊(50%):____元
分支机构分摊(50%):____元
二、分支机构分摊明细
分支机构 | 营业收入 | 职工薪酬 | 分摊比例 | 分摊税额
--------|----------|----------|----------|--------
总机构 | ---- | ---- | 50% | ____
____分公司| ____ | ____ | __% | ____
____分公司| ____ | ____ | __% | ____
合计 | ____ | ____ | 100% | ____---
四、跨省分支机构备案
4.1 备案要求
总机构应将下列资料报送给主管税务机关:
- 总机构基本情况表
- 隶属关系证明
- 设立分支机构名单
- 分支机构情况表
- 分支机构就地预缴税款情况表
4.2 备案时限
- 新设分支机构:自设立之日起30日内
- 变更分支机构信息:变更后30日内
- 撤销分支机构:自撤销之日起30日内
---
五、全国31省市优惠政策汇总
5.1 西部地区(12省市)
适用范围:重庆、四川、贵州、云南、西藏、陕西、甘肃、青海、宁夏、新疆、内蒙古、广西
优惠政策:
- 企业所得税率:15%(需符合西部大开发产业目录)
- 鼓励类产业目录包含:风力发电、光伏发电等新能源产业;半导体、集成电路等电子信息产业;特色农产品加工等
5.2 东北地区(3省)
适用范围:辽宁、吉林、黑龙江
优惠政策:
- 装备制造业、石化产业、农产品加工业等适用15%优惠税率
- 高新技术企业同享15%税率
5.3 海南自由贸易港
适用范围:海南全岛
优惠政策:
- 2025年前:鼓励类企业减按15%征收
- 2035年前:实质性运营的全部企业减按15%征收
- 进口生产原辅料免关税
5.4 粤港澳大湾区
适用范围:广东9市(广州、深圳、珠海、东莞、惠州、佛山、中山、江门、肇庆)
优惠政策:
- 高新技术企业15%优惠税率
- 境外高端人才个人所得税优惠
- 技术先进型企业15%税率
5.5 长三角一体化示范区
适用范围:上海青浦、江苏吴江、浙江嘉善
优惠政策:
- 高新技术企业15%优惠税率
- 集成电路企业10%优惠(特定企业)
- 人才引进个人所得税优惠
5.6 雄安新区
适用范围:河北雄安新区
优惠政策:
- 符合产业目录的企业15%税率
- 高新技术企业同享15%税率
- 疏解北京非首都功能企业优惠
5.7 各地经济开发区/高新区
| 地区 | 园区类型 | 优惠内容 |
|---|---|---|
| 北京 | 中关村科技园区 | 高新企业15%,技术转让免税 |
| 上海 | 张江高科技园区 | 高新企业15%,人才引进政策 |
| 深圳 | 深圳高新区 | 高新企业15%,研发费用加计扣除 |
| 武汉 | 东湖高新区 | 高新企业15%,瞪羚企业支持 |
---
六、跨区域筹划空间分析
6.1 产业导向匹配
筹划思路:将企业注册或迁址至有产业扶持政策的地区
注意事项:
- 需有实质性经营
- 需符合产业目录要求
- 需有完整的业务记录
6.2 地区扶持叠加
筹划思路:同一企业可能同时享受多重优惠政策
叠加示例:
- 高新技术企业(15%)+ 西部大开发(15%)
- 高新技术企业(15%)+ 研发费用加计扣除(100%加计)
6.3 税负差异分析
税负差异分析表(假设应纳税所得额1000万元)
注册地 | 法定税率 | 优惠税率 | 应纳税额 | 税负差异
------|---------|---------|---------|--------
一般地区 | 25% | 25% | 250万 | 基准
高新技术 | 25% | 15% | 150万 | -100万
西部开发 | 25% | 15% | 150万 | -100万
海南自贸港| 25% | 15% | 150万 | -100万
叠加优惠 | 25% | 15%+100%| 150万+节税| -250万---
七、跨区域经营风险防控
7.1 真实性风险
风险点:
- 空壳公司认定
- 虚构业务转移利润
- 阴阳合同
防控措施:
- 确保分支机构有真实业务
- 保存完整业务合同、发票、付款记录
- 人员、场地、设备需真实存在
7.2 程序合规风险
风险点:
- 未按规定时间备案
- 备案信息不完整
- 未按要求报送分摊表
防控措施:
- 建立备案管理制度
- 设置备案提醒
- 定期核对备案信息
7.3 后续管理风险
风险点:
- 分支机构注销未及时备案
- 分摊比例计算错误
- 税款滞纳
防控措施:
- 建立分支机构档案管理
- 定期复核分摊计算
- 设置申报提醒
---
八、常见问题解答
Q1:分支机构是否需要办理税务登记?
A:需要。分支机构应在当地税务机关办理税务登记。
Q2:分公司能否单独享受高新技术企业所得税优惠?
A:不能。高新技术企业优惠由总机构统一申请,分支机构按规定分摊税款。
Q3:跨区域项目部如何纳税?
A:跨区域项目部应在项目所在地预缴企业所得税,年度汇算清缴时由总机构合并计算。
Q4:总分机构之间的资产划转是否涉及所得税?
A:符合特殊性税务处理条件的,可以适用递延纳税优惠。
Q5:境外分支机构如何处理?
A:境外分支机构在中国汇总纳税范围外,需在境外按当地规定缴税,境外已纳税款可按规定抵免。
---
九、相关法规索引
- 《跨地区经营汇总纳税企业所得税征收管理办法》(国家税务总局公告2012年第57号)
- 《财政部 税务总局关于实施小微企业普惠性税收减免政策的通知》(财税〔2019〕13号)
- 《财政部 税务总局 海关总署关于深化增值税改革有关政策的公告》(2019年第39号)
- 《西部地区鼓励类产业目录》(国家发改委令2021年第40号)
- 《海南自由贸易港法》
出口退税规则手册
一、出口退税基本概念
1.1 出口退税定义
出口退税是指对出口货物已征收的国内增值税、消费税部分或全部退还给出口企业的一种税收优惠政策。其目的是使出口货物以不含税价格进入国际市场,提高竞争力。
1.2 出口退税适用范围
可以退(免)税的货物:
- 自营出口或委托出口的货物
- 来料加工复出口的货物
- 进料加工复出口的货物
- 境外承包工程货物
- 保税区、出口加工区销售的货物
不可以退(免)税的货物:
- 援外出口货物(除另有规定外)
- 没有出口经营权的非生产型企业出口货物
- 国家禁止出口的货物
- 出口应税消费品(退税率为0,征多少退多少)
---
二、出口企业类型
2.1 生产型企业
定义:具有生产能力的企业,包括自营出口和委托出口。
适用退税办法:免抵退办法
计算公式:
当期免抵退税不得免征和抵扣税额 = 当期出口货物离岸价 × 外汇人民币折合率 ×(出口货物退税率 - 适用税率)
当期应纳税额 = 当期内销货物销项税额 -(当期进项税额 - 当期免抵退税不得免征和抵扣税额)- 上期留抵税额
当期免抵退税额 = 当期出口货物离岸价 × 外汇人民币折合率 × 出口货物退税率
当期应退税额 = min(当期应纳税额绝对值,当期免抵退税额)2.2 外贸型企业
定义:不具有生产能力,收购货物出口的企业。
适用退税办法:先征后退办法
计算公式:
应退税额 = 收购不含税购进金额 × 退税率---
三、退税率与商品分类
3.1 退税率档次
根据财政部、税务总局公告,出口货物退税率分为以下档次:
- 13%:适用增值税税率13%的货物
- 9%:适用增值税税率9%的货物(农产品、饲料、化肥等)
- 6%:部分货物和服务
- 0%:取消退税或不予退税的货物
3.2 主要商品退税率参考
| 商品类别 | 退税率 |
|---|---|
| 机电产品 | 13% |
| 纺织品、服装 | 13% |
| 钢材 | 0-13% |
| 化工产品 | 6-13% |
| 农产品 | 9% |
| 信息技术产品 | 13% |
注:具体退税率以申报时税务局确认的为准
---
四、报关单与发票匹配规则
4.1 匹配率要求
最低匹配率:≥98%
报关单与发票匹配率计算公式:
匹配率 = (匹配报关单金额 / 出口报关单总金额) × 100%4.2 匹配要素
报关单与出口发票必须一致的要素:
- 出口货物名称(中英文)
- 商品规格型号
- 数量
- 成交方式(FOB/CIF等)
- 金额(允许合理损耗范围内的微小差异)
4.3 不匹配处理
允许微小差异的情况:
- 汇率四舍五入导致的差异(差异率≤0.5%)
- 商业折扣导致的合理差异
不允许的差异:
- 商品名称严重不符
- 金额差异超过1%
- 数量差异超过5%
---
五、汇率换算规则
5.1 汇率来源
使用中国人民银行公布的申报当期基准汇率(中间价)
5.2 汇率确定时点
- 月度申报:使用每月1日的中间价
- 季度申报:使用季度首月1日的中间价
5.3 汇率折算公式
人民币金额 = 美元金额 × 汇率中间价---
六、换汇成本检查
6.1 换汇成本计算公式
换汇成本 = 采购不含税进价(元人民币)/ 出口美元离岸价(美元)6.2 合理区间
| 区间 | 含义 |
|---|---|
| <5 | 成本异常偏低,可能存在骗税风险 |
| 5-8 | 正常区间 |
| >8 | 成本偏高,出口竞争力下降 |
6.3 异常预警
以下情况触发预警:
- 换汇成本<5或>8
- 同一供应商集中供货
- 商品价格波动异常
---
七、出口退税申报流程
7.1 申报时间
- 生产型企业:每月15日前(遇节假日顺延)
- 外贸型企业:每月15日前(遇节假日顺延)
7.2 申报资料
首次申报需提供:
- 营业执照副本
- 对外贸易经营者备案登记表
- 海关进出口货物收发货人备案回执
- 出口退(免)税备案表
日常申报需提供:
- 报关单
- 出口发票
- 采购发票(增值税专用发票)
- 装箱单、提单
- 收汇凭证
7.3 申报系统
使用出口退税离线申报系统或电子税务局出口退税申报模块
---
八、风险防控要点
8.1 常见风险点
1. 单证不齐:缺少报关单、发票等必要单证 2. 商品名称不符:报关单与发票商品名称不一致 3. 汇率使用错误:未使用央行中间价 4. 换汇成本异常:超出合理区间 5. 申报超时:超过规定申报期限
8.2 合规建议
1. 建立完善的单证管理制度 2. 定期核对报关单与发票匹配率 3. 关注退税率调整公告 4. 保持与税务机关的良好沟通 5. 保留完整的出口业务档案(至少10年)
---
九、相关法规索引
- 《财政部 国家税务总局关于出口货物劳务增值税和消费税政策的通知》(财税〔2012〕39号)
- 《国家税务总局关于发布<出口货物劳务增值税和消费税管理办法>的公告》(国家税务总局公告2012年第24号)
- 《财政部 税务总局 海关总署关于深化增值税改革有关政策的公告》(财政部 税务总局 海关总署公告2019年第39号)
高新技术企业认定指南
一、高新技术企业认定概述
1.1 高新企业认定意义
- 企业所得税率由25%降至15%
- 提升企业品牌形象
- 更容易获得融资和项目支持
- 享受地方财政奖励
1.2 认定有效期
高新技术企业管理有效期为三年,到期需重新认定
1.3 认定时间
- 每年受理一般为5月、8月、10月(具体以当地科技部门通知为准)
- 评审周期约2-3个月
---
二、认定条件(6项核心指标)
2.1 企业成立时间
要求:企业申请认定时须注册成立一年以上
计算方式:
认定当年 - 企业注册成立年份 ≥ 1年注:不含当年
2.2 高新技术产品(服务)收入占比
要求:近一年高新技术产品(服务)收入占企业同期总收入的比例≥60%
计算公式:
高新收入占比 = 高新技术产品(服务)收入 / 企业同期总收入 × 100%高新技术产品(服务)定义:
- 对企业主要产品(服务)发挥核心支持作用的技术属于《国家重点支持的高新技术领域》规定范围的产品(服务)
- 需具备有效的知识产权所有权
2.3 研发费用占比
要求:近三年研发费用占销售收入的比例需符合以下标准:
| 销售收入 | 研发费用占比要求 |
|---|---|
| 销售收入 < 5000万元 | ≥5% |
| 5000万元 ≤ 销售收入 ≤ 2亿元 | ≥4% |
| 销售收入 > 2亿元 | ≥3% |
研发费用归集范围:
- 人员人工费用
- 直接投入费用
- 折旧费用与长期待摊费用
- 无形资产摊销费用
- 设计费用
- 装备调试费用与试验费用
- 委托外部研究开发费用
- 其他费用
2.4 科技人员占比
要求:企业从事研发和相关技术创新活动的科技人员占企业当年职工总数的比例≥10%
计算公式:
科技人员占比 = 科技人员数 / 企业职工总数 × 100%科技人员定义:
- 直接从事研发和相关技术创新活动
- 专门从事研发活动的管理
- 提供直接技术服务
统计口径:
- 通常用全年月平均数
- 需签订劳动合同或劳务合同
2.5 企业所得税税率
要求:高新技术企业所得税率优惠为15%
条件:企业申请认定前一年未发生重大安全、重大质量事故或严重环境违法行为
2.6 研发组织管理水平
要求:通过评分制考核,需达到相应分数线
---
三、评审指标体系(4大类100分)
3.1 知识产权(≤30分)
| 评分项 | 分值 | 评分标准 |
|---|---|---|
| 技术的先进程度 | ≤8 | 国际领先(8);国际先进(6);国内领先(4);国内先进(2);其他(0) |
| 对主要产品(服务)在技术上发挥核心支持作用 | ≤8 | 强(8);较强(6);一般(4);弱(2);无(0) |
| 知识产权数量 | ≤8 | 1项及以上(Ⅰ类)发明专利等(8);5项及以上(Ⅱ类)实用新型(6);~4项(4);1-3项(2);0项(0) |
| 知识产权获取方式 | ≤6 | 自主研发(6);受让受赠并购(4);独占许可(3);其他(0) |
3.2 科技成果转化能力(≤30分)
| 转化能力等级 | 分值 | 标准 |
|---|---|---|
| 转化能力强 | 25-30 | 转化≥5项 |
| 转化能力较强 | 19-24 | 转化4项 |
| 转化能力一般 | 13-18 | 转化3项 |
| 转化能力较弱 | 7-12 | 转化2项 |
| 转化能力弱 | 1-6 | 转化1项 |
| 无转化 | 0 | 0项 |
科技成果定义:
- 专利、版权、集成电路布图设计等知识产权
- 合同技术诀窍
- 省级以上部门认定的科技成果
3.3 研发组织管理水平(≤20分)
| 评分项 | 分值 | 评分标准 |
|---|---|---|
| 制定了企业研究开发的组织管理制度 | ≤6 | 建立了研发费用专账管理(6);建立了辅助账(4);未建立(0) |
| 设立了内部科学技术研究开发机构 | ≤6 | 建立了研发机构(6);未建立(0) |
| 建立了成果转化的组织实施与激励奖励制度 | ≤4 | 建立了制度(4);未建立(0) |
| 建立了科技人员的培养进修、职工技能培训 | ≤2 | 有培训制度(2);无培训(0) |
| 建立了开放式创新创业平台 | ≤2 | 有平台(2);无平台(0) |
3.4 企业成长性(≤20分)
| 指标 | 计算方式 | 分值 |
|---|---|---|
| 净资产增长率 | (净资产总额增长额/期初净资产总额)× 100% | ≤10 |
| 销售收入增长率 | (销售收入增长额/期初销售收入)× 100% | ≤10 |
评分标准:
- ≥35%:9-10分
- ≥25%:7-8分
- ≥15%:5-6分
- ≥5%:3-4分
- >0%:1-2分
- ≤0%:0分
3.5 达标线
认定要求:评审总分≥71分
---
四、账务处理要求
4.1 研发费用科目设置
建议设置以下科目:
管理费用
├── 研发支出(也可单独设置一级科目)
│ ├── 研发支出-资本化支出
│ │ ├── 人员人工
│ │ ├── 直接投入
│ │ ├── 折旧费用
│ │ ├── 无形资产摊销
│ │ ├── 设计费用
│ │ ├── 装备调试费
│ │ ├── 委托外部研发
│ │ └── 其他费用
│ └── 研发支出-费用化支出
│ └── (同上费用类别)4.2 辅助账设置要求
每个研发项目需建立辅助账:
- 项目名称和编号
- 项目起止时间
- 费用明细
- 凭证号
- 研发人员名单
4.3 高新产品收入确认
收入确认原则:
- 符合《企业会计准则第14号——收入》规定
- 产品具有核心技术所有权或使用权
- 收入金额能够可靠计量
- 经济利益很可能流入企业
备查资料:
- 高新产品销售合同
- 技术属性说明
- 知识产权证书
- 销售发票
- 收款凭证
---
五、认定申报流程
5.1 申报时间
一般为每年5月、8月、10月(具体以当地通知为准)
5.2 申报材料清单
1. 高新技术企业认定申请书 2. 企业营业执照副本复印件 3. 知识产权相关材料 4. 科研项目立项证明 5. 科技成果转化证明材料 6. 研究开发组织管理水平材料 7. 高新技术产品(服务)关键技术和技术指标说明 8. 专项审计报告(近三年研发费用、近一年高新产品收入) 9. 财务会计报告(近三年) 10. 职工和科技人员情况说明
5.3 认定流程
企业自我评价 → 注册登记 → 提交材料 → 专家评审 → 认定报备 → 公示公告 → 颁发证书---
六、认定后管理
6.1 报告事项
有效期内企业发生以下重大事项,需在15日内向认定机构报告:
- 合并、分立、破产、解散
- 重组、转让、搬迁
- 主营业务变更
- 重大安全、质量事故
- 环境违法行为
6.2 年度发展情况报表
每年5月31日前填报《高新技术企业年度发展情况报表》
6.3 有效期满复审
有效期满前三个月内提出复审申请,提交近三年研发情况和高新产品收入情况
---
七、常见问题解答
Q1:分公司能否单独申请高新认定?
A:不能,高新企业认定以企业法人为整体,分公司不是独立法人。
Q2:研发费用占比如何计算三年平均值?
A:按近三年研发费用总额除以近三年销售收入总额计算,不是简单平均。
Q3:购买专利能否算作自主研发?
A:不能算自主研发,但可作为知识产权,需注意对主要产品发挥核心支持作用。
Q4:科技人员需要社保缴纳证明吗?
A:需要,需提供劳动合同和社保缴纳记录证明。
Q5:申报前一年转让的专利还能用吗?
A:申报前一年内转让的知识产权,如果受让方不是本企业,则不能使用。
---
八、相关法规索引
- 《高新技术企业认定管理办法》(国科发火〔2016〕32号)
- 《高新技术企业认定管理工作指引》(国科发火〔2016〕195号)
- 《国家重点支持的高新技术领域》(2016年版)
- 《企业会计准则第6号——无形资产》
- 《企业会计准则第14号——收入》
研发费用加计扣除指南
一、研发费用加计扣除政策概述
1.1 政策沿革
| 期间 | 加计扣除比例 | 适用范围 |
|---|---|---|
| 2016年以前 | 50% | 仅限于认定的高新技术企业 |
| 2016-2018年 | 50%/75% | 科技型中小企业75%,其他企业50% |
| 2018-2020年 | 75%/100% | 所有行业,制造业75%,其他100% |
| 2021-2022年 | 75%/100% | 制造业100%,其他75% |
| 2023年起 | 100% | 所有符合条件的企业 |
1.2 2023年最新政策要点
根据《财政部 税务总局关于进一步完善研发费用税前加计扣除政策的公告》(2023年第7号):
- 适用主体:除烟草制造业、住宿和餐饮业、批发和零售业、房地产业、租赁和商务服务业、娱乐业等负面清单行业外,所有企业
- 加计扣除比例:100%
- 优惠方式:季度预缴和年度汇算清缴均可享受
---
二、研发费用归集范围
2.1 人员人工费用
内容:
- 研发人员工资、奖金、津贴、补贴
- 基本养老保险、基本医疗保险、失业保险、工伤保险、生育保险和住房公积金
- 劳动合同法定义的劳务派遣人员费用
归集要求:
- 研发人员需与单位签订劳动合同或劳务合同
- 需有完整的工资表、社保缴纳记录
- 研发人员需从事研发活动
2.2 直接投入费用
内容:
- 研发活动直接消耗的材料、燃料和动力费用
- 用于中间试验和产品试制的模具、工艺装备开发及制造费
- 样品、样机及一般测试手段购置费
- 试制产品的检验费
- 用于研发活动的仪器、设备的运行维护、调整、检验、维修等费用
归集要求:
- 需有采购发票、付款凭证
- 费用需与研发项目直接相关
2.3 折旧费用
内容:
- 用于研发活动的仪器、设备的折旧费
- 不包括长期闲置未使用的设备折旧
归集要求:
- 需有固定资产折旧计算表
- 设备需专门用于研发活动(可按使用工时占比分摊)
2.4 无形资产摊销费用
内容:
- 用于研发活动的软件、专利权、非专利技术(包括许可证、专有技术、设计和计算方法等)的摊销费用
归集要求:
- 需有无形资产摊销计算表
- 无形资产需用于研发活动
2.5 其他相关费用
内容:
- 技术图书资料费、资料翻译费
- 专家咨询费、高新科技研发保险费
- 研发成果的检索、论证、评审、验收费用
- 知识产权的申请费、注册费、代理费
- 差旅费、会议费(不超过可加计扣除总额的10%)
归集要求:
- 不得超过研发费用总额的10%
- 需有完整的费用明细和凭证
2.6 委托研发费用
内容:
- 委托境内外部机构或个人进行研发活动所发生的费用
加计扣除规则:
- 委托境外研发费用不超过境内符合条件的研发费用三分之二的部分,可以按规定在企业所得税前加计扣除
- 委托境外个人(含港澳台)研发的,不得加计扣除
归集要求:
- 需有委托研发合同
- 费用支付凭证
- 委托方需取得受托方开具的增值税发票
2.7 创意设计费用
内容:
- 企业为获得创新性、创意性、突破性的产品进行创意设计活动发生的相关费用
适用:可申请加计扣除
---
三、研发项目核算要求
3.1 辅助账设置
每个研发项目需设置辅助账,记录:
- 项目名称和编号
- 研发起止时间
- 各费用类别明细
- 相关凭证号
3.2 辅助账样式
研发项目辅助账
项目编号:____
项目名称:____
项目周期:____年__月 至 ____年__月
费用类别 | 凭证号 | 日期 | 金额 | 备注
--------|--------|------|------|----
人员人工 | ____ | __月 | ____ | ____
直接投入 | ____ | __月 | ____ | ____
折旧费用 | ____ | __月 | ____ | ____
无形资产 | ____ | __月 | ____ | ____
其他费用 | ____ | __月 | ____ | ____
合计 | | | ____ |3.3 会计核算要求
- 研发费用需通过"研发支出"科目核算
- 期末结转管理费用
- 需与生产经营费用分开核算
---
四、加计扣除计算方法
4.1 基本计算公式
加计扣除基数 = 研发费用总额(符合条件的部分)
加计扣除金额 = 加计扣除基数 × 100%
企业所得税优惠金额 = 加计扣除金额 × 25%(法定税率)4.2 示例
某企业2023年度研发费用归集总额为1000万元,享受100%加计扣除:
加计扣除基数:1000万元
加计扣除金额:1000 × 100% = 1000万元
节税金额:1000 × 25% = 250万元---
五、优惠备案与申报
5.1 预缴申报享受
季度预缴时,在《中华人民共和国企业所得税月(季)度预缴纳税申报表(A类)》中填报:
- 第7行"加计扣除"栏
5.2 年度汇算清缴
年度汇算清缴时需填报:
- 《研发费用加计扣除优惠明细表》(A107012)
- 主表(A100000)第17行"减:加计扣除"
5.3 备查资料清单
企业需妥善保管以下备查资料(至少保存10年): 1. 研发项目立项文件 2. 研发人员名单及工资表 3. 研发费用辅助账 4. 研发设备折旧计算表 5. 无形资产摊销计算表 6. 委托研发合同及发票 7. 会计凭证及原始凭证
---
六、研发项目识别标准
6.1 可加计扣除的研发活动特征
- 具有实质性改进或新技术、新产品、新工艺的研发
- 结果具有不确定性
- 属于企业正常经营活动的组成部分
6.2 不可加计扣除的活动
- 企业已实现规模化生产的常规性升级
- 直接应用于商业目的的科研成果转化
- 客户提供的仅为格式化的需求说明
- 试制品检验检测
- 常规性质量控制
6.3 项目判断要点
判断是否为研发项目,需同时满足: 1. 有明确的研发目标 2. 有完整的技术方案 3. 有预期的研发成果 4. 有完整的项目记录
---
七、负面清单行业
以下行业的企业不适用研发费用加计扣除政策:
| 序号 | 行业 |
|---|---|
| 1 | 烟草制造业 |
| 2 | 住宿和餐饮业 |
| 3 | 批发和零售业 |
| 4 | 房地产业 |
| 5 | 租赁和商务服务业 |
| 6 | 娱乐业 |
| 7 | 财政部和国家税务总局规定的其他行业 |
注:行业判定以主营业务收入占比超过50%为准
---
八、常见问题解答
Q1:研发人员同时参与多个项目如何分摊?
A:按实际工时占比分摊,需保留工时记录。
Q2:研发设备同时用于生产和研发如何处理?
A:按使用工时或面积等合理方法分摊,需保留分摊依据。
Q3:委托境外研发费用如何加计扣除?
A:委托境外研发费用不超过境内符合条件的研发费用三分之二的部分可以加计扣除。
Q4:研发失败的费用可以加计扣除吗?
A:可以,只要符合研发活动的定义,研发失败的费用也可以加计扣除。
Q5:何时开始享受优惠?
A:企业可在年度中间开始享受,预缴时即可填报加计扣除金额。
---
九、相关法规索引
- 《财政部 税务总局关于进一步完善研发费用税前加计扣除政策的公告》(2023年第7号)
- 《国家税务总局关于进一步落实研发费用加计扣除政策有关问题的公告》(2021年第28号)
- 《国家税务总局关于发布<企业所得税优惠政策事项办理办法>的公告》(2018年第23号)
- 《财政部 国家税务总局 科技部关于完善研究开发费用税前加计扣除政策的通知》(2015年第119号)
"""
创建出口退税报告模板
"""
from docx import Document
from docx.shared import Inches, Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.enum.style import WD_STYLE_TYPE
from docx.oxml.ns import qn
def create_export_rebate_report_template():
doc = Document()
# 设置默认字体
doc.styles['Normal'].font.name = 'SimSun'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
# 封面
doc.add_paragraph()
doc.add_paragraph()
title = doc.add_paragraph()
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run('出口退税计算报告')
run.bold = True
run.font.size = Pt(28)
doc.add_paragraph()
subtitle = doc.add_paragraph()
subtitle.alignment = WD_ALIGN_PARAGRAPH.CENTER
sub_run = subtitle.add_run('(出口货物及发票汇总 / 退税计算明细 / 风险审核报告)')
sub_run.font.size = Pt(14)
doc.add_paragraph()
doc.add_paragraph()
cover_info = doc.add_paragraph()
cover_info.alignment = WD_ALIGN_PARAGRAPH.CENTER
cover_info.add_run('\n\n\n企业名称:____________________\n\n')
cover_info.add_run('报告日期:____________________\n\n')
cover_info.add_run('编制人员:____________________\n\n')
cover_info.add_run('复核人员:____________________')
doc.add_page_break()
# 第一章 出口货物及发票汇总
h1 = doc.add_heading('第一章 出口货物及发票汇总', level=1)
h2 = doc.add_heading('一、报关单汇总表', level=2)
# 报关单汇总表
table1 = doc.add_table(rows=6, cols=6)
table1.style = 'Table Grid'
# 表头
headers1 = ['序号', '报关单号', '商品名称', '数量', '离岸价(FOB)', '目的国']
for i, header in enumerate(headers1):
cell = table1.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
# 示例数据行
data1 = [
['1', 'BJ202401001', '电子产品', '10,000', '50,000.00 USD', '美国'],
['2', 'BJ202401002', '纺织品', '50,000', '30,000.00 USD', '欧盟'],
['3', 'BJ202401003', '机械设备', '100', '80,000.00 USD', '日本'],
['', '', '', '', '', ''],
['', '', '', '', '', ''],
]
for row_idx, row_data in enumerate(data1):
for col_idx, cell_text in enumerate(row_data):
table1.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_sum = doc.add_heading('二、采购发票汇总表', level=2)
# 采购发票汇总表
table2 = doc.add_table(rows=5, cols=6)
table2.style = 'Table Grid'
headers2 = ['序号', '发票号', '商品名称', '价税合计', '税率', '进项税额']
for i, header in enumerate(headers2):
cell = table2.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
data2 = [
['1', 'FP202401001', '原材料A', '113,000.00', '13%', '13,000.00'],
['2', 'FP202401002', '原材料B', '56,500.00', '13%', '6,500.00'],
['3', 'FP202401003', '原材料C', '22,600.00', '13%', '2,600.00'],
['', '', '', '', '', ''],
]
for row_idx, row_data in enumerate(data2):
for col_idx, cell_text in enumerate(row_data):
table2.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_page_break()
# 第二章 退税计算明细
h1_2 = doc.add_heading('第二章 退税计算明细', level=1)
h2_2 = doc.add_heading('一、退税率查询表', level=2)
table3 = doc.add_table(rows=4, cols=4)
table3.style = 'Table Grid'
headers3 = ['商品HS编码', '商品名称', '退税率', '适用增值税率']
for i, header in enumerate(headers3):
cell = table3.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
data3 = [
['8471', '电子产品', '13%', '13%'],
['6201', '纺织品', '13%', '13%'],
['8501', '机械设备', '13%', '13%'],
]
for row_idx, row_data in enumerate(data3):
for col_idx, cell_text in enumerate(row_data):
table3.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_2_2 = doc.add_heading('二、汇率取值记录', level=2)
p = doc.add_paragraph()
p.add_run('汇率来源:').bold = True
p.add_run('中国人民银行外汇牌价\n')
p.add_run('申报当期汇率(中间价):').bold = True
p.add_run('____(填写具体汇率)\n')
p.add_run('汇率取值日期:').bold = True
p.add_run('____年__月__日')
doc.add_paragraph()
h2_2_3 = doc.add_heading('三、退税金额计算表', level=2)
table4 = doc.add_table(rows=6, cols=4)
table4.style = 'Table Grid'
headers4 = ['项目', '计算公式', '金额(元)', '备注']
for i, header in enumerate(headers4):
cell = table4.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
calc_data = [
['出口离岸价(FOB)', '∑各报关单FOB美元×汇率', '', ''],
['免抵退税额', 'FOB人民币×退税率', '', ''],
['不得免征抵扣税额', 'FOB人民币×(退税率-适用税率)', '', ''],
['应纳税额', '销项-进项-不得免征抵扣-上期留抵', '', ''],
['应退税额', 'MIN(应纳税额绝对值,免抵退税额)', '', ''],
]
for row_idx, row_data in enumerate(calc_data):
for col_idx, cell_text in enumerate(row_data):
table4.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_page_break()
# 第三章 风险审核报告
h1_3 = doc.add_heading('第三章 风险审核报告', level=1)
h2_3_1 = doc.add_heading('一、单证匹配检查结果', level=2)
table5 = doc.add_table(rows=4, cols=3)
table5.style = 'Table Grid'
headers5 = ['检查项目', '检查结果', '是否通过']
for i, header in enumerate(headers5):
cell = table5.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
match_data = [
['报关单与发票匹配率', '____%(要求≥98%)', '□ 通过 □ 需补充'],
['单证齐全性', '____份/应____份', '□ 通过 □ 需补充'],
['商品名称规格匹配', '□ 完全匹配 □ 部分匹配', '□ 通过 □ 需调整'],
]
for row_idx, row_data in enumerate(match_data):
for col_idx, cell_text in enumerate(row_data):
table5.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_3_2 = doc.add_heading('二、换汇成本检查', level=2)
p2 = doc.add_paragraph()
p2.add_run('换汇成本计算公式:').bold = True
p2.add_run('采购不含税进价 ÷ 出口美元离岸价\n\n')
p2.add_run('换汇成本区间判定:\n')
p2.add_run('• <5:成本异常偏低,可能存在骗税风险\n')
p2.add_run('• 5-8:正常区间\n')
p2.add_run('• >8:成本偏高,出口竞争力下降\n\n')
p2.add_run('检查结果:换汇成本 = ____(要求在5-8区间内)')
doc.add_paragraph()
h2_3_3 = doc.add_heading('三、异常预警清单', level=2)
table6 = doc.add_table(rows=4, cols=4)
table6.style = 'Table Grid'
headers6 = ['预警级别', '预警项目', '预警详情', '处理建议']
for i, header in enumerate(headers6):
cell = table6.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
warning_data = [
['□ 高风险 □ 中风险 □ 低风险', '', '', ''],
['', '', '', ''],
['', '', '', ''],
]
for row_idx, row_data in enumerate(warning_data):
for col_idx, cell_text in enumerate(row_data):
table6.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_page_break()
# 第四章 申报建议
h1_4 = doc.add_heading('第四章 申报建议', level=1)
h2_4_1 = doc.add_heading('一、操作步骤', level=2)
steps = [
'1. 整理报关单、发票、装箱单、提单等单证',
'2. 核对单证匹配率,确保≥98%',
'3. 登录电子税务局出口退税申报模块',
'4. 录入报关单数据及发票数据',
'5. 确认退税计算结果',
'6. 提交申报并等待审核'
]
for step in steps:
doc.add_paragraph(step)
doc.add_paragraph()
h2_4_2 = doc.add_heading('二、时间节点', level=2)
table7 = doc.add_table(rows=4, cols=2)
table7.style = 'Table Grid'
time_data = [
['事项', '时间要求'],
['月度申报截止', '每月15日前(遇节假日顺延)'],
['申报数据确认', '申报后5个工作日内'],
['退税到账', '审核通过后7-15个工作日'],
]
for row_idx, row_data in enumerate(time_data):
for col_idx, cell_text in enumerate(row_data):
cell = table7.rows[row_idx].cells[col_idx]
cell.text = cell_text
if row_idx == 0:
cell.paragraphs[0].runs[0].bold = True
doc.add_paragraph()
doc.add_paragraph()
# 双人复核签字区
review_section = doc.add_paragraph()
review_section.add_run('\n\n双人复核状态:\n').bold = True
review_section.add_run('□ AI处理完成 □ 人工确认完成\n\n')
review_section.add_run('AI处理人:__________ 日期:__________\n\n')
review_section.add_run('人工复核人:__________ 日期:__________')
# 保存
output_path = 'D:/project/skills/代理记账/complex-business-advisor/assets/report-templates/export-rebate-report-template.docx'
doc.save(output_path)
print(f'已创建:{output_path}')
if __name__ == '__main__':
create_export_rebate_report_template()
"""
创建高新企业认定报告模板
"""
from docx import Document
from docx.shared import Inches, Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn
def create_high_tech_certification_report_template():
doc = Document()
# 设置默认字体
doc.styles['Normal'].font.name = 'SimSun'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
# 封面
doc.add_paragraph()
doc.add_paragraph()
title = doc.add_paragraph()
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run('高新企业认定自评报告')
run.bold = True
run.font.size = Pt(28)
doc.add_paragraph()
subtitle = doc.add_paragraph()
subtitle.alignment = WD_ALIGN_PARAGRAPH.CENTER
sub_run = subtitle.add_run('(企业基本情况 / 核心指标 / 自评打分 / 改进建议)')
sub_run.font.size = Pt(14)
doc.add_paragraph()
doc.add_paragraph()
cover_info = doc.add_paragraph()
cover_info.alignment = WD_ALIGN_PARAGRAPH.CENTER
cover_info.add_run('\n\n\n企业名称:____________________\n\n')
cover_info.add_run('报告年度:____________________\n\n')
cover_info.add_run('编制人员:____________________\n\n')
cover_info.add_run('复核人员:____________________')
doc.add_page_break()
# 第一章 企业基本情况
h1 = doc.add_heading('第一章 企业基本情况', level=1)
table1 = doc.add_table(rows=7, cols=2)
table1.style = 'Table Grid'
basic_data = [
['企业名称', ''],
['统一社会信用代码', ''],
['注册成立时间', ''],
['职工总数(人)', ''],
['其中:科技人员数(人)', ''],
['上年度总收入(万元)', ''],
['其中:高新产品收入(万元)', ''],
]
for row_idx, row_data in enumerate(basic_data):
for col_idx, cell_text in enumerate(row_data):
cell = table1.rows[row_idx].cells[col_idx]
cell.text = cell_text
cell.paragraphs[0].runs[0].bold = True
doc.add_page_break()
# 第二章 核心指标达标情况
h1_2 = doc.add_heading('第二章 核心指标达标情况', level=1)
h2_2_1 = doc.add_heading('一、高新产品收入占比', level=2)
table2 = doc.add_table(rows=4, cols=3)
table2.style = 'Table Grid'
headers2 = ['指标', '数值', '达标要求']
for i, header in enumerate(headers2):
cell = table2.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
income_data = [
['高新产品收入(万元)', '', ''],
['企业总收入(万元)', '', ''],
['高新收入占比', '', '≥60%'],
]
for row_idx, row_data in enumerate(income_data):
for col_idx, cell_text in enumerate(row_data):
table2.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_2_2 = doc.add_heading('二、研发费用占比', level=2)
table3 = doc.add_table(rows=5, cols=3)
table3.style = 'Table Grid'
for i, header in enumerate(headers2):
cell = table3.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
rd_data = [
['近三年研发费用合计(万元)', '', ''],
['近一年销售收入(万元)', '', ''],
['研发费用占比', '', ''],
['销售收入所属档位', '', '对应要求'],
]
for row_idx, row_data in enumerate(rd_data):
for col_idx, cell_text in enumerate(row_data):
table3.rows[row_idx + 1].cells[col_idx].text = cell_text
p = doc.add_paragraph()
p.add_run('\n研发费用占比标准:\n').bold = True
p.add_run('• 销售收入 < 5000万元:≥5%\n')
p.add_run('• 销售收入 5000万-2亿元:≥4%\n')
p.add_run('• 销售收入 > 2亿元:≥3%')
doc.add_paragraph()
h2_2_3 = doc.add_heading('三、科技人员占比', level=2)
table4 = doc.add_table(rows=4, cols=3)
table4.style = 'Table Grid'
for i, header in enumerate(headers2):
cell = table4.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
personnel_data = [
['科技人员数(人)', '', ''],
['职工总数(人)', '', ''],
['科技人员占比', '', '≥10%'],
]
for row_idx, row_data in enumerate(personnel_data):
for col_idx, cell_text in enumerate(row_data):
table4.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_page_break()
# 第三章 自评打分
h1_3 = doc.add_heading('第三章 自评打分', level=1)
h2_3_1 = doc.add_heading('一、六项核心指标达标情况', level=2)
table5 = doc.add_table(rows=7, cols=4)
table5.style = 'Table Grid'
headers5 = ['指标', '标准要求', '实际值', '是否达标']
for i, header in enumerate(headers5):
cell = table5.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
core_data = [
['1.成立时间', '满1年', '', '□ 是 □ 否'],
['2.高新收入占比', '≥60%', '', '□ 是 □ 否'],
['3.研发费用占比', '见附注', '', '□ 是 □ 否'],
['4.科技人员占比', '≥10%', '', '□ 是 □ 否'],
['5.企业所得税率', '15%', '', '□ 是 □ 否'],
['6.研发组织管理', '评分制', '', '□ 是 □ 否'],
]
for row_idx, row_data in enumerate(core_data):
for col_idx, cell_text in enumerate(row_data):
table5.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_3_2 = doc.add_heading('二、评审指标自评', level=2)
table6 = doc.add_table(rows=6, cols=5)
table6.style = 'Table Grid'
headers6 = ['评分指标', '满分', '自评得分', '得分依据', '备注']
for i, header in enumerate(headers6):
cell = table6.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
scoring_data = [
['1.知识产权', '30', '', '', ''],
['2.科技成果转化能力', '30', '', '', ''],
['3.研发组织管理水平', '20', '', '', ''],
['4.企业成长性', '20', '', '', ''],
['合计', '100', '', '要求≥71分', ''],
]
for row_idx, row_data in enumerate(scoring_data):
for col_idx, cell_text in enumerate(row_data):
cell = table6.rows[row_idx + 1].cells[col_idx]
cell.text = cell_text
if row_idx == 4: # 合计行
cell.paragraphs[0].runs[0].bold = True
doc.add_paragraph()
h2_3_3 = doc.add_heading('三、知识产权评分明细', level=2)
table7 = doc.add_table(rows=5, cols=4)
table7.style = 'Table Grid'
headers7 = ['评分项', '分值', '自评得分', '说明']
for i, header in enumerate(headers7):
cell = table7.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
ip_data = [
['技术的先进程度', '≤8', '', '国际领先(8)/国际先进(6)/国内领先(4)/国内先进(2)'],
['对主要产品的核心支持作用', '≤8', '', '强(8)/较强(6)/一般(4)/弱(2)/无(0)'],
['知识产权数量', '≤8', '', 'Ⅰ类发明专利(8)/Ⅱ类5项以上(6)/3-4项(4)/1-3项(2)'],
['知识产权获取方式', '≤6', '', '自主研发(6)/受让并购(4)/独占许可(3)/其他(0)'],
]
for row_idx, row_data in enumerate(ip_data):
for col_idx, cell_text in enumerate(row_data):
table7.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_3_4 = doc.add_heading('四、企业成长性评分明细', level=2)
table8 = doc.add_table(rows=3, cols=4)
table8.style = 'Table Grid'
for i, header in enumerate(headers7[:3]):
cell = table8.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
table8.rows[0].cells[3].text = '说明'
table8.rows[0].cells[3].paragraphs[0].runs[0].bold = True
growth_data = [
['净资产增长率', '≤10', '', '≥35%(9-10分)/≥25%(7-8分)/≥15%(5-6分)/≥5%(3-4分)/>0%(1-2分)'],
['销售收入增长率', '≤10', '', '同上'],
]
for row_idx, row_data in enumerate(growth_data):
for col_idx, cell_text in enumerate(row_data):
table8.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_page_break()
# 第四章 不达标项改进建议
h1_4 = doc.add_heading('第四章 不达标项改进建议', level=1)
h2_4_1 = doc.add_heading('一、综合评价', level=2)
table9 = doc.add_table(rows=4, cols=2)
table9.style = 'Table Grid'
eval_data = [
['评价项目', '评价结果'],
['六项核心指标', '□ 全部通过 □ 部分通过(____/6)'],
['评审得分', '____分(要求≥71分)'],
['综合判定', '□ 通过 □ 待改进 □ 不通过'],
]
for row_idx, row_data in enumerate(eval_data):
for col_idx, cell_text in enumerate(row_data):
cell = table9.rows[row_idx].cells[col_idx]
cell.text = cell_text
if row_idx == 0:
cell.paragraphs[0].runs[0].bold = True
doc.add_paragraph()
h2_4_2 = doc.add_heading('二、不达标项改进建议', level=2)
table10 = doc.add_table(rows=6, cols=5)
table10.style = 'Table Grid'
improve_headers = ['序号', '不达标项', '当前状态', '目标要求', '改进建议']
for i, header in enumerate(improve_headers):
cell = table10.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
improve_data = [
['1', '', '', '', ''],
['2', '', '', '', ''],
['3', '', '', '', ''],
['4', '', '', '', ''],
['5', '', '', '', ''],
]
for row_idx, row_data in enumerate(improve_data):
for col_idx, cell_text in enumerate(row_data):
table10.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_4_3 = doc.add_heading('三、改进时间规划', level=2)
table11 = doc.add_table(rows=5, cols=4)
table11.style = 'Table Grid'
plan_headers = ['改进项', '改进措施', '计划完成时间', '责任人']
for i, header in enumerate(plan_headers):
cell = table11.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
plan_data = [
['', '', '', ''],
['', '', '', ''],
['', '', '', ''],
['', '', '', ''],
]
for row_idx, row_data in enumerate(plan_data):
for col_idx, cell_text in enumerate(row_data):
table11.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_page_break()
# 附录
h1_5 = doc.add_heading('附录:高新企业认定相关法规', level=1)
regulations = [
'1. 《高新技术企业认定管理办法》(国科发火〔2016〕32号)',
'2. 《高新技术企业认定管理工作指引》(国科发火〔2016〕195号)',
'3. 《国家重点支持的高新技术领域》(2016年版)',
'4. 《企业会计准则第6号——无形资产》',
'5. 《企业会计准则第14号——收入》',
]
for reg in regulations:
doc.add_paragraph(reg)
doc.add_paragraph()
# 认定流程
h2 = doc.add_heading('高新企业认定流程', level=2)
p = doc.add_paragraph()
p.add_run('企业自我评价 → 注册登记 → 提交材料 → 专家评审 → 认定报备 → 公示公告 → 颁发证书\n\n')
p.add_run('评审周期:约2-3个月\n')
p.add_run('有效期:三年(到期需重新认定)')
doc.add_paragraph()
# 双人复核签字区
review_section = doc.add_paragraph()
review_section.add_run('\n\n双人复核状态:\n').bold = True
review_section.add_run('□ AI处理完成 □ 人工确认完成\n\n')
review_section.add_run('AI处理人:__________ 日期:__________\n\n')
review_section.add_run('人工复核人:__________ 日期:__________')
# 保存
output_path = 'D:/project/skills/代理记账/complex-business-advisor/assets/report-templates/high-tech-certification-report-template.docx'
doc.save(output_path)
print(f'已创建:{output_path}')
if __name__ == '__main__':
create_high_tech_certification_report_template()
"""
创建研发费用加计扣除报告模板
"""
from docx import Document
from docx.shared import Inches, Pt, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx.enum.table import WD_TABLE_ALIGNMENT
from docx.oxml.ns import qn
def create_rd_expense_deduction_report_template():
doc = Document()
# 设置默认字体
doc.styles['Normal'].font.name = 'SimSun'
doc.styles['Normal']._element.rPr.rFonts.set(qn('w:eastAsia'), '宋体')
# 封面
doc.add_paragraph()
doc.add_paragraph()
title = doc.add_paragraph()
title.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = title.add_run('研发费用加计扣除计算报告')
run.bold = True
run.font.size = Pt(28)
doc.add_paragraph()
subtitle = doc.add_paragraph()
subtitle.alignment = WD_ALIGN_PARAGRAPH.CENTER
sub_run = subtitle.add_run('(研发项目概况 / 研发费用明细 / 加计扣除计算)')
sub_run.font.size = Pt(14)
doc.add_paragraph()
doc.add_paragraph()
cover_info = doc.add_paragraph()
cover_info.alignment = WD_ALIGN_PARAGRAPH.CENTER
cover_info.add_run('\n\n\n企业名称:____________________\n\n')
cover_info.add_run('报告年度:____________________\n\n')
cover_info.add_run('编制人员:____________________\n\n')
cover_info.add_run('复核人员:____________________')
doc.add_page_break()
# 第一章 研发项目概况
h1 = doc.add_heading('第一章 研发项目概况', level=1)
h2 = doc.add_heading('一、研发项目列表', level=2)
table1 = doc.add_table(rows=5, cols=5)
table1.style = 'Table Grid'
headers1 = ['序号', '项目编号', '项目名称', '项目阶段', '研发周期']
for i, header in enumerate(headers1):
cell = table1.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
project_data = [
['1', '', '', '□ 研发中 □ 已完成', ''],
['2', '', '', '□ 研发中 □ 已完成', ''],
['3', '', '', '□ 研发中 □ 已完成', ''],
['', '', '', '', ''],
]
for row_idx, row_data in enumerate(project_data):
for col_idx, cell_text in enumerate(row_data):
table1.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_2 = doc.add_heading('二、项目所处阶段分布', level=2)
table2 = doc.add_table(rows=3, cols=3)
table2.style = 'Table Grid'
phase_data = [
['项目阶段', '项目数量', '占比'],
['研发中', '', ''],
['已完成', '', ''],
]
for row_idx, row_data in enumerate(phase_data):
for col_idx, cell_text in enumerate(row_data):
cell = table2.rows[row_idx].cells[col_idx]
cell.text = cell_text
if row_idx == 0:
cell.paragraphs[0].runs[0].bold = True
doc.add_page_break()
# 第二章 研发费用明细
h1_2 = doc.add_heading('第二章 研发费用明细', level=1)
h2_2_1 = doc.add_heading('一、人员人工费用', level=2)
p = doc.add_paragraph()
p.add_run('包含内容:').bold = True
p.add_run('研发人员工资、奖金、津贴、补贴、基本养老保险、基本医疗保险、失业保险、工伤保险、生育保险和住房公积金\n\n')
p.add_run('归集要求:需有完整的工资表、社保缴纳记录、劳动合同\n\n')
table3 = doc.add_table(rows=4, cols=4)
table3.style = 'Table Grid'
headers3 = ['项目', '金额(元)', '占研发费用比例', '备注']
for i, header in enumerate(headers3):
cell = table3.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
data3 = [
['人员人工费用合计', '', '', ''],
['其中:工资薪金', '', '', ''],
['社保及公积金', '', '', ''],
]
for row_idx, row_data in enumerate(data3):
for col_idx, cell_text in enumerate(row_data):
table3.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_2_2 = doc.add_heading('二、直接投入费用', level=2)
p2 = doc.add_paragraph()
p2.add_run('包含内容:').bold = True
p2.add_run('材料、燃料和动力费用、模具开发费、样品样机购置费、检验费、仪器设备运行维护费等\n\n')
table4 = doc.add_table(rows=4, cols=4)
table4.style = 'Table Grid'
for i, header in enumerate(headers3):
cell = table4.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
data4 = [
['直接投入费用合计', '', '', ''],
['其中:材料费', '', '', ''],
['水电费', '', '', ''],
]
for row_idx, row_data in enumerate(data4):
for col_idx, cell_text in enumerate(row_data):
table4.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_2_3 = doc.add_heading('三、折旧费用', level=2)
table5 = doc.add_table(rows=3, cols=4)
table5.style = 'Table Grid'
for i, header in enumerate(headers3):
cell = table5.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
data5 = [
['折旧费用合计', '', '', ''],
['研发设备折旧', '', '', ''],
]
for row_idx, row_data in enumerate(data5):
for col_idx, cell_text in enumerate(row_data):
table5.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_2_4 = doc.add_heading('四、无形资产摊销', level=2)
table6 = doc.add_table(rows=3, cols=4)
table6.style = 'Table Grid'
for i, header in enumerate(headers3):
cell = table6.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
data6 = [
['无形资产摊销合计', '', '', ''],
['软件摊销', '', '', ''],
]
for row_idx, row_data in enumerate(data6):
for col_idx, cell_text in enumerate(row_data):
table6.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_paragraph()
h2_2_5 = doc.add_heading('五、其他费用', level=2)
p5 = doc.add_paragraph()
p5.add_run('包含内容:').bold = True
p5.add_run('技术图书资料费、资料翻译费、专家咨询费、研发保险费、知识产权申请费等\n\n')
p5.add_run('限价要求:').bold = True
p5.add_run('不得超过研发费用总额的10%\n\n')
table7 = doc.add_table(rows=3, cols=4)
table7.style = 'Table Grid'
for i, header in enumerate(headers3):
cell = table7.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
data7 = [
['其他费用合计', '', '', ''],
['其他费用占比', '', '(要求≤10%)', ''],
]
for row_idx, row_data in enumerate(data7):
for col_idx, cell_text in enumerate(row_data):
table7.rows[row_idx + 1].cells[col_idx].text = cell_text
doc.add_page_break()
# 第三章 加计扣除计算
h1_3 = doc.add_heading('第三章 加计扣除计算', level=1)
h2_3_1 = doc.add_heading('一、研发费用辅助账汇总', level=2)
table8 = doc.add_table(rows=8, cols=3)
table8.style = 'Table Grid'
headers8 = ['费用类别', '金额(元)', '占总费用比例']
for i, header in enumerate(headers8):
cell = table8.rows[0].cells[i]
cell.text = header
cell.paragraphs[0].runs[0].bold = True
summary_data = [
['人员人工', '', ''],
['直接投入', '', ''],
['折旧费用', '', ''],
['无形资产摊销', '', ''],
['其他费用', '', ''],
['研发费用合计', '', '100%'],
['其他费用占比', '', '(需≤10%)'],
]
for row_idx, row_data in enumerate(summary_data):
for col_idx, cell_text in enumerate(row_data):
cell = table8.rows[row_idx + 1].cells[col_idx]
cell.text = cell_text
if row_idx == 5: # 合计行
cell.paragraphs[0].runs[0].bold = True
doc.add_paragraph()
h2_3_2 = doc.add_heading('二、可加计扣除金额计算', level=2)
table9 = doc.add_table(rows=5, cols=2)
table9.style = 'Table Grid'
calc_data = [
['项目', '金额/比例'],
['研发费用合计(元)', ''],
['加计扣除比例', '100%(2023年起)'],
['可加计扣除金额(元)', ''],
['适用企业所得税税率', '□ 25% □ 15%(高新企业)'],
]
for row_idx, row_data in enumerate(calc_data):
for col_idx, cell_text in enumerate(row_data):
cell = table9.rows[row_idx].cells[col_idx]
cell.text = cell_text
if row_idx == 0:
cell.paragraphs[0].runs[0].bold = True
doc.add_paragraph()
h2_3_3 = doc.add_heading('三、节约税款测算', level=2)
table10 = doc.add_table(rows=3, cols=2)
table10.style = 'Table Grid'
saving_data = [
['测算场景', '节约税款(元)'],
['法定税率25%下', ''],
['高新企业税率15%下', ''],
]
for row_idx, row_data in enumerate(saving_data):
for col_idx, cell_text in enumerate(row_data):
cell = table10.rows[row_idx].cells[col_idx]
cell.text = cell_text
if row_idx == 0:
cell.paragraphs[0].runs[0].bold = True
doc.add_paragraph()
h2_3_4 = doc.add_heading('四、优惠备案建议', level=2)
p6 = doc.add_paragraph()
p6.add_run('备案方式:').bold = True
p6.add_run('□ 季度预缴申报时享受 □ 年度汇算清缴时填报\n\n')
p6.add_run('申报时间节点:\n')
p6.add_run('• 季度预缴:每季度结束后15日内\n')
p6.add_run('• 年度汇算:次年5月31日前\n\n')
p6.add_run('适用政策依据:').bold = True
p6.add_run('\n《财政部 税务总局关于进一步完善研发费用税前加计扣除政策的公告》(2023年第7号)')
doc.add_page_break()
# 第四章 政策依据
h1_4 = doc.add_heading('第四章 政策依据', level=1)
policies = [
'1. 《财政部 税务总局关于进一步完善研发费用税前加计扣除政策的公告》(2023年第7号)',
'2. 《国家税务总局关于进一步落实研发费用加计扣除政策有关问题的公告》(2021年第28号)',
'3. 《国家税务总局关于发布<企业所得税优惠政策事项办理办法>的公告》(2018年第23号)',
'4. 《财政部 国家税务总局 科技部关于完善研究开发费用税前加计扣除政策的通知》(2015年第119号)',
]
for policy in policies:
doc.add_paragraph(policy)
doc.add_paragraph()
# 备查资料清单
h2_4_1 = doc.add_heading('备查资料清单', level=2)
docs_list = [
'□ 研发项目立项文件',
'□ 研发人员名单及工资表',
'□ 研发费用辅助账',
'□ 研发设备折旧计算表',
'□ 无形资产摊销计算表',
'□ 委托研发合同(如有)',
'□ 会计凭证及原始凭证',
]
for item in docs_list:
doc.add_paragraph(item)
doc.add_paragraph()
# 双人复核签字区
review_section = doc.add_paragraph()
review_section.add_run('\n\n双人复核状态:\n').bold = True
review_section.add_run('□ AI处理完成 □ 人工确认完成\n\n')
review_section.add_run('AI处理人:__________ 日期:__________\n\n')
review_section.add_run('人工复核人:__________ 日期:__________')
# 保存
output_path = 'D:/project/skills/代理记账/complex-business-advisor/assets/report-templates/rd-expense-deduction-report-template.docx'
doc.save(output_path)
print(f'已创建:{output_path}')
if __name__ == '__main__':
create_rd_expense_deduction_report_template()
"""
跨区域经营企业所得税分摊计算
支持总分公司、跨省市分摊
输入:
- 总机构基本信息
- 各分公司信息(收入、工资、资产)
- 各省市职工工资比例
输出:
- 总分机构所得税分摊表
- 各地应纳税额
- 地方优惠政策的适用性判断
"""
import json
import argparse
from typing import Dict, List, Optional, Any, Tuple
from dataclasses import dataclass, asdict
from datetime import datetime
@dataclass
class Headquarters:
"""总机构信息"""
name: str # 总机构名称
location: str # 所在地
tax_type: str # 纳税人类型(一般纳税人/小规模纳税人)
total_income: float # 总收入
total_payroll: float # 职工薪酬总额
total_assets: float # 资产总额
applicable_rate: float # 适用税率
is_high_tech: bool # 是否高新技术企业
@dataclass
class Branch:
"""分支机构信息"""
branch_id: str # 分支机构编号
name: str # 分支机构名称
location: str # 所在地(省/市)
income: float # 营业收入
payroll: float # 职工薪酬
assets: float # 资产
is_local_assessment: bool # 是否就地预缴
applicable_policies: List[str] # 适用的当地优惠政策
class CrossRegionTaxAllocator:
"""跨区域所得税分摊计算器"""
# 分摊权重(可调整)
WEIGHT_INCOME = 0.5 # 收入权重
WEIGHT_PAYROLL = 0.5 # 工资权重
# 分摊比例(固定)
HQ_SHARE = 50 # 总机构分摊比例
BRANCH_SHARE = 50 # 分支机构分摊比例
# 地区优惠政策汇总
REGIONAL_POLICIES = {
"西部地区": {
"provinces": ["重庆", "四川", "贵州", "云南", "西藏", "陕西", "甘肃",
"青海", "宁夏", "新疆", "内蒙", "广西"],
"policy": "西部大开发15%优惠税率",
"condition": "符合产业目录"
},
"东北地区": {
"provinces": ["辽宁", "吉林", "黑龙江"],
"policy": "装备制造业等15%优惠",
"condition": "特定产业"
},
"海南自贸港": {
"provinces": ["海南"],
"policy": "2025年前鼓励类15%;2035年实质性运营全部15%",
"condition": "实质性运营"
},
"粤港澳大湾区": {
"provinces": ["广州", "深圳", "珠海", "东莞", "惠州", "佛山", "中山", "江门", "肇庆"],
"policy": "高新技术企业15%",
"condition": "高新技术企业"
},
"长三角示范区": {
"provinces": ["上海", "苏州", "嘉兴"],
"policy": "高新技术企业15%",
"condition": "高新技术企业"
},
"雄安新区": {
"provinces": ["雄安"],
"policy": "符合产业目录15%",
"condition": "符合产业目录"
}
}
def __init__(self):
self.headquarters: Optional[Headquarters] = None
self.branches: List[Branch] = []
self.total_tax: float = 0.0
def set_headquarters(self, hq: Headquarters):
"""设置总机构信息"""
self.headquarters = hq
def add_branch(self, branch: Branch):
"""添加分支机构"""
self.branches.append(branch)
def set_total_tax(self, tax: float):
"""设置总应纳所得税额"""
self.total_tax = tax
def identify_region(self, location: str) -> Optional[str]:
"""识别所属区域"""
for region, info in self.REGIONAL_POLICIES.items():
for prov in info["provinces"]:
if prov in location:
return region
return None
def calculate_allocation_ratio(self) -> Dict[str, float]:
"""
计算各分支机构分摊比例
分摊比例 = (分支机构收入/总机构收入) × 权重1
+ (分支机构工资/总机构工资) × 权重2
Returns:
各分支机构分摊比例
"""
if not self.headquarters:
raise ValueError("未设置总机构信息")
total_income = self.headquarters.total_income
total_payroll = self.headquarters.total_payroll
ratios = {}
for branch in self.branches:
income_ratio = (branch.income / total_income * self.WEIGHT_INCOME) if total_income > 0 else 0
payroll_ratio = (branch.payroll / total_payroll * self.WEIGHT_PAYROLL) if total_payroll > 0 else 0
ratios[branch.branch_id] = income_ratio + payroll_ratio
return ratios
def calculate_allocation(self) -> Dict[str, Any]:
"""
计算所得税分摊
Returns:
分摊计算结果
"""
if not self.headquarters:
raise ValueError("未设置总机构信息")
# 计算各分支机构分摊比例
ratios = self.calculate_allocation_ratio()
# 计算税款分摊
hq_tax = self.total_tax * (self.HQ_SHARE / 100)
branch_allocations = []
total_branch_tax = 0.0
for branch in self.branches:
ratio = ratios[branch.branch_id]
branch_tax = self.total_tax * (self.BRANCH_SHARE / 100) * ratio
# 计算当地应纳税额(考虑地方优惠)
local_tax = branch_tax
# 识别区域政策
region = self.identify_region(branch.location)
branch_allocations.append({
"branch_id": branch.branch_id,
"branch_name": branch.name,
"location": branch.location,
"region": region,
"income": branch.income,
"payroll": branch.payroll,
"allocation_ratio": ratio * 100,
"pre_tax_amount": branch_tax,
"local_tax_amount": local_tax,
"applicable_policies": branch.applicable_policies,
"is_local_assessment": branch.is_local_assessment
})
total_branch_tax += branch_tax
result = {
"total_tax": self.total_tax,
"hq_allocation": {
"name": self.headquarters.name,
"location": self.headquarters.location,
"ratio": self.HQ_SHARE,
"tax_amount": hq_tax,
"is_high_tech": self.headquarters.is_high_tech,
"applicable_rate": self.headquarters.applicable_rate
},
"branch_allocations": branch_allocations,
"total_branch_tax": total_branch_tax,
"verification": {
"hq_branch_sum": hq_tax + total_branch_tax,
"differs_from_total": abs(hq_tax + total_branch_tax - self.total_tax) > 0.01
}
}
return result
def analyze_regional_policies(self) -> Dict[str, Any]:
"""
分析各地政策适用性
Returns:
政策分析结果
"""
if not self.headquarters:
raise ValueError("未设置总机构信息")
policy_analysis = {
"hq_location": self.headquarters.location,
"hq_region": self.identify_region(self.headquarters.location),
"branch_policies": []
}
# 总机构所在地政策
if policy_analysis["hq_region"]:
region_info = self.REGIONAL_POLICIES[policy_analysis["hq_region"]]
policy_analysis["hq_policy"] = {
"region": policy_analysis["hq_region"],
"policy": region_info["policy"],
"condition": region_info["condition"]
}
# 各分支机构政策
for branch in self.branches:
region = self.identify_region(branch.location)
branch_policy = {
"branch_name": branch.name,
"location": branch.location,
"region": region
}
if region:
region_info = self.REGIONAL_POLICIES[region]
branch_policy["applicable"] = {
"policy": region_info["policy"],
"condition": region_info["condition"],
"meets_condition": len(branch.applicable_policies) > 0 or region == "海南自贸港"
}
else:
branch_policy["applicable"] = {
"policy": "无特殊优惠政策",
"condition": "不适用"
}
policy_analysis["branch_policies"].append(branch_policy)
return policy_analysis
def calculate_tax_burden_comparison(self) -> Dict[str, Any]:
"""
计算税负差异对比
Returns:
税负对比分析
"""
if not self.headquarters:
raise ValueError("未设置总机构信息")
# 假设应纳税所得额(基于收入估算)
estimated_profit = self.headquarters.total_income * 0.1 # 假设利润率10%
# 不同情况下的税负
standard_tax = estimated_profit * 0.25 # 法定25%
if self.headquarters.is_high_tech:
hq_tax = estimated_profit * 0.15 # 高新15%
else:
region = self.identify_region(self.headquarters.location)
if region in ["西部地区", "海南自贸港"]:
hq_tax = estimated_profit * 0.15 # 地区优惠15%
else:
hq_tax = standard_tax
comparison = {
"estimated_profit": estimated_profit,
"scenarios": [
{
"scenario": "一般企业(25%)",
"tax_rate": 25,
"tax_amount": standard_tax
},
{
"scenario": "高新技术企业(15%)",
"tax_rate": 15,
"tax_amount": estimated_profit * 0.15
},
{
"scenario": f"总部位于{self.identify_region(self.headquarters.location) or '一般地区'}(15%)",
"tax_rate": 15,
"tax_amount": hq_tax
}
],
"potential_saving": standard_tax - hq_tax
}
return comparison
def run_full_analysis(self) -> Dict[str, Any]:
"""
执行完整分析
Returns:
完整分析报告
"""
allocation = self.calculate_allocation()
policy_analysis = self.analyze_regional_policies()
burden_comparison = self.calculate_tax_burden_comparison()
report = {
"report_date": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"headquarters": asdict(self.headquarters) if self.headquarters else None,
"branches": [asdict(b) for b in self.branches],
"total_tax": self.total_tax,
"allocation_result": allocation,
"policy_analysis": policy_analysis,
"tax_burden_comparison": burden_comparison
}
return report
def load_data_from_json(json_file: str) -> Dict[str, Any]:
"""从JSON文件加载数据"""
with open(json_file, 'r', encoding='utf-8') as f:
return json.load(f)
def save_report_to_json(report: Dict[str, Any], output_file: str):
"""保存报告到JSON文件"""
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(report, f, ensure_ascii=False, indent=2)
def main():
parser = argparse.ArgumentParser(description="跨区域企业所得税分摊计算脚本")
parser.add_argument("--data-file", "-d", required=True, help="输入数据JSON文件路径")
parser.add_argument("--output", "-o", help="输出报告JSON文件路径")
args = parser.parse_args()
# 创建计算器
allocator = CrossRegionTaxAllocator()
# 加载数据
data = load_data_from_json(args.data_file)
# 设置总机构
allocator.set_headquarters(Headquarters(**data["headquarters"]))
# 添加分支机构
for item in data.get("branches", []):
allocator.add_branch(Branch(**item))
# 设置总税额
allocator.set_total_tax(data["total_tax"])
# 执行分析
report = allocator.run_full_analysis()
# 输出报告
print("\n" + "="*60)
print("跨区域经营企业所得税分摊分析报告")
print("="*60)
hq = report["headquarters"]
print(f"\n总机构:{hq['name']}")
print(f"所在地:{hq['location']}")
print(f"是否高新技术企业:{'是' if hq['is_high_tech'] else '否'}")
print(f"\n分支机构数量:{len(report['branches'])}")
for branch in report["branches"]:
print(f" - {branch['name']}({branch['location']})")
print(f"\n【总分摊计算】")
alloc = report["allocation_result"]
print(f"企业应纳所得税额:{alloc['total_tax']:,.2f} 元")
print(f"总机构分摊(50%):{alloc['hq_allocation']['tax_amount']:,.2f} 元")
print(f"分支机构分摊(50%):{alloc['total_branch_tax']:,.2f} 元")
print(f"\n【分支机构分摊明细】")
for ba in alloc["branch_allocations"]:
print(f" {ba['branch_name']}:{ba['pre_tax_amount']:,.2f} 元(分摊比例{ba['allocation_ratio']:.2f}%)")
if ba["region"]:
print(f" 所属区域:{ba['region']}")
print(f"\n【政策分析】")
pa = report["policy_analysis"]
if "hq_policy" in pa:
print(f" 总机构所在地政策:{pa['hq_policy']['policy']}")
print(f"\n【税负对比】")
tc = report["tax_burden_comparison"]
print(f" 估算应纳税所得额:{tc['estimated_profit']:,.2f} 元")
print(f" 潜在节税空间:{tc['potential_saving']:,.2f} 元")
# 保存报告
if args.output:
save_report_to_json(report, args.output)
print(f"\n报告已保存至:{args.output}")
print("\n" + "="*60)
if __name__ == "__main__":
main()
"""
出口退税计算脚本
支持两种类型:
- 生产型企业:免抵退计算
- 外贸型企业:先征后退计算
输入:
- 报关单数据(商品编码、出口数量、离岸价、汇率)
- 采购发票数据(商品名称、金额、税率)
- 退税率表
输出:
- 退税金额
- 免抵退汇总表
- 风险预警列表
"""
import json
import argparse
from typing import Dict, List, Optional, Any
from dataclasses import dataclass, asdict
from datetime import datetime
@dataclass
class CustomsDeclaration:
"""报关单数据"""
declaration_id: str # 报关单号
hs_code: str # 商品HS编码
goods_name: str # 商品名称
quantity: float # 出口数量
fob_usd: float # 离岸价(美元)
destination_country: str # 目的国
declaration_date: str # 报关日期
@dataclass
class PurchaseInvoice:
"""采购发票数据"""
invoice_id: str # 发票号
goods_name: str # 商品名称
amount_with_tax: float # 价税合计(含税金额)
tax_rate: float # 税率
invoice_date: str # 开票日期
@dataclass
class RebateRate:
"""退税率信息"""
hs_code: str # 商品HS编码
rebate_rate: float # 退税率
applicable_tax_rate: float # 适用增值税率
class ExportRebateCalculator:
"""出口退税计算器"""
# 2024年主要商品退税率参考表(实际以税务局确认为准)
DEFAULT_REBATE_RATES = {
"8471": {"rebate_rate": 13, "applicable_tax_rate": 13}, # 计算机
"8501": {"rebate_rate": 13, "applicable_tax_rate": 13}, # 电机
"6201": {"rebate_rate": 13, "applicable_tax_rate": 13}, # 服装
"7204": {"rebate_rate": 0, "applicable_tax_rate": 13}, # 钢铁废料
"1001": {"rebate_rate": 9, "applicable_tax_rate": 9}, # 小麦
}
def __init__(self, enterprise_type: str = "production"):
"""
初始化计算器
Args:
enterprise_type: "production" (生产型) 或 "trading" (外贸型)
"""
if enterprise_type not in ("production", "trading"):
raise ValueError("企业类型必须是 'production' (生产型) 或 'trading' (外贸型)")
self.enterprise_type = enterprise_type
self.exchange_rate: float = 0.0 # 汇率(申报当期央行中间价)
self.customs_data: List[CustomsDeclaration] = []
self.invoice_data: List[PurchaseInvoice] = []
self.risk_warnings: List[Dict[str, Any]] = []
def set_exchange_rate(self, rate: float, source: str = "中国人民银行"):
"""
设置汇率
Args:
rate: 汇率(人民币/美元中间价)
source: 汇率来源
"""
self.exchange_rate = rate
self.exchange_rate_source = source
def add_customs_declaration(self, declaration: CustomsDeclaration):
"""添加报关单数据"""
self.customs_data.append(declaration)
def add_purchase_invoice(self, invoice: PurchaseInvoice):
"""添加采购发票数据"""
self.invoice_data.append(invoice)
def get_rebate_rate(self, hs_code: str) -> Optional[RebateRate]:
"""
获取退税率
Args:
hs_code: 商品HS编码(前6位)
Returns:
退税率信息,未找到返回None
"""
prefix = hs_code[:6]
if prefix in self.DEFAULT_REBATE_RATES:
rates = self.DEFAULT_REBATE_RATES[prefix]
return RebateRate(
hs_code=prefix,
rebate_rate=rates["rebate_rate"],
applicable_tax_rate=rates["applicable_tax_rate"]
)
# 尝试更短的匹配
for key, rates in self.DEFAULT_REBATE_RATES.items():
if hs_code.startswith(key):
return RebateRate(
hs_code=key,
rebate_rate=rates["rebate_rate"],
applicable_tax_rate=rates["applicable_tax_rate"]
)
return None
def calculate_production_type(self) -> Dict[str, Any]:
"""
生产型企业免抵退计算
计算公式:
- 当期免抵退税不得免征和抵扣税额 = 当期出口货物离岸价 × 外汇人民币折合率 ×(出口货物退税率 - 适用税率)
- 当期应纳税额 = 当期内销货物销项税额 -(当期进项税额 - 当期免抵退税不得免征和抵扣税额)- 上期留抵税额
- 当期免抵退税额 = 当期出口货物离岸价 × 外汇人民币折合率 × 出口货物退税率
- 当期应退税额 = min(当期应纳税额绝对值,当期免抵退税额)
Returns:
包含各项计算结果的字典
"""
total_fob_usd = sum(d.fob_usd for d in self.customs_data)
total_fob_cny = total_fob_usd * self.exchange_rate
# 按商品汇总,计算不得免征抵扣税额
total_non_deductible = 0.0
total_rebate_amount = 0.0
goods_details = []
for customs in self.customs_data:
rebate_info = self.get_rebate_rate(customs.hs_code)
if rebate_info:
# 不得免征和抵扣税额
non_deductible = customs.fob_usd * self.exchange_rate * \
(rebate_info.rebate_rate - rebate_info.applicable_tax_rate) / 100
# 免抵退税额
rebate = customs.fob_usd * self.exchange_rate * rebate_info.rebate_rate / 100
total_non_deductible += non_deductible
total_rebate_amount += rebate
goods_details.append({
"declaration_id": customs.declaration_id,
"goods_name": customs.goods_name,
"hs_code": customs.hs_code,
"fob_usd": customs.fob_usd,
"fob_cny": customs.fob_usd * self.exchange_rate,
"rebate_rate": rebate_info.rebate_rate,
"applicable_tax_rate": rebate_info.applicable_tax_rate,
"non_deductible": non_deductible,
"rebate_amount": rebate
})
# 计算进项税额(用于计算应纳税额)
total_input_tax = sum(
inv.amount_with_tax / (1 + inv.tax_rate / 100) * (inv.tax_rate / 100)
for inv in self.invoice_data
)
# 组装结果
result = {
"enterprise_type": "生产型",
"calculation_details": {
"total_fob_usd": total_fob_usd,
"exchange_rate": self.exchange_rate,
"exchange_rate_source": getattr(self, 'exchange_rate_source', '未知'),
"total_fob_cny": total_fob_cny,
"total_input_tax": total_input_tax,
"total_non_deductible": total_non_deductible,
"total_rebate_amount": total_rebate_amount
},
"goods_details": goods_details,
"risk_warnings": self.risk_warnings
}
return result
def calculate_trading_type(self) -> Dict[str, Any]:
"""
外贸型企业先征后退计算
计算公式:
- 应退税额 = 收购不含税购进金额 × 退税率
- 收购不含税购进金额 = 采购发票价税合计 / (1 + 税率)
Returns:
包含各项计算结果的字典
"""
total_rebate = 0.0
invoice_details = []
for invoice in self.invoice_data:
# 查找对应的报关单(按商品名称匹配)
matched_customs = None
for customs in self.customs_data:
if customs.goods_name == invoice.goods_name:
matched_customs = customs
break
# 计算不含税购进金额
purchase_ex_tax = invoice.amount_with_tax / (1 + invoice.tax_rate / 100)
# 获取退税率
rebate_rate = 0.0
hs_code = ""
if matched_customs:
rebate_info = self.get_rebate_rate(matched_customs.hs_code)
if rebate_info:
rebate_rate = rebate_info.rebate_rate
hs_code = matched_customs.hs_code
# 计算应退税额
rebate_amount = purchase_ex_tax * rebate_rate / 100
total_rebate += rebate_amount
invoice_details.append({
"invoice_id": invoice.invoice_id,
"goods_name": invoice.goods_name,
"hs_code": hs_code,
"amount_with_tax": invoice.amount_with_tax,
"purchase_ex_tax": purchase_ex_tax,
"tax_rate": invoice.tax_rate,
"rebate_rate": rebate_rate,
"rebate_amount": rebate_amount,
"matched_customs_id": matched_customs.declaration_id if matched_customs else None
})
result = {
"enterprise_type": "外贸型",
"calculation_details": {
"total_rebate_amount": total_rebate,
"invoice_count": len(self.invoice_data)
},
"invoice_details": invoice_details,
"risk_warnings": self.risk_warnings
}
return result
def check_match_rate(self) -> Dict[str, Any]:
"""
检查报关单与发票匹配率
匹配率 = 匹配的报关单金额 / 报关单总金额 × 100%
要求:≥98%
Returns:
匹配率检查结果
"""
total_customs_amount = sum(d.fob_usd for d in self.customs_data)
matched_amount = 0.0
unmatched = []
for customs in self.customs_data:
matched = False
for invoice in self.invoice_data:
if customs.goods_name == invoice.goods_name:
matched = True
matched_amount += customs.fob_usd
break
if not matched:
unmatched.append({
"declaration_id": customs.declaration_id,
"goods_name": customs.goods_name,
"fob_usd": customs.fob_usd
})
match_rate = (matched_amount / total_customs_amount * 100) if total_customs_amount > 0 else 0
result = {
"match_rate": match_rate,
"total_customs_amount": total_customs_amount,
"matched_amount": matched_amount,
"unmatched_items": unmatched,
"passed": match_rate >= 98
}
if match_rate < 98:
self.risk_warnings.append({
"type": "match_rate",
"level": "high",
"message": f"报关单与发票匹配率 {match_rate:.2f}% 低于98%要求",
"details": unmatched
})
return result
def check_exchange_cost(self) -> Dict[str, Any]:
"""
检查换汇成本
换汇成本 = 采购不含税进价 / 出口美元离岸价
合理区间:5-8
Returns:
换汇成本检查结果
"""
results = []
for customs in self.customs_data:
# 查找对应的采购发票
matched_invoice = None
for invoice in self.invoice_data:
if customs.goods_name == invoice.goods_name:
matched_invoice = invoice
break
if matched_invoice:
purchase_ex_tax = matched_invoice.amount_with_tax / (1 + matched_invoice.tax_rate / 100)
purchase_cny = purchase_ex_tax
export_usd = customs.fob_usd
if export_usd > 0:
exchange_cost = purchase_cny / export_usd
is_normal = 5 <= exchange_cost <= 8
result = {
"declaration_id": customs.declaration_id,
"goods_name": customs.goods_name,
"purchase_cny": purchase_cny,
"export_usd": export_usd,
"exchange_cost": exchange_cost,
"is_normal": is_normal
}
if not is_normal:
level = "high" if exchange_cost < 5 else "medium"
self.risk_warnings.append({
"type": "exchange_cost",
"level": level,
"message": f"换汇成本 {exchange_cost:.2f} 超出合理区间(5-8)",
"details": result
})
results.append(result)
return {
"exchange_cost_details": results,
"has_anomaly": any(not r["is_normal"] for r in results)
}
def run_full_calculation(self) -> Dict[str, Any]:
"""
执行完整计算(包含风险检查)
Returns:
完整的计算结果报告
"""
# 执行匹配率检查
match_check = self.check_match_rate()
# 执行换汇成本检查
exchange_cost_check = self.check_exchange_cost()
# 根据企业类型执行退税计算
if self.enterprise_type == "production":
rebate_calc = self.calculate_production_type()
else:
rebate_calc = self.calculate_trading_type()
# 组装完整报告
report = {
"report_date": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"enterprise_type": rebate_calc["enterprise_type"],
"customs_declarations": [asdict(d) for d in self.customs_data],
"purchase_invoices": [asdict(inv) for inv in self.invoice_data],
"match_check": match_check,
"exchange_cost_check": exchange_cost_check,
"rebate_calculation": rebate_calc,
"total_rebate_amount": rebate_calc["calculation_details"].get("total_rebate_amount", 0),
"risk_warnings": self.risk_warnings
}
return report
def load_data_from_json(json_file: str) -> Dict[str, Any]:
"""从JSON文件加载数据"""
with open(json_file, 'r', encoding='utf-8') as f:
return json.load(f)
def save_report_to_json(report: Dict[str, Any], output_file: str):
"""保存报告到JSON文件"""
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(report, f, ensure_ascii=False, indent=2)
def main():
parser = argparse.ArgumentParser(description="出口退税计算脚本")
parser.add_argument("--type", "-t", choices=["production", "trading"],
default="production", help="企业类型:production(生产型) 或 trading(外贸型)")
parser.add_argument("--exchange-rate", "-e", type=float, required=True,
help="汇率(人民币/美元)")
parser.add_argument("--data-file", "-d", help="输入数据JSON文件路径")
parser.add_argument("--output", "-o", help="输出报告JSON文件路径")
args = parser.parse_args()
# 创建计算器
calculator = ExportRebateCalculator(enterprise_type=args.type)
calculator.set_exchange_rate(args.exchange_rate)
# 如果提供了数据文件,加载数据
if args.data_file:
data = load_data_from_json(args.data_file)
# 加载报关单数据
for item in data.get("customs_declarations", []):
calculator.add_customs_declaration(CustomsDeclaration(**item))
# 加载采购发票数据
for item in data.get("purchase_invoices", []):
calculator.add_purchase_invoice(PurchaseInvoice(**item))
# 执行计算
report = calculator.run_full_calculation()
# 输出报告
print("\n" + "="*60)
print("出口退税计算报告")
print("="*60)
print(f"\n企业类型:{report['enterprise_type']}")
print(f"报关单数量:{len(report['customs_declarations'])}")
print(f"采购发票数量:{len(report['purchase_invoices'])}")
print(f"\n【匹配率检查】")
print(f" 匹配率:{report['match_check']['match_rate']:.2f}%")
print(f" 是否通过:{'是' if report['match_check']['passed'] else '否'}")
print(f"\n【换汇成本检查】")
for detail in report['exchange_cost_check'].get('exchange_cost_details', []):
status = "正常" if detail['is_normal'] else "异常"
print(f" {detail['goods_name']}: {detail['exchange_cost']:.2f} ({status})")
print(f"\n【退税计算结果】")
rebate_details = report['rebate_calculation']['calculation_details']
print(f" 出口离岸价(FOB):{rebate_details.get('total_fob_usd', 0):,.2f} 美元")
print(f" 折合人民币:{rebate_details.get('total_fob_cny', 0):,.2f} 元")
print(f" 应退税额:{report['total_rebate_amount']:,.2f} 元")
if report['risk_warnings']:
print(f"\n【风险预警】({len(report['risk_warnings'])}项)")
for warning in report['risk_warnings']:
print(f" [{warning['level'].upper()}] {warning['message']}")
# 保存报告
if args.output:
save_report_to_json(report, args.output)
print(f"\n报告已保存至:{args.output}")
print("\n" + "="*60)
if __name__ == "__main__":
main()
"""
研发费用加计扣除计算脚本
2023年起适用比例:100%
输入:
- 研发项目列表
- 各项目费用明细(人员人工/直接投入/折旧/无形资产/其他)
输出:
- 研发费用辅助账汇总表
- 加计扣除金额计算表
- 优惠备案建议
费用归集规则:
- 人员人工:研发人员工资社保(需劳动合同+社保记录)
- 直接投入:材料、水电、测试费等(需发票)
- 折旧费用:研发设备折旧(需固定资产卡片)
- 无形资产摊销:专利、软件摊销
- 其他费用:不超过可扣除总额的10%
"""
import json
import argparse
from typing import Dict, List, Optional, Any
from dataclasses import dataclass, asdict
from datetime import datetime
@dataclass
class RDProject:
"""研发项目信息"""
project_id: str # 项目编号
project_name: str # 项目名称
start_date: str # 开始日期
end_date: str # 结束日期
status: str # 研发中/已完成
@dataclass
class RDExpense:
"""研发费用明细"""
project_id: str # 项目编号
expense_category: str # 费用类别
amount: float # 金额
description: str # 说明
voucher_id: str # 凭证号
expense_date: str # 日期
class RDExpenseCalculator:
"""研发费用加计扣除计算器"""
# 费用类别
CATEGORIES = [
"人员人工",
"直接投入",
"折旧费用",
"无形资产摊销",
"其他费用"
]
# 2023年最新政策
SUPER_DEDUCTION_RATE = 100 # 加计扣除比例
CIT_RATE = 25 # 企业所得税税率(法定)
HIGH_TECH_CIT_RATE = 15 # 高新技术企业优惠税率
# 其他费用上限比例
OTHER_EXPENSE_LIMIT = 10
# 负面清单行业
NEGATIVE_LIST = [
"烟草制造业",
"住宿和餐饮业",
"批发和零售业",
"房地产业",
"租赁和商务服务业",
"娱乐业"
]
def __init__(self):
self.projects: List[RDProject] = []
self.expenses: List[RDExpense] = []
self.industry: str = ""
def add_project(self, project: RDProject):
"""添加研发项目"""
self.projects.append(project)
def add_expense(self, expense: RDExpense):
"""添加研发费用"""
self.expenses.append(expense)
def set_industry(self, industry: str):
"""设置所属行业"""
self.industry = industry
def is_in_negative_list(self) -> bool:
"""检查是否在负面清单"""
return self.industry in self.NEGATIVE_LIST
def calculate_by_project(self) -> Dict[str, Any]:
"""
按项目汇总研发费用
Returns:
各项目费用汇总
"""
project_expenses = {}
for project in self.projects:
project_expenses[project.project_id] = {
"project_id": project.project_id,
"project_name": project.project_name,
"status": project.status,
"expenses": {cat: 0.0 for cat in self.CATEGORIES},
"total": 0.0
}
for expense in self.expenses:
if expense.project_id in project_expenses:
cat = expense.expense_category
if cat in project_expenses[expense.project_id]["expenses"]:
project_expenses[expense.project_id]["expenses"][cat] += expense.amount
project_expenses[expense.project_id]["total"] += expense.amount
return project_expenses
def calculate_summary(self) -> Dict[str, Any]:
"""
计算研发费用汇总及加计扣除
Returns:
汇总计算结果
"""
project_expenses = self.calculate_by_project()
# 计算各类别合计
category_totals = {cat: 0.0 for cat in self.CATEGORIES}
grand_total = 0.0
for pid, data in project_expenses.items():
for cat, amount in data["expenses"].items():
category_totals[cat] += amount
grand_total += data["total"]
# 检查其他费用是否超限
other_ratio = (category_totals["其他费用"] / grand_total * 100) if grand_total > 0 else 0
other_expense_valid = other_ratio <= self.OTHER_EXPENSE_LIMIT
# 计算可加计扣除金额
if self.is_in_negative_list():
super_deduction_amount = 0.0
is_eligible = False
reason = f"所属行业'{self.industry}'在负面清单内,不适用加计扣除政策"
else:
super_deduction_amount = grand_total * (self.SUPER_DEDUCTION_RATE / 100)
is_eligible = True
reason = "符合加计扣除条件"
# 计算节税金额
tax_saving_standard = super_deduction_amount * (self.CIT_RATE / 100)
tax_saving_high_tech = super_deduction_amount * (self.HIGH_TECH_CIT_RATE / 100)
result = {
"category_totals": category_totals,
"grand_total": grand_total,
"other_expense_ratio": other_ratio,
"other_expense_valid": other_expense_valid,
"super_deduction_rate": self.SUPER_DEDUCTION_RATE,
"super_deduction_amount": super_deduction_amount,
"is_eligible": is_eligible,
"reason": reason,
"tax_saving_standard": tax_saving_standard, # 法定税率下节税
"tax_saving_high_tech": tax_saving_high_tech, # 高新企业税率下节税
"projects": project_expenses
}
return result
def generate_auxiliary_account(self) -> List[Dict[str, Any]]:
"""
生成研发费用辅助账
Returns:
辅助账明细列表
"""
auxiliary = []
for expense in self.expenses:
project_name = ""
for proj in self.projects:
if proj.project_id == expense.project_id:
project_name = proj.project_name
break
auxiliary.append({
"project_id": expense.project_id,
"project_name": project_name,
"expense_category": expense.expense_category,
"amount": expense.amount,
"description": expense.description,
"voucher_id": expense.voucher_id,
"expense_date": expense.expense_date
})
# 按项目和日期排序
auxiliary.sort(key=lambda x: (x["project_id"], x["expense_date"]))
return auxiliary
def generate_filing_suggestions(self, summary: Dict[str, Any]) -> Dict[str, Any]:
"""
生成优惠备案建议
Args:
summary: 费用汇总结果
Returns:
备案建议
"""
suggestions = {
"is_eligible": summary["is_eligible"],
"super_deduction_amount": summary["super_deduction_amount"],
"filing_deadlines": {
"pre_payment": "每季度结束后15日内",
"annual_settlement": "次年5月31日前"
},
"required_documents": [
"研发项目立项文件",
"研发人员名单及工资表",
"研发费用辅助账",
"研发设备折旧计算表",
"无形资产摊销计算表",
"委托研发合同(如有)",
"会计凭证及原始凭证"
],
"applicable_policy": "《财政部 税务总局关于进一步完善研发费用税前加计扣除政策的公告》(2023年第7号)",
"notes": []
}
# 添加注意事项
if not summary["other_expense_valid"]:
suggestions["notes"].append(
f"其他费用占比 {summary['other_expense_ratio']:.1f}% 超过10%上限,需调整"
)
if not summary["is_eligible"]:
suggestions["notes"].append(
f"企业所属行业 '{self.industry}' 在负面清单内,不适用加计扣除政策"
)
return suggestions
def run_full_calculation(self, year: int = 2024) -> Dict[str, Any]:
"""
执行完整计算
Args:
year: 所属年度
Returns:
完整报告
"""
summary = self.calculate_summary()
auxiliary = self.generate_auxiliary_account()
filing = self.generate_filing_suggestions(summary)
# 按项目汇总
project_summary = []
for pid, data in summary["projects"].items():
project_summary.append({
"project_id": pid,
"project_name": data["project_name"],
"status": data["status"],
"total_expense": data["total"]
})
report = {
"report_date": datetime.now().strftime("%Y-%m-%d %H:%M:%S"),
"report_year": year,
"industry": self.industry,
"is_in_negative_list": self.is_in_negative_list(),
"summary": {
"category_totals": summary["category_totals"],
"grand_total": summary["grand_total"],
"other_expense_ratio": summary["other_expense_ratio"],
"other_expense_valid": summary["other_expense_valid"]
},
"super_deduction": {
"rate": summary["super_deduction_rate"],
"amount": summary["super_deduction_amount"],
"is_eligible": summary["is_eligible"],
"reason": summary["reason"]
},
"tax_saving": {
"standard_rate": summary["tax_saving_standard"],
"high_tech_rate": summary["tax_saving_high_tech"]
},
"projects": project_summary,
"auxiliary_account": auxiliary,
"filing_suggestions": filing
}
return report
def load_data_from_json(json_file: str) -> Dict[str, Any]:
"""从JSON文件加载数据"""
with open(json_file, 'r', encoding='utf-8') as f:
return json.load(f)
def save_report_to_json(report: Dict[str, Any], output_file: str):
"""保存报告到JSON文件"""
with open(output_file, 'w', encoding='utf-8') as f:
json.dump(report, f, ensure_ascii=False, indent=2)
def main():
parser = argparse.ArgumentParser(description="研发费用加计扣除计算脚本")
parser.add_argument("--year", "-y", type=int, default=2024, help="所属年度")
parser.add_argument("--industry", "-i", default="制造业", help="所属行业")
parser.add_argument("--data-file", "-d", help="输入数据JSON文件路径")
parser.add_argument("--output", "-o", help="输出报告JSON文件路径")
args = parser.parse_args()
# 创建计算器
calculator = RDExpenseCalculator()
calculator.set_industry(args.industry)
# 如果提供了数据文件,加载数据
if args.data_file:
data = load_data_from_json(args.data_file)
# 加载项目数据
for item in data.get("projects", []):
calculator.add_project(RDProject(**item))
# 加载费用数据
for item in data.get("expenses", []):
calculator.add_expense(RDExpense(**item))
# 执行计算
report = calculator.run_full_calculation(args.year)
# 输出报告
print("\n" + "="*60)
print(f"研发费用加计扣除计算报告({args.year}年度)")
print("="*60)
print(f"\n所属行业:{report['industry']}")
print(f"是否在负面清单:{'是' if report['is_in_negative_list'] else '否'}")
print(f"\n【研发费用汇总】")
for cat, amount in report['summary']['category_totals'].items():
print(f" {cat}:{amount:,.2f} 元")
print(f" 合计:{report['summary']['grand_total']:,.2f} 元")
print(f"\n【其他费用占比检查】")
print(f" 占比:{report['summary']['other_expense_ratio']:.2f}%")
print(f" 是否合规:{'是' if report['summary']['other_expense_valid'] else '否'}")
print(f"\n【加计扣除计算】")
deduction = report['super_deduction']
print(f" 加计扣除比例:{deduction['rate']}%")
print(f" 可加计扣除金额:{deduction['amount']:,.2f} 元")
print(f" 是否符合条件:{'是' if deduction['is_eligible'] else '否'}")
if not deduction['is_eligible']:
print(f" 原因:{deduction['reason']}")
print(f"\n【节税测算】")
tax_saving = report['tax_saving']
print(f" 法定税率(25%)下节约税款:{tax_saving['standard_rate']:,.2f} 元")
print(f" 高新企业税率(15%)下节约税款:{tax_saving['high_tech_rate']:,.2f} 元")
print(f"\n【研发项目】")
for proj in report['projects']:
print(f" {proj['project_name']}({proj['project_id']}):{proj['total_expense']:,.2f} 元")
print(f"\n【备案建议】")
filing = report['filing_suggestions']
print(f" 季度预缴申报:{filing['filing_deadlines']['pre_payment']}")
print(f" 年度汇算清缴:{filing['filing_deadlines']['annual_settlement']}")
print(f" 适用政策:{filing['applicable_policy']}")
# 保存报告
if args.output:
save_report_to_json(report, args.output)
print(f"\n报告已保存至:{args.output}")
print("\n" + "="*60)
if __name__ == "__main__":
main()
kingdee:
name: "金蝶KIS"
supported_versions: ["KIS14.0", "KIS15.0", "KIS16.0"]
export_format: "docx"
features:
- name: "凭证"
fields: ["日期", "凭证号", "摘要", "科目编码", "科目名称", "借方金额", "贷方金额"]
- name: "科目余额表"
fields: ["科目编码", "科目名称", "期初余额", "借方发生", "贷方发生", "期末余额"]
- name: "日记账"
fields: ["日期", "凭证号", "摘要", "借方金额", "贷方金额", "余额"]
yonyou:
name: "用友U8/U9"
supported_versions: ["U8v13.0", "U9v5.0", "NC6.5"]
export_format: "xlsx"
features:
- name: "记账凭证"
fields: ["制单日期", "凭证字号", "会计科目", "金额", "附件数"]
- name: "明细账"
fields: ["日期", "凭证号", "摘要", "科目", "借方", "贷方", "方向", "余额"]
chanjet:
name: "畅捷通T+/T6"
supported_versions: ["T+13.0", "T6v6.1"]
export_format: "xlsx"
features:
- name: "凭证库"
fields: ["凭证日期", "凭证编号", "科目编码", "科目名称", "借方", "贷方"]
- name: "科目余额表"
fields: ["科目编码", "科目名称", "期初余额", "本期借方", "本期贷方", "期末余额"]
"""
报告生成器
同时生成MD存档和Word交付文档
"""
from .md_generator import MarkdownGenerator
from .docx_generator import DocxGenerator
__all__ = ['MarkdownGenerator', 'DocxGenerator']
"""
风险监控守卫技能包 - Python工具脚本
"""
from .tax_risk_calc import TaxRiskCalculator
from .account_health_score import AccountHealthScorer
from .policy_impact_eval import PolicyImpactEvaluator
__all__ = [
"TaxRiskCalculator",
"AccountHealthScorer",
"PolicyImpactEvaluator",
]