# Fluxent 记账逻辑 ## dc_flag 语义 `dc_flag` 表示**资金流向**(从用户角度),不反转: - `DEBIT` = 资金流出(支出) - `CREDIT` = 资金流入(收入) ## 账户类型与余额变化 `account_type` 决定余额如何变化: | 账户类型 | DEBIT(支出) | CREDIT(收入) | |----------|--------------|---------------| | `ASSET`(资产) | 余额减少 | 余额增加 | | `LIABILITY`(负债) | 负债减少(还款) | 负债增加(消费/借款) | | `EQUITY`(权益) | 权益减少 | 权益增加 | ## 信用卡交易示例 | 交易 | 账户 | account_type | dc_flag | 余额变化 | |------|------|-------------|---------|---------| | 用信用卡买咖啡 ¥30 | 信用卡 | LIABILITY | DEBIT | 负债 +30 | | 从储蓄卡还信用卡 ¥5000 | 储蓄卡 | ASSET | DEBIT | 余额 -5000 | | 从储蓄卡还信用卡 ¥5000 | 信用卡 | LIABILITY | CREDIT | 负债 -5000 | ## 会计恒等式 同币种时校验: - **CREDIT(收入)**: `posting_amt = txn_amt + surcharge_amt - comm_amt - disc_amt` - **DEBIT(支出)**: `posting_amt = txn_amt + surcharge_amt + comm_amt - disc_amt` ## 金额/币种对校验 可选的金额/币种对(`posting_amt/ccy`、`comm_amt/ccy`、`surcharge_amt/ccy`、`disc_amt/ccy`)必须同时为 `None` 或同时有值。