add comments and milestones to getWorkOrder
parent
d58ea874e5
commit
c6f6bf01df
|
|
@ -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;
|
||||
|
|
|
|||
|
|
@ -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();
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
|
|
@ -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;
|
||||
Loading…
Reference in New Issue