Files
one-pipe-system/src/utils/business/employeeCollectionActing.ts
luo 0d77a7d55b
All checks were successful
构建并部署前端到测试环境 / deploy (push) Successful in 55s
fix: some
2026-10-14 17:08:32 +08:00

35 lines
1.3 KiB
TypeScript

import type { EmployeeCollectionDebtorSnapshot } from '@/types/api/employeeCollection'
interface ResponsibleBill {
debtor_account_id?: number | null
debtor_snapshot?: EmployeeCollectionDebtorSnapshot | null
}
interface CurrentEmployee {
id?: number
name?: string | null
user_type?: number
}
const normalizedName = (value: unknown): string => (typeof value === 'string' ? value.trim() : '')
export const isEmployeeCollectionBillSelf = (
bill: ResponsibleBill | undefined,
employee: CurrentEmployee
): boolean => {
const employeeName = normalizedName(employee.name)
const debtorName = normalizedName(bill?.debtor_snapshot?.account_name)
// 用户确认:账单负责员工与 me.user.name 同名时,本人办理,不发送代办原因。
if (employeeName && debtorName && employeeName === debtorName) return true
const debtorId = Number(bill?.debtor_snapshot?.account_id ?? bill?.debtor_account_id)
const employeeId = Number(employee.id)
return debtorId > 0 && employeeId > 0 && debtorId === employeeId
}
export const requiresEmployeeCollectionActingReason = (
bills: Array<ResponsibleBill | undefined>,
employee: CurrentEmployee
): boolean =>
Number(employee.user_type) === 1 &&
(bills.length === 0 || bills.some((bill) => !isEmployeeCollectionBillSelf(bill, employee)))