73 lines
1.9 KiB
TypeScript
73 lines
1.9 KiB
TypeScript
import type * as recordTypes from '../types/recordTypes'
|
|
|
|
export function filterOccupantsByLotOccupantType(
|
|
lotOccupancy: recordTypes.LotOccupancy,
|
|
lotOccupantType: string
|
|
): recordTypes.LotOccupancyOccupant[] {
|
|
const lotOccupantTypeLowerCase = lotOccupantType.toLowerCase()
|
|
|
|
const occupants = (lotOccupancy.lotOccupancyOccupants ?? []).filter(
|
|
(possibleOccupant) => {
|
|
return (
|
|
(possibleOccupant.lotOccupantType as string).toLowerCase() ===
|
|
lotOccupantTypeLowerCase
|
|
)
|
|
}
|
|
)
|
|
|
|
return occupants
|
|
}
|
|
|
|
export function getFieldValueByOccupancyTypeField(
|
|
lotOccupancy: recordTypes.LotOccupancy,
|
|
occupancyTypeField: string
|
|
): string | undefined {
|
|
const occupancyTypeFieldLowerCase = occupancyTypeField.toLowerCase()
|
|
|
|
const field = (lotOccupancy.lotOccupancyFields ?? []).find(
|
|
(possibleField) => {
|
|
return (
|
|
(possibleField.occupancyTypeField as string).toLowerCase() ===
|
|
occupancyTypeFieldLowerCase
|
|
)
|
|
}
|
|
)
|
|
|
|
if (field) {
|
|
return field.lotOccupancyFieldValue
|
|
}
|
|
|
|
return undefined
|
|
}
|
|
|
|
export function getFeesByFeeCategory(
|
|
lotOccupancy: recordTypes.LotOccupancy,
|
|
feeCategory: string,
|
|
feeCategoryContains = false
|
|
): recordTypes.LotOccupancyFee[] {
|
|
const feeCategoryLowerCase = feeCategory.toLowerCase()
|
|
|
|
const fees = (lotOccupancy.lotOccupancyFees ?? []).filter((possibleFee) => {
|
|
return feeCategoryContains
|
|
? (possibleFee.feeCategory as string)
|
|
.toLowerCase()
|
|
.includes(feeCategoryLowerCase)
|
|
: (possibleFee.feeCategory as string).toLowerCase() ===
|
|
feeCategoryLowerCase
|
|
})
|
|
|
|
return fees
|
|
}
|
|
|
|
export function getTransactionTotal(
|
|
lotOccupancy: recordTypes.LotOccupancy
|
|
): number {
|
|
let transactionTotal = 0
|
|
|
|
for (const transaction of lotOccupancy.lotOccupancyTransactions ?? []) {
|
|
transactionTotal += transaction.transactionAmount
|
|
}
|
|
|
|
return transactionTotal
|
|
}
|