企业 税务

Odoo 企业版 Tax Return 手工建单为什么不是“补一张历史申报”而已:归档重建、重复控制与跨周期 override 讲透

基于 account return creation wizard 测试,讲清手工建单的日期校验、归档后重建、audit 允许重复与强制跨周期 override。

企业 会计
进阶 开发者 1 分钟阅读
0 评论 0 点赞 0 收藏 5 阅读

补历史申报、补审计工作底稿时,很多人会直接想“手工建一张就好”。但 Odoo 的 account.return.creation.wizard 并不是无脑开口子,而是对日期合法性、重复性和申报类型做了精细区分。

参考入口:

  • enterprise/account_reports/tests/test_account_returns.py
  • enterprise/account_reports/models/account_return.py

一、日期不符合周期时,系统先告警而不是默认放行

test_return_manual_creation_wizard_wrong_dates 说明,wizard 会通过 show_warning_wrong_dates 告诉你当前日期范围不符合 return type 的周期边界。比如月报却给了跨月不整齐区间,系统先提醒你“这不是标准期间”。

二、必要时可以强制 override,但这会改变后续报表选项

test_return_manual_creation_force_wrong_dates 证明,只要显式带 force_periodicity_violation=True,系统仍可生成非标准期间的 return,而且生成后的 report options 会切到 custom date filter。也就是说,override 不是偷偷放过,而是把“这是个例外期间”显式固化进报表上下文。

三、归档旧申报后,可以为同期间重建一张新的 active return

test_return_creation_for_archived_return_month 展示了很实用的边界:旧 return 归档后,同一期间可以再建一张新的 active return;但旧 return 不能再无脑 unarchive,否则会和新记录冲突。

四、audit return 和普通 account return 的重复策略不同

test_audit_manual_creation_allow_duplicates 说明 audit 类 return 允许同期间出现多份,而普通申报并不默认这样做。因为 audit 更像工作底稿或审阅版本,允许并行存在;法定申报则更强调唯一正式口径。

五、实战建议

  • 手工建单前先确认你是“补正式申报”还是“补审计工作稿”。
  • 归档旧单后重建新单是可行路径,但不要再把旧单强行 unarchive。
  • 强制 override 只能解决特殊期问题,不能代替周期治理。

六、结论

Tax Return 的手工建单能力,不是给你绕开规则,而是给你在例外场景下仍能留下清晰语义:哪张是正式期间、哪张是归档替代、哪张只是 audit 副本。

DISCUSSION

评论区

想参与讨论?先 登录 再发表评论。
还没有评论,你可以成为第一个留言的人。