sunrise-cms/temp/legacy.importFromCsv.ids.ts

171 lines
4.1 KiB
TypeScript

/* eslint-disable unicorn/no-await-expression-member */
import sqlite from 'better-sqlite3'
import { lotOccupancyDB as databasePath } from '../data/databasePaths.js'
import * as cacheFunctions from '../helpers/functions.cache.js'
/*
* Fee IDs
*/
const feeCache = new Map<string, number>()
export function getFeeIdByFeeDescription(feeDescription: string): number {
if (feeCache.keys.length === 0) {
const database = sqlite(databasePath, {
readonly: true
})
const records: Array<{
feeId: number
feeDescription: string
}> = database
.prepare(
"select feeId, feeDescription from Fees where feeDescription like 'CMPP_FEE_%'"
)
.all()
for (const record of records) {
feeCache.set(record.feeDescription, record.feeId)
}
database.close()
}
return feeCache.get(feeDescription)!
}
/*
* Lot Occupant Type IDs
*/
export const preneedOwnerLotOccupantTypeId =
(await cacheFunctions.getLotOccupantTypeByLotOccupantType('Preneed Owner'))!
.lotOccupantTypeId
export const funeralDirectorLotOccupantTypeId =
(await cacheFunctions.getLotOccupantTypeByLotOccupantType(
'Funeral Director'
))!.lotOccupantTypeId
export const deceasedLotOccupantTypeId =
(await cacheFunctions.getLotOccupantTypeByLotOccupantType('Deceased'))!
.lotOccupantTypeId
export const purchaserLotOccupantTypeId =
(await cacheFunctions.getLotOccupantTypeByLotOccupantType('Purchaser'))!
.lotOccupantTypeId
/*
* Lot Status IDs
*/
export const availableLotStatusId =
(await cacheFunctions.getLotStatusByLotStatus('Available'))!.lotStatusId
export const reservedLotStatusId =
(await cacheFunctions.getLotStatusByLotStatus('Reserved'))!.lotStatusId
export const takenLotStatusId = (await cacheFunctions.getLotStatusByLotStatus(
'Taken'
))!.lotStatusId
/*
* Lot Type IDs
*/
const casketLotTypeId = (await cacheFunctions.getLotTypesByLotType(
'Casket Grave'
))!.lotTypeId
const columbariumLotTypeId = (await cacheFunctions.getLotTypesByLotType(
'Columbarium'
))!.lotTypeId
const crematoriumLotTypeId = (await cacheFunctions.getLotTypesByLotType(
'Crematorium'
))!.lotTypeId
const mausoleumLotTypeId = (await cacheFunctions.getLotTypesByLotType(
'Mausoleum'
))!.lotTypeId
const nicheWallLotTypeId = (await cacheFunctions.getLotTypesByLotType(
'Niche Wall'
))!.lotTypeId
const urnGardenLotTypeId = (await cacheFunctions.getLotTypesByLotType(
'Urn Garden'
))!.lotTypeId
export function getLotTypeId(dataRow: { cemetery: string }): number {
switch (dataRow.cemetery) {
case '00': {
return crematoriumLotTypeId
}
case 'GC':
case 'HC': {
return columbariumLotTypeId
}
case 'MA': {
return mausoleumLotTypeId
}
case 'MN':
case 'NW': {
return nicheWallLotTypeId
}
case 'UG': {
return urnGardenLotTypeId
}
}
return casketLotTypeId
}
/*
* Occupancy Type IDs
*/
export const preneedOccupancyType =
(await cacheFunctions.getOccupancyTypeByOccupancyType('Preneed'))!
export const deceasedOccupancyType =
(await cacheFunctions.getOccupancyTypeByOccupancyType('Interment'))!
export const cremationOccupancyType =
(await cacheFunctions.getOccupancyTypeByOccupancyType('Cremation'))!
/*
* Work Order Milestone Type IDs
*/
export const acknowledgedWorkOrderMilestoneTypeId = (
await cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Acknowledged'
)
)?.workOrderMilestoneTypeId
export const deathWorkOrderMilestoneTypeId = (
await cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Death'
)
)?.workOrderMilestoneTypeId
export const funeralWorkOrderMilestoneTypeId = (
await cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Funeral'
)
)?.workOrderMilestoneTypeId
export const cremationWorkOrderMilestoneTypeId = (
await cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Cremation'
)
)?.workOrderMilestoneTypeId
export const intermentWorkOrderMilestoneTypeId = (
await cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Interment'
)
)?.workOrderMilestoneTypeId
/*
* Work Order Type IDs
*/
export const workOrderTypeId = 1