restructuring import scripts

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-13 15:40:33 -05:00
parent 90e1449a97
commit 0de09187da
8 changed files with 901 additions and 802 deletions

View File

@ -2,7 +2,8 @@ import fs from 'node:fs';
import papa from 'papaparse';
import sqlite from 'better-sqlite3';
import { lotOccupancyDB as databasePath } from '../data/databasePaths.js';
import * as cacheFunctions from '../helpers/functions.cache.js';
import * as importIds from './legacy.importFromCsv.ids.js';
import * as importData from './legacy.importFromCsv.data.js';
import { addMap } from '../helpers/lotOccupancyDB/addMap.js';
import { getMap as getMapFromDatabase } from '../helpers/lotOccupancyDB/getMap.js';
import { addLot } from '../helpers/lotOccupancyDB/addLot.js';
@ -69,7 +70,7 @@ function getMapByMapDescription(mapDescription) {
readonly: true
});
const map = database
.prepare('select * from Maps' + ' where mapDescription = ?')
.prepare('select * from Maps where mapDescription = ?')
.get(mapDescription);
database.close();
return map;
@ -124,183 +125,6 @@ function getMap(dataRow) {
mapCache.set(mapCacheKey, map);
return map;
}
const feeCache = new Map();
function getFeeIdByFeeDescription(feeDescription) {
if (feeCache.keys.length === 0) {
const database = sqlite(databasePath, {
readonly: true
});
const records = 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);
}
function buildLotName(lotNamePieces) {
return (lotNamePieces.cemetery +
'-' +
(lotNamePieces.block === '' ? '' : 'B' + lotNamePieces.block + '-') +
(lotNamePieces.range1 === '0' && lotNamePieces.range2 === ''
? ''
: 'R' +
(lotNamePieces.range1 === '0' ? '' : lotNamePieces.range1) +
lotNamePieces.range2 +
'-') +
(lotNamePieces.lot1 === '0' && lotNamePieces.lot2 === ''
? ''
: 'L' + lotNamePieces.lot1 + lotNamePieces.lot2 + '-') +
('G' + lotNamePieces.grave1 + lotNamePieces.grave2) +
', ' +
('Interment ' + lotNamePieces.interment));
}
const casketLotType = cacheFunctions.getLotTypesByLotType('Casket Grave');
const columbariumLotType = cacheFunctions.getLotTypesByLotType('Columbarium');
const crematoriumLotType = cacheFunctions.getLotTypesByLotType('Crematorium');
const mausoleumLotType = cacheFunctions.getLotTypesByLotType('Mausoleum');
const nicheWallLotType = cacheFunctions.getLotTypesByLotType('Niche Wall');
const urnGardenLotType = cacheFunctions.getLotTypesByLotType('Urn Garden');
function getLotType(dataRow) {
switch (dataRow.cemetery) {
case '00': {
return crematoriumLotType;
}
case 'GC':
case 'HC': {
return columbariumLotType;
}
case 'MA': {
return mausoleumLotType;
}
case 'MN':
case 'NW': {
return nicheWallLotType;
}
case 'UG': {
return urnGardenLotType;
}
}
return casketLotType;
}
const availableLotStatus = cacheFunctions.getLotStatusByLotStatus('Available');
const reservedLotStatus = cacheFunctions.getLotStatusByLotStatus('Reserved');
const takenLotStatus = cacheFunctions.getLotStatusByLotStatus('Taken');
const preneedOccupancyType = cacheFunctions.getOccupancyTypeByOccupancyType('Preneed');
const deceasedOccupancyType = cacheFunctions.getOccupancyTypeByOccupancyType('Interment');
const cremationOccupancyType = cacheFunctions.getOccupancyTypeByOccupancyType('Cremation');
const preneedOwnerLotOccupantType = cacheFunctions.getLotOccupantTypeByLotOccupantType('Preneed Owner');
const funeralDirectorLotOccupantType = cacheFunctions.getLotOccupantTypeByLotOccupantType('Funeral Director');
const deceasedLotOccupantType = cacheFunctions.getLotOccupantTypeByLotOccupantType('Deceased');
const purchaserLotOccupantType = cacheFunctions.getLotOccupantTypeByLotOccupantType('Purchaser');
const acknowledgedWorkOrderMilestoneType = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Acknowledged');
const deathWorkOrderMilestoneType = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Death');
const funeralWorkOrderMilestoneType = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Funeral');
const cremationWorkOrderMilestoneType = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Cremation');
const intermentWorkOrderMilestoneType = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Interment');
function getFuneralHome(funeralHomeKey) {
switch (funeralHomeKey) {
case 'AR': {
return {
lotOccupantTypeId: funeralDirectorLotOccupantType.lotOccupantTypeId,
occupantName: 'Arthur Funeral Home',
occupantAddress1: '492 Wellington Street East',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 2L9',
occupantPhoneNumber: '705-759-2522',
occupantEmailAddress: ''
};
}
case 'BG': {
return {
lotOccupantTypeId: funeralDirectorLotOccupantType.lotOccupantTypeId,
occupantName: 'Beggs Funeral Home',
occupantAddress1: '175 Main Street',
occupantAddress2: 'P.O. Box 280',
occupantCity: 'Thessalon',
occupantProvince: 'ON',
occupantPostalCode: 'P0R 1L0',
occupantPhoneNumber: '705-842-2520',
occupantEmailAddress: 'bfh@beggsfh.ca'
};
}
case 'BK': {
return {
lotOccupantTypeId: funeralDirectorLotOccupantType.lotOccupantTypeId,
occupantName: 'Barton and Kiteley',
occupantAddress1: '',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: '',
occupantPhoneNumber: '',
occupantEmailAddress: ''
};
}
case 'DA': {
return {
lotOccupantTypeId: funeralDirectorLotOccupantType.lotOccupantTypeId,
occupantName: 'Damignani Burial, Cremation and Transfer Service',
occupantAddress1: '215 St. James Street',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 1P7',
occupantPhoneNumber: '705-759-8456',
occupantEmailAddress: ''
};
}
case 'GL': {
return {
lotOccupantTypeId: funeralDirectorLotOccupantType.lotOccupantTypeId,
occupantName: 'Gilmartin P.M. Funeral Home',
occupantAddress1: '140 Churchill Avenue',
occupantAddress2: '',
occupantCity: 'Wawa',
occupantProvince: 'ON',
occupantPostalCode: 'P0S 1K0',
occupantPhoneNumber: '705-856-7340',
occupantEmailAddress: ''
};
}
case 'NO': {
return {
lotOccupantTypeId: funeralDirectorLotOccupantType.lotOccupantTypeId,
occupantName: 'Northwood Funeral Home',
occupantAddress1: '942 Great Northern Road',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6B 0B6',
occupantPhoneNumber: '705-945-7758',
occupantEmailAddress: ''
};
}
case 'OS': {
return {
lotOccupantTypeId: funeralDirectorLotOccupantType.lotOccupantTypeId,
occupantName: "O'Sullivan Funeral Home",
occupantAddress1: '215 St. James Street',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 1P7',
occupantPhoneNumber: '705-759-8456',
occupantEmailAddress: ''
};
}
}
return {
lotOccupantTypeId: funeralDirectorLotOccupantType.lotOccupantTypeId,
occupantName: funeralHomeKey,
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON'
};
}
function importFromMasterCSV() {
console.time('importFromMasterCSV');
let masterRow;
@ -318,7 +142,7 @@ function importFromMasterCSV() {
const map = getMap({
cemetery: masterRow.CM_CEMETERY
});
const lotName = buildLotName({
const lotName = importData.buildLotName({
cemetery: masterRow.CM_CEMETERY,
block: masterRow.CM_BLOCK,
range1: masterRow.CM_RANGE1,
@ -329,15 +153,15 @@ function importFromMasterCSV() {
grave2: masterRow.CM_GRAVE2,
interment: masterRow.CM_INTERMENT
});
const lotType = getLotType({
const lotTypeId = importIds.getLotTypeId({
cemetery: masterRow.CM_CEMETERY
});
let lotId;
if (masterRow.CM_CEMETERY !== '00') {
lotId = addLot({
lotName: lotName,
lotTypeId: lotType.lotTypeId,
lotStatusId: availableLotStatus.lotStatusId,
lotName,
lotTypeId,
lotStatusId: importIds.availableLotStatusId,
mapId: map.mapId,
mapKey: lotName.includes(',') ? lotName.split(',')[0] : lotName,
lotLatitude: '',
@ -346,7 +170,7 @@ function importFromMasterCSV() {
}
let preneedOccupancyStartDateString;
let preneedLotOccupancyId;
if (masterRow.CM_PRENEED_OWNER || masterRow.CM_STATUS === 'P') {
if (masterRow.CM_PRENEED_OWNER !== '' || masterRow.CM_STATUS === 'P') {
preneedOccupancyStartDateString = formatDateString(masterRow.CM_PURCHASE_YR, masterRow.CM_PURCHASE_MON, masterRow.CM_PURCHASE_DAY);
let occupancyEndDateString = '';
if (masterRow.CM_INTERMENT_YR !== '' &&
@ -371,18 +195,16 @@ function importFromMasterCSV() {
preneedOccupancyStartDateString = '0001-01-01';
}
preneedLotOccupancyId = addLotOccupancy({
occupancyTypeId: preneedOccupancyType.occupancyTypeId,
occupancyTypeId: importIds.preneedOccupancyType.occupancyTypeId,
lotId,
occupancyStartDateString: preneedOccupancyStartDateString,
occupancyEndDateString,
occupancyTypeFieldIds: ''
}, user);
const occupantPostalCode = ((masterRow.CM_POST1 || '') +
' ' +
(masterRow.CM_POST2 || '')).trim();
const occupantPostalCode = `${masterRow.CM_POST1} ${masterRow.CM_POST2}`.trim();
addLotOccupancyOccupant({
lotOccupancyId: preneedLotOccupancyId,
lotOccupantTypeId: preneedOwnerLotOccupantType.lotOccupantTypeId,
lotOccupantTypeId: importIds.preneedOwnerLotOccupantTypeId,
occupantName: masterRow.CM_PRENEED_OWNER,
occupantAddress1: masterRow.CM_ADDRESS,
occupantAddress2: '',
@ -409,12 +231,12 @@ function importFromMasterCSV() {
}, user);
}
if (occupancyEndDateString === '') {
updateLotStatus(lotId, reservedLotStatus.lotStatusId, user);
updateLotStatus(lotId, importIds.reservedLotStatusId, user);
}
}
let deceasedOccupancyStartDateString;
let deceasedLotOccupancyId;
if (masterRow.CM_DECEASED_NAME) {
if (masterRow.CM_DECEASED_NAME !== '') {
deceasedOccupancyStartDateString = formatDateString(masterRow.CM_INTERMENT_YR, masterRow.CM_INTERMENT_MON, masterRow.CM_INTERMENT_DAY);
if (deceasedOccupancyStartDateString === '0000-00-00' &&
masterRow.CM_DEATH_YR !== '' &&
@ -428,21 +250,20 @@ function importFromMasterCSV() {
const deceasedOccupancyEndDateString = lotId
? ''
: deceasedOccupancyStartDateString;
const occupancyType = lotId
? importIds.deceasedOccupancyType
: importIds.cremationOccupancyType;
deceasedLotOccupancyId = addLotOccupancy({
occupancyTypeId: lotId
? deceasedOccupancyType.occupancyTypeId
: cremationOccupancyType.occupancyTypeId,
occupancyTypeId: occupancyType.occupancyTypeId,
lotId,
occupancyStartDateString: deceasedOccupancyStartDateString,
occupancyEndDateString: deceasedOccupancyEndDateString,
occupancyTypeFieldIds: ''
}, user);
const deceasedPostalCode = ((masterRow.CM_POST1 || '') +
' ' +
(masterRow.CM_POST2 || '')).trim();
const deceasedPostalCode = `${masterRow.CM_POST1} ${masterRow.CM_POST2}`.trim();
addLotOccupancyOccupant({
lotOccupancyId: deceasedLotOccupancyId,
lotOccupantTypeId: deceasedLotOccupantType.lotOccupantTypeId,
lotOccupantTypeId: importIds.deceasedLotOccupantTypeId,
occupantName: masterRow.CM_DECEASED_NAME,
occupantAddress1: masterRow.CM_ADDRESS,
occupantAddress2: '',
@ -456,9 +277,7 @@ function importFromMasterCSV() {
const lotOccupancyFieldValue = formatDateString(masterRow.CM_DEATH_YR, masterRow.CM_DEATH_MON, masterRow.CM_DEATH_DAY);
addOrUpdateLotOccupancyField({
lotOccupancyId: deceasedLotOccupancyId,
occupancyTypeFieldId: (lotId
? deceasedOccupancyType
: cremationOccupancyType).occupancyTypeFields.find((occupancyTypeField) => {
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return occupancyTypeField.occupancyTypeField === 'Death Date';
}).occupancyTypeFieldId,
lotOccupancyFieldValue
@ -467,9 +286,7 @@ function importFromMasterCSV() {
if (masterRow.CM_AGE !== '') {
addOrUpdateLotOccupancyField({
lotOccupancyId: deceasedLotOccupancyId,
occupancyTypeFieldId: (lotId
? deceasedOccupancyType
: cremationOccupancyType).occupancyTypeFields.find((occupancyTypeField) => {
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return occupancyTypeField.occupancyTypeField === 'Death Age';
}).occupancyTypeFieldId,
lotOccupancyFieldValue: masterRow.CM_AGE
@ -478,16 +295,14 @@ function importFromMasterCSV() {
if (masterRow.CM_PERIOD !== '') {
addOrUpdateLotOccupancyField({
lotOccupancyId: deceasedLotOccupancyId,
occupancyTypeFieldId: (lotId
? deceasedOccupancyType
: cremationOccupancyType).occupancyTypeFields.find((occupancyTypeField) => {
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return (occupancyTypeField.occupancyTypeField === 'Death Age Period');
}).occupancyTypeFieldId,
lotOccupancyFieldValue: masterRow.CM_PERIOD
}, user);
}
if (masterRow.CM_FUNERAL_HOME !== '') {
const funeralHomeOccupant = getFuneralHome(masterRow.CM_FUNERAL_HOME);
const funeralHomeOccupant = importData.getFuneralHomeLotOccupancyOccupantData(masterRow.CM_FUNERAL_HOME);
addLotOccupancyOccupant({
lotOccupancyId: deceasedLotOccupancyId,
lotOccupantTypeId: funeralHomeOccupant.lotOccupantTypeId,
@ -505,20 +320,17 @@ function importFromMasterCSV() {
const lotOccupancyFieldValue = formatDateString(masterRow.CM_FUNERAL_YR, masterRow.CM_FUNERAL_MON, masterRow.CM_FUNERAL_DAY);
addOrUpdateLotOccupancyField({
lotOccupancyId: deceasedLotOccupancyId,
occupancyTypeFieldId: (lotId
? deceasedOccupancyType
: cremationOccupancyType).occupancyTypeFields.find((occupancyTypeField) => {
return occupancyTypeField.occupancyTypeField === 'Funeral Date';
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return (occupancyTypeField.occupancyTypeField === 'Funeral Date');
}).occupancyTypeFieldId,
lotOccupancyFieldValue
}, user);
}
if (occupancyType.occupancyType !== 'Cremation') {
if (masterRow.CM_CONTAINER_TYPE !== '') {
addOrUpdateLotOccupancyField({
lotOccupancyId: deceasedLotOccupancyId,
occupancyTypeFieldId: (lotId
? deceasedOccupancyType
: cremationOccupancyType).occupancyTypeFields.find((occupancyTypeField) => {
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return (occupancyTypeField.occupancyTypeField === 'Container Type');
}).occupancyTypeFieldId,
lotOccupancyFieldValue: masterRow.CM_CONTAINER_TYPE
@ -531,14 +343,13 @@ function importFromMasterCSV() {
}
addOrUpdateLotOccupancyField({
lotOccupancyId: deceasedLotOccupancyId,
occupancyTypeFieldId: (lotId
? deceasedOccupancyType
: cremationOccupancyType).occupancyTypeFields.find((occupancyTypeField) => {
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return (occupancyTypeField.occupancyTypeField === 'Committal Type');
}).occupancyTypeFieldId,
lotOccupancyFieldValue: commitalType
}, user);
}
}
if (masterRow.CM_REMARK1 !== '') {
addLotOccupancyComment({
lotOccupancyId: deceasedLotOccupancyId,
@ -555,11 +366,11 @@ function importFromMasterCSV() {
lotOccupancyComment: masterRow.CM_REMARK2
}, user);
}
updateLotStatus(lotId, takenLotStatus.lotStatusId, user);
if (masterRow.CM_PRENEED_OWNER) {
updateLotStatus(lotId, importIds.takenLotStatusId, user);
if (masterRow.CM_PRENEED_OWNER !== '') {
addLotOccupancyOccupant({
lotOccupancyId: deceasedLotOccupancyId,
lotOccupantTypeId: preneedOwnerLotOccupantType.lotOccupantTypeId,
lotOccupantTypeId: importIds.preneedOwnerLotOccupantTypeId,
occupantName: masterRow.CM_PRENEED_OWNER,
occupantAddress1: '',
occupantAddress2: '',
@ -597,15 +408,15 @@ function importFromPrepaidCSV() {
continue;
}
let cemetery = prepaidRow.CMPP_CEMETERY;
if (cemetery && cemetery === '.m') {
if (cemetery === '.m') {
cemetery = 'HC';
}
let lot;
if (cemetery) {
if (cemetery !== '') {
const map = getMap({
cemetery
});
const lotName = buildLotName({
const lotName = importData.buildLotName({
cemetery,
block: prepaidRow.CMPP_BLOCK,
range1: prepaidRow.CMPP_RANGE1,
@ -618,13 +429,13 @@ function importFromPrepaidCSV() {
});
lot = getLotByLotName(lotName);
if (!lot) {
const lotType = getLotType({
const lotTypeId = importIds.getLotTypeId({
cemetery
});
const lotId = addLot({
lotName: lotName,
lotTypeId: lotType.lotTypeId,
lotStatusId: reservedLotStatus.lotStatusId,
lotName,
lotTypeId,
lotStatusId: importIds.reservedLotStatusId,
mapId: map.mapId,
mapKey: lotName.includes(',') ? lotName.split(',')[0] : lotName,
lotLatitude: '',
@ -633,15 +444,15 @@ function importFromPrepaidCSV() {
lot = getLot(lotId);
}
}
if (lot && lot.lotStatusId === availableLotStatus.lotStatusId) {
updateLotStatus(lot.lotId, reservedLotStatus.lotStatusId, user);
if (lot && lot.lotStatusId === importIds.availableLotStatusId) {
updateLotStatus(lot.lotId, importIds.reservedLotStatusId, user);
}
const occupancyStartDateString = formatDateString(prepaidRow.CMPP_PURCH_YR, prepaidRow.CMPP_PURCH_MON, prepaidRow.CMPP_PURCH_DAY);
let lotOccupancyId;
if (lot) {
const possibleLotOccupancies = getLotOccupancies({
lotId: lot.lotId,
occupancyTypeId: preneedOccupancyType.occupancyTypeId,
occupancyTypeId: importIds.preneedOccupancyType.occupancyTypeId,
occupantName: prepaidRow.CMPP_PREPAID_FOR_NAME,
occupancyStartDateString
}, {
@ -657,14 +468,14 @@ function importFromPrepaidCSV() {
if (!lotOccupancyId) {
lotOccupancyId = addLotOccupancy({
lotId: lot ? lot.lotId : '',
occupancyTypeId: preneedOccupancyType.occupancyTypeId,
occupancyTypeId: importIds.preneedOccupancyType.occupancyTypeId,
occupancyStartDateString,
occupancyEndDateString: ''
}, user);
}
addLotOccupancyOccupant({
lotOccupancyId,
lotOccupantTypeId: preneedOwnerLotOccupantType.lotOccupantTypeId,
lotOccupantTypeId: importIds.preneedOwnerLotOccupantTypeId,
occupantName: prepaidRow.CMPP_PREPAID_FOR_NAME,
occupantAddress1: prepaidRow.CMPP_ADDRESS,
occupantAddress2: '',
@ -677,7 +488,7 @@ function importFromPrepaidCSV() {
if (prepaidRow.CMPP_ARRANGED_BY_NAME) {
addLotOccupancyOccupant({
lotOccupancyId,
lotOccupantTypeId: purchaserLotOccupantType.lotOccupantTypeId,
lotOccupantTypeId: importIds.purchaserLotOccupantTypeId,
occupantName: prepaidRow.CMPP_ARRANGED_BY_NAME,
occupantAddress1: '',
occupantAddress2: '',
@ -691,7 +502,7 @@ function importFromPrepaidCSV() {
if (prepaidRow.CMPP_FEE_GRAV_SD !== '0.0') {
addLotOccupancyFee({
lotOccupancyId,
feeId: getFeeIdByFeeDescription('CMPP_FEE_GRAV_SD'),
feeId: importIds.getFeeIdByFeeDescription('CMPP_FEE_GRAV_SD'),
quantity: 1,
feeAmount: prepaidRow.CMPP_FEE_GRAV_SD,
taxAmount: prepaidRow.CMPP_GST_GRAV_SD
@ -700,7 +511,7 @@ function importFromPrepaidCSV() {
if (prepaidRow.CMPP_FEE_GRAV_DD !== '0.0') {
addLotOccupancyFee({
lotOccupancyId,
feeId: getFeeIdByFeeDescription('CMPP_FEE_GRAV_DD'),
feeId: importIds.getFeeIdByFeeDescription('CMPP_FEE_GRAV_DD'),
quantity: 1,
feeAmount: prepaidRow.CMPP_FEE_GRAV_DD,
taxAmount: prepaidRow.CMPP_GST_GRAV_DD
@ -709,7 +520,7 @@ function importFromPrepaidCSV() {
if (prepaidRow.CMPP_FEE_CHAP_SD !== '0.0') {
addLotOccupancyFee({
lotOccupancyId,
feeId: getFeeIdByFeeDescription('CMPP_FEE_CHAP_SD'),
feeId: importIds.getFeeIdByFeeDescription('CMPP_FEE_CHAP_SD'),
quantity: 1,
feeAmount: prepaidRow.CMPP_FEE_CHAP_SD,
taxAmount: prepaidRow.CMPP_GST_CHAP_SD
@ -718,7 +529,7 @@ function importFromPrepaidCSV() {
if (prepaidRow.CMPP_FEE_CHAP_DD !== '0.0') {
addLotOccupancyFee({
lotOccupancyId,
feeId: getFeeIdByFeeDescription('CMPP_FEE_CHAP_DD'),
feeId: importIds.getFeeIdByFeeDescription('CMPP_FEE_CHAP_DD'),
quantity: 1,
feeAmount: prepaidRow.CMPP_FEE_CHAP_DD,
taxAmount: prepaidRow.CMPP_GST_CHAP_DD
@ -727,7 +538,7 @@ function importFromPrepaidCSV() {
if (prepaidRow.CMPP_FEE_ENTOMBMENT !== '0.0') {
addLotOccupancyFee({
lotOccupancyId,
feeId: getFeeIdByFeeDescription('CMPP_FEE_ENTOMBMENT'),
feeId: importIds.getFeeIdByFeeDescription('CMPP_FEE_ENTOMBMENT'),
quantity: 1,
feeAmount: prepaidRow.CMPP_FEE_ENTOMBMENT,
taxAmount: prepaidRow.CMPP_GST_ENTOMBMENT
@ -736,7 +547,7 @@ function importFromPrepaidCSV() {
if (prepaidRow.CMPP_FEE_CREM !== '0.0') {
addLotOccupancyFee({
lotOccupancyId,
feeId: getFeeIdByFeeDescription('CMPP_FEE_CREM'),
feeId: importIds.getFeeIdByFeeDescription('CMPP_FEE_CREM'),
quantity: 1,
feeAmount: prepaidRow.CMPP_FEE_CREM,
taxAmount: prepaidRow.CMPP_GST_CREM
@ -745,7 +556,7 @@ function importFromPrepaidCSV() {
if (prepaidRow.CMPP_FEE_NICHE !== '0.0') {
addLotOccupancyFee({
lotOccupancyId,
feeId: getFeeIdByFeeDescription('CMPP_FEE_NICHE'),
feeId: importIds.getFeeIdByFeeDescription('CMPP_FEE_NICHE'),
quantity: 1,
feeAmount: prepaidRow.CMPP_FEE_NICHE,
taxAmount: prepaidRow.CMPP_GST_NICHE
@ -755,7 +566,7 @@ function importFromPrepaidCSV() {
prepaidRow.CMPP_FEE_DISINTERMENT !== '20202.02') {
addLotOccupancyFee({
lotOccupancyId,
feeId: getFeeIdByFeeDescription('CMPP_FEE_DISINTERMENT'),
feeId: importIds.getFeeIdByFeeDescription('CMPP_FEE_DISINTERMENT'),
quantity: 1,
feeAmount: prepaidRow.CMPP_FEE_DISINTERMENT,
taxAmount: prepaidRow.CMPP_GST_DISINTERMENT
@ -838,7 +649,7 @@ function importFromWorkOrderCSV() {
else {
const workOrderId = addWorkOrder({
workOrderNumber,
workOrderTypeId: 1,
workOrderTypeId: importIds.workOrderTypeId,
workOrderDescription: (workOrderRow.WO_REMARK1 +
' ' +
workOrderRow.WO_REMARK2 +
@ -854,7 +665,7 @@ function importFromWorkOrderCSV() {
}
let lot;
if (workOrderRow.WO_CEMETERY !== '00') {
const lotName = buildLotName({
const lotName = importData.buildLotName({
cemetery: workOrderRow.WO_CEMETERY,
block: workOrderRow.WO_BLOCK,
range1: workOrderRow.WO_RANGE1,
@ -868,22 +679,22 @@ function importFromWorkOrderCSV() {
lot = getLotByLotName(lotName);
if (!lot) {
const map = getMap({ cemetery: workOrderRow.WO_CEMETERY });
const lotType = getLotType({
const lotTypeId = importIds.getLotTypeId({
cemetery: workOrderRow.WO_CEMETERY
});
const lotId = addLot({
mapId: map.mapId,
lotName,
mapKey: lotName.includes(',') ? lotName.split(',')[0] : lotName,
lotStatusId: takenLotStatus.lotStatusId,
lotTypeId: lotType.lotTypeId,
lotStatusId: importIds.takenLotStatusId,
lotTypeId,
lotLatitude: '',
lotLongitude: ''
}, user);
lot = getLot(lotId);
}
else {
updateLotStatus(lot.lotId, takenLotStatus.lotStatusId, user);
updateLotStatus(lot.lotId, importIds.takenLotStatusId, user);
}
const workOrderContainsLot = workOrder.workOrderLots.find((possibleLot) => {
return (possibleLot.lotId = lot.lotId);
@ -900,15 +711,18 @@ function importFromWorkOrderCSV() {
if (workOrderRow.WO_INTERMENT_YR) {
occupancyStartDateString = formatDateString(workOrderRow.WO_INTERMENT_YR, workOrderRow.WO_INTERMENT_MON, workOrderRow.WO_INTERMENT_DAY);
}
const occupancyType = lot
? importIds.deceasedOccupancyType
: importIds.cremationOccupancyType;
const lotOccupancyId = addLotOccupancy({
lotId: lot ? lot.lotId : '',
occupancyTypeId: deceasedOccupancyType.occupancyTypeId,
occupancyTypeId: occupancyType.occupancyTypeId,
occupancyStartDateString,
occupancyEndDateString: ''
}, user);
addLotOccupancyOccupant({
lotOccupancyId,
lotOccupantTypeId: deceasedLotOccupantType.lotOccupantTypeId,
lotOccupantTypeId: importIds.deceasedLotOccupantTypeId,
occupantName: workOrderRow.WO_DECEASED_NAME,
occupantAddress1: workOrderRow.WO_ADDRESS,
occupantAddress2: '',
@ -921,8 +735,8 @@ function importFromWorkOrderCSV() {
if (workOrderRow.WO_DEATH_YR !== '') {
const lotOccupancyFieldValue = formatDateString(workOrderRow.WO_DEATH_YR, workOrderRow.WO_DEATH_MON, workOrderRow.WO_DEATH_DAY);
addOrUpdateLotOccupancyField({
lotOccupancyId: lotOccupancyId,
occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => {
lotOccupancyId,
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return occupancyTypeField.occupancyTypeField === 'Death Date';
}).occupancyTypeFieldId,
lotOccupancyFieldValue
@ -930,8 +744,8 @@ function importFromWorkOrderCSV() {
}
if (workOrderRow.WO_DEATH_PLACE !== '') {
addOrUpdateLotOccupancyField({
lotOccupancyId: lotOccupancyId,
occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => {
lotOccupancyId,
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return occupancyTypeField.occupancyTypeField === 'Death Place';
}).occupancyTypeFieldId,
lotOccupancyFieldValue: workOrderRow.WO_DEATH_PLACE
@ -939,8 +753,8 @@ function importFromWorkOrderCSV() {
}
if (workOrderRow.WO_AGE !== '') {
addOrUpdateLotOccupancyField({
lotOccupancyId: lotOccupancyId,
occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => {
lotOccupancyId,
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return occupancyTypeField.occupancyTypeField === 'Death Age';
}).occupancyTypeFieldId,
lotOccupancyFieldValue: workOrderRow.WO_AGE
@ -948,17 +762,17 @@ function importFromWorkOrderCSV() {
}
if (workOrderRow.WO_PERIOD !== '') {
addOrUpdateLotOccupancyField({
lotOccupancyId: lotOccupancyId,
occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => {
lotOccupancyId,
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return (occupancyTypeField.occupancyTypeField === 'Death Age Period');
}).occupancyTypeFieldId,
lotOccupancyFieldValue: workOrderRow.WO_PERIOD
}, user);
}
if (workOrderRow.WO_FUNERAL_HOME !== '') {
const funeralHomeOccupant = getFuneralHome(workOrderRow.WO_FUNERAL_HOME);
const funeralHomeOccupant = importData.getFuneralHomeLotOccupancyOccupantData(workOrderRow.WO_FUNERAL_HOME);
addLotOccupancyOccupant({
lotOccupancyId: lotOccupancyId,
lotOccupancyId,
lotOccupantTypeId: funeralHomeOccupant.lotOccupantTypeId,
occupantName: funeralHomeOccupant.occupantName,
occupantAddress1: funeralHomeOccupant.occupantAddress1,
@ -973,17 +787,18 @@ function importFromWorkOrderCSV() {
if (workOrderRow.WO_FUNERAL_YR !== '') {
const lotOccupancyFieldValue = formatDateString(workOrderRow.WO_FUNERAL_YR, workOrderRow.WO_FUNERAL_MON, workOrderRow.WO_FUNERAL_DAY);
addOrUpdateLotOccupancyField({
lotOccupancyId: lotOccupancyId,
occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return (occupancyTypeField.occupancyTypeField === 'Funeral Date');
lotOccupancyId,
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return occupancyTypeField.occupancyTypeField === 'Funeral Date';
}).occupancyTypeFieldId,
lotOccupancyFieldValue
}, user);
}
if (occupancyType.occupancyType !== 'Cremation') {
if (workOrderRow.WO_CONTAINER_TYPE !== '') {
addOrUpdateLotOccupancyField({
lotOccupancyId: lotOccupancyId,
occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => {
lotOccupancyId,
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return (occupancyTypeField.occupancyTypeField === 'Container Type');
}).occupancyTypeFieldId,
lotOccupancyFieldValue: workOrderRow.WO_CONTAINER_TYPE
@ -995,23 +810,24 @@ function importFromWorkOrderCSV() {
commitalType = 'Graveside';
}
addOrUpdateLotOccupancyField({
lotOccupancyId: lotOccupancyId,
occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => {
lotOccupancyId,
occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => {
return (occupancyTypeField.occupancyTypeField === 'Committal Type');
}).occupancyTypeFieldId,
lotOccupancyFieldValue: commitalType
}, user);
}
}
addWorkOrderLotOccupancy({
workOrderId: workOrder.workOrderId,
lotOccupancyId
}, user);
let hasIncompleteMilestones = !workOrderRow.WO_CONFIRMATION_IN;
let maxMilestoneCompletionDateString = workOrderOpenDateString;
if (acknowledgedWorkOrderMilestoneType) {
if (importIds.acknowledgedWorkOrderMilestoneTypeId) {
addWorkOrderMilestone({
workOrderId: workOrder.workOrderId,
workOrderMilestoneTypeId: acknowledgedWorkOrderMilestoneType.workOrderMilestoneTypeId,
workOrderMilestoneTypeId: importIds.acknowledgedWorkOrderMilestoneTypeId,
workOrderMilestoneDateString: workOrderOpenDateString,
workOrderMilestoneDescription: '',
workOrderMilestoneCompletionDateString: workOrderRow.WO_CONFIRMATION_IN
@ -1022,10 +838,10 @@ function importFromWorkOrderCSV() {
}
if (workOrderRow.WO_DEATH_YR) {
const workOrderMilestoneDateString = formatDateString(workOrderRow.WO_DEATH_YR, workOrderRow.WO_DEATH_MON, workOrderRow.WO_DEATH_DAY);
if (deathWorkOrderMilestoneType) {
if (importIds.deathWorkOrderMilestoneTypeId) {
addWorkOrderMilestone({
workOrderId: workOrder.workOrderId,
workOrderMilestoneTypeId: deathWorkOrderMilestoneType.workOrderMilestoneTypeId,
workOrderMilestoneTypeId: importIds.deathWorkOrderMilestoneTypeId,
workOrderMilestoneDateString,
workOrderMilestoneDescription: 'Death Place: ' + workOrderRow.WO_DEATH_PLACE,
workOrderMilestoneCompletionDateString: workOrderMilestoneDateString < currentDateString
@ -1050,10 +866,10 @@ function importFromWorkOrderCSV() {
funeralHour += 12;
}
const workOrderMilestoneTimeString = formatTimeString(funeralHour.toString(), workOrderRow.WO_FUNERAL_MIN);
if (funeralWorkOrderMilestoneType) {
if (importIds.funeralWorkOrderMilestoneTypeId) {
addWorkOrderMilestone({
workOrderId: workOrder.workOrderId,
workOrderMilestoneTypeId: funeralWorkOrderMilestoneType.workOrderMilestoneTypeId,
workOrderMilestoneTypeId: importIds.funeralWorkOrderMilestoneTypeId,
workOrderMilestoneDateString,
workOrderMilestoneTimeString,
workOrderMilestoneDescription: 'Funeral Home: ' + workOrderRow.WO_FUNERAL_HOME,
@ -1073,10 +889,10 @@ function importFromWorkOrderCSV() {
}
}
if (workOrderRow.WO_CREMATION === 'Y' &&
cremationWorkOrderMilestoneType) {
importIds.cremationWorkOrderMilestoneTypeId) {
addWorkOrderMilestone({
workOrderId: workOrder.workOrderId,
workOrderMilestoneTypeId: cremationWorkOrderMilestoneType.workOrderMilestoneTypeId,
workOrderMilestoneTypeId: importIds.cremationWorkOrderMilestoneTypeId,
workOrderMilestoneDateString: maxMilestoneCompletionDateString,
workOrderMilestoneDescription: '',
workOrderMilestoneCompletionDateString: maxMilestoneCompletionDateString < currentDateString
@ -1089,10 +905,10 @@ function importFromWorkOrderCSV() {
}
if (workOrderRow.WO_INTERMENT_YR) {
const workOrderMilestoneDateString = formatDateString(workOrderRow.WO_INTERMENT_YR, workOrderRow.WO_INTERMENT_MON, workOrderRow.WO_INTERMENT_DAY);
if (intermentWorkOrderMilestoneType) {
if (importIds.intermentWorkOrderMilestoneTypeId) {
addWorkOrderMilestone({
workOrderId: workOrder.workOrderId,
workOrderMilestoneTypeId: intermentWorkOrderMilestoneType.workOrderMilestoneTypeId,
workOrderMilestoneTypeId: importIds.intermentWorkOrderMilestoneTypeId,
workOrderMilestoneDateString,
workOrderMilestoneDescription: 'Depth: ' + workOrderRow.WO_DEPTH,
workOrderMilestoneCompletionDateString: workOrderMilestoneDateString < currentDateString

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,13 @@
import type * as recordTypes from '../types/recordTypes';
export declare function buildLotName(lotNamePieces: {
cemetery: string;
block: string;
range1: string;
range2: string;
lot1: string;
lot2: string;
grave1: string;
grave2: string;
interment: string;
}): string;
export declare function getFuneralHomeLotOccupancyOccupantData(funeralHomeKey: string): recordTypes.LotOccupancyOccupant;

View File

@ -0,0 +1,119 @@
import * as importIds from './legacy.importFromCsv.ids.js';
export function buildLotName(lotNamePieces) {
return (lotNamePieces.cemetery +
'-' +
(lotNamePieces.block === '' ? '' : 'B' + lotNamePieces.block + '-') +
(lotNamePieces.range1 === '0' && lotNamePieces.range2 === ''
? ''
: 'R' +
(lotNamePieces.range1 === '0' ? '' : lotNamePieces.range1) +
lotNamePieces.range2 +
'-') +
(lotNamePieces.lot1 === '0' && lotNamePieces.lot2 === ''
? ''
: 'L' + lotNamePieces.lot1 + lotNamePieces.lot2 + '-') +
('G' + lotNamePieces.grave1 + lotNamePieces.grave2) +
', ' +
('Interment ' + lotNamePieces.interment));
}
export function getFuneralHomeLotOccupancyOccupantData(funeralHomeKey) {
switch (funeralHomeKey) {
case 'AR': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Arthur Funeral Home',
occupantAddress1: '492 Wellington Street East',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 2L9',
occupantPhoneNumber: '705-759-2522',
occupantEmailAddress: ''
};
}
case 'BG': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Beggs Funeral Home',
occupantAddress1: '175 Main Street',
occupantAddress2: 'P.O. Box 280',
occupantCity: 'Thessalon',
occupantProvince: 'ON',
occupantPostalCode: 'P0R 1L0',
occupantPhoneNumber: '705-842-2520',
occupantEmailAddress: 'bfh@beggsfh.ca'
};
}
case 'BK': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Barton and Kiteley',
occupantAddress1: '',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: '',
occupantPhoneNumber: '',
occupantEmailAddress: ''
};
}
case 'DA': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Damignani Burial, Cremation and Transfer Service',
occupantAddress1: '215 St. James Street',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 1P7',
occupantPhoneNumber: '705-759-8456',
occupantEmailAddress: ''
};
}
case 'GL': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Gilmartin P.M. Funeral Home',
occupantAddress1: '140 Churchill Avenue',
occupantAddress2: '',
occupantCity: 'Wawa',
occupantProvince: 'ON',
occupantPostalCode: 'P0S 1K0',
occupantPhoneNumber: '705-856-7340',
occupantEmailAddress: ''
};
}
case 'NO': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Northwood Funeral Home',
occupantAddress1: '942 Great Northern Road',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6B 0B6',
occupantPhoneNumber: '705-945-7758',
occupantEmailAddress: ''
};
}
case 'OS': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: "O'Sullivan Funeral Home",
occupantAddress1: '215 St. James Street',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 1P7',
occupantPhoneNumber: '705-759-8456',
occupantEmailAddress: ''
};
}
}
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: funeralHomeKey,
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON'
};
}

View File

@ -0,0 +1,138 @@
import * as importIds from './legacy.importFromCsv.ids.js'
import type * as recordTypes from '../types/recordTypes'
export function buildLotName(lotNamePieces: {
cemetery: string
block: string
range1: string
range2: string
lot1: string
lot2: string
grave1: string
grave2: string
interment: string
}): string {
return (
lotNamePieces.cemetery +
'-' +
(lotNamePieces.block === '' ? '' : 'B' + lotNamePieces.block + '-') +
(lotNamePieces.range1 === '0' && lotNamePieces.range2 === ''
? ''
: 'R' +
(lotNamePieces.range1 === '0' ? '' : lotNamePieces.range1) +
lotNamePieces.range2 +
'-') +
(lotNamePieces.lot1 === '0' && lotNamePieces.lot2 === ''
? ''
: 'L' + lotNamePieces.lot1 + lotNamePieces.lot2 + '-') +
('G' + lotNamePieces.grave1 + lotNamePieces.grave2) +
', ' +
('Interment ' + lotNamePieces.interment)
)
}
export function getFuneralHomeLotOccupancyOccupantData(
funeralHomeKey: string
): recordTypes.LotOccupancyOccupant {
switch (funeralHomeKey) {
case 'AR': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Arthur Funeral Home',
occupantAddress1: '492 Wellington Street East',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 2L9',
occupantPhoneNumber: '705-759-2522',
occupantEmailAddress: ''
}
}
case 'BG': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Beggs Funeral Home',
occupantAddress1: '175 Main Street',
occupantAddress2: 'P.O. Box 280',
occupantCity: 'Thessalon',
occupantProvince: 'ON',
occupantPostalCode: 'P0R 1L0',
occupantPhoneNumber: '705-842-2520',
occupantEmailAddress: 'bfh@beggsfh.ca'
}
}
case 'BK': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Barton and Kiteley',
occupantAddress1: '',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: '',
occupantPhoneNumber: '',
occupantEmailAddress: ''
}
}
case 'DA': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Damignani Burial, Cremation and Transfer Service',
occupantAddress1: '215 St. James Street',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 1P7',
occupantPhoneNumber: '705-759-8456',
occupantEmailAddress: ''
}
}
case 'GL': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Gilmartin P.M. Funeral Home',
occupantAddress1: '140 Churchill Avenue',
occupantAddress2: '',
occupantCity: 'Wawa',
occupantProvince: 'ON',
occupantPostalCode: 'P0S 1K0',
occupantPhoneNumber: '705-856-7340',
occupantEmailAddress: ''
}
}
case 'NO': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: 'Northwood Funeral Home',
occupantAddress1: '942 Great Northern Road',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6B 0B6',
occupantPhoneNumber: '705-945-7758',
occupantEmailAddress: ''
}
}
case 'OS': {
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: "O'Sullivan Funeral Home",
occupantAddress1: '215 St. James Street',
occupantAddress2: '',
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON',
occupantPostalCode: 'P6A 1P7',
occupantPhoneNumber: '705-759-8456',
occupantEmailAddress: ''
}
}
}
return {
lotOccupantTypeId: importIds.funeralDirectorLotOccupantTypeId,
occupantName: funeralHomeKey,
occupantCity: 'Sault Ste. Marie',
occupantProvince: 'ON'
}
}

View File

@ -0,0 +1,20 @@
export declare function getFeeIdByFeeDescription(feeDescription: string): number;
export declare const preneedOwnerLotOccupantTypeId: number;
export declare const funeralDirectorLotOccupantTypeId: number;
export declare const deceasedLotOccupantTypeId: number;
export declare const purchaserLotOccupantTypeId: number;
export declare const availableLotStatusId: number;
export declare const reservedLotStatusId: number;
export declare const takenLotStatusId: number;
export declare function getLotTypeId(dataRow: {
cemetery: string;
}): number;
export declare const preneedOccupancyType: import("../types/recordTypes.js").OccupancyType;
export declare const deceasedOccupancyType: import("../types/recordTypes.js").OccupancyType;
export declare const cremationOccupancyType: import("../types/recordTypes.js").OccupancyType;
export declare const acknowledgedWorkOrderMilestoneTypeId: number | undefined;
export declare const deathWorkOrderMilestoneTypeId: number | undefined;
export declare const funeralWorkOrderMilestoneTypeId: number | undefined;
export declare const cremationWorkOrderMilestoneTypeId: number | undefined;
export declare const intermentWorkOrderMilestoneTypeId: number | undefined;
export declare const workOrderTypeId = 1;

View File

@ -0,0 +1,63 @@
import sqlite from 'better-sqlite3';
import { lotOccupancyDB as databasePath } from '../data/databasePaths.js';
import * as cacheFunctions from '../helpers/functions.cache.js';
const feeCache = new Map();
export function getFeeIdByFeeDescription(feeDescription) {
if (feeCache.keys.length === 0) {
const database = sqlite(databasePath, {
readonly: true
});
const records = 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);
}
export const preneedOwnerLotOccupantTypeId = cacheFunctions.getLotOccupantTypeByLotOccupantType('Preneed Owner').lotOccupantTypeId;
export const funeralDirectorLotOccupantTypeId = cacheFunctions.getLotOccupantTypeByLotOccupantType('Funeral Director').lotOccupantTypeId;
export const deceasedLotOccupantTypeId = cacheFunctions.getLotOccupantTypeByLotOccupantType('Deceased').lotOccupantTypeId;
export const purchaserLotOccupantTypeId = cacheFunctions.getLotOccupantTypeByLotOccupantType('Purchaser').lotOccupantTypeId;
export const availableLotStatusId = cacheFunctions.getLotStatusByLotStatus('Available').lotStatusId;
export const reservedLotStatusId = cacheFunctions.getLotStatusByLotStatus('Reserved').lotStatusId;
export const takenLotStatusId = cacheFunctions.getLotStatusByLotStatus('Taken').lotStatusId;
const casketLotTypeId = cacheFunctions.getLotTypesByLotType('Casket Grave').lotTypeId;
const columbariumLotTypeId = cacheFunctions.getLotTypesByLotType('Columbarium').lotTypeId;
const crematoriumLotTypeId = cacheFunctions.getLotTypesByLotType('Crematorium').lotTypeId;
const mausoleumLotTypeId = cacheFunctions.getLotTypesByLotType('Mausoleum').lotTypeId;
const nicheWallLotTypeId = cacheFunctions.getLotTypesByLotType('Niche Wall').lotTypeId;
const urnGardenLotTypeId = cacheFunctions.getLotTypesByLotType('Urn Garden').lotTypeId;
export function getLotTypeId(dataRow) {
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;
}
export const preneedOccupancyType = cacheFunctions.getOccupancyTypeByOccupancyType('Preneed');
export const deceasedOccupancyType = cacheFunctions.getOccupancyTypeByOccupancyType('Interment');
export const cremationOccupancyType = cacheFunctions.getOccupancyTypeByOccupancyType('Cremation');
export const acknowledgedWorkOrderMilestoneTypeId = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Acknowledged')?.workOrderMilestoneTypeId;
export const deathWorkOrderMilestoneTypeId = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Death')?.workOrderMilestoneTypeId;
export const funeralWorkOrderMilestoneTypeId = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Funeral')?.workOrderMilestoneTypeId;
export const cremationWorkOrderMilestoneTypeId = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Cremation')?.workOrderMilestoneTypeId;
export const intermentWorkOrderMilestoneTypeId = cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType('Interment')?.workOrderMilestoneTypeId;
export const workOrderTypeId = 1;

View File

@ -0,0 +1,159 @@
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: Map<string, number> = new Map()
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 =
cacheFunctions.getLotOccupantTypeByLotOccupantType(
'Preneed Owner'
)!.lotOccupantTypeId
export const funeralDirectorLotOccupantTypeId =
cacheFunctions.getLotOccupantTypeByLotOccupantType(
'Funeral Director'
)!.lotOccupantTypeId
export const deceasedLotOccupantTypeId =
cacheFunctions.getLotOccupantTypeByLotOccupantType(
'Deceased'
)!.lotOccupantTypeId
export const purchaserLotOccupantTypeId =
cacheFunctions.getLotOccupantTypeByLotOccupantType(
'Purchaser'
)!.lotOccupantTypeId
/*
* Lot Status IDs
*/
export const availableLotStatusId =
cacheFunctions.getLotStatusByLotStatus('Available')!.lotStatusId
export const reservedLotStatusId =
cacheFunctions.getLotStatusByLotStatus('Reserved')!.lotStatusId
export const takenLotStatusId =
cacheFunctions.getLotStatusByLotStatus('Taken')!.lotStatusId
/*
* Lot Type IDs
*/
const casketLotTypeId =
cacheFunctions.getLotTypesByLotType('Casket Grave')!.lotTypeId
const columbariumLotTypeId =
cacheFunctions.getLotTypesByLotType('Columbarium')!.lotTypeId
const crematoriumLotTypeId =
cacheFunctions.getLotTypesByLotType('Crematorium')!.lotTypeId
const mausoleumLotTypeId =
cacheFunctions.getLotTypesByLotType('Mausoleum')!.lotTypeId
const nicheWallLotTypeId =
cacheFunctions.getLotTypesByLotType('Niche Wall')!.lotTypeId
const urnGardenLotTypeId =
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 =
cacheFunctions.getOccupancyTypeByOccupancyType('Preneed')!
export const deceasedOccupancyType =
cacheFunctions.getOccupancyTypeByOccupancyType('Interment')!
export const cremationOccupancyType =
cacheFunctions.getOccupancyTypeByOccupancyType('Cremation')!
/*
* Work Order Milestone Type IDs
*/
export const acknowledgedWorkOrderMilestoneTypeId =
cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Acknowledged'
)?.workOrderMilestoneTypeId
export const deathWorkOrderMilestoneTypeId =
cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Death'
)?.workOrderMilestoneTypeId
export const funeralWorkOrderMilestoneTypeId =
cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Funeral'
)?.workOrderMilestoneTypeId
export const cremationWorkOrderMilestoneTypeId =
cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Cremation'
)?.workOrderMilestoneTypeId
export const intermentWorkOrderMilestoneTypeId =
cacheFunctions.getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
'Interment'
)?.workOrderMilestoneTypeId
/*
* Work Order Type IDs
*/
export const workOrderTypeId = 1