Files
uniprop-manual/prop-acc/concepts/deposit/deposit-vs-adhoc-vs-prepaid.md
Willie 461de616f1 deposit 子模块 · 轮 1:6 概念 + 知识地图 + 导航更新
写 6 个核心概念到 prop-acc/concepts/deposit/:
- deposit-account-vs-transaction:账户(余额状态)+ 流水(不可变历史)双对象模式
- account-state-machine:Active / Frozen / Closed 三状态机,canDeposit/canWithdraw 守护
- payer-types:6 种缴款人(Owner/Tenant/Contractor/Company/Supplier/Other),业户账户 vs 三方账户
- transaction-types:3 种合法流水(deposit/refund/forfeiture),已弃用 adjustment 的审计取舍
- red-receipt-design:退款扣罚走红字 CollectionOrder + Receipt(金额正负 vs 新枚举)
- deposit-vs-adhoc-vs-prepaid:三个子模块会计本质区别(收入 / 预收 / 代管)

新建子模块知识地图:
- prop-acc/maps/deposit-knowledge-map.md:6 概念入口 + 18 场景预占清单 + 跨域引用 + 代码索引

更新导航:
- prop-acc/index.md:七大子模块表保证金行,链 deposit 知识地图,状态 🟡
- prop-acc/maps/knowledge-map.md:域总图同步

下一轮:18 个场景文档(deposit/scenarios/),按本知识地图骨架填充。

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-25 22:09:51 +08:00

5.8 KiB

title, aliases, tags, audience, status, sub_feature, last_review, code_version
title aliases tags audience status sub_feature last_review code_version
prop-acc · deposit · 押金 vs 一次性收费 vs 预存款
押金 vs 一次性收费 vs 预存款
三种业户给钱的本质区别
deposit vs adhoc vs prepaid
概念
prop-acc
保证金
跨子模块对比
业户
业务人员
财务
已发布 deposit 2026-05-25 2026-05-22

押金 vs 一次性收费 vs 预存款

三个看似都是"业户给钱"的子模块,会计本质完全不同。本文说明何时用哪个,以及为什么不能合并。

一句话区别

子模块 业户给钱的性质 钱属于谁 何时该用
adhoc(一次性收费) 物业收入 物业 业户买东西/服务,钱归物业
prepaid(预存款) 物业预收账款(负债) 业户(未使用前) 业户先存,以后抵扣账单
deposit(保证金) 物业其他应付款(负债) 业户(代管中) 业户交给物业代为保管,迟早要还(全退或扣损还差)

核心差异图

flowchart TD
  subgraph "adhoc 一次性收费(收入)"
    A1[业户付 30 买 IC 卡] --> A2[钱进物业账户]
    A2 --> A3[计入收入科目]
    A3 --> A4[完成,业户拿货走人]
  end

  subgraph "prepaid 预存款(预收)"
    B1[业户预存 5000] --> B2[钱进物业账户但**记为负债**]
    B2 --> B3[每月账单出来时,从预存款扣]
    B3 --> B4[扣的部分才进收入,余额仍是负债]
  end

  subgraph "deposit 保证金(代管)"
    C1[业户交 5000 装修押金] --> C2[钱进物业账户但**记为负债**]
    C2 --> C3{装修结束}
    C3 -->|无损坏| C4[退回 5000,清账]
    C3 -->|有损坏 800| C5[扣 800 进收入,退 4200,清账]
  end

字段层面的差异

维度 adhoc prepaid deposit
主表 acc_ad_hoc_events acc_prepaid_accounts acc_deposit_accounts
流水表 acc_collection_orders + acc_receipts(一次性) acc_prepaid_transactions acc_deposit_transactions
账户对象 无(每笔独立) PrepaidAccount(余额状态) DepositAccount(余额状态 + 三状态机)
是否可冻结 N/A N/A Frozen 状态
退款机制 [adhoc-void-after-payment] 提现 / 转账(待补具体场景) 红字 CollectionOrder(red-receipt-design)
会计科目 收入 预收账款 其他应付款
凭证(Receipt) 单笔正数 充值正数,扣减不出 Receipt(在账单上体现) 缴款正数 / 退款扣罚负数(红字)

业务判定:某场景该归哪个?

判定三连问:

  1. "这笔钱以后要不要还给业户?"
    • 不还 → adhoc(收入)
    • 要还 → 看下一题
  2. "业户是为'以后买什么'存的,还是为'万一坏了赔'存的?"
    • 以后买东西 → prepaid(预收)
    • 担保不出事 → deposit(押金)
  3. "如果业户不出事,钱原额回去吗?"
    • 是(原额回) → deposit
    • 否(用完才退余) → prepaid

边界场景举例

[!question] "充电桩电费充值"是哪种?

理论上是 prepaid(预存抵扣)。但本系统提供了简化版本走 adhoc-flow-a-counter-ev-charging-topup —— 把它当一次性"购买充电码"卖,业户充值码自己输入。

严格说,长期需要"逐次扣减、随时查余额"的应该走 prepaid 模块(待补)。

[!question] "泳票套票(夏季 10 次)"是哪种?

理论上是 prepaid(预付 10 次)。但目前作为 adhoc 处理:业户一次买 10 张泳票,系统一次出 10 张。

等业务需要"实时显示剩余次数"时再迁到 prepaid。

[!question] "装修押金"为什么不是 prepaid?

因为押金不抵扣账单,只用来"押到事情结束"。无损则原退,有损则扣差。这是担保性质,不是预付性质。

业户视角

[!example] 业户王先生的某月账单

王先生这个月的财务往来:

  • 3 月 1 日:小区门禁卡丢了,前台补办 → ¥30(adhoc 收入)
  • 3 月 15 日:为方便每月免到柜台缴,预存 ¥5,000 到账户 → ¥5,000(prepaid 预收)
  • 4 月 1 日:物业费账单 ¥1,200 出账,自动从预存款扣 → 预存款余额变 ¥3,800
  • 3 月 20 日:开始装修,交 ¥5,000 装修保证金 → ¥5,000(deposit 代管)
  • 5 月 30 日:装修完无损,押金原额退 → ¥-5,000(deposit 红字)

三种钱走不同账本、不同凭证、不同退款机制。业户拿到的收据上能区分:

  • adhoc 收据:门禁卡 ¥30
  • prepaid 收据:预存款充值 ¥5,000
  • deposit 收据(缴款):装修保证金缴纳 ¥5,000
  • deposit 收据(退款):装修保证金退还 ¥-5,000 ← 红字

业务人员视角

后台菜单也是三个独立入口:

prop-acc/
├── 一次性收费(AdHocEvent)
├── 预存款(PrepaidAccount)         ← 待补
└── 保证金(DepositAccount)

每个有自己的资源(Filament Resource)、自己的列表/详情/操作。不要试图在一个地方处理三种业务 —— 字段、状态、凭证、操作权限都不一样。

财务视角

月底关账时:

科目 来源 余额方向
收入 SUM(adhoc completed CO actual_amount) + SUM(prepaid 已扣减部分) + SUM(deposit forfeiture 进收入部分) 贷方(正)
预收账款 SUM(prepaid 未抵扣余额) 贷方(负债)
其他应付款 SUM(deposit balance) 贷方(负债)

押金账户和预存款账户的总余额就是物业应还给业户的钱,必须能与银行账户里"对应代管资金"对账平衡。详见 audit-monthly-deposit-balance

相关文档