Files
juwan-frontend/lib/domain/income.ts
T

34 lines
873 B
TypeScript

import type { Shop } from "@/lib/types"
type ShopCommission = Pick<Shop, "commissionType" | "commissionValue">
export interface IncomeCalculation {
income: number
commissionLabel: string
}
function roundCurrency(amount: number) {
return Number(amount.toFixed(2))
}
export function calculateOrderIncome(totalPrice: number, shop?: ShopCommission): IncomeCalculation {
if (!shop) {
return {
income: roundCurrency(totalPrice),
commissionLabel: "独立接单无抽成",
}
}
if (shop.commissionType === "percentage") {
return {
income: roundCurrency(totalPrice * (1 - shop.commissionValue / 100)),
commissionLabel: `扣除${shop.commissionValue}%抽成`,
}
}
return {
income: roundCurrency(Math.max(0, totalPrice - shop.commissionValue)),
commissionLabel: `扣除¥${shop.commissionValue}固定抽成`,
}
}