reduce ordernumber queries

deepsource-autofix-76c6eb20
Dan Gowans 2023-01-04 15:43:14 -05:00
parent 42dba58325
commit 27b6fe2706
7 changed files with 73 additions and 52 deletions

View File

@ -21,5 +21,6 @@ export declare function getWorkOrderTypes(): recordTypes.WorkOrderType[];
export declare function getWorkOrderTypeById(workOrderTypeId: number): recordTypes.WorkOrderType;
export declare function clearWorkOrderTypesCache(): void;
export declare function getWorkOrderMilestoneTypes(): recordTypes.WorkOrderMilestoneType[];
export declare function getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(workOrderMilestoneTypeId: number): recordTypes.WorkOrderMilestoneType;
export declare function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(workOrderMilestoneTypeString: string): recordTypes.WorkOrderMilestoneType;
export declare function clearWorkOrderMilestoneTypesCache(): void;

View File

@ -139,6 +139,12 @@ export function getWorkOrderMilestoneTypes() {
}
return workOrderMilestoneTypes;
}
export function getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(workOrderMilestoneTypeId) {
const cachedWorkOrderMilestoneTypes = getWorkOrderMilestoneTypes();
return cachedWorkOrderMilestoneTypes.find((currentWorkOrderMilestoneType) => {
return currentWorkOrderMilestoneType.workOrderMilestoneTypeId === workOrderMilestoneTypeId;
});
}
export function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(workOrderMilestoneTypeString) {
const cachedWorkOrderMilestoneTypes = getWorkOrderMilestoneTypes();
const workOrderMilestoneTypeLowerCase = workOrderMilestoneTypeString.toLowerCase();

View File

@ -222,6 +222,16 @@ export function getWorkOrderMilestoneTypes() {
return workOrderMilestoneTypes;
}
export function getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
workOrderMilestoneTypeId: number
) {
const cachedWorkOrderMilestoneTypes = getWorkOrderMilestoneTypes();
return cachedWorkOrderMilestoneTypes.find((currentWorkOrderMilestoneType) => {
return currentWorkOrderMilestoneType.workOrderMilestoneTypeId === workOrderMilestoneTypeId;
});
}
export function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(
workOrderMilestoneTypeString: string
) {

View File

@ -1,11 +1,11 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId, clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId) {
const currentOrderNumber = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId).orderNumber;
const database = sqlite(databasePath);
const currentOrderNumber = database
.prepare(`select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?`)
.get(workOrderMilestoneTypeId).orderNumber;
database
.prepare(`update WorkOrderMilestoneTypes
set orderNumber = orderNumber - 1
@ -22,10 +22,10 @@ export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId) {
return result.changes > 0;
}
export function moveWorkOrderMilestoneTypeDownToBottom(workOrderMilestoneTypeId) {
const currentOrderNumber = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId).orderNumber;
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

View File

@ -2,16 +2,19 @@ import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import {
getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId,
clearWorkOrderMilestoneTypesCache
} from "../functions.cache.js";
export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId: number | string): boolean {
const database = sqlite(databasePath);
const currentOrderNumber: number = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId
).orderNumber;
const currentOrderNumber: number = database
.prepare(
`select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?`
)
.get(workOrderMilestoneTypeId).orderNumber;
const database = sqlite(databasePath);
database
.prepare(
@ -40,13 +43,13 @@ export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId: number
export function moveWorkOrderMilestoneTypeDownToBottom(
workOrderMilestoneTypeId: number | string
): boolean {
const database = sqlite(databasePath);
const currentOrderNumber: number = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId
).orderNumber;
const currentOrderNumber: number = database
.prepare(
"select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?"
)
.get(workOrderMilestoneTypeId).orderNumber;
const database = sqlite(databasePath);
const maxOrderNumber: number = database
.prepare(

View File

@ -1,15 +1,14 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import { getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId, clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
export function moveWorkOrderMilestoneTypeUp(workOrderMilestoneTypeId) {
const database = sqlite(databasePath);
const currentOrderNumber = database
.prepare(`select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?`)
.get(workOrderMilestoneTypeId).orderNumber;
const currentOrderNumber = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId).orderNumber;
if (currentOrderNumber <= 0) {
database.close();
return true;
}
const database = sqlite(databasePath);
database
.prepare(`update WorkOrderMilestoneTypes
set orderNumber = orderNumber + 1
@ -26,11 +25,11 @@ export function moveWorkOrderMilestoneTypeUp(workOrderMilestoneTypeId) {
return result.changes > 0;
}
export function moveWorkOrderMilestoneTypeUpToTop(workOrderMilestoneTypeId) {
const database = sqlite(databasePath);
const currentOrderNumber = database
.prepare("select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?")
.get(workOrderMilestoneTypeId).orderNumber;
const currentOrderNumber = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId).orderNumber;
if (currentOrderNumber > 0) {
const database = sqlite(databasePath);
database
.prepare("update WorkOrderMilestoneTypes set orderNumber = -1 where workOrderMilestoneTypeId = ?")
.run(workOrderMilestoneTypeId);
@ -40,9 +39,9 @@ export function moveWorkOrderMilestoneTypeUpToTop(workOrderMilestoneTypeId) {
where recordDelete_timeMillis is null
and orderNumber < ?`)
.run(currentOrderNumber);
}
database.close();
clearWorkOrderMilestoneTypesCache();
}
return true;
}
export default moveWorkOrderMilestoneTypeUp;

View File

@ -2,22 +2,24 @@ import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
import {
getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId,
clearWorkOrderMilestoneTypesCache
} from "../functions.cache.js";
export function moveWorkOrderMilestoneTypeUp(workOrderMilestoneTypeId: number | string): boolean {
const database = sqlite(databasePath);
const currentOrderNumber: number = database
.prepare(
`select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?`
)
.get(workOrderMilestoneTypeId).orderNumber;
const currentOrderNumber: number = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId
).orderNumber;
if (currentOrderNumber <= 0) {
database.close();
return true;
}
const database = sqlite(databasePath);
database
.prepare(
`update WorkOrderMilestoneTypes
@ -45,15 +47,15 @@ export function moveWorkOrderMilestoneTypeUp(workOrderMilestoneTypeId: number |
export function moveWorkOrderMilestoneTypeUpToTop(
workOrderMilestoneTypeId: number | string
): boolean {
const database = sqlite(databasePath);
const currentOrderNumber: number = database
.prepare(
"select orderNumber from WorkOrderMilestoneTypes where workOrderMilestoneTypeId = ?"
)
.get(workOrderMilestoneTypeId).orderNumber;
const currentOrderNumber: number = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
typeof workOrderMilestoneTypeId === "string"
? Number.parseInt(workOrderMilestoneTypeId)
: workOrderMilestoneTypeId
).orderNumber;
if (currentOrderNumber > 0) {
const database = sqlite(databasePath);
database
.prepare(
"update WorkOrderMilestoneTypes set orderNumber = -1 where workOrderMilestoneTypeId = ?"
@ -68,11 +70,11 @@ export function moveWorkOrderMilestoneTypeUpToTop(
and orderNumber < ?`
)
.run(currentOrderNumber);
}
database.close();
clearWorkOrderMilestoneTypesCache();
}
return true;
}