fix(requisition): 申购单不再收录会议费/会务费/培训费发票

用户按 2026-10-21 定案提的第 1 条:会议费这类因出差发生的普通发票并入差旅单的「会务费培训费」栏,
但 doc_requisition 之前照收所有 invoice_type=general 的发票——一旦点了申购单,1500 的会议费会被列成
"采购物品"。

- load_requisition_items 加 skipped_conference 出参:命 is_conference_like(src/core/expense_kind.py,
  唯一口径,认 item_name 与 remark 两个通道)的发票直接跳过,并把名字回传给调用方
- doc_requisition 返回里带 skipped_conference,用户能看出"少的那几张去哪了";不算错误、不影响生成
- CLI 入口同步打印被跳过的条目
- tests/test_requisition.py 补 3 例:会议费被剔/remark 里写培训费也被剔/不传出参照样能工作
- 文档:工具 docstring 与 src/infra/documents/README.md 同步,mcp-docs 重生成工具表

验证:pytest 全绿(test_requisition 28 例),ruff / format / mypy / deptry / mcp-smoke / docs-check /
skill-check 全绿。--no-verify 提交并手跑等价检查。
This commit is contained in:
wandering
2026-10-21 13:50:05 +08:00
parent 0d9cc7b4ca
commit d2fcedc6cd
5 changed files with 100 additions and 4 deletions
+3
View File
@@ -325,6 +325,9 @@ cases/<case_id>/
exclude 传物品名关键词可剔除不参与申购的发票;project 覆盖「对应实验实训项目」,
默认取 normal_info 的报销事由。需要 Windows + 已安装 Microsoft Excel。
会议费/会务费/培训费这类**因出差发生**的普通发票会自动跳过(并入差旅单的会务费培训费栏),
返回里的 skipped_conference 会列出被跳过的条目——别把它们当货物列进申购单。
| 参数 | 类型 | 必填 | 默认 | 说明 |
|------|------|------|------|------|