avoid order number updates

when deleted records are loaded
pull/11/head
Dan Gowans 2025-04-28 15:10:19 -04:00
parent 3c4c85df19
commit f96d975aa0
14 changed files with 120 additions and 84 deletions

View File

@ -3,6 +3,7 @@ import { sunriseDB } from '../helpers/database.helpers.js';
import { updateRecordOrderNumber } from './updateRecordOrderNumber.js';
export default function getBurialSiteTypeFields(burialSiteTypeId, connectedDatabase) {
const database = connectedDatabase ?? sqlite(sunriseDB);
const updateOrderNumbers = !database.readonly;
const typeFields = database
.prepare(`select burialSiteTypeFieldId,
burialSiteTypeField, fieldType, fieldValues,
@ -12,13 +13,15 @@ export default function getBurialSiteTypeFields(burialSiteTypeId, connectedDatab
and burialSiteTypeId = ?
order by orderNumber, burialSiteTypeField`)
.all(burialSiteTypeId);
let expectedOrderNumber = 0;
for (const typeField of typeFields) {
if (typeField.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('BurialSiteTypeFields', typeField.burialSiteTypeFieldId, expectedOrderNumber, database);
typeField.orderNumber = expectedOrderNumber;
if (updateOrderNumbers) {
let expectedOrderNumber = 0;
for (const typeField of typeFields) {
if (typeField.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('BurialSiteTypeFields', typeField.burialSiteTypeFieldId, expectedOrderNumber, database);
typeField.orderNumber = expectedOrderNumber;
}
expectedOrderNumber += 1;
}
expectedOrderNumber += 1;
}
if (connectedDatabase === undefined) {
database.close();

View File

@ -11,6 +11,8 @@ export default function getBurialSiteTypeFields(
): BurialSiteTypeField[] {
const database = connectedDatabase ?? sqlite(sunriseDB)
const updateOrderNumbers = !database.readonly
const typeFields = database
.prepare(
`select burialSiteTypeFieldId,
@ -23,21 +25,23 @@ export default function getBurialSiteTypeFields(
)
.all(burialSiteTypeId) as BurialSiteTypeField[]
let expectedOrderNumber = 0
if (updateOrderNumbers) {
let expectedOrderNumber = 0
for (const typeField of typeFields) {
if (typeField.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'BurialSiteTypeFields',
typeField.burialSiteTypeFieldId,
expectedOrderNumber,
database
)
for (const typeField of typeFields) {
if (typeField.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'BurialSiteTypeFields',
typeField.burialSiteTypeFieldId,
expectedOrderNumber,
database
)
typeField.orderNumber = expectedOrderNumber
typeField.orderNumber = expectedOrderNumber
}
expectedOrderNumber += 1
}
expectedOrderNumber += 1
}
if (connectedDatabase === undefined) {

View File

@ -4,6 +4,7 @@ import getBurialSiteTypeFields from './getBurialSiteTypeFields.js';
import { updateRecordOrderNumber } from './updateRecordOrderNumber.js';
export default function getBurialSiteTypes(includeDeleted = false) {
const database = sqlite(sunriseDB);
const updateOrderNumbers = !database.readonly && !includeDeleted;
const burialSiteTypes = database
.prepare(`select burialSiteTypeId, burialSiteType, orderNumber
from BurialSiteTypes
@ -13,7 +14,7 @@ export default function getBurialSiteTypes(includeDeleted = false) {
let expectedOrderNumber = -1;
for (const burialSiteType of burialSiteTypes) {
expectedOrderNumber += 1;
if (burialSiteType.orderNumber !== expectedOrderNumber) {
if (updateOrderNumbers && burialSiteType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('BurialSiteTypes', burialSiteType.burialSiteTypeId, expectedOrderNumber, database);
burialSiteType.orderNumber = expectedOrderNumber;
}

View File

@ -11,6 +11,8 @@ export default function getBurialSiteTypes(
): BurialSiteType[] {
const database = sqlite(sunriseDB)
const updateOrderNumbers = !database.readonly && !includeDeleted
const burialSiteTypes = database
.prepare(
`select burialSiteTypeId, burialSiteType, orderNumber
@ -25,7 +27,7 @@ export default function getBurialSiteTypes(
for (const burialSiteType of burialSiteTypes) {
expectedOrderNumber += 1
if (burialSiteType.orderNumber !== expectedOrderNumber) {
if (updateOrderNumbers && burialSiteType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'BurialSiteTypes',
burialSiteType.burialSiteTypeId,

View File

@ -3,18 +3,21 @@ import { sunriseDB } from '../helpers/database.helpers.js';
import { updateRecordOrderNumber } from './updateRecordOrderNumber.js';
export default function getCommittalTypes(includeDeleted = false) {
const database = sqlite(sunriseDB);
const updateOrderNumbers = !database.readonly && !includeDeleted;
const committalTypes = database
.prepare(`select committalTypeId, committalTypeKey, committalType, orderNumber
from CommittalTypes
${includeDeleted ? '' : ' where recordDelete_timeMillis is null '}
order by orderNumber, committalType, committalTypeId`)
.all();
let expectedOrderNumber = -1;
for (const committalType of committalTypes) {
expectedOrderNumber += 1;
if (committalType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('CommittalTypes', committalType.committalTypeId, expectedOrderNumber, database);
committalType.orderNumber = expectedOrderNumber;
if (updateOrderNumbers) {
let expectedOrderNumber = -1;
for (const committalType of committalTypes) {
expectedOrderNumber += 1;
if (committalType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('CommittalTypes', committalType.committalTypeId, expectedOrderNumber, database);
committalType.orderNumber = expectedOrderNumber;
}
}
}
database.close();

View File

@ -10,6 +10,8 @@ export default function getCommittalTypes(
): CommittalType[] {
const database = sqlite(sunriseDB)
const updateOrderNumbers = !database.readonly && !includeDeleted
const committalTypes = database
.prepare(
`select committalTypeId, committalTypeKey, committalType, orderNumber
@ -19,20 +21,22 @@ export default function getCommittalTypes(
)
.all() as CommittalType[]
let expectedOrderNumber = -1
if (updateOrderNumbers) {
let expectedOrderNumber = -1
for (const committalType of committalTypes) {
expectedOrderNumber += 1
for (const committalType of committalTypes) {
expectedOrderNumber += 1
if (committalType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'CommittalTypes',
committalType.committalTypeId,
expectedOrderNumber,
database
)
if (committalType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'CommittalTypes',
committalType.committalTypeId,
expectedOrderNumber,
database
)
committalType.orderNumber = expectedOrderNumber
committalType.orderNumber = expectedOrderNumber
}
}
}

View File

@ -3,6 +3,7 @@ import { sunriseDB } from '../helpers/database.helpers.js';
import { updateRecordOrderNumber } from './updateRecordOrderNumber.js';
export default function getContractTypeFields(contractTypeId, connectedDatabase) {
const database = connectedDatabase ?? sqlite(sunriseDB);
const updateOrderNumbers = !database.readonly && contractTypeId !== undefined;
const sqlParameters = [];
if ((contractTypeId ?? -1) !== -1) {
sqlParameters.push(contractTypeId);
@ -17,13 +18,15 @@ export default function getContractTypeFields(contractTypeId, connectedDatabase)
: ' and contractTypeId = ?'}
order by orderNumber, contractTypeField`)
.all(sqlParameters);
let expectedOrderNumber = 0;
for (const contractTypeField of contractTypeFields) {
if (contractTypeField.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('ContractTypeFields', contractTypeField.contractTypeFieldId, expectedOrderNumber, database);
contractTypeField.orderNumber = expectedOrderNumber;
if (updateOrderNumbers) {
let expectedOrderNumber = 0;
for (const contractTypeField of contractTypeFields) {
if (contractTypeField.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('ContractTypeFields', contractTypeField.contractTypeFieldId, expectedOrderNumber, database);
contractTypeField.orderNumber = expectedOrderNumber;
}
expectedOrderNumber += 1;
}
expectedOrderNumber += 1;
}
if (connectedDatabase === undefined) {
database.close();

View File

@ -11,6 +11,8 @@ export default function getContractTypeFields(
): ContractTypeField[] {
const database = connectedDatabase ?? sqlite(sunriseDB)
const updateOrderNumbers = !database.readonly && contractTypeId !== undefined
const sqlParameters: unknown[] = []
if ((contractTypeId ?? -1) !== -1) {
@ -32,21 +34,23 @@ export default function getContractTypeFields(
)
.all(sqlParameters) as ContractTypeField[]
let expectedOrderNumber = 0
if (updateOrderNumbers) {
let expectedOrderNumber = 0
for (const contractTypeField of contractTypeFields) {
if (contractTypeField.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'ContractTypeFields',
contractTypeField.contractTypeFieldId,
expectedOrderNumber,
database
)
for (const contractTypeField of contractTypeFields) {
if (contractTypeField.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'ContractTypeFields',
contractTypeField.contractTypeFieldId,
expectedOrderNumber,
database
)
contractTypeField.orderNumber = expectedOrderNumber
contractTypeField.orderNumber = expectedOrderNumber
}
expectedOrderNumber += 1
}
expectedOrderNumber += 1
}
if (connectedDatabase === undefined) {

View File

@ -3,8 +3,10 @@ import { sunriseDB } from '../helpers/database.helpers.js';
import getFees from './getFees.js';
import { updateRecordOrderNumber } from './updateRecordOrderNumber.js';
export default function getFeeCategories(filters, options, connectedDatabase) {
const updateOrderNumbers = !(filters.burialSiteTypeId || filters.contractTypeId) && options.includeFees;
const database = sqlite(sunriseDB);
const database = connectedDatabase ?? sqlite(sunriseDB);
const updateOrderNumbers = !database.readonly &&
!(filters.burialSiteTypeId || filters.contractTypeId) &&
options.includeFees;
let sqlWhereClause = ' where recordDelete_timeMillis is null';
const sqlParameters = [];
if ((filters.contractTypeId ?? '') !== '') {
@ -18,7 +20,7 @@ export default function getFeeCategories(filters, options, connectedDatabase) {
sqlParameters.push(filters.burialSiteTypeId);
}
if ((filters.feeCategoryId ?? '') !== '') {
sqlWhereClause += ` and feeCategoryId = ?`;
sqlWhereClause += ' and feeCategoryId = ?';
sqlParameters.push(filters.feeCategoryId);
}
const feeCategories = database

View File

@ -21,10 +21,12 @@ export default function getFeeCategories(
options: GetFeeCategoriesOptions,
connectedDatabase?: sqlite.Database
): FeeCategory[] {
const updateOrderNumbers =
!(filters.burialSiteTypeId || filters.contractTypeId) && options.includeFees
const database = connectedDatabase ?? sqlite(sunriseDB)
const database = sqlite(sunriseDB)
const updateOrderNumbers =
!database.readonly &&
!(filters.burialSiteTypeId || filters.contractTypeId) &&
options.includeFees
let sqlWhereClause = ' where recordDelete_timeMillis is null'
@ -45,7 +47,7 @@ export default function getFeeCategories(
}
if ((filters.feeCategoryId ?? '') !== '') {
sqlWhereClause += ` and feeCategoryId = ?`
sqlWhereClause += ' and feeCategoryId = ?'
sqlParameters.push(filters.feeCategoryId)
}

View File

@ -2,8 +2,9 @@ import sqlite from 'better-sqlite3';
import { sunriseDB } from '../helpers/database.helpers.js';
import { updateRecordOrderNumber } from './updateRecordOrderNumber.js';
export default function getFees(feeCategoryId, additionalFilters, connectedDatabase) {
const updateOrderNumbers = !(additionalFilters.burialSiteTypeId || additionalFilters.contractTypeId);
const database = connectedDatabase ?? sqlite(sunriseDB);
const updateOrderNumbers = !database.readonly &&
!(additionalFilters.burialSiteTypeId || additionalFilters.contractTypeId);
let sqlWhereClause = ' where f.recordDelete_timeMillis is null and f.feeCategoryId = ?';
const sqlParameters = [feeCategoryId];
if (additionalFilters.contractTypeId) {

View File

@ -15,12 +15,12 @@ export default function getFees(
additionalFilters: GetFeesFilters,
connectedDatabase?: sqlite.Database
): Fee[] {
const updateOrderNumbers = !(
additionalFilters.burialSiteTypeId || additionalFilters.contractTypeId
)
const database = connectedDatabase ?? sqlite(sunriseDB)
const updateOrderNumbers =
!database.readonly &&
!(additionalFilters.burialSiteTypeId || additionalFilters.contractTypeId)
let sqlWhereClause =
' where f.recordDelete_timeMillis is null and f.feeCategoryId = ?'

View File

@ -3,6 +3,7 @@ import { sunriseDB } from '../helpers/database.helpers.js';
import { updateRecordOrderNumber } from './updateRecordOrderNumber.js';
export default function getIntermentContainerTypes(includeDeleted = false) {
const database = sqlite(sunriseDB);
const updateOrderNumbers = !database.readonly && !includeDeleted;
const containerTypes = database
.prepare(`select intermentContainerTypeId, intermentContainerType, intermentContainerTypeKey,
isCremationType, orderNumber
@ -10,12 +11,14 @@ export default function getIntermentContainerTypes(includeDeleted = false) {
${includeDeleted ? '' : ' where recordDelete_timeMillis is null '}
order by isCremationType, orderNumber, intermentContainerType, intermentContainerTypeId`)
.all();
let expectedOrderNumber = -1;
for (const containerType of containerTypes) {
expectedOrderNumber += 1;
if (containerType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('IntermentContainerTypes', containerType.intermentContainerTypeId, expectedOrderNumber, database);
containerType.orderNumber = expectedOrderNumber;
if (updateOrderNumbers) {
let expectedOrderNumber = -1;
for (const containerType of containerTypes) {
expectedOrderNumber += 1;
if (containerType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber('IntermentContainerTypes', containerType.intermentContainerTypeId, expectedOrderNumber, database);
containerType.orderNumber = expectedOrderNumber;
}
}
}
database.close();

View File

@ -10,6 +10,8 @@ export default function getIntermentContainerTypes(
): IntermentContainerType[] {
const database = sqlite(sunriseDB)
const updateOrderNumbers = !database.readonly && !includeDeleted
const containerTypes = database
.prepare(
`select intermentContainerTypeId, intermentContainerType, intermentContainerTypeKey,
@ -20,20 +22,22 @@ export default function getIntermentContainerTypes(
)
.all() as IntermentContainerType[]
let expectedOrderNumber = -1
if (updateOrderNumbers) {
let expectedOrderNumber = -1
for (const containerType of containerTypes) {
expectedOrderNumber += 1
for (const containerType of containerTypes) {
expectedOrderNumber += 1
if (containerType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'IntermentContainerTypes',
containerType.intermentContainerTypeId,
expectedOrderNumber,
database
)
if (containerType.orderNumber !== expectedOrderNumber) {
updateRecordOrderNumber(
'IntermentContainerTypes',
containerType.intermentContainerTypeId,
expectedOrderNumber,
database
)
containerType.orderNumber = expectedOrderNumber
containerType.orderNumber = expectedOrderNumber
}
}
}