sunrise-cms/database/updateCemetery.js

53 lines
2.5 KiB
JavaScript

import { buildBurialSiteName } from '../helpers/burialSites.helpers.js';
import { getConfigProperty } from '../helpers/config.helpers.js';
import getBurialSites from './getBurialSites.js';
import { acquireConnection } from './pool.js';
export default async function updateCemetery(updateForm, user) {
const database = await acquireConnection();
const result = database
.prepare(`update Cemeteries
set cemeteryName = ?,
cemeteryKey = ?,
cemeteryDescription = ?,
cemeterySvg = ?,
cemeteryLatitude = ?,
cemeteryLongitude = ?,
cemeteryAddress1 = ?,
cemeteryAddress2 = ?,
cemeteryCity = ?,
cemeteryProvince = ?,
cemeteryPostalCode = ?,
cemeteryPhoneNumber = ?,
recordUpdate_userName = ?,
recordUpdate_timeMillis = ?
where cemeteryId = ?
and recordDelete_timeMillis is null`)
.run(updateForm.cemeteryName, updateForm.cemeteryKey, updateForm.cemeteryDescription, updateForm.cemeterySvg, updateForm.cemeteryLatitude === ''
? undefined
: updateForm.cemeteryLatitude, updateForm.cemeteryLongitude === ''
? undefined
: updateForm.cemeteryLongitude, updateForm.cemeteryAddress1, updateForm.cemeteryAddress2, updateForm.cemeteryCity, updateForm.cemeteryProvince, updateForm.cemeteryPostalCode, updateForm.cemeteryPhoneNumber, user.userName, Date.now(), updateForm.cemeteryId);
/*
* Check if burial site names need to be updated
*/
let doRebuildBurialSiteNames = false;
if (getConfigProperty('settings.burialSites.burialSiteNameSegments.includeCemeteryKey')) {
const burialSites = await getBurialSites({ cemeteryId: updateForm.cemeteryId }, { limit: 1, offset: 0 }, database);
if (burialSites.count > 0 &&
buildBurialSiteName(updateForm.cemeteryKey, {
burialSiteNameSegment1: burialSites.burialSites[0].burialSiteNameSegment1,
burialSiteNameSegment2: burialSites.burialSites[0].burialSiteNameSegment2,
burialSiteNameSegment3: burialSites.burialSites[0].burialSiteNameSegment3,
burialSiteNameSegment4: burialSites.burialSites[0].burialSiteNameSegment4,
burialSiteNameSegment5: burialSites.burialSites[0].burialSiteNameSegment5
}) !== burialSites.burialSites[0].burialSiteName) {
doRebuildBurialSiteNames = true;
}
}
database.release();
return {
doRebuildBurialSiteNames,
success: result.changes > 0
};
}