汇总近期业务改动:催缴菜单与后端、样本信息快捷登记与进度、运费关联、客户档案扩展、协议优惠/期次与押金划转,并同步 SQL 迁移与管理端页面收敛。 Co-authored-by: Cursor <cursoragent@cursor.com>
27 lines
1.0 KiB
TypeScript
27 lines
1.0 KiB
TypeScript
/** 采集协议单 · 缴费模式工具(已废除硬编码价目表) */
|
|
|
|
export type PayMode = 'dj' | 'fq' | 'djfq' | 'fgd'
|
|
|
|
export function getActiveSampleCount(samples: Array<{ sampleStatus?: string }>): 1 | 2 {
|
|
const n = samples.filter((s) => String(s.sampleStatus || '') !== 'yzf').length
|
|
return (n >= 2 ? 2 : 1) as 1 | 2
|
|
}
|
|
|
|
export function isInstallmentPayMode(payMode: string): boolean {
|
|
return payMode === 'fq' || payMode === 'djfq'
|
|
}
|
|
|
|
/** 需要配置多期 schedule 的模式(分期 / 趸交+分期 / 分改趸) */
|
|
export function isMultiSchedulePayMode(payMode: string): boolean {
|
|
return payMode === 'fq' || payMode === 'djfq' || payMode === 'fgd'
|
|
}
|
|
|
|
export function availablePayModes(sampleCount: 1 | 2): PayMode[] {
|
|
return sampleCount === 2 ? ['dj', 'djfq', 'fq', 'fgd'] : ['dj', 'fq', 'fgd']
|
|
}
|
|
|
|
/** 校验缴费模式与样本数是否匹配(如 djfq 仅双样本) */
|
|
export function isPayModeValidForSampleCount(payMode: PayMode, sampleCount: 1 | 2): boolean {
|
|
return availablePayModes(sampleCount).includes(payMode)
|
|
}
|