diff --git a/handlers/admin-post/doMoveLotOccupantTypeDown.js b/handlers/admin-post/doMoveLotOccupantTypeDown.js index 57f0b58c..8c7aaac4 100644 --- a/handlers/admin-post/doMoveLotOccupantTypeDown.js +++ b/handlers/admin-post/doMoveLotOccupantTypeDown.js @@ -1,7 +1,9 @@ -import { moveLotOccupantTypeDown } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeDown.js"; +import { moveLotOccupantTypeDown, moveLotOccupantTypeDownToBottom } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeDown.js"; import { getLotOccupantTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveLotOccupantTypeDown(request.body.lotOccupantTypeId); + const success = request.body.moveToBottom === "1" + ? moveLotOccupantTypeDownToBottom(request.body.lotOccupantTypeId) + : moveLotOccupantTypeDown(request.body.lotOccupantTypeId); const lotOccupantTypes = getLotOccupantTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveLotOccupantTypeDown.ts b/handlers/admin-post/doMoveLotOccupantTypeDown.ts index f0100cbc..933d078c 100644 --- a/handlers/admin-post/doMoveLotOccupantTypeDown.ts +++ b/handlers/admin-post/doMoveLotOccupantTypeDown.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveLotOccupantTypeDown } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeDown.js"; +import { + moveLotOccupantTypeDown, + moveLotOccupantTypeDownToBottom +} from "../../helpers/lotOccupancyDB/moveLotOccupantTypeDown.js"; import { getLotOccupantTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveLotOccupantTypeDown(request.body.lotOccupantTypeId); + const success = + request.body.moveToBottom === "1" + ? moveLotOccupantTypeDownToBottom(request.body.lotOccupantTypeId) + : moveLotOccupantTypeDown(request.body.lotOccupantTypeId); const lotOccupantTypes = getLotOccupantTypes(); diff --git a/handlers/admin-post/doMoveLotOccupantTypeUp.js b/handlers/admin-post/doMoveLotOccupantTypeUp.js index 5e2e0d51..01d57312 100644 --- a/handlers/admin-post/doMoveLotOccupantTypeUp.js +++ b/handlers/admin-post/doMoveLotOccupantTypeUp.js @@ -1,7 +1,9 @@ -import { moveLotOccupantTypeUp } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeUp.js"; +import { moveLotOccupantTypeUp, moveLotOccupantTypeUpToTop } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeUp.js"; import { getLotOccupantTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveLotOccupantTypeUp(request.body.lotOccupantTypeId); + const success = request.body.moveToTop === "1" + ? moveLotOccupantTypeUpToTop(request.body.lotOccupantTypeId) + : moveLotOccupantTypeUp(request.body.lotOccupantTypeId); const lotOccupantTypes = getLotOccupantTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveLotOccupantTypeUp.ts b/handlers/admin-post/doMoveLotOccupantTypeUp.ts index 52a687f7..84f4f1ac 100644 --- a/handlers/admin-post/doMoveLotOccupantTypeUp.ts +++ b/handlers/admin-post/doMoveLotOccupantTypeUp.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveLotOccupantTypeUp } from "../../helpers/lotOccupancyDB/moveLotOccupantTypeUp.js"; +import { + moveLotOccupantTypeUp, + moveLotOccupantTypeUpToTop +} from "../../helpers/lotOccupancyDB/moveLotOccupantTypeUp.js"; import { getLotOccupantTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveLotOccupantTypeUp(request.body.lotOccupantTypeId); + const success = + request.body.moveToTop === "1" + ? moveLotOccupantTypeUpToTop(request.body.lotOccupantTypeId) + : moveLotOccupantTypeUp(request.body.lotOccupantTypeId); const lotOccupantTypes = getLotOccupantTypes(); diff --git a/handlers/admin-post/doMoveLotStatusDown.js b/handlers/admin-post/doMoveLotStatusDown.js index 17bffe1b..f395d087 100644 --- a/handlers/admin-post/doMoveLotStatusDown.js +++ b/handlers/admin-post/doMoveLotStatusDown.js @@ -1,7 +1,9 @@ -import { moveLotStatusDown } from "../../helpers/lotOccupancyDB/moveLotStatusDown.js"; +import { moveLotStatusDown, moveLotStatusDownToBottom } from "../../helpers/lotOccupancyDB/moveLotStatusDown.js"; import { getLotStatuses } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveLotStatusDown(request.body.lotStatusId); + const success = request.body.moveToBottom === "1" + ? moveLotStatusDownToBottom(request.body.lotStatusId) + : moveLotStatusDown(request.body.lotStatusId); const lotStatuses = getLotStatuses(); response.json({ success, diff --git a/handlers/admin-post/doMoveLotStatusDown.ts b/handlers/admin-post/doMoveLotStatusDown.ts index 3208eb10..d851b7f3 100644 --- a/handlers/admin-post/doMoveLotStatusDown.ts +++ b/handlers/admin-post/doMoveLotStatusDown.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveLotStatusDown } from "../../helpers/lotOccupancyDB/moveLotStatusDown.js"; +import { + moveLotStatusDown, + moveLotStatusDownToBottom +} from "../../helpers/lotOccupancyDB/moveLotStatusDown.js"; import { getLotStatuses } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveLotStatusDown(request.body.lotStatusId); + const success = + request.body.moveToBottom === "1" + ? moveLotStatusDownToBottom(request.body.lotStatusId) + : moveLotStatusDown(request.body.lotStatusId); const lotStatuses = getLotStatuses(); diff --git a/handlers/admin-post/doMoveLotStatusUp.js b/handlers/admin-post/doMoveLotStatusUp.js index 4ba3d37e..20173804 100644 --- a/handlers/admin-post/doMoveLotStatusUp.js +++ b/handlers/admin-post/doMoveLotStatusUp.js @@ -1,7 +1,9 @@ -import { moveLotStatusUp } from "../../helpers/lotOccupancyDB/moveLotStatusUp.js"; +import { moveLotStatusUp, moveLotStatusUpToTop } from "../../helpers/lotOccupancyDB/moveLotStatusUp.js"; import { getLotStatuses } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveLotStatusUp(request.body.lotStatusId); + const success = request.body.moveToTop === "1" + ? moveLotStatusUpToTop(request.body.lotStatusId) + : moveLotStatusUp(request.body.lotStatusId); const lotStatuses = getLotStatuses(); response.json({ success, diff --git a/handlers/admin-post/doMoveLotStatusUp.ts b/handlers/admin-post/doMoveLotStatusUp.ts index 6afeb108..1a052130 100644 --- a/handlers/admin-post/doMoveLotStatusUp.ts +++ b/handlers/admin-post/doMoveLotStatusUp.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveLotStatusUp } from "../../helpers/lotOccupancyDB/moveLotStatusUp.js"; +import { + moveLotStatusUp, + moveLotStatusUpToTop +} from "../../helpers/lotOccupancyDB/moveLotStatusUp.js"; import { getLotStatuses } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveLotStatusUp(request.body.lotStatusId); + const success = + request.body.moveToTop === "1" + ? moveLotStatusUpToTop(request.body.lotStatusId) + : moveLotStatusUp(request.body.lotStatusId); const lotStatuses = getLotStatuses(); diff --git a/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js b/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js index b212f180..d2925a38 100644 --- a/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js +++ b/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.js @@ -1,7 +1,9 @@ -import { moveWorkOrderMilestoneTypeDown } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js"; +import { moveWorkOrderMilestoneTypeDown, moveWorkOrderMilestoneTypeDownToBottom } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js"; import { getWorkOrderMilestoneTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveWorkOrderMilestoneTypeDown(request.body.workOrderMilestoneTypeId); + const success = request.body.moveToBottom === "1" + ? moveWorkOrderMilestoneTypeDownToBottom(request.body.workOrderMilestoneTypeId) + : moveWorkOrderMilestoneTypeDown(request.body.workOrderMilestoneTypeId); const workOrderMilestoneTypes = getWorkOrderMilestoneTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.ts b/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.ts index f0dd3a97..be9b5e3c 100644 --- a/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.ts +++ b/handlers/admin-post/doMoveWorkOrderMilestoneTypeDown.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveWorkOrderMilestoneTypeDown } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js"; +import { + moveWorkOrderMilestoneTypeDown, + moveWorkOrderMilestoneTypeDownToBottom +} from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js"; import { getWorkOrderMilestoneTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveWorkOrderMilestoneTypeDown(request.body.workOrderMilestoneTypeId); + const success = + request.body.moveToBottom === "1" + ? moveWorkOrderMilestoneTypeDownToBottom(request.body.workOrderMilestoneTypeId) + : moveWorkOrderMilestoneTypeDown(request.body.workOrderMilestoneTypeId); const workOrderMilestoneTypes = getWorkOrderMilestoneTypes(); diff --git a/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js b/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js index 072b6645..024f7718 100644 --- a/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js +++ b/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.js @@ -1,7 +1,9 @@ -import { moveWorkOrderMilestoneTypeUp } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js"; +import { moveWorkOrderMilestoneTypeUp, moveWorkOrderMilestoneTypeUpToTop } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js"; import { getWorkOrderMilestoneTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveWorkOrderMilestoneTypeUp(request.body.workOrderMilestoneTypeId); + const success = request.body.moveToTop === "1" + ? moveWorkOrderMilestoneTypeUpToTop(request.body.workOrderMilestoneTypeId) + : moveWorkOrderMilestoneTypeUp(request.body.workOrderMilestoneTypeId); const workOrderMilestoneTypes = getWorkOrderMilestoneTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.ts b/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.ts index 1dd3eb8c..18b7a9b1 100644 --- a/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.ts +++ b/handlers/admin-post/doMoveWorkOrderMilestoneTypeUp.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveWorkOrderMilestoneTypeUp } from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js"; +import { + moveWorkOrderMilestoneTypeUp, + moveWorkOrderMilestoneTypeUpToTop +} from "../../helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js"; import { getWorkOrderMilestoneTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveWorkOrderMilestoneTypeUp(request.body.workOrderMilestoneTypeId); + const success = + request.body.moveToTop === "1" + ? moveWorkOrderMilestoneTypeUpToTop(request.body.workOrderMilestoneTypeId) + : moveWorkOrderMilestoneTypeUp(request.body.workOrderMilestoneTypeId); const workOrderMilestoneTypes = getWorkOrderMilestoneTypes(); diff --git a/handlers/admin-post/doMoveWorkOrderTypeDown.js b/handlers/admin-post/doMoveWorkOrderTypeDown.js index 4aae884c..9b53291d 100644 --- a/handlers/admin-post/doMoveWorkOrderTypeDown.js +++ b/handlers/admin-post/doMoveWorkOrderTypeDown.js @@ -1,7 +1,9 @@ -import { moveWorkOrderTypeDown } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeDown.js"; +import { moveWorkOrderTypeDown, moveWorkOrderTypeDownToBottom } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeDown.js"; import { getWorkOrderTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveWorkOrderTypeDown(request.body.workOrderTypeId); + const success = request.body.moveToBottom === "1" + ? moveWorkOrderTypeDownToBottom(request.body.workOrderTypeId) + : moveWorkOrderTypeDown(request.body.workOrderTypeId); const workOrderTypes = getWorkOrderTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveWorkOrderTypeDown.ts b/handlers/admin-post/doMoveWorkOrderTypeDown.ts index a553269d..65f45112 100644 --- a/handlers/admin-post/doMoveWorkOrderTypeDown.ts +++ b/handlers/admin-post/doMoveWorkOrderTypeDown.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveWorkOrderTypeDown } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeDown.js"; +import { + moveWorkOrderTypeDown, + moveWorkOrderTypeDownToBottom +} from "../../helpers/lotOccupancyDB/moveWorkOrderTypeDown.js"; import { getWorkOrderTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveWorkOrderTypeDown(request.body.workOrderTypeId); + const success = + request.body.moveToBottom === "1" + ? moveWorkOrderTypeDownToBottom(request.body.workOrderTypeId) + : moveWorkOrderTypeDown(request.body.workOrderTypeId); const workOrderTypes = getWorkOrderTypes(); diff --git a/handlers/admin-post/doMoveWorkOrderTypeUp.js b/handlers/admin-post/doMoveWorkOrderTypeUp.js index 621d5f97..7584e0dc 100644 --- a/handlers/admin-post/doMoveWorkOrderTypeUp.js +++ b/handlers/admin-post/doMoveWorkOrderTypeUp.js @@ -1,7 +1,9 @@ -import { moveWorkOrderTypeUp } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeUp.js"; +import { moveWorkOrderTypeUp, moveWorkOrderTypeUpToTop } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeUp.js"; import { getWorkOrderTypes } from "../../helpers/functions.cache.js"; export const handler = async (request, response) => { - const success = moveWorkOrderTypeUp(request.body.workOrderTypeId); + const success = request.body.moveToTop === "1" + ? moveWorkOrderTypeUpToTop(request.body.workOrderTypeId) + : moveWorkOrderTypeUp(request.body.workOrderTypeId); const workOrderTypes = getWorkOrderTypes(); response.json({ success, diff --git a/handlers/admin-post/doMoveWorkOrderTypeUp.ts b/handlers/admin-post/doMoveWorkOrderTypeUp.ts index 5826a907..21a90265 100644 --- a/handlers/admin-post/doMoveWorkOrderTypeUp.ts +++ b/handlers/admin-post/doMoveWorkOrderTypeUp.ts @@ -1,11 +1,17 @@ import type { RequestHandler } from "express"; -import { moveWorkOrderTypeUp } from "../../helpers/lotOccupancyDB/moveWorkOrderTypeUp.js"; +import { + moveWorkOrderTypeUp, + moveWorkOrderTypeUpToTop +} from "../../helpers/lotOccupancyDB/moveWorkOrderTypeUp.js"; import { getWorkOrderTypes } from "../../helpers/functions.cache.js"; export const handler: RequestHandler = async (request, response) => { - const success = moveWorkOrderTypeUp(request.body.workOrderTypeId); + const success = + request.body.moveToTop === "1" + ? moveWorkOrderTypeUpToTop(request.body.workOrderTypeId) + : moveWorkOrderTypeUp(request.body.workOrderTypeId); const workOrderTypes = getWorkOrderTypes(); diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.d.ts b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.d.ts index 00db11d3..aa18aad1 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.d.ts +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.d.ts @@ -1,2 +1,3 @@ export declare const moveLotOccupantTypeDown: (lotOccupantTypeId: number | string) => boolean; +export declare const moveLotOccupantTypeDownToBottom: (lotOccupantTypeId: number | string) => boolean; export default moveLotOccupantTypeDown; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.js b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.js index 6333e839..80768bdb 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.js +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.js @@ -23,4 +23,29 @@ export const moveLotOccupantTypeDown = (lotOccupantTypeId) => { clearLotOccupantTypesCache(); return result.changes > 0; }; +export const moveLotOccupantTypeDownToBottom = (lotOccupantTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from LotOccupantTypes where lotOccupantTypeId = ?") + .get(lotOccupantTypeId).orderNumber; + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from LotOccupantTypes" + + " where recordDelete_timeMillis is null") + .get().maxOrderNumber; + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update LotOccupantTypes set orderNumber = ? + 1 where lotOccupantTypeId = ?") + .run(maxOrderNumber, lotOccupantTypeId); + database + .prepare("update LotOccupantTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?") + .run(currentOrderNumber); + } + database.close(); + clearLotOccupantTypesCache(); + return true; +}; export default moveLotOccupantTypeDown; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.ts b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.ts index 279b49cd..3014b079 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeDown.ts +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeDown.ts @@ -41,4 +41,41 @@ export const moveLotOccupantTypeDown = ( return result.changes > 0; }; + +export const moveLotOccupantTypeDownToBottom = (lotOccupantTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from LotOccupantTypes where lotOccupantTypeId = ?") + .get(lotOccupantTypeId).orderNumber; + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from LotOccupantTypes" + + " where recordDelete_timeMillis is null" + ) + .get().maxOrderNumber; + + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update LotOccupantTypes set orderNumber = ? + 1 where lotOccupantTypeId = ?") + .run(maxOrderNumber, lotOccupantTypeId); + + database + .prepare( + "update LotOccupantTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearLotOccupantTypesCache(); + + return true; +}; export default moveLotOccupantTypeDown; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.d.ts b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.d.ts index 50aaaaf3..fdfc9fce 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.d.ts +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.d.ts @@ -1,2 +1,3 @@ export declare const moveLotOccupantTypeUp: (lotOccupantTypeId: number | string) => boolean; +export declare const moveLotOccupantTypeUpToTop: (lotOccupantTypeId: number | string) => boolean; export default moveLotOccupantTypeUp; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.js b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.js index d65a90f9..c79641e7 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.js +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.js @@ -27,4 +27,24 @@ export const moveLotOccupantTypeUp = (lotOccupantTypeId) => { clearLotOccupantTypesCache(); return result.changes > 0; }; +export const moveLotOccupantTypeUpToTop = (lotOccupantTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from LotOccupantTypes where lotOccupantTypeId = ?") + .get(lotOccupantTypeId).orderNumber; + if (currentOrderNumber > 0) { + database + .prepare("update LotOccupantTypes set orderNumber = -1 where lotOccupantTypeId = ?") + .run(lotOccupantTypeId); + database + .prepare("update LotOccupantTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?") + .run(currentOrderNumber); + } + database.close(); + clearLotOccupantTypesCache(); + return true; +}; export default moveLotOccupantTypeUp; diff --git a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.ts b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.ts index bd6b4a2a..e92591cc 100644 --- a/helpers/lotOccupancyDB/moveLotOccupantTypeUp.ts +++ b/helpers/lotOccupancyDB/moveLotOccupantTypeUp.ts @@ -46,4 +46,33 @@ export const moveLotOccupantTypeUp = ( return result.changes > 0; }; +export const moveLotOccupantTypeUpToTop = (lotOccupantTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from LotOccupantTypes where lotOccupantTypeId = ?") + .get(lotOccupantTypeId).orderNumber; + + if (currentOrderNumber > 0) { + database + .prepare("update LotOccupantTypes set orderNumber = -1 where lotOccupantTypeId = ?") + .run(lotOccupantTypeId); + + database + .prepare( + "update LotOccupantTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearLotOccupantTypesCache(); + + return true; +}; + export default moveLotOccupantTypeUp; diff --git a/helpers/lotOccupancyDB/moveLotStatusDown.d.ts b/helpers/lotOccupancyDB/moveLotStatusDown.d.ts index 0a6e5dde..87d4c7ae 100644 --- a/helpers/lotOccupancyDB/moveLotStatusDown.d.ts +++ b/helpers/lotOccupancyDB/moveLotStatusDown.d.ts @@ -1,2 +1,3 @@ export declare const moveLotStatusDown: (lotStatusId: number | string) => boolean; +export declare const moveLotStatusDownToBottom: (lotStatusId: number | string) => boolean; export default moveLotStatusDown; diff --git a/helpers/lotOccupancyDB/moveLotStatusDown.js b/helpers/lotOccupancyDB/moveLotStatusDown.js index adad5f1d..5b739c03 100644 --- a/helpers/lotOccupancyDB/moveLotStatusDown.js +++ b/helpers/lotOccupancyDB/moveLotStatusDown.js @@ -23,4 +23,29 @@ export const moveLotStatusDown = (lotStatusId) => { clearLotStatusesCache(); return result.changes > 0; }; +export const moveLotStatusDownToBottom = (lotStatusId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") + .get(lotStatusId).orderNumber; + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from LotStatuses" + + " where recordDelete_timeMillis is null") + .get().maxOrderNumber; + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update LotStatuses set orderNumber = ? + 1 where lotStatusId = ?") + .run(maxOrderNumber, lotStatusId); + database + .prepare("update LotStatuses" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?") + .run(currentOrderNumber); + } + database.close(); + clearLotStatusesCache(); + return true; +}; export default moveLotStatusDown; diff --git a/helpers/lotOccupancyDB/moveLotStatusDown.ts b/helpers/lotOccupancyDB/moveLotStatusDown.ts index e7b32e02..c9c18db8 100644 --- a/helpers/lotOccupancyDB/moveLotStatusDown.ts +++ b/helpers/lotOccupancyDB/moveLotStatusDown.ts @@ -39,4 +39,41 @@ export const moveLotStatusDown = (lotStatusId: number | string): boolean => { return result.changes > 0; }; +export const moveLotStatusDownToBottom = (lotStatusId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") + .get(lotStatusId).orderNumber; + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from LotStatuses" + + " where recordDelete_timeMillis is null" + ) + .get().maxOrderNumber; + + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update LotStatuses set orderNumber = ? + 1 where lotStatusId = ?") + .run(maxOrderNumber, lotStatusId); + + database + .prepare( + "update LotStatuses" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearLotStatusesCache(); + + return true; +}; + export default moveLotStatusDown; diff --git a/helpers/lotOccupancyDB/moveLotStatusUp.d.ts b/helpers/lotOccupancyDB/moveLotStatusUp.d.ts index 090b829e..efe8af01 100644 --- a/helpers/lotOccupancyDB/moveLotStatusUp.d.ts +++ b/helpers/lotOccupancyDB/moveLotStatusUp.d.ts @@ -1,2 +1,3 @@ export declare const moveLotStatusUp: (lotStatusId: number | string) => boolean; +export declare const moveLotStatusUpToTop: (lotStatusId: number | string) => boolean; export default moveLotStatusUp; diff --git a/helpers/lotOccupancyDB/moveLotStatusUp.js b/helpers/lotOccupancyDB/moveLotStatusUp.js index 6b80c97e..79a4814d 100644 --- a/helpers/lotOccupancyDB/moveLotStatusUp.js +++ b/helpers/lotOccupancyDB/moveLotStatusUp.js @@ -4,9 +4,7 @@ import { clearLotStatusesCache } from "../functions.cache.js"; export const moveLotStatusUp = (lotStatusId) => { const database = sqlite(databasePath); const currentOrderNumber = database - .prepare("select orderNumber" + - " from LotStatuses" + - " where lotStatusId = ?") + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") .get(lotStatusId).orderNumber; if (currentOrderNumber <= 0) { database.close(); @@ -19,12 +17,30 @@ export const moveLotStatusUp = (lotStatusId) => { " and orderNumber = ? - 1") .run(currentOrderNumber); const result = database - .prepare("update LotStatuses" + - " set orderNumber = ? - 1" + - " where lotStatusId = ?") + .prepare("update LotStatuses set orderNumber = ? - 1 where lotStatusId = ?") .run(currentOrderNumber, lotStatusId); database.close(); clearLotStatusesCache(); return result.changes > 0; }; +export const moveLotStatusUpToTop = (lotStatusId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") + .get(lotStatusId).orderNumber; + if (currentOrderNumber > 0) { + database + .prepare("update LotStatuses set orderNumber = -1 where lotStatusId = ?") + .run(lotStatusId); + database + .prepare("update LotStatuses" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?") + .run(currentOrderNumber); + } + database.close(); + clearLotStatusesCache(); + return true; +}; export default moveLotStatusUp; diff --git a/helpers/lotOccupancyDB/moveLotStatusUp.ts b/helpers/lotOccupancyDB/moveLotStatusUp.ts index 9e201ace..bd4701ca 100644 --- a/helpers/lotOccupancyDB/moveLotStatusUp.ts +++ b/helpers/lotOccupancyDB/moveLotStatusUp.ts @@ -8,11 +8,7 @@ export const moveLotStatusUp = (lotStatusId: number | string): boolean => { const database = sqlite(databasePath); const currentOrderNumber: number = database - .prepare( - "select orderNumber" + - " from LotStatuses" + - " where lotStatusId = ?" - ) + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") .get(lotStatusId).orderNumber; if (currentOrderNumber <= 0) { @@ -30,11 +26,7 @@ export const moveLotStatusUp = (lotStatusId: number | string): boolean => { .run(currentOrderNumber); const result = database - .prepare( - "update LotStatuses" + - " set orderNumber = ? - 1" + - " where lotStatusId = ?" - ) + .prepare("update LotStatuses set orderNumber = ? - 1 where lotStatusId = ?") .run(currentOrderNumber, lotStatusId); database.close(); @@ -44,4 +36,33 @@ export const moveLotStatusUp = (lotStatusId: number | string): boolean => { return result.changes > 0; }; +export const moveLotStatusUpToTop = (lotStatusId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from LotStatuses where lotStatusId = ?") + .get(lotStatusId).orderNumber; + + if (currentOrderNumber > 0) { + database + .prepare("update LotStatuses set orderNumber = -1 where lotStatusId = ?") + .run(lotStatusId); + + database + .prepare( + "update LotStatuses" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearLotStatusesCache(); + + return true; +}; + export default moveLotStatusUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.d.ts b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.d.ts index db79e8df..7f4e2e78 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.d.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.d.ts @@ -1,2 +1,3 @@ export declare const moveWorkOrderMilestoneTypeDown: (workOrderMilestoneTypeId: number | string) => boolean; +export declare const moveWorkOrderMilestoneTypeDownToBottom: (workOrderMilestoneTypeId: number | string) => boolean; export default moveWorkOrderMilestoneTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js index 33fd5e34..a3e318b3 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.js @@ -23,4 +23,29 @@ export const moveWorkOrderMilestoneTypeDown = (workOrderMilestoneTypeId) => { clearWorkOrderMilestoneTypesCache(); return result.changes > 0; }; +export const moveWorkOrderMilestoneTypeDownToBottom = (workOrderMilestoneTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?") + .get(workOrderMilestoneTypeId).orderNumber; + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from WorkOrderMilestoneTypes" + + " where recordDelete_timeMillis is null") + .get().maxOrderNumber; + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update WorkOrderMilestoneTypes set orderNumber = ? + 1 where workOrderMilestoneTypeId = ?") + .run(maxOrderNumber, workOrderMilestoneTypeId); + database + .prepare("update WorkOrderMilestoneTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?") + .run(currentOrderNumber); + } + database.close(); + clearWorkOrderMilestoneTypesCache(); + return true; +}; export default moveWorkOrderMilestoneTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.ts b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.ts index 54be7264..a2a93200 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeDown.ts @@ -41,4 +41,47 @@ export const moveWorkOrderMilestoneTypeDown = ( return result.changes > 0; }; +export const moveWorkOrderMilestoneTypeDownToBottom = ( + workOrderMilestoneTypeId: number | string +): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare( + "select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?" + ) + .get(workOrderMilestoneTypeId).orderNumber; + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from WorkOrderMilestoneTypes" + + " where recordDelete_timeMillis is null" + ) + .get().maxOrderNumber; + + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare( + "update WorkOrderMilestoneTypes set orderNumber = ? + 1 where workOrderMilestoneTypeId = ?" + ) + .run(maxOrderNumber, workOrderMilestoneTypeId); + + database + .prepare( + "update WorkOrderMilestoneTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearWorkOrderMilestoneTypesCache(); + + return true; +}; + export default moveWorkOrderMilestoneTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.d.ts b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.d.ts index d76fc840..8883e3fd 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.d.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.d.ts @@ -1,2 +1,3 @@ export declare const moveWorkOrderMilestoneTypeUp: (workOrderMilestoneTypeId: number | string) => boolean; +export declare const moveWorkOrderMilestoneTypeUpToTop: (workOrderMilestoneTypeId: number | string) => boolean; export default moveWorkOrderMilestoneTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js index cc7f6ef2..358f8407 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.js @@ -27,4 +27,24 @@ export const moveWorkOrderMilestoneTypeUp = (workOrderMilestoneTypeId) => { clearWorkOrderMilestoneTypesCache(); return result.changes > 0; }; +export const moveWorkOrderMilestoneTypeUpToTop = (workOrderMilestoneTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?") + .get(workOrderMilestoneTypeId).orderNumber; + if (currentOrderNumber > 0) { + database + .prepare("update WorkOrderMilestoneTypes set orderNumber = -1 where workOrderMilestoneTypeId = ?") + .run(workOrderMilestoneTypeId); + database + .prepare("update WorkOrderMilestoneTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?") + .run(currentOrderNumber); + } + database.close(); + clearWorkOrderMilestoneTypesCache(); + return true; +}; export default moveWorkOrderMilestoneTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.ts b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.ts index 21b7b984..603c39a1 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderMilestoneTypeUp.ts @@ -46,4 +46,33 @@ export const moveWorkOrderMilestoneTypeUp = ( return result.changes > 0; }; +export const moveWorkOrderMilestoneTypeUpToTop = (workOrderMilestoneTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?") + .get(workOrderMilestoneTypeId).orderNumber; + + if (currentOrderNumber > 0) { + database + .prepare("update WorkOrderMilestoneTypes set orderNumber = -1 where workOrderMilestoneTypeId = ?") + .run(workOrderMilestoneTypeId); + + database + .prepare( + "update WorkOrderMilestoneTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearWorkOrderMilestoneTypesCache(); + + return true; +}; + export default moveWorkOrderMilestoneTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.d.ts b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.d.ts index 03a81485..d9ac2606 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.d.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.d.ts @@ -1,2 +1,3 @@ export declare const moveWorkOrderTypeDown: (workOrderTypeId: number | string) => boolean; +export declare const moveWorkOrderTypeDownToBottom: (workOrderTypeId: number | string) => boolean; export default moveWorkOrderTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.js b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.js index e42ab03a..223f8282 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.js +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.js @@ -4,9 +4,7 @@ import { clearWorkOrderTypesCache } from "../functions.cache.js"; export const moveWorkOrderTypeDown = (workOrderTypeId) => { const database = sqlite(databasePath); const currentOrderNumber = database - .prepare("select orderNumber" + - " from WorkOrderTypes" + - " where workOrderTypeId = ?") + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") .get(workOrderTypeId).orderNumber; database .prepare("update WorkOrderTypes" + @@ -15,12 +13,35 @@ export const moveWorkOrderTypeDown = (workOrderTypeId) => { " and orderNumber = ? + 1") .run(currentOrderNumber); const result = database - .prepare("update WorkOrderTypes" + - " set orderNumber = ? + 1" + - " where workOrderTypeId = ?") + .prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?") .run(currentOrderNumber, workOrderTypeId); database.close(); clearWorkOrderTypesCache(); return result.changes > 0; }; +export const moveWorkOrderTypeDownToBottom = (workOrderTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") + .get(workOrderTypeId).orderNumber; + const maxOrderNumber = database + .prepare("select max(orderNumber) as maxOrderNumber" + + " from WorkOrderTypes" + + " where recordDelete_timeMillis is null") + .get().maxOrderNumber; + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?") + .run(maxOrderNumber, workOrderTypeId); + database + .prepare("update WorkOrderTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?") + .run(currentOrderNumber); + } + database.close(); + clearWorkOrderTypesCache(); + return true; +}; export default moveWorkOrderTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.ts b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.ts index 32e66e78..4acc8434 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeDown.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeDown.ts @@ -4,17 +4,11 @@ import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; import { clearWorkOrderTypesCache } from "../functions.cache.js"; -export const moveWorkOrderTypeDown = ( - workOrderTypeId: number | string -): boolean => { +export const moveWorkOrderTypeDown = (workOrderTypeId: number | string): boolean => { const database = sqlite(databasePath); const currentOrderNumber: number = database - .prepare( - "select orderNumber" + - " from WorkOrderTypes" + - " where workOrderTypeId = ?" - ) + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") .get(workOrderTypeId).orderNumber; database @@ -27,11 +21,7 @@ export const moveWorkOrderTypeDown = ( .run(currentOrderNumber); const result = database - .prepare( - "update WorkOrderTypes" + - " set orderNumber = ? + 1" + - " where workOrderTypeId = ?" - ) + .prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?") .run(currentOrderNumber, workOrderTypeId); database.close(); @@ -41,4 +31,41 @@ export const moveWorkOrderTypeDown = ( return result.changes > 0; }; +export const moveWorkOrderTypeDownToBottom = (workOrderTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") + .get(workOrderTypeId).orderNumber; + + const maxOrderNumber: number = database + .prepare( + "select max(orderNumber) as maxOrderNumber" + + " from WorkOrderTypes" + + " where recordDelete_timeMillis is null" + ) + .get().maxOrderNumber; + + if (currentOrderNumber !== maxOrderNumber) { + database + .prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?") + .run(maxOrderNumber, workOrderTypeId); + + database + .prepare( + "update WorkOrderTypes" + + " set orderNumber = orderNumber - 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber > ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearWorkOrderTypesCache(); + + return true; +}; + export default moveWorkOrderTypeDown; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.d.ts b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.d.ts index 3d6c2c0e..88690f08 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.d.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.d.ts @@ -1,2 +1,3 @@ export declare const moveWorkOrderTypeUp: (workOrderTypeId: number | string) => boolean; +export declare const moveWorkOrderTypeUpToTop: (workOrderTypeId: number | string) => boolean; export default moveWorkOrderTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.js b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.js index aad1a9f0..251b76d9 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.js +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.js @@ -4,9 +4,7 @@ import { clearWorkOrderTypesCache } from "../functions.cache.js"; export const moveWorkOrderTypeUp = (workOrderTypeId) => { const database = sqlite(databasePath); const currentOrderNumber = database - .prepare("select orderNumber" + - " from WorkOrderTypes" + - " where workOrderTypeId = ?") + .prepare("select orderNumber" + " from WorkOrderTypes" + " where workOrderTypeId = ?") .get(workOrderTypeId).orderNumber; if (currentOrderNumber <= 0) { database.close(); @@ -19,12 +17,30 @@ export const moveWorkOrderTypeUp = (workOrderTypeId) => { " and orderNumber = ? - 1") .run(currentOrderNumber); const result = database - .prepare("update WorkOrderTypes" + - " set orderNumber = ? - 1" + - " where workOrderTypeId = ?") + .prepare("update WorkOrderTypes" + " set orderNumber = ? - 1" + " where workOrderTypeId = ?") .run(currentOrderNumber, workOrderTypeId); database.close(); clearWorkOrderTypesCache(); return result.changes > 0; }; +export const moveWorkOrderTypeUpToTop = (workOrderTypeId) => { + const database = sqlite(databasePath); + const currentOrderNumber = database + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") + .get(workOrderTypeId).orderNumber; + if (currentOrderNumber > 0) { + database + .prepare("update WorkOrderTypes set orderNumber = -1 where workOrderTypeId = ?") + .run(workOrderTypeId); + database + .prepare("update WorkOrderTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?") + .run(currentOrderNumber); + } + database.close(); + clearWorkOrderTypesCache(); + return true; +}; export default moveWorkOrderTypeUp; diff --git a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts index 19537570..def8f588 100644 --- a/helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts +++ b/helpers/lotOccupancyDB/moveWorkOrderTypeUp.ts @@ -4,17 +4,11 @@ import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js"; import { clearWorkOrderTypesCache } from "../functions.cache.js"; -export const moveWorkOrderTypeUp = ( - workOrderTypeId: number | string -): boolean => { +export const moveWorkOrderTypeUp = (workOrderTypeId: number | string): boolean => { const database = sqlite(databasePath); const currentOrderNumber: number = database - .prepare( - "select orderNumber" + - " from WorkOrderTypes" + - " where workOrderTypeId = ?" - ) + .prepare("select orderNumber" + " from WorkOrderTypes" + " where workOrderTypeId = ?") .get(workOrderTypeId).orderNumber; if (currentOrderNumber <= 0) { @@ -33,9 +27,7 @@ export const moveWorkOrderTypeUp = ( const result = database .prepare( - "update WorkOrderTypes" + - " set orderNumber = ? - 1" + - " where workOrderTypeId = ?" + "update WorkOrderTypes" + " set orderNumber = ? - 1" + " where workOrderTypeId = ?" ) .run(currentOrderNumber, workOrderTypeId); @@ -46,4 +38,33 @@ export const moveWorkOrderTypeUp = ( return result.changes > 0; }; +export const moveWorkOrderTypeUpToTop = (workOrderTypeId: number | string): boolean => { + const database = sqlite(databasePath); + + const currentOrderNumber: number = database + .prepare("select orderNumber from WorkOrderTypes where workOrderTypeId = ?") + .get(workOrderTypeId).orderNumber; + + if (currentOrderNumber > 0) { + database + .prepare("update WorkOrderTypes set orderNumber = -1 where workOrderTypeId = ?") + .run(workOrderTypeId); + + database + .prepare( + "update WorkOrderTypes" + + " set orderNumber = orderNumber + 1" + + " where recordDelete_timeMillis is null" + + " and orderNumber < ?" + ) + .run(currentOrderNumber); + } + + database.close(); + + clearWorkOrderTypesCache(); + + return true; +}; + export default moveWorkOrderTypeUp; diff --git a/public-typescript/adminTables.js b/public-typescript/adminTables.js index 7874a845..5a4e82c9 100644 --- a/public-typescript/adminTables.js +++ b/public-typescript/adminTables.js @@ -68,7 +68,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderTypeUp", { - workOrderTypeId + workOrderTypeId, + moveToTop: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; @@ -87,7 +88,8 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tableRowElement = clickEvent.currentTarget.closest("tr"); const workOrderTypeId = tableRowElement.dataset.workOrderTypeId; cityssm.postJSON(urlPrefix + "/admin/doMoveWorkOrderTypeDown", { - workOrderTypeId + workOrderTypeId, + moveToBottom: clickEvent.shiftKey ? "1" : "0" }, (responseJSON) => { if (responseJSON.success) { workOrderTypes = responseJSON.workOrderTypes; @@ -118,8 +120,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); containerElement.innerHTML = ""; for (const workOrderType of workOrderTypes) { const tableRowElement = document.createElement("tr"); - tableRowElement.dataset.workOrderTypeId = - workOrderType.workOrderTypeId.toString(); + tableRowElement.dataset.workOrderTypeId = workOrderType.workOrderTypeId.toString(); tableRowElement.innerHTML = "