diff --git a/handlers/admin-post/doMoveOccupancyTypeFieldDown.js b/handlers/admin-post/doMoveOccupancyTypeFieldDown.js index 6d7a424f..333733a7 100644 --- a/handlers/admin-post/doMoveOccupancyTypeFieldDown.js +++ b/handlers/admin-post/doMoveOccupancyTypeFieldDown.js @@ -1,9 +1,10 @@ -import { moveOccupancyTypeFieldDown, moveOccupancyTypeFieldDownToBottom } from "../../helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.js"; +import { moveOccupancyTypeFieldDown, moveOccupancyTypeFieldDownToBottom } from "../../helpers/lotOccupancyDB/moveOccupancyTypeField.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { + const occupancyTypeFieldId = Number.parseInt(request.body.occupancyTypeFieldId, 10); const success = request.body.moveToEnd === "1" - ? moveOccupancyTypeFieldDownToBottom(request.body.occupancyTypeFieldId) - : moveOccupancyTypeFieldDown(request.body.occupancyTypeFieldId); + ? moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId) + : moveOccupancyTypeFieldDown(occupancyTypeFieldId); const occupancyTypes = getOccupancyTypes(); const allOccupancyTypeFields = getAllOccupancyTypeFields(); response.json({ diff --git a/handlers/admin-post/doMoveOccupancyTypeFieldDown.ts b/handlers/admin-post/doMoveOccupancyTypeFieldDown.ts index 17030494..4e046d78 100644 --- a/handlers/admin-post/doMoveOccupancyTypeFieldDown.ts +++ b/handlers/admin-post/doMoveOccupancyTypeFieldDown.ts @@ -3,15 +3,17 @@ import type { RequestHandler } from "express"; import { moveOccupancyTypeFieldDown, moveOccupancyTypeFieldDownToBottom -} from "../../helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.js"; +} from "../../helpers/lotOccupancyDB/moveOccupancyTypeField.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { + const occupancyTypeFieldId = Number.parseInt(request.body.occupancyTypeFieldId, 10); + const success = request.body.moveToEnd === "1" - ? moveOccupancyTypeFieldDownToBottom(request.body.occupancyTypeFieldId) - : moveOccupancyTypeFieldDown(request.body.occupancyTypeFieldId); + ? moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId) + : moveOccupancyTypeFieldDown(occupancyTypeFieldId); const occupancyTypes = getOccupancyTypes(); const allOccupancyTypeFields = getAllOccupancyTypeFields(); diff --git a/handlers/admin-post/doMoveOccupancyTypeFieldUp.js b/handlers/admin-post/doMoveOccupancyTypeFieldUp.js index 6dd605e9..99f78159 100644 --- a/handlers/admin-post/doMoveOccupancyTypeFieldUp.js +++ b/handlers/admin-post/doMoveOccupancyTypeFieldUp.js @@ -1,9 +1,10 @@ -import { moveOccupancyTypeFieldUp, moveOccupancyTypeFieldUpToTop } from "../../helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.js"; +import { moveOccupancyTypeFieldUp, moveOccupancyTypeFieldUpToTop } from "../../helpers/lotOccupancyDB/moveOccupancyTypeField.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { + const occupancyTypeFieldId = Number.parseInt(request.body.occupancyTypeFieldId, 10); const success = request.body.moveToEnd === "1" - ? moveOccupancyTypeFieldUpToTop(request.body.occupancyTypeFieldId) - : moveOccupancyTypeFieldUp(request.body.occupancyTypeFieldId); + ? moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId) + : moveOccupancyTypeFieldUp(occupancyTypeFieldId); const occupancyTypes = getOccupancyTypes(); const allOccupancyTypeFields = getAllOccupancyTypeFields(); response.json({ diff --git a/handlers/admin-post/doMoveOccupancyTypeFieldUp.ts b/handlers/admin-post/doMoveOccupancyTypeFieldUp.ts index ed221e6f..2ad67ecc 100644 --- a/handlers/admin-post/doMoveOccupancyTypeFieldUp.ts +++ b/handlers/admin-post/doMoveOccupancyTypeFieldUp.ts @@ -3,15 +3,17 @@ import type { RequestHandler } from "express"; import { moveOccupancyTypeFieldUp, moveOccupancyTypeFieldUpToTop -} from "../../helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.js"; +} from "../../helpers/lotOccupancyDB/moveOccupancyTypeField.js"; import { getAllOccupancyTypeFields, getOccupancyTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { + const occupancyTypeFieldId = Number.parseInt(request.body.occupancyTypeFieldId, 10); + const success = request.body.moveToEnd === "1" - ? moveOccupancyTypeFieldUpToTop(request.body.occupancyTypeFieldId) - : moveOccupancyTypeFieldUp(request.body.occupancyTypeFieldId); + ? moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId) + : moveOccupancyTypeFieldUp(occupancyTypeFieldId); const occupancyTypes = getOccupancyTypes(); const allOccupancyTypeFields = getAllOccupancyTypeFields(); diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeField.d.ts b/helpers/lotOccupancyDB/moveOccupancyTypeField.d.ts new file mode 100644 index 00000000..2b874482 --- /dev/null +++ b/helpers/lotOccupancyDB/moveOccupancyTypeField.d.ts @@ -0,0 +1,4 @@ +export declare function moveOccupancyTypeFieldDown(occupancyTypeFieldId: number): boolean; +export declare function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId: number): boolean; +export declare function moveOccupancyTypeFieldUp(occupancyTypeFieldId: number): boolean; +export declare function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId: number): boolean; diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeField.js b/helpers/lotOccupancyDB/moveOccupancyTypeField.js new file mode 100644 index 00000000..2e21eb65 --- /dev/null +++ b/helpers/lotOccupancyDB/moveOccupancyTypeField.js @@ -0,0 +1,102 @@ +import sqlite from "better-sqlite3"; +import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; +import { clearCacheByTableName } from "../functions.cache.js"; +import { updateRecordOrderNumber } from "./updateRecordOrderNumber.js"; +function getCurrentField(occupancyTypeFieldId, connectedDatabase) { + const currentField = connectedDatabase + .prepare(`select occupancyTypeId, orderNumber from OccupancyTypeFields where occupancyTypeFieldId = ?`) + .get(occupancyTypeFieldId); + return currentField; +} +export function moveOccupancyTypeFieldDown(occupancyTypeFieldId) { + const database = sqlite(databasePath); + const currentField = getCurrentField(occupancyTypeFieldId, database); + database + .prepare("update OccupancyTypeFields" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId + ? " and occupancyTypeId = '" + currentField.occupancyTypeId + "'" + : " and occupancyTypeId is null") + + " and orderNumber = ? + 1") + .run(currentField.orderNumber); + const success = updateRecordOrderNumber("OccupancyTypeFields", occupancyTypeFieldId, currentField.orderNumber + 1, database); + database.close(); + clearCacheByTableName("OccupancyTypeFields"); + return success; +} +export function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId) { + const database = sqlite(databasePath); + const currentField = getCurrentField(occupancyTypeFieldId, database); + const occupancyTypeParameters = []; + if (currentField.occupancyTypeId) { + occupancyTypeParameters.push(currentField.occupancyTypeId); + } + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from OccupancyTypeFields" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId ? " and occupancyTypeId = ?" : " and occupancyTypeId is null")) + .get(occupancyTypeParameters).maxOrderNumber; + if (currentField.orderNumber !== maxOrderNumber) { + updateRecordOrderNumber("OccupancyTypeFields", occupancyTypeFieldId, maxOrderNumber + 1, database); + occupancyTypeParameters.push(currentField.orderNumber); + database + .prepare("update OccupancyTypeFields" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId + ? " and occupancyTypeId = ?" + : " and occupancyTypeId is null") + + " and orderNumber > ?") + .run(occupancyTypeParameters); + } + database.close(); + clearCacheByTableName("OccupancyTypeFields"); + return true; +} +export function moveOccupancyTypeFieldUp(occupancyTypeFieldId) { + const database = sqlite(databasePath); + const currentField = getCurrentField(occupancyTypeFieldId, database); + if (currentField.orderNumber <= 0) { + database.close(); + return true; + } + database + .prepare("update OccupancyTypeFields" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId + ? " and occupancyTypeId = '" + currentField.occupancyTypeId + "'" + : " and occupancyTypeId is null") + + " and orderNumber = ? - 1") + .run(currentField.orderNumber); + const success = updateRecordOrderNumber("OccupancyTypeFields", occupancyTypeFieldId, currentField.orderNumber - 1, database); + database.close(); + clearCacheByTableName("OccupancyTypeFields"); + return success; +} +export function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId) { + const database = sqlite(databasePath); + const currentField = getCurrentField(occupancyTypeFieldId, database); + if (currentField.orderNumber > 0) { + updateRecordOrderNumber("OccupancyTypeFields", occupancyTypeFieldId, -1, database); + const occupancyTypeParameters = []; + if (currentField.occupancyTypeId) { + occupancyTypeParameters.push(currentField.occupancyTypeId); + } + occupancyTypeParameters.push(currentField.orderNumber); + database + .prepare("update OccupancyTypeFields" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId + ? " and occupancyTypeId = ?" + : " and occupancyTypeId is null") + + " and orderNumber < ?") + .run(occupancyTypeParameters); + } + database.close(); + clearCacheByTableName("OccupancyTypeFields"); + return true; +} diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeField.ts b/helpers/lotOccupancyDB/moveOccupancyTypeField.ts new file mode 100644 index 00000000..eb1f9648 --- /dev/null +++ b/helpers/lotOccupancyDB/moveOccupancyTypeField.ts @@ -0,0 +1,167 @@ +import sqlite from "better-sqlite3"; + +import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; + +import { clearCacheByTableName } from "../functions.cache.js"; +import { updateRecordOrderNumber } from "./updateRecordOrderNumber.js"; + +function getCurrentField( + occupancyTypeFieldId: number, + connectedDatabase: sqlite.Database +): { occupancyTypeId?: number; orderNumber: number } { + const currentField: { occupancyTypeId?: number; orderNumber: number } = connectedDatabase + .prepare( + `select occupancyTypeId, orderNumber from OccupancyTypeFields where occupancyTypeFieldId = ?` + ) + .get(occupancyTypeFieldId); + + return currentField; +} + +export function moveOccupancyTypeFieldDown(occupancyTypeFieldId: number): boolean { + const database = sqlite(databasePath); + + const currentField = getCurrentField(occupancyTypeFieldId, database); + + database + .prepare( + "update OccupancyTypeFields" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId + ? " and occupancyTypeId = '" + currentField.occupancyTypeId + "'" + : " and occupancyTypeId is null") + + " and orderNumber = ? + 1" + ) + .run(currentField.orderNumber); + + const success = updateRecordOrderNumber( + "OccupancyTypeFields", + occupancyTypeFieldId, + currentField.orderNumber + 1, + database + ); + + database.close(); + + clearCacheByTableName("OccupancyTypeFields"); + + return success; +} + +export function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId: number): boolean { + const database = sqlite(databasePath); + + const currentField = getCurrentField(occupancyTypeFieldId, database); + + const occupancyTypeParameters = []; + + if (currentField.occupancyTypeId) { + occupancyTypeParameters.push(currentField.occupancyTypeId); + } + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from OccupancyTypeFields" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId ? " and occupancyTypeId = ?" : " and occupancyTypeId is null") + ) + .get(occupancyTypeParameters).maxOrderNumber; + + if (currentField.orderNumber !== maxOrderNumber) { + updateRecordOrderNumber("OccupancyTypeFields", occupancyTypeFieldId, maxOrderNumber + 1, database); + + occupancyTypeParameters.push(currentField.orderNumber); + + database + .prepare( + "update OccupancyTypeFields" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId + ? " and occupancyTypeId = ?" + : " and occupancyTypeId is null") + + " and orderNumber > ?" + ) + .run(occupancyTypeParameters); + } + + database.close(); + + clearCacheByTableName("OccupancyTypeFields"); + + return true; +} + +export function moveOccupancyTypeFieldUp(occupancyTypeFieldId: number): boolean { + const database = sqlite(databasePath); + + const currentField = getCurrentField(occupancyTypeFieldId, database); + + if (currentField.orderNumber <= 0) { + database.close(); + return true; + } + + database + .prepare( + "update OccupancyTypeFields" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId + ? " and occupancyTypeId = '" + currentField.occupancyTypeId + "'" + : " and occupancyTypeId is null") + + " and orderNumber = ? - 1" + ) + .run(currentField.orderNumber); + + const success = updateRecordOrderNumber( + "OccupancyTypeFields", + occupancyTypeFieldId, + currentField.orderNumber - 1, + database + ); + + database.close(); + + clearCacheByTableName("OccupancyTypeFields"); + + return success; +} + +export function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId: number): boolean { + const database = sqlite(databasePath); + + const currentField = getCurrentField(occupancyTypeFieldId, database); + + if (currentField.orderNumber > 0) { + updateRecordOrderNumber("OccupancyTypeFields", occupancyTypeFieldId, -1, database); + + const occupancyTypeParameters = []; + + if (currentField.occupancyTypeId) { + occupancyTypeParameters.push(currentField.occupancyTypeId); + } + + occupancyTypeParameters.push(currentField.orderNumber); + + database + .prepare( + "update OccupancyTypeFields" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + (currentField.occupancyTypeId + ? " and occupancyTypeId = ?" + : " and occupancyTypeId is null") + + " and orderNumber < ?" + ) + .run(occupancyTypeParameters); + } + + database.close(); + + clearCacheByTableName("OccupancyTypeFields"); + + return true; +} diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.d.ts b/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.d.ts deleted file mode 100644 index fb8f077f..00000000 --- a/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare function moveOccupancyTypeFieldDown(occupancyTypeFieldId: number | string): boolean; -export declare function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId: number | string): boolean; -export default moveOccupancyTypeFieldDown; diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.js b/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.js deleted file mode 100644 index af1ebd70..00000000 --- a/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.js +++ /dev/null @@ -1,63 +0,0 @@ -import sqlite from "better-sqlite3"; -import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; -import { clearCacheByTableName } from "../functions.cache.js"; -export function moveOccupancyTypeFieldDown(occupancyTypeFieldId) { - const database = sqlite(databasePath); - const currentField = database - .prepare(`select occupancyTypeId, orderNumber from OccupancyTypeFields where occupancyTypeFieldId = ?`) - .get(occupancyTypeFieldId); - database - .prepare("update OccupancyTypeFields" + - " set orderNumber = orderNumber - 1" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = '" + currentField.occupancyTypeId + "'" - : " and occupancyTypeId is null") + - " and orderNumber = ? + 1") - .run(currentField.orderNumber); - const result = database - .prepare(`update OccupancyTypeFields set orderNumber = ? + 1 where occupancyTypeFieldId = ?`) - .run(currentField.orderNumber, occupancyTypeFieldId); - database.close(); - clearCacheByTableName("OccupancyTypeFields"); - return result.changes > 0; -} -export function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId) { - const database = sqlite(databasePath); - const currentField = database - .prepare(`select occupancyTypeId, orderNumber - from OccupancyTypeFields - where occupancyTypeFieldId = ?`) - .get(occupancyTypeFieldId); - const occupancyTypeParameters = []; - if (currentField.occupancyTypeId) { - occupancyTypeParameters.push(currentField.occupancyTypeId); - } - const maxOrderNumber = database - .prepare("select max(orderNumber) as maxOrderNumber" + - " from OccupancyTypeFields" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = ?" - : " and occupancyTypeId is null")) - .get(occupancyTypeParameters).maxOrderNumber; - if (currentField.orderNumber !== maxOrderNumber) { - database - .prepare("update OccupancyTypeFields set orderNumber = ? + 1 where occupancyTypeFieldId = ?") - .run(maxOrderNumber, occupancyTypeFieldId); - occupancyTypeParameters.push(currentField.orderNumber); - database - .prepare("update OccupancyTypeFields" + - " set orderNumber = orderNumber - 1" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = ?" - : " and occupancyTypeId is null") + - " and orderNumber > ?") - .run(occupancyTypeParameters); - } - database.close(); - clearCacheByTableName("OccupancyTypeFields"); - return true; -} -export default moveOccupancyTypeFieldDown; diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.ts b/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.ts deleted file mode 100644 index 74465680..00000000 --- a/helpers/lotOccupancyDB/moveOccupancyTypeFieldDown.ts +++ /dev/null @@ -1,98 +0,0 @@ -import sqlite from "better-sqlite3"; - -import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; - -import { clearCacheByTableName } from "../functions.cache.js"; - -export function moveOccupancyTypeFieldDown(occupancyTypeFieldId: number | string): boolean { - const database = sqlite(databasePath); - - const currentField: { occupancyTypeId?: number; orderNumber: number } = database - .prepare( - `select occupancyTypeId, orderNumber from OccupancyTypeFields where occupancyTypeFieldId = ?` - ) - .get(occupancyTypeFieldId); - - database - .prepare( - "update OccupancyTypeFields" + - " set orderNumber = orderNumber - 1" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = '" + currentField.occupancyTypeId + "'" - : " and occupancyTypeId is null") + - " and orderNumber = ? + 1" - ) - .run(currentField.orderNumber); - - const result = database - .prepare( - `update OccupancyTypeFields set orderNumber = ? + 1 where occupancyTypeFieldId = ?` - ) - .run(currentField.orderNumber, occupancyTypeFieldId); - - database.close(); - - clearCacheByTableName("OccupancyTypeFields"); - - return result.changes > 0; -} - -export function moveOccupancyTypeFieldDownToBottom(occupancyTypeFieldId: number | string): boolean { - const database = sqlite(databasePath); - - const currentField: { occupancyTypeId?: number; orderNumber: number } = database - .prepare( - `select occupancyTypeId, orderNumber - from OccupancyTypeFields - where occupancyTypeFieldId = ?` - ) - .get(occupancyTypeFieldId); - - const occupancyTypeParameters = []; - - if (currentField.occupancyTypeId) { - occupancyTypeParameters.push(currentField.occupancyTypeId); - } - - const maxOrderNumber: number = database - .prepare( - "select max(orderNumber) as maxOrderNumber" + - " from OccupancyTypeFields" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = ?" - : " and occupancyTypeId is null") - ) - .get(occupancyTypeParameters).maxOrderNumber; - - if (currentField.orderNumber !== maxOrderNumber) { - database - .prepare( - "update OccupancyTypeFields set orderNumber = ? + 1 where occupancyTypeFieldId = ?" - ) - .run(maxOrderNumber, occupancyTypeFieldId); - - occupancyTypeParameters.push(currentField.orderNumber); - - database - .prepare( - "update OccupancyTypeFields" + - " set orderNumber = orderNumber - 1" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = ?" - : " and occupancyTypeId is null") + - " and orderNumber > ?" - ) - .run(occupancyTypeParameters); - } - - database.close(); - - clearCacheByTableName("OccupancyTypeFields"); - - return true; -} - -export default moveOccupancyTypeFieldDown; diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.d.ts b/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.d.ts deleted file mode 100644 index 19cdf66b..00000000 --- a/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.d.ts +++ /dev/null @@ -1,3 +0,0 @@ -export declare function moveOccupancyTypeFieldUp(occupancyTypeFieldId: number | string): boolean; -export declare function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId: number | string): boolean; -export default moveOccupancyTypeFieldUp; diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.js b/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.js deleted file mode 100644 index f1d47c74..00000000 --- a/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.js +++ /dev/null @@ -1,57 +0,0 @@ -import sqlite from "better-sqlite3"; -import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; -import { clearCacheByTableName } from "../functions.cache.js"; -export function moveOccupancyTypeFieldUp(occupancyTypeFieldId) { - const database = sqlite(databasePath); - const currentField = database - .prepare(`select occupancyTypeId, orderNumber from OccupancyTypeFields where occupancyTypeFieldId = ?`) - .get(occupancyTypeFieldId); - if (currentField.orderNumber <= 0) { - database.close(); - return true; - } - database - .prepare("update OccupancyTypeFields" + - " set orderNumber = orderNumber + 1" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = '" + currentField.occupancyTypeId + "'" - : " and occupancyTypeId is null") + - " and orderNumber = ? - 1") - .run(currentField.orderNumber); - const result = database - .prepare(`update OccupancyTypeFields set orderNumber = ? - 1 where occupancyTypeFieldId = ?`) - .run(currentField.orderNumber, occupancyTypeFieldId); - database.close(); - clearCacheByTableName("OccupancyTypeFields"); - return result.changes > 0; -} -export function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId) { - const database = sqlite(databasePath); - const currentField = database - .prepare(`select occupancyTypeId, orderNumber from OccupancyTypeFields where occupancyTypeFieldId = ?`) - .get(occupancyTypeFieldId); - if (currentField.orderNumber > 0) { - database - .prepare(`update OccupancyTypeFields set orderNumber = -1 where occupancyTypeFieldId = ?`) - .run(occupancyTypeFieldId); - const occupancyTypeParameters = []; - if (currentField.occupancyTypeId) { - occupancyTypeParameters.push(currentField.occupancyTypeId); - } - occupancyTypeParameters.push(currentField.orderNumber); - database - .prepare("update OccupancyTypeFields" + - " set orderNumber = orderNumber + 1" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = ?" - : " and occupancyTypeId is null") + - " and orderNumber < ?") - .run(occupancyTypeParameters); - } - database.close(); - clearCacheByTableName("OccupancyTypeFields"); - return true; -} -export default moveOccupancyTypeFieldUp; diff --git a/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.ts b/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.ts deleted file mode 100644 index c93a3132..00000000 --- a/helpers/lotOccupancyDB/moveOccupancyTypeFieldUp.ts +++ /dev/null @@ -1,90 +0,0 @@ -import sqlite from "better-sqlite3"; - -import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; - -import { clearCacheByTableName } from "../functions.cache.js"; - -export function moveOccupancyTypeFieldUp(occupancyTypeFieldId: number | string): boolean { - const database = sqlite(databasePath); - - const currentField: { occupancyTypeId?: number; orderNumber: number } = database - .prepare( - `select occupancyTypeId, orderNumber from OccupancyTypeFields where occupancyTypeFieldId = ?` - ) - .get(occupancyTypeFieldId); - - if (currentField.orderNumber <= 0) { - database.close(); - return true; - } - - database - .prepare( - "update OccupancyTypeFields" + - " set orderNumber = orderNumber + 1" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = '" + currentField.occupancyTypeId + "'" - : " and occupancyTypeId is null") + - " and orderNumber = ? - 1" - ) - .run(currentField.orderNumber); - - const result = database - .prepare( - `update OccupancyTypeFields set orderNumber = ? - 1 where occupancyTypeFieldId = ?` - ) - .run(currentField.orderNumber, occupancyTypeFieldId); - - database.close(); - - clearCacheByTableName("OccupancyTypeFields"); - - return result.changes > 0; -} - -export function moveOccupancyTypeFieldUpToTop(occupancyTypeFieldId: number | string): boolean { - const database = sqlite(databasePath); - - const currentField: { occupancyTypeId?: number; orderNumber: number } = database - .prepare( - `select occupancyTypeId, orderNumber from OccupancyTypeFields where occupancyTypeFieldId = ?` - ) - .get(occupancyTypeFieldId); - - if (currentField.orderNumber > 0) { - database - .prepare( - `update OccupancyTypeFields set orderNumber = -1 where occupancyTypeFieldId = ?` - ) - .run(occupancyTypeFieldId); - - const occupancyTypeParameters = []; - - if (currentField.occupancyTypeId) { - occupancyTypeParameters.push(currentField.occupancyTypeId); - } - - occupancyTypeParameters.push(currentField.orderNumber); - - database - .prepare( - "update OccupancyTypeFields" + - " set orderNumber = orderNumber + 1" + - " where recordDelete_timeMillis is null" + - (currentField.occupancyTypeId - ? " and occupancyTypeId = ?" - : " and occupancyTypeId is null") + - " and orderNumber < ?" - ) - .run(occupancyTypeParameters); - } - - database.close(); - - clearCacheByTableName("OccupancyTypeFields"); - - return true; -} - -export default moveOccupancyTypeFieldUp;