# [P1] 公司间科目与余额计算、手工记录入账 ## 背景 `web/app.js::pairData()` 生成演示金额。已确认手工记录不会进入计算,四个会计科目和公司对结果也没有服务端核算引擎。 ## 范围 - 以规范事件和已批准手工记录为唯一期间发生额来源。 - 建立应收、应付、其他应收、其他应付的确定性分类规则和人工确认流程。 - 定义双方视角、借贷方向、冲销/归还和净额计算规则。 - 输出公司总借方/贷方、方向明细、对方公司+科目汇总、逐笔事件和原始证据。 - 每个余额显示截止日、期初、本期借贷、期末结果和未决金额。 - 手工记录审批前排除,审批通过后幂等进入规范事件;退回/异常不影响余额。 ## 验收标准 - [ ] 计算不读取静态 HTML、`pairData()` 或客户端 `localStorage`。 - [ ] A 对 B 的应收与 B 对 A 的应付金额绝对值一致,方向相反。 - [ ] 已批准手工记录只影响一次;状态回退或冲销有审计事件,不修改原事实。 - [ ] 科目不确定时进入审核,未确认金额单独展示且不混入已确认余额。 - [ ] 任意公司总额可下钻到方向、对方+科目、事件和银行源行。 - [ ] 金额全程使用 Decimal/数据库定点类型,舍入规则有文档和测试。 ## 测试 - 双方守恒、还款、冲销、手工记录状态、科目歧义、截止日和未决金额测试。 ## 依赖 Issue 006。