diff --git a/temp/legacy.importFromCSV.js b/temp/legacy.importFromCSV.js index 6da37de6..f129c625 100644 --- a/temp/legacy.importFromCSV.js +++ b/temp/legacy.importFromCSV.js @@ -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,39 +320,35 @@ 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 (masterRow.CM_CONTAINER_TYPE !== '') { - addOrUpdateLotOccupancyField({ - lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: (lotId - ? deceasedOccupancyType - : cremationOccupancyType).occupancyTypeFields.find((occupancyTypeField) => { - return (occupancyTypeField.occupancyTypeField === 'Container Type'); - }).occupancyTypeFieldId, - lotOccupancyFieldValue: masterRow.CM_CONTAINER_TYPE - }, user); - } - if (masterRow.CM_COMMITTAL_TYPE !== '') { - let commitalType = masterRow.CM_COMMITTAL_TYPE; - if (commitalType === 'GS') { - commitalType = 'Graveside'; + if (occupancyType.occupancyType !== 'Cremation') { + if (masterRow.CM_CONTAINER_TYPE !== '') { + addOrUpdateLotOccupancyField({ + lotOccupancyId: deceasedLotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => { + return (occupancyTypeField.occupancyTypeField === 'Container Type'); + }).occupancyTypeFieldId, + lotOccupancyFieldValue: masterRow.CM_CONTAINER_TYPE + }, user); + } + if (masterRow.CM_COMMITTAL_TYPE !== '') { + let commitalType = masterRow.CM_COMMITTAL_TYPE; + if (commitalType === 'GS') { + commitalType = 'Graveside'; + } + addOrUpdateLotOccupancyField({ + lotOccupancyId: deceasedLotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => { + return (occupancyTypeField.occupancyTypeField === 'Committal Type'); + }).occupancyTypeFieldId, + lotOccupancyFieldValue: commitalType + }, user); } - addOrUpdateLotOccupancyField({ - lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: (lotId - ? deceasedOccupancyType - : cremationOccupancyType).occupancyTypeFields.find((occupancyTypeField) => { - return (occupancyTypeField.occupancyTypeField === 'Committal Type'); - }).occupancyTypeFieldId, - lotOccupancyFieldValue: commitalType - }, user); } if (masterRow.CM_REMARK1 !== '') { addLotOccupancyComment({ @@ -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,34 +787,36 @@ 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 (workOrderRow.WO_CONTAINER_TYPE !== '') { - addOrUpdateLotOccupancyField({ - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => { - return (occupancyTypeField.occupancyTypeField === 'Container Type'); - }).occupancyTypeFieldId, - lotOccupancyFieldValue: workOrderRow.WO_CONTAINER_TYPE - }, user); - } - if (workOrderRow.WO_COMMITTAL_TYPE !== '') { - let commitalType = workOrderRow.WO_COMMITTAL_TYPE; - if (commitalType === 'GS') { - commitalType = 'Graveside'; + if (occupancyType.occupancyType !== 'Cremation') { + if (workOrderRow.WO_CONTAINER_TYPE !== '') { + addOrUpdateLotOccupancyField({ + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => { + return (occupancyTypeField.occupancyTypeField === 'Container Type'); + }).occupancyTypeFieldId, + lotOccupancyFieldValue: workOrderRow.WO_CONTAINER_TYPE + }, user); + } + if (workOrderRow.WO_COMMITTAL_TYPE !== '') { + let commitalType = workOrderRow.WO_COMMITTAL_TYPE; + if (commitalType === 'GS') { + commitalType = 'Graveside'; + } + addOrUpdateLotOccupancyField({ + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields.find((occupancyTypeField) => { + return (occupancyTypeField.occupancyTypeField === 'Committal Type'); + }).occupancyTypeFieldId, + lotOccupancyFieldValue: commitalType + }, user); } - addOrUpdateLotOccupancyField({ - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: deceasedOccupancyType.occupancyTypeFields.find((occupancyTypeField) => { - return (occupancyTypeField.occupancyTypeField === 'Committal Type'); - }).occupancyTypeFieldId, - lotOccupancyFieldValue: commitalType - }, user); } addWorkOrderLotOccupancy({ workOrderId: workOrder.workOrderId, @@ -1008,10 +824,10 @@ function importFromWorkOrderCSV() { }, 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 diff --git a/temp/legacy.importFromCSV.ts b/temp/legacy.importFromCSV.ts index 040af887..235bc99a 100644 --- a/temp/legacy.importFromCSV.ts +++ b/temp/legacy.importFromCSV.ts @@ -7,7 +7,8 @@ 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' @@ -254,7 +255,7 @@ function getMapByMapDescription(mapDescription: string): recordTypes.Map { }) const map: recordTypes.Map = database - .prepare('select * from Maps' + ' where mapDescription = ?') + .prepare('select * from Maps where mapDescription = ?') .get(mapDescription) database.close() @@ -303,7 +304,7 @@ function getMap(dataRow: { cemetery: string }): recordTypes.Map { */ if (mapCache.has(mapCacheKey)) { - return mapCache.get(mapCacheKey) + return mapCache.get(mapCacheKey)! } let map = getMapByMapDescription(mapCacheKey) @@ -336,232 +337,6 @@ function getMap(dataRow: { cemetery: string }): recordTypes.Map { return map } -const feeCache: Map = new Map() - -function getFeeIdByFeeDescription(feeDescription: string): number | undefined { - 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) -} - -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) - ) -} - -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: { cemetery: string }): recordTypes.LotType | undefined { - 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: string -): recordTypes.LotOccupancyOccupant { - 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(): void { console.time('importFromMasterCSV') @@ -583,9 +358,9 @@ function importFromMasterCSV(): void { for (masterRow of cmmaster.data) { 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, @@ -597,19 +372,19 @@ function importFromMasterCSV(): void { interment: masterRow.CM_INTERMENT }) - const lotType = getLotType({ + const lotTypeId = importIds.getLotTypeId({ cemetery: masterRow.CM_CEMETERY - }) + })! let lotId: number if (masterRow.CM_CEMETERY !== '00') { lotId = addLot( { - lotName: lotName, - lotTypeId: lotType.lotTypeId, - lotStatusId: availableLotStatus.lotStatusId, - mapId: map.mapId, + lotName, + lotTypeId, + lotStatusId: importIds.availableLotStatusId, + mapId: map.mapId!, mapKey: lotName.includes(',') ? lotName.split(',')[0] : lotName, lotLatitude: '', lotLongitude: '' @@ -621,7 +396,7 @@ function importFromMasterCSV(): void { let preneedOccupancyStartDateString: string let preneedLotOccupancyId: number - 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, @@ -679,7 +454,7 @@ function importFromMasterCSV(): void { preneedLotOccupancyId = addLotOccupancy( { - occupancyTypeId: preneedOccupancyType.occupancyTypeId, + occupancyTypeId: importIds.preneedOccupancyType.occupancyTypeId, lotId, occupancyStartDateString: preneedOccupancyStartDateString, occupancyEndDateString, @@ -688,16 +463,13 @@ function importFromMasterCSV(): void { 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: '', @@ -735,14 +507,14 @@ function importFromMasterCSV(): void { } if (occupancyEndDateString === '') { - updateLotStatus(lotId, reservedLotStatus.lotStatusId, user) + updateLotStatus(lotId, importIds.reservedLotStatusId, user) } } let deceasedOccupancyStartDateString: string let deceasedLotOccupancyId: number - if (masterRow.CM_DECEASED_NAME) { + if (masterRow.CM_DECEASED_NAME !== '') { deceasedOccupancyStartDateString = formatDateString( masterRow.CM_INTERMENT_YR, masterRow.CM_INTERMENT_MON, @@ -773,11 +545,13 @@ function importFromMasterCSV(): void { ? '' : deceasedOccupancyStartDateString + const occupancyType = lotId + ? importIds.deceasedOccupancyType + : importIds.cremationOccupancyType + deceasedLotOccupancyId = addLotOccupancy( { - occupancyTypeId: lotId - ? deceasedOccupancyType.occupancyTypeId - : cremationOccupancyType.occupancyTypeId, + occupancyTypeId: occupancyType.occupancyTypeId, lotId, occupancyStartDateString: deceasedOccupancyStartDateString, occupancyEndDateString: deceasedOccupancyEndDateString, @@ -786,16 +560,13 @@ function importFromMasterCSV(): void { 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: '', @@ -818,12 +589,11 @@ function importFromMasterCSV(): void { addOrUpdateLotOccupancyField( { lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: (lotId - ? deceasedOccupancyType - : cremationOccupancyType - ).occupancyTypeFields.find((occupancyTypeField) => { - return occupancyTypeField.occupancyTypeField === 'Death Date' - }).occupancyTypeFieldId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return occupancyTypeField.occupancyTypeField === 'Death Date' + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue }, user @@ -834,12 +604,11 @@ function importFromMasterCSV(): void { addOrUpdateLotOccupancyField( { lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: (lotId - ? deceasedOccupancyType - : cremationOccupancyType - ).occupancyTypeFields.find((occupancyTypeField) => { - return occupancyTypeField.occupancyTypeField === 'Death Age' - }).occupancyTypeFieldId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return occupancyTypeField.occupancyTypeField === 'Death Age' + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue: masterRow.CM_AGE }, user @@ -850,14 +619,13 @@ function importFromMasterCSV(): void { addOrUpdateLotOccupancyField( { lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: (lotId - ? deceasedOccupancyType - : cremationOccupancyType - ).occupancyTypeFields.find((occupancyTypeField) => { - return ( - occupancyTypeField.occupancyTypeField === 'Death Age Period' - ) - }).occupancyTypeFieldId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return ( + occupancyTypeField.occupancyTypeField === 'Death Age Period' + ) + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue: masterRow.CM_PERIOD }, user @@ -865,38 +633,41 @@ function importFromMasterCSV(): void { } 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, - occupantName: funeralHomeOccupant.occupantName, - occupantAddress1: funeralHomeOccupant.occupantAddress1, - occupantAddress2: funeralHomeOccupant.occupantAddress2, - occupantCity: funeralHomeOccupant.occupantCity, - occupantProvince: funeralHomeOccupant.occupantProvince, - occupantPostalCode: funeralHomeOccupant.occupantPostalCode, - occupantPhoneNumber: funeralHomeOccupant.occupantPhoneNumber, - occupantEmailAddress: funeralHomeOccupant.occupantEmailAddress + lotOccupantTypeId: funeralHomeOccupant.lotOccupantTypeId!, + occupantName: funeralHomeOccupant.occupantName!, + occupantAddress1: funeralHomeOccupant.occupantAddress1!, + occupantAddress2: funeralHomeOccupant.occupantAddress2!, + occupantCity: funeralHomeOccupant.occupantCity!, + occupantProvince: funeralHomeOccupant.occupantProvince!, + occupantPostalCode: funeralHomeOccupant.occupantPostalCode!, + occupantPhoneNumber: funeralHomeOccupant.occupantPhoneNumber!, + occupantEmailAddress: funeralHomeOccupant.occupantEmailAddress! }, user ) /* - addOrUpdateLotOccupancyField( - { - lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: allOccupancyTypeFields.find( - (occupancyTypeField) => { - return occupancyTypeField.occupancyTypeField === "Funeral Home"; - } - ).occupancyTypeFieldId, - lotOccupancyFieldValue: masterRow.CM_FUNERAL_HOME - }, - user - ); - */ + addOrUpdateLotOccupancyField( + { + lotOccupancyId: deceasedLotOccupancyId, + occupancyTypeFieldId: allOccupancyTypeFields.find( + (occupancyTypeField) => { + return occupancyTypeField.occupancyTypeField === "Funeral Home"; + } + ).occupancyTypeFieldId, + lotOccupancyFieldValue: masterRow.CM_FUNERAL_HOME + }, + user + ); + */ } if (masterRow.CM_FUNERAL_YR !== '') { @@ -909,58 +680,59 @@ function importFromMasterCSV(): void { addOrUpdateLotOccupancyField( { lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: (lotId - ? deceasedOccupancyType - : cremationOccupancyType - ).occupancyTypeFields.find((occupancyTypeField) => { - return occupancyTypeField.occupancyTypeField === 'Funeral Date' - }).occupancyTypeFieldId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return ( + occupancyTypeField.occupancyTypeField === 'Funeral Date' + ) + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue }, user ) } - if (masterRow.CM_CONTAINER_TYPE !== '') { - addOrUpdateLotOccupancyField( - { - lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: (lotId - ? deceasedOccupancyType - : cremationOccupancyType - ).occupancyTypeFields.find((occupancyTypeField) => { - return ( - occupancyTypeField.occupancyTypeField === 'Container Type' - ) - }).occupancyTypeFieldId, - lotOccupancyFieldValue: masterRow.CM_CONTAINER_TYPE - }, - user - ) - } - - if (masterRow.CM_COMMITTAL_TYPE !== '') { - let commitalType = masterRow.CM_COMMITTAL_TYPE - - if (commitalType === 'GS') { - commitalType = 'Graveside' + if (occupancyType.occupancyType !== 'Cremation') { + if (masterRow.CM_CONTAINER_TYPE !== '') { + addOrUpdateLotOccupancyField( + { + lotOccupancyId: deceasedLotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return ( + occupancyTypeField.occupancyTypeField === 'Container Type' + ) + } + )!.occupancyTypeFieldId!, + lotOccupancyFieldValue: masterRow.CM_CONTAINER_TYPE + }, + user + ) } - addOrUpdateLotOccupancyField( - { - lotOccupancyId: deceasedLotOccupancyId, - occupancyTypeFieldId: (lotId - ? deceasedOccupancyType - : cremationOccupancyType - ).occupancyTypeFields.find((occupancyTypeField) => { - return ( - occupancyTypeField.occupancyTypeField === 'Committal Type' - ) - }).occupancyTypeFieldId, - lotOccupancyFieldValue: commitalType - }, - user - ) + if (masterRow.CM_COMMITTAL_TYPE !== '') { + let commitalType = masterRow.CM_COMMITTAL_TYPE + + if (commitalType === 'GS') { + commitalType = 'Graveside' + } + + addOrUpdateLotOccupancyField( + { + lotOccupancyId: deceasedLotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return ( + occupancyTypeField.occupancyTypeField === 'Committal Type' + ) + } + )!.occupancyTypeFieldId!, + lotOccupancyFieldValue: commitalType + }, + user + ) + } } if (masterRow.CM_REMARK1 !== '') { @@ -987,13 +759,13 @@ function importFromMasterCSV(): void { ) } - updateLotStatus(lotId, takenLotStatus.lotStatusId, user) + updateLotStatus(lotId, importIds.takenLotStatusId, user) - if (masterRow.CM_PRENEED_OWNER) { + if (masterRow.CM_PRENEED_OWNER !== '') { addLotOccupancyOccupant( { lotOccupancyId: deceasedLotOccupancyId, - lotOccupantTypeId: preneedOwnerLotOccupantType.lotOccupantTypeId, + lotOccupantTypeId: importIds.preneedOwnerLotOccupantTypeId, occupantName: masterRow.CM_PRENEED_OWNER, occupantAddress1: '', occupantAddress2: '', @@ -1016,7 +788,7 @@ function importFromMasterCSV(): void { console.timeEnd('importFromMasterCSV') } -function importFromPrepaidCSV() { +function importFromPrepaidCSV(): void { console.time('importFromPrepaidCSV') let prepaidRow: PrepaidRecord @@ -1041,18 +813,18 @@ function importFromPrepaidCSV() { let cemetery = prepaidRow.CMPP_CEMETERY - if (cemetery && cemetery === '.m') { + if (cemetery === '.m') { cemetery = 'HC' } let lot: recordTypes.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, @@ -1067,16 +839,16 @@ 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, - mapId: map.mapId, + lotName, + lotTypeId, + lotStatusId: importIds.reservedLotStatusId, + mapId: map.mapId!, mapKey: lotName.includes(',') ? lotName.split(',')[0] : lotName, lotLatitude: '', lotLongitude: '' @@ -1088,8 +860,8 @@ function importFromPrepaidCSV() { } } - 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( @@ -1104,7 +876,7 @@ function importFromPrepaidCSV() { const possibleLotOccupancies = getLotOccupancies( { lotId: lot.lotId, - occupancyTypeId: preneedOccupancyType.occupancyTypeId, + occupancyTypeId: importIds.preneedOccupancyType.occupancyTypeId, occupantName: prepaidRow.CMPP_PREPAID_FOR_NAME, occupancyStartDateString }, @@ -1117,7 +889,7 @@ function importFromPrepaidCSV() { if (possibleLotOccupancies.lotOccupancies.length > 0) { lotOccupancyId = - possibleLotOccupancies.lotOccupancies[0].lotOccupancyId + possibleLotOccupancies.lotOccupancies[0].lotOccupancyId! } } @@ -1125,7 +897,7 @@ function importFromPrepaidCSV() { lotOccupancyId = addLotOccupancy( { lotId: lot ? lot.lotId : '', - occupancyTypeId: preneedOccupancyType.occupancyTypeId, + occupancyTypeId: importIds.preneedOccupancyType.occupancyTypeId, occupancyStartDateString, occupancyEndDateString: '' }, @@ -1136,7 +908,7 @@ function importFromPrepaidCSV() { addLotOccupancyOccupant( { lotOccupancyId, - lotOccupantTypeId: preneedOwnerLotOccupantType.lotOccupantTypeId, + lotOccupantTypeId: importIds.preneedOwnerLotOccupantTypeId, occupantName: prepaidRow.CMPP_PREPAID_FOR_NAME, occupantAddress1: prepaidRow.CMPP_ADDRESS, occupantAddress2: '', @@ -1154,7 +926,7 @@ function importFromPrepaidCSV() { addLotOccupancyOccupant( { lotOccupancyId, - lotOccupantTypeId: purchaserLotOccupantType.lotOccupantTypeId, + lotOccupantTypeId: importIds.purchaserLotOccupantTypeId, occupantName: prepaidRow.CMPP_ARRANGED_BY_NAME, occupantAddress1: '', occupantAddress2: '', @@ -1172,7 +944,7 @@ function importFromPrepaidCSV() { 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 @@ -1185,7 +957,7 @@ function importFromPrepaidCSV() { 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 @@ -1198,7 +970,7 @@ function importFromPrepaidCSV() { 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 @@ -1211,7 +983,7 @@ function importFromPrepaidCSV() { 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 @@ -1224,7 +996,7 @@ function importFromPrepaidCSV() { 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 @@ -1237,7 +1009,7 @@ function importFromPrepaidCSV() { 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 @@ -1250,7 +1022,7 @@ function importFromPrepaidCSV() { 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 @@ -1266,7 +1038,7 @@ function importFromPrepaidCSV() { 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 @@ -1342,7 +1114,7 @@ function importFromPrepaidCSV() { console.timeEnd('importFromPrepaidCSV') } -function importFromWorkOrderCSV() { +function importFromWorkOrderCSV(): void { console.time('importFromWorkOrderCSV') let workOrderRow: WorkOrderRecord @@ -1373,7 +1145,7 @@ function importFromWorkOrderCSV() { if (workOrder) { if (workOrder.workOrderCloseDate) { - reopenWorkOrder(workOrder.workOrderId, user) + reopenWorkOrder(workOrder.workOrderId!, user) delete workOrder.workOrderCloseDate delete workOrder.workOrderCloseDateString } @@ -1381,7 +1153,7 @@ function importFromWorkOrderCSV() { const workOrderId = addWorkOrder( { workOrderNumber, - workOrderTypeId: 1, + workOrderTypeId: importIds.workOrderTypeId, workOrderDescription: ( workOrderRow.WO_REMARK1 + ' ' + @@ -1404,7 +1176,7 @@ function importFromWorkOrderCSV() { let lot: recordTypes.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, @@ -1421,17 +1193,17 @@ function importFromWorkOrderCSV() { 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, + mapId: map.mapId!, lotName, mapKey: lotName.includes(',') ? lotName.split(',')[0] : lotName, - lotStatusId: takenLotStatus.lotStatusId, - lotTypeId: lotType.lotTypeId, + lotStatusId: importIds.takenLotStatusId, + lotTypeId, lotLatitude: '', lotLongitude: '' }, @@ -1440,10 +1212,10 @@ function importFromWorkOrderCSV() { lot = getLot(lotId) } else { - updateLotStatus(lot.lotId, takenLotStatus.lotStatusId, user) + updateLotStatus(lot.lotId, importIds.takenLotStatusId, user) } - const workOrderContainsLot = workOrder.workOrderLots.find( + const workOrderContainsLot = workOrder.workOrderLots!.find( (possibleLot) => { return (possibleLot.lotId = lot.lotId) } @@ -1452,13 +1224,13 @@ function importFromWorkOrderCSV() { if (!workOrderContainsLot) { addWorkOrderLot( { - workOrderId: workOrder.workOrderId, + workOrderId: workOrder.workOrderId!, lotId: lot.lotId }, user ) - workOrder.workOrderLots.push(lot) + workOrder.workOrderLots!.push(lot) } } @@ -1472,10 +1244,14 @@ function importFromWorkOrderCSV() { ) } + const occupancyType = lot + ? importIds.deceasedOccupancyType + : importIds.cremationOccupancyType + const lotOccupancyId = addLotOccupancy( { lotId: lot ? lot.lotId : '', - occupancyTypeId: deceasedOccupancyType.occupancyTypeId, + occupancyTypeId: occupancyType.occupancyTypeId, occupancyStartDateString, occupancyEndDateString: '' }, @@ -1485,7 +1261,7 @@ function importFromWorkOrderCSV() { addLotOccupancyOccupant( { lotOccupancyId, - lotOccupantTypeId: deceasedLotOccupantType.lotOccupantTypeId, + lotOccupantTypeId: importIds.deceasedLotOccupantTypeId, occupantName: workOrderRow.WO_DECEASED_NAME, occupantAddress1: workOrderRow.WO_ADDRESS, occupantAddress2: '', @@ -1508,13 +1284,12 @@ function importFromWorkOrderCSV() { addOrUpdateLotOccupancyField( { - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: - deceasedOccupancyType.occupancyTypeFields.find( - (occupancyTypeField) => { - return occupancyTypeField.occupancyTypeField === 'Death Date' - } - ).occupancyTypeFieldId, + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return occupancyTypeField.occupancyTypeField === 'Death Date' + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue }, user @@ -1524,13 +1299,12 @@ function importFromWorkOrderCSV() { if (workOrderRow.WO_DEATH_PLACE !== '') { addOrUpdateLotOccupancyField( { - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: - deceasedOccupancyType.occupancyTypeFields.find( - (occupancyTypeField) => { - return occupancyTypeField.occupancyTypeField === 'Death Place' - } - ).occupancyTypeFieldId, + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return occupancyTypeField.occupancyTypeField === 'Death Place' + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue: workOrderRow.WO_DEATH_PLACE }, user @@ -1540,13 +1314,12 @@ function importFromWorkOrderCSV() { if (workOrderRow.WO_AGE !== '') { addOrUpdateLotOccupancyField( { - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: - deceasedOccupancyType.occupancyTypeFields.find( - (occupancyTypeField) => { - return occupancyTypeField.occupancyTypeField === 'Death Age' - } - ).occupancyTypeFieldId, + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return occupancyTypeField.occupancyTypeField === 'Death Age' + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue: workOrderRow.WO_AGE }, user @@ -1556,15 +1329,14 @@ function importFromWorkOrderCSV() { if (workOrderRow.WO_PERIOD !== '') { addOrUpdateLotOccupancyField( { - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: - deceasedOccupancyType.occupancyTypeFields.find( - (occupancyTypeField) => { - return ( - occupancyTypeField.occupancyTypeField === 'Death Age Period' - ) - } - ).occupancyTypeFieldId, + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return ( + occupancyTypeField.occupancyTypeField === 'Death Age Period' + ) + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue: workOrderRow.WO_PERIOD }, user @@ -1572,36 +1344,39 @@ function importFromWorkOrderCSV() { } if (workOrderRow.WO_FUNERAL_HOME !== '') { - const funeralHomeOccupant = getFuneralHome(workOrderRow.WO_FUNERAL_HOME) + const funeralHomeOccupant = + importData.getFuneralHomeLotOccupancyOccupantData( + workOrderRow.WO_FUNERAL_HOME + ) addLotOccupancyOccupant( { - lotOccupancyId: lotOccupancyId, - lotOccupantTypeId: funeralHomeOccupant.lotOccupantTypeId, - occupantName: funeralHomeOccupant.occupantName, - occupantAddress1: funeralHomeOccupant.occupantAddress1, - occupantAddress2: funeralHomeOccupant.occupantAddress2, - occupantCity: funeralHomeOccupant.occupantCity, - occupantProvince: funeralHomeOccupant.occupantProvince, - occupantPostalCode: funeralHomeOccupant.occupantPostalCode, - occupantPhoneNumber: funeralHomeOccupant.occupantPhoneNumber, - occupantEmailAddress: funeralHomeOccupant.occupantEmailAddress + lotOccupancyId, + lotOccupantTypeId: funeralHomeOccupant.lotOccupantTypeId!, + occupantName: funeralHomeOccupant.occupantName!, + occupantAddress1: funeralHomeOccupant.occupantAddress1!, + occupantAddress2: funeralHomeOccupant.occupantAddress2!, + occupantCity: funeralHomeOccupant.occupantCity!, + occupantProvince: funeralHomeOccupant.occupantProvince!, + occupantPostalCode: funeralHomeOccupant.occupantPostalCode!, + occupantPhoneNumber: funeralHomeOccupant.occupantPhoneNumber!, + occupantEmailAddress: funeralHomeOccupant.occupantEmailAddress! }, user ) /* - addOrUpdateLotOccupancyField( - { - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: allOccupancyTypeFields.find((occupancyTypeField) => { - return occupancyTypeField.occupancyTypeField === "Funeral Home"; - }).occupancyTypeFieldId, - lotOccupancyFieldValue: workOrderRow.WO_FUNERAL_HOME - }, - user - ); - */ + addOrUpdateLotOccupancyField( + { + lotOccupancyId: lotOccupancyId, + occupancyTypeFieldId: allOccupancyTypeFields.find((occupancyTypeField) => { + return occupancyTypeField.occupancyTypeField === "Funeral Home"; + }).occupancyTypeFieldId, + lotOccupancyFieldValue: workOrderRow.WO_FUNERAL_HOME + }, + user + ); + */ } if (workOrderRow.WO_FUNERAL_YR !== '') { @@ -1613,66 +1388,63 @@ function importFromWorkOrderCSV() { addOrUpdateLotOccupancyField( { - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: - deceasedOccupancyType.occupancyTypeFields.find( - (occupancyTypeField) => { - return ( - occupancyTypeField.occupancyTypeField === 'Funeral Date' - ) - } - ).occupancyTypeFieldId, + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( + (occupancyTypeField) => { + return occupancyTypeField.occupancyTypeField === 'Funeral Date' + } + )!.occupancyTypeFieldId!, lotOccupancyFieldValue }, user ) } - if (workOrderRow.WO_CONTAINER_TYPE !== '') { - addOrUpdateLotOccupancyField( - { - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: - deceasedOccupancyType.occupancyTypeFields.find( + if (occupancyType.occupancyType !== 'Cremation') { + if (workOrderRow.WO_CONTAINER_TYPE !== '') { + addOrUpdateLotOccupancyField( + { + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( (occupancyTypeField) => { return ( occupancyTypeField.occupancyTypeField === 'Container Type' ) } - ).occupancyTypeFieldId, - lotOccupancyFieldValue: workOrderRow.WO_CONTAINER_TYPE - }, - user - ) - } - - if (workOrderRow.WO_COMMITTAL_TYPE !== '') { - let commitalType = workOrderRow.WO_COMMITTAL_TYPE - - if (commitalType === 'GS') { - commitalType = 'Graveside' + )!.occupancyTypeFieldId!, + lotOccupancyFieldValue: workOrderRow.WO_CONTAINER_TYPE + }, + user + ) } - addOrUpdateLotOccupancyField( - { - lotOccupancyId: lotOccupancyId, - occupancyTypeFieldId: - deceasedOccupancyType.occupancyTypeFields.find( + if (workOrderRow.WO_COMMITTAL_TYPE !== '') { + let commitalType = workOrderRow.WO_COMMITTAL_TYPE + + if (commitalType === 'GS') { + commitalType = 'Graveside' + } + + addOrUpdateLotOccupancyField( + { + lotOccupancyId, + occupancyTypeFieldId: occupancyType.occupancyTypeFields!.find( (occupancyTypeField) => { return ( occupancyTypeField.occupancyTypeField === 'Committal Type' ) } - ).occupancyTypeFieldId, - lotOccupancyFieldValue: commitalType - }, - user - ) + )!.occupancyTypeFieldId!, + lotOccupancyFieldValue: commitalType + }, + user + ) + } } addWorkOrderLotOccupancy( { - workOrderId: workOrder.workOrderId, + workOrderId: workOrder.workOrderId!, lotOccupancyId }, user @@ -1683,12 +1455,12 @@ function importFromWorkOrderCSV() { let hasIncompleteMilestones = !workOrderRow.WO_CONFIRMATION_IN let maxMilestoneCompletionDateString = workOrderOpenDateString - if (acknowledgedWorkOrderMilestoneType) { + if (importIds.acknowledgedWorkOrderMilestoneTypeId) { addWorkOrderMilestone( { workOrderId: workOrder.workOrderId, workOrderMilestoneTypeId: - acknowledgedWorkOrderMilestoneType.workOrderMilestoneTypeId, + importIds.acknowledgedWorkOrderMilestoneTypeId, workOrderMilestoneDateString: workOrderOpenDateString, workOrderMilestoneDescription: '', workOrderMilestoneCompletionDateString: @@ -1709,12 +1481,11 @@ function importFromWorkOrderCSV() { workOrderRow.WO_DEATH_DAY ) - if (deathWorkOrderMilestoneType) { + if (importIds.deathWorkOrderMilestoneTypeId) { addWorkOrderMilestone( { - workOrderId: workOrder.workOrderId, - workOrderMilestoneTypeId: - deathWorkOrderMilestoneType.workOrderMilestoneTypeId, + workOrderId: workOrder.workOrderId!, + workOrderMilestoneTypeId: importIds.deathWorkOrderMilestoneTypeId, workOrderMilestoneDateString, workOrderMilestoneDescription: 'Death Place: ' + workOrderRow.WO_DEATH_PLACE, @@ -1757,12 +1528,12 @@ function importFromWorkOrderCSV() { workOrderRow.WO_FUNERAL_MIN ) - if (funeralWorkOrderMilestoneType) { + if (importIds.funeralWorkOrderMilestoneTypeId) { addWorkOrderMilestone( { - workOrderId: workOrder.workOrderId, + workOrderId: workOrder.workOrderId!, workOrderMilestoneTypeId: - funeralWorkOrderMilestoneType.workOrderMilestoneTypeId, + importIds.funeralWorkOrderMilestoneTypeId, workOrderMilestoneDateString, workOrderMilestoneTimeString, workOrderMilestoneDescription: @@ -1791,13 +1562,13 @@ function importFromWorkOrderCSV() { if ( workOrderRow.WO_CREMATION === 'Y' && - cremationWorkOrderMilestoneType + importIds.cremationWorkOrderMilestoneTypeId ) { addWorkOrderMilestone( { - workOrderId: workOrder.workOrderId, + workOrderId: workOrder.workOrderId!, workOrderMilestoneTypeId: - cremationWorkOrderMilestoneType.workOrderMilestoneTypeId, + importIds.cremationWorkOrderMilestoneTypeId, workOrderMilestoneDateString: maxMilestoneCompletionDateString, workOrderMilestoneDescription: '', workOrderMilestoneCompletionDateString: @@ -1820,12 +1591,12 @@ function importFromWorkOrderCSV() { workOrderRow.WO_INTERMENT_DAY ) - if (intermentWorkOrderMilestoneType) { + if (importIds.intermentWorkOrderMilestoneTypeId) { addWorkOrderMilestone( { - workOrderId: workOrder.workOrderId, + workOrderId: workOrder.workOrderId!, workOrderMilestoneTypeId: - intermentWorkOrderMilestoneType.workOrderMilestoneTypeId, + importIds.intermentWorkOrderMilestoneTypeId, workOrderMilestoneDateString, workOrderMilestoneDescription: 'Depth: ' + workOrderRow.WO_DEPTH, workOrderMilestoneCompletionDateString: @@ -1853,7 +1624,7 @@ function importFromWorkOrderCSV() { if (!hasIncompleteMilestones) { closeWorkOrder( { - workOrderId: workOrder.workOrderId, + workOrderId: workOrder.workOrderId!, workOrderCloseDateString: maxMilestoneCompletionDateString }, user diff --git a/temp/legacy.importFromCsv.data.d.ts b/temp/legacy.importFromCsv.data.d.ts new file mode 100644 index 00000000..7a36b697 --- /dev/null +++ b/temp/legacy.importFromCsv.data.d.ts @@ -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; diff --git a/temp/legacy.importFromCsv.data.js b/temp/legacy.importFromCsv.data.js new file mode 100644 index 00000000..9ce63062 --- /dev/null +++ b/temp/legacy.importFromCsv.data.js @@ -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' + }; +} diff --git a/temp/legacy.importFromCsv.data.ts b/temp/legacy.importFromCsv.data.ts new file mode 100644 index 00000000..2ec07f2f --- /dev/null +++ b/temp/legacy.importFromCsv.data.ts @@ -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' + } +} diff --git a/temp/legacy.importFromCsv.ids.d.ts b/temp/legacy.importFromCsv.ids.d.ts new file mode 100644 index 00000000..cfeda03c --- /dev/null +++ b/temp/legacy.importFromCsv.ids.d.ts @@ -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; diff --git a/temp/legacy.importFromCsv.ids.js b/temp/legacy.importFromCsv.ids.js new file mode 100644 index 00000000..3db663a3 --- /dev/null +++ b/temp/legacy.importFromCsv.ids.js @@ -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; diff --git a/temp/legacy.importFromCsv.ids.ts b/temp/legacy.importFromCsv.ids.ts new file mode 100644 index 00000000..dabcddbd --- /dev/null +++ b/temp/legacy.importFromCsv.ids.ts @@ -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 = 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