reduce move down duplication
parent
3fd07bea6f
commit
3bab486146
|
|
@ -1,43 +1,13 @@
|
||||||
import sqlite from "better-sqlite3";
|
import { clearOccupancyTypesCache } from "../functions.cache.js";
|
||||||
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
|
||||||
import { getOccupancyTypeById, clearOccupancyTypesCache } from "../functions.cache.js";
|
|
||||||
export function moveOccupancyTypeDown(occupancyTypeId) {
|
export function moveOccupancyTypeDown(occupancyTypeId) {
|
||||||
const currentOrderNumber = getOccupancyTypeById(typeof occupancyTypeId === "string" ? Number.parseInt(occupancyTypeId) : occupancyTypeId).orderNumber;
|
const success = moveRecordDown("OccupancyTypes", occupancyTypeId);
|
||||||
const database = sqlite(databasePath);
|
|
||||||
database
|
|
||||||
.prepare(`update OccupancyTypes
|
|
||||||
set orderNumber = orderNumber - 1
|
|
||||||
where recordDelete_timeMillis is null
|
|
||||||
and orderNumber = ? + 1`)
|
|
||||||
.run(currentOrderNumber);
|
|
||||||
const result = database
|
|
||||||
.prepare("update OccupancyTypes set orderNumber = ? + 1 where occupancyTypeId = ?")
|
|
||||||
.run(currentOrderNumber, occupancyTypeId);
|
|
||||||
database.close();
|
|
||||||
clearOccupancyTypesCache();
|
clearOccupancyTypesCache();
|
||||||
return result.changes > 0;
|
return success;
|
||||||
}
|
}
|
||||||
export function moveOccupancyTypeDownToBottom(occupancyTypeId) {
|
export function moveOccupancyTypeDownToBottom(occupancyTypeId) {
|
||||||
const currentOrderNumber = getOccupancyTypeById(typeof occupancyTypeId === "string" ? Number.parseInt(occupancyTypeId) : occupancyTypeId).orderNumber;
|
const success = moveRecordDownToBottom("OccupancyTypes", occupancyTypeId);
|
||||||
const database = sqlite(databasePath);
|
|
||||||
const maxOrderNumber = database
|
|
||||||
.prepare(`select max(orderNumber) as maxOrderNumber
|
|
||||||
from OccupancyTypes
|
|
||||||
where recordDelete_timeMillis is null`)
|
|
||||||
.get().maxOrderNumber;
|
|
||||||
if (currentOrderNumber !== maxOrderNumber) {
|
|
||||||
database
|
|
||||||
.prepare("update OccupancyTypes set orderNumber = ? + 1 where occupancyTypeId = ?")
|
|
||||||
.run(maxOrderNumber, occupancyTypeId);
|
|
||||||
database
|
|
||||||
.prepare(`update OccupancyTypes
|
|
||||||
set orderNumber = orderNumber - 1
|
|
||||||
where recordDelete_timeMillis is null
|
|
||||||
and orderNumber > ?`)
|
|
||||||
.run(currentOrderNumber);
|
|
||||||
}
|
|
||||||
database.close();
|
|
||||||
clearOccupancyTypesCache();
|
clearOccupancyTypesCache();
|
||||||
return true;
|
return success;
|
||||||
}
|
}
|
||||||
export default moveOccupancyTypeDown;
|
export default moveOccupancyTypeDown;
|
||||||
|
|
|
||||||
|
|
@ -1,71 +1,16 @@
|
||||||
import sqlite from "better-sqlite3";
|
import { clearOccupancyTypesCache } from "../functions.cache.js";
|
||||||
|
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
|
||||||
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
|
||||||
|
|
||||||
import { getOccupancyTypeById, clearOccupancyTypesCache } from "../functions.cache.js";
|
|
||||||
|
|
||||||
export function moveOccupancyTypeDown(occupancyTypeId: number | string): boolean {
|
export function moveOccupancyTypeDown(occupancyTypeId: number | string): boolean {
|
||||||
const currentOrderNumber: number = getOccupancyTypeById(
|
const success = moveRecordDown("OccupancyTypes", occupancyTypeId);
|
||||||
typeof occupancyTypeId === "string" ? Number.parseInt(occupancyTypeId) : occupancyTypeId
|
|
||||||
).orderNumber;
|
|
||||||
|
|
||||||
const database = sqlite(databasePath);
|
|
||||||
|
|
||||||
database
|
|
||||||
.prepare(
|
|
||||||
`update OccupancyTypes
|
|
||||||
set orderNumber = orderNumber - 1
|
|
||||||
where recordDelete_timeMillis is null
|
|
||||||
and orderNumber = ? + 1`
|
|
||||||
)
|
|
||||||
.run(currentOrderNumber);
|
|
||||||
|
|
||||||
const result = database
|
|
||||||
.prepare("update OccupancyTypes set orderNumber = ? + 1 where occupancyTypeId = ?")
|
|
||||||
.run(currentOrderNumber, occupancyTypeId);
|
|
||||||
|
|
||||||
database.close();
|
|
||||||
|
|
||||||
clearOccupancyTypesCache();
|
clearOccupancyTypesCache();
|
||||||
|
return success;
|
||||||
return result.changes > 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function moveOccupancyTypeDownToBottom(occupancyTypeId: number | string): boolean {
|
export function moveOccupancyTypeDownToBottom(occupancyTypeId: number | string): boolean {
|
||||||
const currentOrderNumber: number = getOccupancyTypeById(
|
const success = moveRecordDownToBottom("OccupancyTypes", occupancyTypeId);
|
||||||
typeof occupancyTypeId === "string" ? Number.parseInt(occupancyTypeId) : occupancyTypeId
|
|
||||||
).orderNumber;
|
|
||||||
|
|
||||||
const database = sqlite(databasePath);
|
|
||||||
|
|
||||||
const maxOrderNumber: number = database
|
|
||||||
.prepare(
|
|
||||||
`select max(orderNumber) as maxOrderNumber
|
|
||||||
from OccupancyTypes
|
|
||||||
where recordDelete_timeMillis is null`
|
|
||||||
)
|
|
||||||
.get().maxOrderNumber;
|
|
||||||
|
|
||||||
if (currentOrderNumber !== maxOrderNumber) {
|
|
||||||
database
|
|
||||||
.prepare("update OccupancyTypes set orderNumber = ? + 1 where occupancyTypeId = ?")
|
|
||||||
.run(maxOrderNumber, occupancyTypeId);
|
|
||||||
|
|
||||||
database
|
|
||||||
.prepare(
|
|
||||||
`update OccupancyTypes
|
|
||||||
set orderNumber = orderNumber - 1
|
|
||||||
where recordDelete_timeMillis is null
|
|
||||||
and orderNumber > ?`
|
|
||||||
)
|
|
||||||
.run(currentOrderNumber);
|
|
||||||
}
|
|
||||||
|
|
||||||
database.close();
|
|
||||||
|
|
||||||
clearOccupancyTypesCache();
|
clearOccupancyTypesCache();
|
||||||
|
return success;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default moveOccupancyTypeDown;
|
export default moveOccupancyTypeDown;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
declare type RecordTable = "OccupancyTypes" | "WorkOrderMilestoneTypes" | "WorkOrderTypes";
|
||||||
|
export declare function moveRecordDown(recordTable: RecordTable, recordId: number | string): boolean;
|
||||||
|
export declare function moveRecordDownToBottom(recordTable: RecordTable, recordId: number | string): boolean;
|
||||||
|
export {};
|
||||||
|
|
@ -0,0 +1,53 @@
|
||||||
|
import sqlite from "better-sqlite3";
|
||||||
|
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
||||||
|
const recordIdColumns = new Map();
|
||||||
|
recordIdColumns.set("OccupancyTypes", "occupancyTypeId");
|
||||||
|
recordIdColumns.set("WorkOrderMilestoneTypes", "workOrderMilestoneTypeId");
|
||||||
|
recordIdColumns.set("WorkOrderTypes", "workOrderTypeId");
|
||||||
|
function getCurrentOrderNumber(recordTable, recordId, database) {
|
||||||
|
const currentOrderNumber = database
|
||||||
|
.prepare(`select orderNumber
|
||||||
|
from ${recordTable}
|
||||||
|
where ${recordIdColumns.get(recordTable)} = ?`)
|
||||||
|
.get(recordId).orderNumber;
|
||||||
|
return currentOrderNumber;
|
||||||
|
}
|
||||||
|
export function moveRecordDown(recordTable, recordId) {
|
||||||
|
const database = sqlite(databasePath);
|
||||||
|
const currentOrderNumber = getCurrentOrderNumber(recordTable, recordId, database);
|
||||||
|
database
|
||||||
|
.prepare(`update ${recordTable}
|
||||||
|
set orderNumber = orderNumber - 1
|
||||||
|
where recordDelete_timeMillis is null
|
||||||
|
and orderNumber = ? + 1`)
|
||||||
|
.run(currentOrderNumber);
|
||||||
|
const result = database
|
||||||
|
.prepare(`update ${recordTable}
|
||||||
|
set orderNumber = ? + 1
|
||||||
|
where ${recordIdColumns.get(recordTable)} = ?`)
|
||||||
|
.run(currentOrderNumber, recordId);
|
||||||
|
database.close();
|
||||||
|
return result.changes > 0;
|
||||||
|
}
|
||||||
|
export function moveRecordDownToBottom(recordTable, recordId) {
|
||||||
|
const database = sqlite(databasePath);
|
||||||
|
const currentOrderNumber = getCurrentOrderNumber(recordTable, recordId, database);
|
||||||
|
const maxOrderNumber = database
|
||||||
|
.prepare(`select max(orderNumber) as maxOrderNumber
|
||||||
|
from ${recordTable}
|
||||||
|
where recordDelete_timeMillis is null`)
|
||||||
|
.get().maxOrderNumber;
|
||||||
|
if (currentOrderNumber !== maxOrderNumber) {
|
||||||
|
database
|
||||||
|
.prepare(`update ${recordTable} set orderNumber = ? + 1 where ${recordIdColumns.get(recordTable)} = ?`)
|
||||||
|
.run(maxOrderNumber, recordId);
|
||||||
|
database
|
||||||
|
.prepare(`update ${recordTable}
|
||||||
|
set orderNumber = orderNumber - 1
|
||||||
|
where recordDelete_timeMillis is null
|
||||||
|
and orderNumber > ?`)
|
||||||
|
.run(currentOrderNumber);
|
||||||
|
}
|
||||||
|
database.close();
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,89 @@
|
||||||
|
import sqlite from "better-sqlite3";
|
||||||
|
|
||||||
|
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
||||||
|
|
||||||
|
type RecordTable = "OccupancyTypes" | "WorkOrderMilestoneTypes" | "WorkOrderTypes";
|
||||||
|
|
||||||
|
const recordIdColumns: Map<RecordTable, string> = new Map();
|
||||||
|
recordIdColumns.set("OccupancyTypes", "occupancyTypeId");
|
||||||
|
recordIdColumns.set("WorkOrderMilestoneTypes", "workOrderMilestoneTypeId");
|
||||||
|
recordIdColumns.set("WorkOrderTypes", "workOrderTypeId");
|
||||||
|
|
||||||
|
function getCurrentOrderNumber(
|
||||||
|
recordTable: RecordTable,
|
||||||
|
recordId: number | string,
|
||||||
|
database: sqlite.Database
|
||||||
|
): number {
|
||||||
|
const currentOrderNumber: number = database
|
||||||
|
.prepare(
|
||||||
|
`select orderNumber
|
||||||
|
from ${recordTable}
|
||||||
|
where ${recordIdColumns.get(recordTable)} = ?`
|
||||||
|
)
|
||||||
|
.get(recordId).orderNumber;
|
||||||
|
|
||||||
|
return currentOrderNumber;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function moveRecordDown(recordTable: RecordTable, recordId: number | string): boolean {
|
||||||
|
const database = sqlite(databasePath);
|
||||||
|
|
||||||
|
const currentOrderNumber = getCurrentOrderNumber(recordTable, recordId, database);
|
||||||
|
|
||||||
|
database
|
||||||
|
.prepare(
|
||||||
|
`update ${recordTable}
|
||||||
|
set orderNumber = orderNumber - 1
|
||||||
|
where recordDelete_timeMillis is null
|
||||||
|
and orderNumber = ? + 1`
|
||||||
|
)
|
||||||
|
.run(currentOrderNumber);
|
||||||
|
|
||||||
|
const result = database
|
||||||
|
.prepare(
|
||||||
|
`update ${recordTable}
|
||||||
|
set orderNumber = ? + 1
|
||||||
|
where ${recordIdColumns.get(recordTable)} = ?`
|
||||||
|
)
|
||||||
|
.run(currentOrderNumber, recordId);
|
||||||
|
|
||||||
|
database.close();
|
||||||
|
|
||||||
|
return result.changes > 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
export function moveRecordDownToBottom(recordTable: RecordTable, recordId: number | string): boolean {
|
||||||
|
|
||||||
|
const database = sqlite(databasePath);
|
||||||
|
|
||||||
|
const currentOrderNumber = getCurrentOrderNumber(recordTable, recordId, database);
|
||||||
|
|
||||||
|
const maxOrderNumber: number = database
|
||||||
|
.prepare(
|
||||||
|
`select max(orderNumber) as maxOrderNumber
|
||||||
|
from ${recordTable}
|
||||||
|
where recordDelete_timeMillis is null`
|
||||||
|
)
|
||||||
|
.get().maxOrderNumber;
|
||||||
|
|
||||||
|
if (currentOrderNumber !== maxOrderNumber) {
|
||||||
|
database
|
||||||
|
.prepare(
|
||||||
|
`update ${recordTable} set orderNumber = ? + 1 where ${recordIdColumns.get(recordTable)} = ?`
|
||||||
|
)
|
||||||
|
.run(maxOrderNumber, recordId);
|
||||||
|
|
||||||
|
database
|
||||||
|
.prepare(
|
||||||
|
`update ${recordTable}
|
||||||
|
set orderNumber = orderNumber - 1
|
||||||
|
where recordDelete_timeMillis is null
|
||||||
|
and orderNumber > ?`
|
||||||
|
)
|
||||||
|
.run(currentOrderNumber);
|
||||||
|
}
|
||||||
|
|
||||||
|
database.close();
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
@ -1,49 +1,13 @@
|
||||||
import sqlite from "better-sqlite3";
|
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
|
||||||
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
|
||||||
import { getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId, clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
|
|
||||||
export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId) {
|
export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId) {
|
||||||
const currentOrderNumber = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(typeof workOrderMilestoneTypeId === "string"
|
const success = moveRecordDown("WorkOrderMilestoneTypes", workOrderMilestoneTypeId);
|
||||||
? Number.parseInt(workOrderMilestoneTypeId)
|
|
||||||
: workOrderMilestoneTypeId).orderNumber;
|
|
||||||
const database = sqlite(databasePath);
|
|
||||||
database
|
|
||||||
.prepare(`update WorkOrderMilestoneTypes
|
|
||||||
set orderNumber = orderNumber - 1
|
|
||||||
where recordDelete_timeMillis is null
|
|
||||||
and orderNumber = ? + 1`)
|
|
||||||
.run(currentOrderNumber);
|
|
||||||
const result = database
|
|
||||||
.prepare(`update WorkOrderMilestoneTypes
|
|
||||||
set orderNumber = ? + 1
|
|
||||||
where workOrderMilestoneTypeId = ?`)
|
|
||||||
.run(currentOrderNumber, workOrderMilestoneTypeId);
|
|
||||||
database.close();
|
|
||||||
clearWorkOrderMilestoneTypesCache();
|
clearWorkOrderMilestoneTypesCache();
|
||||||
return result.changes > 0;
|
return success;
|
||||||
}
|
}
|
||||||
export function moveWorkOrderMilestoneTypeDownToBottom(workOrderMilestoneTypeId) {
|
export function moveWorkOrderMilestoneTypeDownToBottom(workOrderMilestoneTypeId) {
|
||||||
const currentOrderNumber = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(typeof workOrderMilestoneTypeId === "string"
|
const success = moveRecordDownToBottom("WorkOrderMilestoneTypes", workOrderMilestoneTypeId);
|
||||||
? Number.parseInt(workOrderMilestoneTypeId)
|
|
||||||
: workOrderMilestoneTypeId).orderNumber;
|
|
||||||
const database = sqlite(databasePath);
|
|
||||||
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();
|
clearWorkOrderMilestoneTypesCache();
|
||||||
return true;
|
return success;
|
||||||
}
|
}
|
||||||
export default moveWorkOrderMilestoneTypeDown;
|
export default moveWorkOrderMilestoneTypeDown;
|
||||||
|
|
|
||||||
|
|
@ -1,86 +1,17 @@
|
||||||
import sqlite from "better-sqlite3";
|
import { clearWorkOrderMilestoneTypesCache } from "../functions.cache.js";
|
||||||
|
|
||||||
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
|
||||||
|
|
||||||
import {
|
|
||||||
getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId,
|
|
||||||
clearWorkOrderMilestoneTypesCache
|
|
||||||
} from "../functions.cache.js";
|
|
||||||
|
|
||||||
export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId: number | string): boolean {
|
export function moveWorkOrderMilestoneTypeDown(workOrderMilestoneTypeId: number | string): boolean {
|
||||||
const currentOrderNumber: number = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
|
const success = moveRecordDown("WorkOrderMilestoneTypes", workOrderMilestoneTypeId);
|
||||||
typeof workOrderMilestoneTypeId === "string"
|
|
||||||
? Number.parseInt(workOrderMilestoneTypeId)
|
|
||||||
: workOrderMilestoneTypeId
|
|
||||||
).orderNumber;
|
|
||||||
|
|
||||||
const database = sqlite(databasePath);
|
|
||||||
|
|
||||||
database
|
|
||||||
.prepare(
|
|
||||||
`update WorkOrderMilestoneTypes
|
|
||||||
set orderNumber = orderNumber - 1
|
|
||||||
where recordDelete_timeMillis is null
|
|
||||||
and orderNumber = ? + 1`
|
|
||||||
)
|
|
||||||
.run(currentOrderNumber);
|
|
||||||
|
|
||||||
const result = database
|
|
||||||
.prepare(
|
|
||||||
`update WorkOrderMilestoneTypes
|
|
||||||
set orderNumber = ? + 1
|
|
||||||
where workOrderMilestoneTypeId = ?`
|
|
||||||
)
|
|
||||||
.run(currentOrderNumber, workOrderMilestoneTypeId);
|
|
||||||
|
|
||||||
database.close();
|
|
||||||
|
|
||||||
clearWorkOrderMilestoneTypesCache();
|
clearWorkOrderMilestoneTypesCache();
|
||||||
|
return success;
|
||||||
return result.changes > 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function moveWorkOrderMilestoneTypeDownToBottom(
|
export function moveWorkOrderMilestoneTypeDownToBottom(workOrderMilestoneTypeId: number | string): boolean {
|
||||||
workOrderMilestoneTypeId: number | string
|
const success = moveRecordDownToBottom("WorkOrderMilestoneTypes", workOrderMilestoneTypeId);
|
||||||
): boolean {
|
|
||||||
const currentOrderNumber: number = getWorkOrderMilestoneTypeByWorkOrderMilestoneTypeId(
|
|
||||||
typeof workOrderMilestoneTypeId === "string"
|
|
||||||
? Number.parseInt(workOrderMilestoneTypeId)
|
|
||||||
: workOrderMilestoneTypeId
|
|
||||||
).orderNumber;
|
|
||||||
|
|
||||||
const database = sqlite(databasePath);
|
|
||||||
|
|
||||||
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();
|
clearWorkOrderMilestoneTypesCache();
|
||||||
|
return success;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default moveWorkOrderMilestoneTypeDown;
|
export default moveWorkOrderMilestoneTypeDown;
|
||||||
|
|
|
||||||
|
|
@ -1,43 +1,13 @@
|
||||||
import sqlite from "better-sqlite3";
|
import { clearWorkOrderTypesCache } from "../functions.cache.js";
|
||||||
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
|
||||||
import { getWorkOrderTypeById, clearWorkOrderTypesCache } from "../functions.cache.js";
|
|
||||||
export function moveWorkOrderTypeDown(workOrderTypeId) {
|
export function moveWorkOrderTypeDown(workOrderTypeId) {
|
||||||
const currentOrderNumber = getWorkOrderTypeById(typeof workOrderTypeId === "string" ? Number.parseInt(workOrderTypeId) : workOrderTypeId).orderNumber;
|
const success = moveRecordDown("WorkOrderTypes", workOrderTypeId);
|
||||||
const database = sqlite(databasePath);
|
|
||||||
database
|
|
||||||
.prepare(`update WorkOrderTypes
|
|
||||||
set orderNumber = orderNumber - 1
|
|
||||||
where recordDelete_timeMillis is null
|
|
||||||
and orderNumber = ? + 1`)
|
|
||||||
.run(currentOrderNumber);
|
|
||||||
const result = database
|
|
||||||
.prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?")
|
|
||||||
.run(currentOrderNumber, workOrderTypeId);
|
|
||||||
database.close();
|
|
||||||
clearWorkOrderTypesCache();
|
clearWorkOrderTypesCache();
|
||||||
return result.changes > 0;
|
return success;
|
||||||
}
|
}
|
||||||
export function moveWorkOrderTypeDownToBottom(workOrderTypeId) {
|
export function moveWorkOrderTypeDownToBottom(workOrderTypeId) {
|
||||||
const currentOrderNumber = getWorkOrderTypeById(typeof workOrderTypeId === "string" ? Number.parseInt(workOrderTypeId) : workOrderTypeId).orderNumber;
|
const success = moveRecordDownToBottom("WorkOrderTypes", workOrderTypeId);
|
||||||
const database = sqlite(databasePath);
|
|
||||||
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();
|
clearWorkOrderTypesCache();
|
||||||
return true;
|
return success;
|
||||||
}
|
}
|
||||||
export default moveWorkOrderTypeDown;
|
export default moveWorkOrderTypeDown;
|
||||||
|
|
|
||||||
|
|
@ -1,71 +1,16 @@
|
||||||
import sqlite from "better-sqlite3";
|
import { clearWorkOrderTypesCache } from "../functions.cache.js";
|
||||||
|
import { moveRecordDown, moveRecordDownToBottom } from "./moveRecord.js";
|
||||||
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
|
|
||||||
|
|
||||||
import { getWorkOrderTypeById, clearWorkOrderTypesCache } from "../functions.cache.js";
|
|
||||||
|
|
||||||
export function moveWorkOrderTypeDown(workOrderTypeId: number | string): boolean {
|
export function moveWorkOrderTypeDown(workOrderTypeId: number | string): boolean {
|
||||||
const currentOrderNumber: number = getWorkOrderTypeById(
|
const success = moveRecordDown("WorkOrderTypes", workOrderTypeId);
|
||||||
typeof workOrderTypeId === "string" ? Number.parseInt(workOrderTypeId) : workOrderTypeId
|
|
||||||
).orderNumber;
|
|
||||||
|
|
||||||
const database = sqlite(databasePath);
|
|
||||||
|
|
||||||
database
|
|
||||||
.prepare(
|
|
||||||
`update WorkOrderTypes
|
|
||||||
set orderNumber = orderNumber - 1
|
|
||||||
where recordDelete_timeMillis is null
|
|
||||||
and orderNumber = ? + 1`
|
|
||||||
)
|
|
||||||
.run(currentOrderNumber);
|
|
||||||
|
|
||||||
const result = database
|
|
||||||
.prepare("update WorkOrderTypes set orderNumber = ? + 1 where workOrderTypeId = ?")
|
|
||||||
.run(currentOrderNumber, workOrderTypeId);
|
|
||||||
|
|
||||||
database.close();
|
|
||||||
|
|
||||||
clearWorkOrderTypesCache();
|
clearWorkOrderTypesCache();
|
||||||
|
return success;
|
||||||
return result.changes > 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export function moveWorkOrderTypeDownToBottom(workOrderTypeId: number | string): boolean {
|
export function moveWorkOrderTypeDownToBottom(workOrderTypeId: number | string): boolean {
|
||||||
const currentOrderNumber: number = getWorkOrderTypeById(
|
const success = moveRecordDownToBottom("WorkOrderTypes", workOrderTypeId);
|
||||||
typeof workOrderTypeId === "string" ? Number.parseInt(workOrderTypeId) : workOrderTypeId
|
|
||||||
).orderNumber;
|
|
||||||
|
|
||||||
const database = sqlite(databasePath);
|
|
||||||
|
|
||||||
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();
|
clearWorkOrderTypesCache();
|
||||||
|
return success;
|
||||||
return true;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export default moveWorkOrderTypeDown;
|
export default moveWorkOrderTypeDown;
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
|
const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
|
||||||
const isCreate = workOrderId === "";
|
const isCreate = workOrderId === "";
|
||||||
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
||||||
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
|
los.initializeDatePickers(workOrderFormElement
|
||||||
|
.querySelector("#workOrderEdit--workOrderOpenDateString")
|
||||||
|
.closest(".field"));
|
||||||
los.initializeUnlockFieldButtons(workOrderFormElement);
|
los.initializeUnlockFieldButtons(workOrderFormElement);
|
||||||
workOrderFormElement.addEventListener("submit", (submitEvent) => {
|
workOrderFormElement.addEventListener("submit", (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
|
||||||
|
|
@ -7,7 +7,9 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
||||||
const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
|
const workOrderId = document.querySelector("#workOrderEdit--workOrderId").value;
|
||||||
const isCreate = workOrderId === "";
|
const isCreate = workOrderId === "";
|
||||||
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
const workOrderFormElement = document.querySelector("#form--workOrderEdit");
|
||||||
los.initializeDatePickers(workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString").closest(".field"));
|
los.initializeDatePickers(workOrderFormElement
|
||||||
|
.querySelector("#workOrderEdit--workOrderOpenDateString")
|
||||||
|
.closest(".field"));
|
||||||
los.initializeUnlockFieldButtons(workOrderFormElement);
|
los.initializeUnlockFieldButtons(workOrderFormElement);
|
||||||
workOrderFormElement.addEventListener("submit", (submitEvent) => {
|
workOrderFormElement.addEventListener("submit", (submitEvent) => {
|
||||||
submitEvent.preventDefault();
|
submitEvent.preventDefault();
|
||||||
|
|
|
||||||
|
|
@ -19,9 +19,9 @@ declare const bulmaJS: BulmaJS;
|
||||||
const workOrderFormElement = document.querySelector("#form--workOrderEdit") as HTMLFormElement;
|
const workOrderFormElement = document.querySelector("#form--workOrderEdit") as HTMLFormElement;
|
||||||
|
|
||||||
los.initializeDatePickers(
|
los.initializeDatePickers(
|
||||||
(
|
workOrderFormElement
|
||||||
workOrderFormElement.querySelector("#workOrderEdit--workOrderOpenDateString") as HTMLInputElement
|
.querySelector("#workOrderEdit--workOrderOpenDateString")!
|
||||||
).closest(".field") as HTMLElement
|
.closest(".field") as HTMLElement
|
||||||
);
|
);
|
||||||
los.initializeUnlockFieldButtons(workOrderFormElement);
|
los.initializeUnlockFieldButtons(workOrderFormElement);
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue