结算操作会产生财务影响,并且需要
super_admin角色。
结算生命周期
- **Generate drafts:**为收入符合条件的美容师生成草稿。
- **Submit:**提交选定草稿以供审批。
- **Approve:**在相应权限下批准结算。
- **Disburse:**打开确认对话框,其中银行身份信息为只读。只有确认才会向服务商发送请求;取消对话框不会改变结算记录。若未配置 Xendit,请求会在写入结算状态/尝试记录前被拒绝。
发放前检查
- 核对美容师、金额和最新状态。
- 检查银行身份信息;必需资料不完整时,对话框会提示并禁用确认按钮。
- 检查最新状态之前,不要重复操作。
- 使用 CSV 对账;导出保留当前状态筛选条件。
审批不代表转账已完成。只有结算状态和参考编号得到确认后,才可报告款项已发出。管理端 E2E 不会发起真实转账。


操作演示视频
视频使用隔离演示数据录制英文管理后台,并放慢播放以便跟随操作。敏感值已遮蔽。未执行外部付款或服务商发送。
录制日期:
admin generates, approves, and fails closed on payout disbursement without provider configuration 0:14
已覆盖步骤(英文)
- Generate an eligible payout draft, submit it, and approve it.
- Inspect and cancel the complete-bank disbursement dialog without initiating a transfer.
- With provider configuration absent, confirm the request and verify the UI rejects it while the payout and provider references remain unchanged.
- Filter the list by approved status and click the filtered CSV export.
admin cannot disburse an approved payout with incomplete bank details 0:07
已覆盖步骤(英文)
- Open the incomplete-bank payout dialog and verify the required bank warning and disabled confirmation.
- Cancel the dialog and verify payout status and provider references are unchanged.
regular admin cannot generate payout drafts without elevated authorization 0:04
已覆盖步骤(英文)
- Attempt to generate payout drafts as a regular admin.
- Verify access is denied and the payout count is unchanged.
admin exports each operational finance list with its CSV schema 0:06
已覆盖步骤(英文)
- Open the payouts list and click its visible CSV export control.
- Verify the export response schema and that it contains data.
测试边界(英文)
- The complete-bank confirmation journey runs with XENDIT_SECRET_KEY empty, so service configuration rejection prevents the provider call; no external transfer success is attempted. The separate incomplete-bank fixture disables confirmation and also makes no provider call.