@coursebuilder/core
Version:
Core package for Course Builder
32 lines (29 loc) • 711 B
text/typescript
type GetCalculatePriceOptions = {
unitPrice: number
percentOfDiscount?: number
quantity?: number
fixedDiscount?: number
}
/**
* Calculates a total price for a given quantity with a fractional discount
* applied.
*
* @param {string} unitPrice
* @param {number} percentOfDiscount
* @param {number} quantity
* @param {number} fixedDiscount
*/
export function getCalculatedPrice({
unitPrice,
percentOfDiscount = 0,
quantity = 1,
fixedDiscount = 0,
}: GetCalculatePriceOptions) {
const fullPrice = unitPrice * quantity
const discountMultiplier = 1 - percentOfDiscount
const calculatedPrice = (
(fullPrice - fixedDiscount) *
discountMultiplier
).toFixed(2)
return Number(calculatedPrice)
}