321 lines
8.1 KiB
TypeScript
321 lines
8.1 KiB
TypeScript
import * as configFunctions from './functions.config.js'
|
|
|
|
import { getLotOccupantTypes as getLotOccupantTypesFromDatabase } from './lotOccupancyDB/getLotOccupantTypes.js'
|
|
|
|
import { getLotStatuses as getLotStatusesFromDatabase } from './lotOccupancyDB/getLotStatuses.js'
|
|
|
|
import { getLotTypes as getLotTypesFromDatabase } from './lotOccupancyDB/getLotTypes.js'
|
|
|
|
import { getOccupancyTypes as getOccupancyTypesFromDatabase } from './lotOccupancyDB/getOccupancyTypes.js'
|
|
import { getOccupancyTypeFields as getOccupancyTypeFieldsFromDatabase } from './lotOccupancyDB/getOccupancyTypeFields.js'
|
|
|
|
import { getWorkOrderTypes as getWorkOrderTypesFromDatabase } from './lotOccupancyDB/getWorkOrderTypes.js'
|
|
|
|
import { getWorkOrderMilestoneTypes as getWorkOrderMilestoneTypesFromDatabase } from './lotOccupancyDB/getWorkOrderMilestoneTypes.js'
|
|
|
|
import type * as recordTypes from '../types/recordTypes'
|
|
|
|
/*
|
|
* Lot Occupant Types
|
|
*/
|
|
|
|
let lotOccupantTypes: recordTypes.LotOccupantType[] | undefined
|
|
|
|
export function getLotOccupantTypes(): recordTypes.LotOccupantType[] {
|
|
if (!lotOccupantTypes) {
|
|
lotOccupantTypes = getLotOccupantTypesFromDatabase()
|
|
}
|
|
|
|
return lotOccupantTypes
|
|
}
|
|
|
|
export function getLotOccupantTypeById(
|
|
lotOccupantTypeId: number
|
|
): recordTypes.LotOccupantType | undefined {
|
|
const cachedLotOccupantTypes = getLotOccupantTypes()
|
|
|
|
return cachedLotOccupantTypes.find((currentLotOccupantType) => {
|
|
return currentLotOccupantType.lotOccupantTypeId === lotOccupantTypeId
|
|
})
|
|
}
|
|
|
|
export function getLotOccupantTypeByLotOccupantType(
|
|
lotOccupantType: string
|
|
): recordTypes.LotOccupantType | undefined {
|
|
const cachedLotOccupantTypes = getLotOccupantTypes()
|
|
|
|
const lotOccupantTypeLowerCase = lotOccupantType.toLowerCase()
|
|
|
|
return cachedLotOccupantTypes.find((currentLotOccupantType) => {
|
|
return (
|
|
currentLotOccupantType.lotOccupantType.toLowerCase() ===
|
|
lotOccupantTypeLowerCase
|
|
)
|
|
})
|
|
}
|
|
|
|
function clearLotOccupantTypesCache(): void {
|
|
lotOccupantTypes = undefined
|
|
}
|
|
|
|
/*
|
|
* Lot Statuses
|
|
*/
|
|
|
|
let lotStatuses: recordTypes.LotStatus[] | undefined
|
|
|
|
export function getLotStatuses(): recordTypes.LotStatus[] {
|
|
if (!lotStatuses) {
|
|
lotStatuses = getLotStatusesFromDatabase()
|
|
}
|
|
|
|
return lotStatuses
|
|
}
|
|
|
|
export function getLotStatusById(
|
|
lotStatusId: number
|
|
): recordTypes.LotStatus | undefined {
|
|
const cachedLotStatuses = getLotStatuses()
|
|
|
|
return cachedLotStatuses.find((currentLotStatus) => {
|
|
return currentLotStatus.lotStatusId === lotStatusId
|
|
})
|
|
}
|
|
|
|
export function getLotStatusByLotStatus(
|
|
lotStatus: string
|
|
): recordTypes.LotStatus | undefined {
|
|
const cachedLotStatuses = getLotStatuses()
|
|
|
|
const lotStatusLowerCase = lotStatus.toLowerCase()
|
|
|
|
return cachedLotStatuses.find((currentLotStatus) => {
|
|
return currentLotStatus.lotStatus.toLowerCase() === lotStatusLowerCase
|
|
})
|
|
}
|
|
|
|
function clearLotStatusesCache(): void {
|
|
lotStatuses = undefined
|
|
}
|
|
|
|
/*
|
|
* Lot Types
|
|
*/
|
|
|
|
let lotTypes: recordTypes.LotType[] | undefined
|
|
|
|
export function getLotTypes(): recordTypes.LotType[] {
|
|
if (!lotTypes) {
|
|
lotTypes = getLotTypesFromDatabase()
|
|
}
|
|
|
|
return lotTypes
|
|
}
|
|
|
|
export function getLotTypeById(
|
|
lotTypeId: number
|
|
): recordTypes.LotType | undefined {
|
|
const cachedLotTypes = getLotTypes()
|
|
|
|
return cachedLotTypes.find((currentLotType) => {
|
|
return currentLotType.lotTypeId === lotTypeId
|
|
})
|
|
}
|
|
|
|
export function getLotTypesByLotType(
|
|
lotType: string
|
|
): recordTypes.LotType | undefined {
|
|
const cachedLotTypes = getLotTypes()
|
|
|
|
const lotTypeLowerCase = lotType.toLowerCase()
|
|
|
|
return cachedLotTypes.find((currentLotType) => {
|
|
return currentLotType.lotType.toLowerCase() === lotTypeLowerCase
|
|
})
|
|
}
|
|
|
|
function clearLotTypesCache(): void {
|
|
lotTypes = undefined
|
|
}
|
|
|
|
/*
|
|
* Occupancy Types
|
|
*/
|
|
|
|
let occupancyTypes: recordTypes.OccupancyType[] | undefined
|
|
let allOccupancyTypeFields: recordTypes.OccupancyTypeField[] | undefined
|
|
|
|
export function getOccupancyTypes(): recordTypes.OccupancyType[] {
|
|
if (!occupancyTypes) {
|
|
occupancyTypes = getOccupancyTypesFromDatabase()
|
|
}
|
|
|
|
return occupancyTypes
|
|
}
|
|
|
|
export function getAllOccupancyTypeFields(): recordTypes.OccupancyTypeField[] {
|
|
if (!allOccupancyTypeFields) {
|
|
allOccupancyTypeFields = getOccupancyTypeFieldsFromDatabase()
|
|
}
|
|
return allOccupancyTypeFields
|
|
}
|
|
|
|
export function getOccupancyTypeById(
|
|
occupancyTypeId: number
|
|
): recordTypes.OccupancyType | undefined {
|
|
const cachedOccupancyTypes = getOccupancyTypes()
|
|
|
|
return cachedOccupancyTypes.find((currentOccupancyType) => {
|
|
return currentOccupancyType.occupancyTypeId === occupancyTypeId
|
|
})
|
|
}
|
|
|
|
export function getOccupancyTypeByOccupancyType(
|
|
occupancyTypeString: string
|
|
): recordTypes.OccupancyType | undefined {
|
|
const cachedOccupancyTypes = getOccupancyTypes()
|
|
|
|
const occupancyTypeLowerCase = occupancyTypeString.toLowerCase()
|
|
|
|
return cachedOccupancyTypes.find((currentOccupancyType) => {
|
|
return (
|
|
currentOccupancyType.occupancyType.toLowerCase() ===
|
|
occupancyTypeLowerCase
|
|
)
|
|
})
|
|
}
|
|
|
|
export function getOccupancyTypePrintsById(occupancyTypeId: number): string[] {
|
|
const occupancyType = getOccupancyTypeById(occupancyTypeId)
|
|
|
|
if (
|
|
!occupancyType ||
|
|
(occupancyType.occupancyTypePrints ?? []).length === 0
|
|
) {
|
|
return []
|
|
}
|
|
|
|
if (occupancyType.occupancyTypePrints!.includes('*')) {
|
|
return configFunctions.getProperty('settings.lotOccupancy.prints')
|
|
}
|
|
|
|
return occupancyType.occupancyTypePrints!
|
|
}
|
|
|
|
function clearOccupancyTypesCache(): void {
|
|
occupancyTypes = undefined
|
|
allOccupancyTypeFields = undefined
|
|
}
|
|
|
|
/*
|
|
* Work Order Types
|
|
*/
|
|
|
|
let workOrderTypes: recordTypes.WorkOrderType[] | undefined
|
|
|
|
export function getWorkOrderTypes(): recordTypes.WorkOrderType[] {
|
|
if (!workOrderTypes) {
|
|
workOrderTypes = getWorkOrderTypesFromDatabase()
|
|
}
|
|
|
|
return workOrderTypes
|
|
}
|
|
|
|
export function getWorkOrderTypeById(
|
|
workOrderTypeId: number
|
|
): recordTypes.WorkOrderType | undefined {
|
|
const cachedWorkOrderTypes = getWorkOrderTypes()
|
|
|
|
return cachedWorkOrderTypes.find((currentWorkOrderType) => {
|
|
return currentWorkOrderType.workOrderTypeId === workOrderTypeId
|
|
})
|
|
}
|
|
|
|
function clearWorkOrderTypesCache(): void {
|
|
workOrderTypes = undefined
|
|
}
|
|
|
|
/*
|
|
* Work Order Milestone Types
|
|
*/
|
|
|
|
let workOrderMilestoneTypes: recordTypes.WorkOrderMilestoneType[] | undefined
|
|
|
|
export function getWorkOrderMilestoneTypes(): recordTypes.WorkOrderMilestoneType[] {
|
|
if (!workOrderMilestoneTypes) {
|
|
workOrderMilestoneTypes = getWorkOrderMilestoneTypesFromDatabase()
|
|
}
|
|
|
|
return workOrderMilestoneTypes
|
|
}
|
|
|
|
export function getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
|
|
workOrderMilestoneTypeId: number
|
|
): recordTypes.WorkOrderMilestoneType | undefined {
|
|
const cachedWorkOrderMilestoneTypes = getWorkOrderMilestoneTypes()
|
|
|
|
return cachedWorkOrderMilestoneTypes.find((currentWorkOrderMilestoneType) => {
|
|
return (
|
|
currentWorkOrderMilestoneType.workOrderMilestoneTypeId ===
|
|
workOrderMilestoneTypeId
|
|
)
|
|
})
|
|
}
|
|
|
|
export function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
|
|
workOrderMilestoneTypeString: string
|
|
): recordTypes.WorkOrderMilestoneType | undefined {
|
|
const cachedWorkOrderMilestoneTypes = getWorkOrderMilestoneTypes()
|
|
|
|
const workOrderMilestoneTypeLowerCase =
|
|
workOrderMilestoneTypeString.toLowerCase()
|
|
|
|
return cachedWorkOrderMilestoneTypes.find((currentWorkOrderMilestoneType) => {
|
|
return (
|
|
currentWorkOrderMilestoneType.workOrderMilestoneType.toLowerCase() ===
|
|
workOrderMilestoneTypeLowerCase
|
|
)
|
|
})
|
|
}
|
|
|
|
function clearWorkOrderMilestoneTypesCache(): void {
|
|
workOrderMilestoneTypes = undefined
|
|
}
|
|
|
|
export function clearCacheByTableName(tableName: string): void {
|
|
switch (tableName) {
|
|
case 'LotOccupantTypes': {
|
|
clearLotOccupantTypesCache()
|
|
break
|
|
}
|
|
|
|
case 'LotStatuses': {
|
|
clearLotStatusesCache()
|
|
break
|
|
}
|
|
|
|
case 'LotTypes':
|
|
case 'LotTypeFields': {
|
|
clearLotTypesCache()
|
|
break
|
|
}
|
|
|
|
case 'OccupancyTypes':
|
|
case 'OccupancyTypeFields':
|
|
case 'OccupancyTypePrints': {
|
|
clearOccupancyTypesCache()
|
|
break
|
|
}
|
|
|
|
case 'WorkOrderMilestoneTypes': {
|
|
clearWorkOrderMilestoneTypesCache()
|
|
break
|
|
}
|
|
|
|
case 'WorkOrderTypes': {
|
|
clearWorkOrderTypesCache()
|
|
break
|
|
}
|
|
}
|
|
}
|