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 getWorkOrderTypeById(workOrderTypeId: number): recordTypes.WorkOrderType;
export declare function clearWorkOrderTypesCache(): void; export declare function clearWorkOrderTypesCache(): void;
export declare function getWorkOrderMilestoneTypes(): recordTypes.WorkOrderMilestoneType[]; 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 getWorkOrderMilestoneTypeByWorkOrderMilestoneType(workOrderMilestoneTypeString: string): recordTypes.WorkOrderMilestoneType;
export declare function clearWorkOrderMilestoneTypesCache(): void; export declare function clearWorkOrderMilestoneTypesCache(): void;

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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