add comments and milestones to getWorkOrder

deepsource-autofix-76c6eb20
Dan Gowans 2022-09-08 15:23:39 -04:00
parent d58ea874e5
commit c6f6bf01df
8 changed files with 176 additions and 0 deletions

View File

@ -3,6 +3,8 @@ import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
import { getLots } from "./getLots.js";
import { getLotOccupancies } from "./getLotOccupancies.js";
import { getWorkOrderComments } from "./getWorkOrderComments.js";
import { getWorkOrderMilestones } from "./getWorkOrderMilestones.js";
const baseSQL = "select w.workOrderId," +
" w.workOrderTypeId, t.workOrderType," +
" w.workOrderNumber, w.workOrderDescription," +
@ -33,6 +35,8 @@ const _getWorkOrder = (sql, workOrderId_or_workOrderNumber) => {
offset: 0,
includeOccupants: true
}, database).lotOccupancies;
workOrder.workOrderComments = getWorkOrderComments(workOrder.workOrderId, database);
workOrder.workOrderMilestones = getWorkOrderMilestones(workOrder.workOrderId, database);
}
database.close();
return workOrder;

View File

@ -8,6 +8,10 @@ import { getLots } from "./getLots.js";
import { getLotOccupancies } from "./getLotOccupancies.js";
import { getWorkOrderComments } from "./getWorkOrderComments.js";
import { getWorkOrderMilestones } from "./getWorkOrderMilestones.js";
import type * as recordTypes from "../../types/recordTypes";
const baseSQL =
@ -57,6 +61,16 @@ const _getWorkOrder = (
},
database
).lotOccupancies;
workOrder.workOrderComments = getWorkOrderComments(
workOrder.workOrderId,
database
);
workOrder.workOrderMilestones = getWorkOrderMilestones(
workOrder.workOrderId,
database
);
}
database.close();

View File

@ -0,0 +1,4 @@
import sqlite from "better-sqlite3";
import type * as recordTypes from "../../types/recordTypes";
export declare const getWorkOrderComments: (workOrderId: number | string, connectedDatabase?: sqlite.Database) => recordTypes.WorkOrderComment[];
export default getWorkOrderComments;

View File

@ -0,0 +1,27 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
export const getWorkOrderComments = (workOrderId, connectedDatabase) => {
const database = connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
database.function("userFn_timeIntegerToString", timeIntegerToString);
const workOrderComments = database
.prepare("select workOrderCommentId," +
" workOrderCommentDate, userFn_dateIntegerToString(workOrderCommentDate) as workOrderCommentDateString," +
" workOrderCommentTime, userFn_timeIntegerToString(workOrderCommentTime) as workOrderCommentTimeString," +
" workOrderComment," +
" recordCreate_userName, recordUpdate_userName" +
" from WorkOrderComments" +
" where recordDelete_timeMillis is null" +
" and workOrderId = ?" +
" order by workOrderCommentDate desc, workOrderCommentTime desc, workOrderCommentId desc")
.all(workOrderId);
if (!connectedDatabase) {
database.close();
}
return workOrderComments;
};
export default getWorkOrderComments;

View File

@ -0,0 +1,46 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
dateIntegerToString,
timeIntegerToString
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import type * as recordTypes from "../../types/recordTypes";
export const getWorkOrderComments = (
workOrderId: number | string,
connectedDatabase?: sqlite.Database
): recordTypes.WorkOrderComment[] => {
const database =
connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
database.function("userFn_timeIntegerToString", timeIntegerToString);
const workOrderComments = database
.prepare(
"select workOrderCommentId," +
" workOrderCommentDate, userFn_dateIntegerToString(workOrderCommentDate) as workOrderCommentDateString," +
" workOrderCommentTime, userFn_timeIntegerToString(workOrderCommentTime) as workOrderCommentTimeString," +
" workOrderComment," +
" recordCreate_userName, recordUpdate_userName" +
" from WorkOrderComments" +
" where recordDelete_timeMillis is null" +
" and workOrderId = ?" +
" order by workOrderCommentDate desc, workOrderCommentTime desc, workOrderCommentId desc"
)
.all(workOrderId);
if (!connectedDatabase) {
database.close();
}
return workOrderComments;
};
export default getWorkOrderComments;

View File

@ -0,0 +1,4 @@
import sqlite from "better-sqlite3";
import type * as recordTypes from "../../types/recordTypes";
export declare const getWorkOrderMilestones: (workOrderId: number | string, connectedDatabase?: sqlite.Database) => recordTypes.WorkOrderMilestone[];
export default getWorkOrderMilestones;

View File

@ -0,0 +1,29 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import { dateIntegerToString, timeIntegerToString } from "@cityssm/expressjs-server-js/dateTimeFns.js";
export const getWorkOrderMilestones = (workOrderId, connectedDatabase) => {
const database = connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
database.function("userFn_timeIntegerToString", timeIntegerToString);
const workOrderMilestones = database
.prepare("select m.workOrderMilestoneId," +
" m.workOrderMilestoneTypeId, t.workORderMilestoneType," +
" m.workOrderMilestoneDate, userFn_dateIntegerToString(m.workOrderMilestoneDate) as workOrderMilestoneDateString," +
" m.workOrderMilestoneTime, userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString," +
" m.workOrderMilestoneDescription," +
" m.recordCreate_userName, m.recordUpdate_userName" +
" from WorkOrderMilestones m" +
" left join WorkOrderMilestoneTypes t on m.workOrderMilestoneTypeId = t.workOrderMilestoneTypeId" +
" where m.recordDelete_timeMillis is null" +
" and m.workOrderId = ?" +
" order by workOrderMilestoneDate desc, workOrderMilestoneTime desc, workOrderMilestoneId desc")
.all(workOrderId);
if (!connectedDatabase) {
database.close();
}
return workOrderMilestones;
};
export default getWorkOrderMilestones;

View File

@ -0,0 +1,48 @@
import sqlite from "better-sqlite3";
import { lotOccupancyDB as databasePath } from "../../data/databasePaths.js";
import {
dateIntegerToString,
timeIntegerToString
} from "@cityssm/expressjs-server-js/dateTimeFns.js";
import type * as recordTypes from "../../types/recordTypes";
export const getWorkOrderMilestones = (
workOrderId: number | string,
connectedDatabase?: sqlite.Database
): recordTypes.WorkOrderMilestone[] => {
const database =
connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
database.function("userFn_timeIntegerToString", timeIntegerToString);
const workOrderMilestones = database
.prepare(
"select m.workOrderMilestoneId," +
" m.workOrderMilestoneTypeId, t.workORderMilestoneType," +
" m.workOrderMilestoneDate, userFn_dateIntegerToString(m.workOrderMilestoneDate) as workOrderMilestoneDateString," +
" m.workOrderMilestoneTime, userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString," +
" m.workOrderMilestoneDescription," +
" m.recordCreate_userName, m.recordUpdate_userName" +
" from WorkOrderMilestones m" +
" left join WorkOrderMilestoneTypes t on m.workOrderMilestoneTypeId = t.workOrderMilestoneTypeId" +
" where m.recordDelete_timeMillis is null" +
" and m.workOrderId = ?" +
" order by workOrderMilestoneDate desc, workOrderMilestoneTime desc, workOrderMilestoneId desc"
)
.all(workOrderId);
if (!connectedDatabase) {
database.close();
}
return workOrderMilestones;
};
export default getWorkOrderMilestones;