diff --git a/helpers/lotOccupancyDB/getFeeCategories.js b/helpers/lotOccupancyDB/getFeeCategories.js index 2d482a7e..99ae2d2c 100644 --- a/helpers/lotOccupancyDB/getFeeCategories.js +++ b/helpers/lotOccupancyDB/getFeeCategories.js @@ -1,5 +1,7 @@ import sqlite from "better-sqlite3"; import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; +import { updateFeeOrderNumber } from "./updateFee.js"; +import { updateFeeCategoryOrderNumber } from "./updateFeeCategory.js"; const buildFeeCategoryWhereClause = (filters) => { let sqlWhereClause = " where recordDelete_timeMillis is null"; const sqlParameters = []; @@ -58,9 +60,7 @@ export const getFeeCategories = (filters, options) => { for (const feeCategory of feeCategories) { expectedFeeCategoryOrderNumber += 1; if (updateOrderNumbers && feeCategory.orderNumber !== expectedFeeCategoryOrderNumber) { - database - .prepare("update FeeCategories set orderNumber = ? where feeCategoryId = ?") - .run(expectedFeeCategoryOrderNumber, feeCategory.feeCategoryId); + updateFeeCategoryOrderNumber(feeCategory.feeCategoryId, expectedFeeCategoryOrderNumber, database); feeCategory.orderNumber = expectedFeeCategoryOrderNumber; } const feeSqlFilter = buildFeeWhereClause(filters, feeCategory.feeCategoryId); @@ -83,9 +83,7 @@ export const getFeeCategories = (filters, options) => { for (const fee of feeCategory.fees) { expectedFeeOrderNumber += 1; if (fee.orderNumber !== expectedFeeOrderNumber) { - database - .prepare("update Fees set orderNumber = ? where feeId = ?") - .run(expectedFeeOrderNumber, fee.feeId); + updateFeeOrderNumber(fee.feeId, expectedFeeOrderNumber, database); fee.orderNumber = expectedFeeOrderNumber; } } diff --git a/helpers/lotOccupancyDB/getFeeCategories.ts b/helpers/lotOccupancyDB/getFeeCategories.ts index 5441638b..f296d5be 100644 --- a/helpers/lotOccupancyDB/getFeeCategories.ts +++ b/helpers/lotOccupancyDB/getFeeCategories.ts @@ -2,6 +2,9 @@ import sqlite from "better-sqlite3"; import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; +import { updateFeeOrderNumber } from "./updateFee.js"; +import { updateFeeCategoryOrderNumber } from "./updateFeeCategory.js"; + import type * as recordTypes from "../../types/recordTypes"; interface GetFeeCategoriesFilters { @@ -102,9 +105,11 @@ export const getFeeCategories = ( expectedFeeCategoryOrderNumber += 1; if (updateOrderNumbers && feeCategory.orderNumber !== expectedFeeCategoryOrderNumber) { - database - .prepare("update FeeCategories set orderNumber = ? where feeCategoryId = ?") - .run(expectedFeeCategoryOrderNumber, feeCategory.feeCategoryId); + updateFeeCategoryOrderNumber( + feeCategory.feeCategoryId, + expectedFeeCategoryOrderNumber, + database + ); feeCategory.orderNumber = expectedFeeCategoryOrderNumber; } @@ -135,9 +140,7 @@ export const getFeeCategories = ( expectedFeeOrderNumber += 1; if (fee.orderNumber !== expectedFeeOrderNumber) { - database - .prepare("update Fees set orderNumber = ? where feeId = ?") - .run(expectedFeeOrderNumber, fee.feeId); + updateFeeOrderNumber(fee.feeId, expectedFeeOrderNumber, database); fee.orderNumber = expectedFeeOrderNumber; } diff --git a/helpers/lotOccupancyDB/updateFee.d.ts b/helpers/lotOccupancyDB/updateFee.d.ts index a9b58165..04185847 100644 --- a/helpers/lotOccupancyDB/updateFee.d.ts +++ b/helpers/lotOccupancyDB/updateFee.d.ts @@ -1,3 +1,4 @@ +import sqlite from "better-sqlite3"; import type * as recordTypes from "../../types/recordTypes"; interface UpdateFeeForm { feeId: string; @@ -15,4 +16,5 @@ interface UpdateFeeForm { isRequired: "" | "1"; } export declare const updateFee: (feeForm: UpdateFeeForm, requestSession: recordTypes.PartialSession) => boolean; +export declare const updateFeeOrderNumber: (feeId: number, orderNumber: number, connectedDatabase?: sqlite.Database) => boolean; export default updateFee; diff --git a/helpers/lotOccupancyDB/updateFee.js b/helpers/lotOccupancyDB/updateFee.js index 27a5157b..f68155fb 100644 --- a/helpers/lotOccupancyDB/updateFee.js +++ b/helpers/lotOccupancyDB/updateFee.js @@ -25,4 +25,17 @@ export const updateFee = (feeForm, requestSession) => { database.close(); return result.changes > 0; }; +export const updateFeeOrderNumber = (feeId, orderNumber, connectedDatabase) => { + const database = connectedDatabase || + sqlite(databasePath, { + readonly: true + }); + const result = database + .prepare("update Fees set orderNumber = ? where feeId = ?") + .run(orderNumber, feeId); + if (!connectedDatabase) { + database.close(); + } + return result.changes > 0; +}; export default updateFee; diff --git a/helpers/lotOccupancyDB/updateFee.ts b/helpers/lotOccupancyDB/updateFee.ts index 96c4800f..2e7f322c 100644 --- a/helpers/lotOccupancyDB/updateFee.ts +++ b/helpers/lotOccupancyDB/updateFee.ts @@ -71,4 +71,26 @@ export const updateFee = ( return result.changes > 0; }; +export const updateFeeOrderNumber = ( + feeId: number, + orderNumber: number, + connectedDatabase?: sqlite.Database +) => { + const database = + connectedDatabase || + sqlite(databasePath, { + readonly: true + }); + + const result = database + .prepare("update Fees set orderNumber = ? where feeId = ?") + .run(orderNumber, feeId); + + if (!connectedDatabase) { + database.close(); + } + + return result.changes > 0; +}; + export default updateFee; diff --git a/helpers/lotOccupancyDB/updateFeeCategory.d.ts b/helpers/lotOccupancyDB/updateFeeCategory.d.ts index 8767352b..de9eb3ac 100644 --- a/helpers/lotOccupancyDB/updateFeeCategory.d.ts +++ b/helpers/lotOccupancyDB/updateFeeCategory.d.ts @@ -1,7 +1,9 @@ +import sqlite from "better-sqlite3"; import type * as recordTypes from "../../types/recordTypes"; interface UpdateFeeCategoryForm { feeCategoryId: number | string; feeCategory: string; } export declare const updateFeeCategory: (feeCategoryForm: UpdateFeeCategoryForm, requestSession: recordTypes.PartialSession) => boolean; +export declare const updateFeeCategoryOrderNumber: (feeCategoryId: number, orderNumber: number, connectedDatabase?: sqlite.Database) => boolean; export default updateFeeCategory; diff --git a/helpers/lotOccupancyDB/updateFeeCategory.js b/helpers/lotOccupancyDB/updateFeeCategory.js index 7984cedb..69c526bc 100644 --- a/helpers/lotOccupancyDB/updateFeeCategory.js +++ b/helpers/lotOccupancyDB/updateFeeCategory.js @@ -14,4 +14,17 @@ export const updateFeeCategory = (feeCategoryForm, requestSession) => { database.close(); return result.changes > 0; }; +export const updateFeeCategoryOrderNumber = (feeCategoryId, orderNumber, connectedDatabase) => { + const database = connectedDatabase || + sqlite(databasePath, { + readonly: true + }); + const result = database + .prepare("update FeeCategories set orderNumber = ? where feeCategoryId = ?") + .run(orderNumber, feeCategoryId); + if (!connectedDatabase) { + database.close(); + } + return result.changes > 0; +}; export default updateFeeCategory; diff --git a/helpers/lotOccupancyDB/updateFeeCategory.ts b/helpers/lotOccupancyDB/updateFeeCategory.ts index 725d47b2..c683fb93 100644 --- a/helpers/lotOccupancyDB/updateFeeCategory.ts +++ b/helpers/lotOccupancyDB/updateFeeCategory.ts @@ -38,4 +38,26 @@ export const updateFeeCategory = ( return result.changes > 0; }; +export const updateFeeCategoryOrderNumber = ( + feeCategoryId: number, + orderNumber: number, + connectedDatabase?: sqlite.Database +) => { + const database = + connectedDatabase || + sqlite(databasePath, { + readonly: true + }); + + const result = database + .prepare("update FeeCategories set orderNumber = ? where feeCategoryId = ?") + .run(orderNumber, feeCategoryId); + + if (!connectedDatabase) { + database.close(); + } + + return result.changes > 0; +}; + export default updateFeeCategory;