deepsource-autofix-76c6eb20
Dan Gowans 2022-10-31 14:45:29 -04:00
parent ea8cd354f0
commit 63e407a21f
3 changed files with 61 additions and 33 deletions

View File

@ -77,7 +77,7 @@ const _getWorkOrder = (
if (options.includeComments) { if (options.includeComments) {
workOrder.workOrderComments = getWorkOrderComments( workOrder.workOrderComments = getWorkOrderComments(
workOrder.workOrderId, workOrder.workOrderId as number,
database database
); );
} }

View File

@ -5,13 +5,7 @@ import * as configFunctions from "../functions.config.js";
import { getLots } from "./getLots.js"; import { getLots } from "./getLots.js";
import { getLotOccupancies } from "./getLotOccupancies.js"; import { getLotOccupancies } from "./getLotOccupancies.js";
const commaSeparatedNumbersRegex = /^\d+(,\d+)*$/; const commaSeparatedNumbersRegex = /^\d+(,\d+)*$/;
export const getWorkOrderMilestones = (filters, options, connectedDatabase) => { const buildWhereClause = (filters) => {
const database = connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
database.function("userFn_timeIntegerToString", timeIntegerToString);
let sqlWhereClause = " where m.recordDelete_timeMillis is null and w.recordDelete_timeMillis is null"; let sqlWhereClause = " where m.recordDelete_timeMillis is null and w.recordDelete_timeMillis is null";
const sqlParameters = []; const sqlParameters = [];
if (filters.workOrderId) { if (filters.workOrderId) {
@ -28,17 +22,19 @@ export const getWorkOrderMilestones = (filters, options, connectedDatabase) => {
configFunctions.getProperty("settings.workOrders.workOrderMilestoneDateRecentAfterDays")); configFunctions.getProperty("settings.workOrders.workOrderMilestoneDateRecentAfterDays"));
const recentAfterDateNumber = dateToInteger(date); const recentAfterDateNumber = dateToInteger(date);
switch (filters.workOrderMilestoneDateFilter) { switch (filters.workOrderMilestoneDateFilter) {
case "upcomingMissed": case "upcomingMissed": {
sqlWhereClause += sqlWhereClause +=
" and (m.workOrderMilestoneCompletionDate is null or m.workOrderMilestoneDate >= ?)"; " and (m.workOrderMilestoneCompletionDate is null or m.workOrderMilestoneDate >= ?)";
sqlParameters.push(currentDateNumber); sqlParameters.push(currentDateNumber);
break; break;
case "recent": }
case "recent": {
sqlWhereClause += sqlWhereClause +=
" and m.workOrderMilestoneDate >= ? and m.workOrderMilestoneDate <= ?"; " and m.workOrderMilestoneDate >= ? and m.workOrderMilestoneDate <= ?";
sqlParameters.push(recentBeforeDateNumber, recentAfterDateNumber); sqlParameters.push(recentBeforeDateNumber, recentAfterDateNumber);
break; break;
} }
}
if (filters.workOrderMilestoneDateString) { if (filters.workOrderMilestoneDateString) {
sqlWhereClause += " and m.workOrderMilestoneDate = ?"; sqlWhereClause += " and m.workOrderMilestoneDate = ?";
sqlParameters.push(dateStringToInteger(filters.workOrderMilestoneDateString)); sqlParameters.push(dateStringToInteger(filters.workOrderMilestoneDateString));
@ -51,19 +47,35 @@ export const getWorkOrderMilestones = (filters, options, connectedDatabase) => {
sqlWhereClause += sqlWhereClause +=
" and m.workOrderMilestoneTypeId in (" + filters.workOrderMilestoneTypeIds + ")"; " and m.workOrderMilestoneTypeId in (" + filters.workOrderMilestoneTypeIds + ")";
} }
return {
sqlWhereClause,
sqlParameters
};
};
export const getWorkOrderMilestones = (filters, options, connectedDatabase) => {
const database = connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
database.function("userFn_timeIntegerToString", timeIntegerToString);
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
let orderByClause = ""; let orderByClause = "";
switch (options.orderBy) { switch (options.orderBy) {
case "completion": case "completion": {
orderByClause = orderByClause =
" order by" + " order by" +
" m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime," + " m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime," +
" m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end," + " m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end," +
" t.orderNumber, m.workOrderMilestoneId"; " t.orderNumber, m.workOrderMilestoneId";
break; break;
case "date": }
case "date": {
orderByClause = orderByClause =
" order by m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end," + " order by m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end," +
" t.orderNumber, m.workOrderId, m.workOrderMilestoneId"; " t.orderNumber, m.workOrderId, m.workOrderMilestoneId";
break;
}
} }
const sql = "select m.workOrderMilestoneId," + const sql = "select m.workOrderMilestoneId," +
" m.workOrderMilestoneTypeId, t.workOrderMilestoneType," + " m.workOrderMilestoneTypeId, t.workOrderMilestoneType," +

View File

@ -31,25 +31,12 @@ interface WorkOrderMilestoneOptions {
const commaSeparatedNumbersRegex = /^\d+(,\d+)*$/; const commaSeparatedNumbersRegex = /^\d+(,\d+)*$/;
export const getWorkOrderMilestones = ( const buildWhereClause = (
filters: WorkOrderMilestoneFilters, filters: WorkOrderMilestoneFilters
options: WorkOrderMilestoneOptions, ): { sqlWhereClause: string; sqlParameters: unknown[] } => {
connectedDatabase?: sqlite.Database
): recordTypes.WorkOrderMilestone[] => {
const database =
connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
database.function("userFn_timeIntegerToString", timeIntegerToString);
// Filters
let sqlWhereClause = let sqlWhereClause =
" where m.recordDelete_timeMillis is null and w.recordDelete_timeMillis is null"; " where m.recordDelete_timeMillis is null and w.recordDelete_timeMillis is null";
const sqlParameters = []; const sqlParameters: unknown[] = [];
if (filters.workOrderId) { if (filters.workOrderId) {
sqlWhereClause += " and m.workOrderId = ?"; sqlWhereClause += " and m.workOrderId = ?";
@ -79,18 +66,20 @@ export const getWorkOrderMilestones = (
const recentAfterDateNumber = dateToInteger(date); const recentAfterDateNumber = dateToInteger(date);
switch (filters.workOrderMilestoneDateFilter) { switch (filters.workOrderMilestoneDateFilter) {
case "upcomingMissed": case "upcomingMissed": {
sqlWhereClause += sqlWhereClause +=
" and (m.workOrderMilestoneCompletionDate is null or m.workOrderMilestoneDate >= ?)"; " and (m.workOrderMilestoneCompletionDate is null or m.workOrderMilestoneDate >= ?)";
sqlParameters.push(currentDateNumber); sqlParameters.push(currentDateNumber);
break; break;
}
case "recent": case "recent": {
sqlWhereClause += sqlWhereClause +=
" and m.workOrderMilestoneDate >= ? and m.workOrderMilestoneDate <= ?"; " and m.workOrderMilestoneDate >= ? and m.workOrderMilestoneDate <= ?";
sqlParameters.push(recentBeforeDateNumber, recentAfterDateNumber); sqlParameters.push(recentBeforeDateNumber, recentAfterDateNumber);
break; break;
} }
}
if (filters.workOrderMilestoneDateString) { if (filters.workOrderMilestoneDateString) {
sqlWhereClause += " and m.workOrderMilestoneDate = ?"; sqlWhereClause += " and m.workOrderMilestoneDate = ?";
@ -109,23 +98,50 @@ export const getWorkOrderMilestones = (
" and m.workOrderMilestoneTypeId in (" + filters.workOrderMilestoneTypeIds + ")"; " and m.workOrderMilestoneTypeId in (" + filters.workOrderMilestoneTypeIds + ")";
} }
return {
sqlWhereClause,
sqlParameters
};
};
export const getWorkOrderMilestones = (
filters: WorkOrderMilestoneFilters,
options: WorkOrderMilestoneOptions,
connectedDatabase?: sqlite.Database
): recordTypes.WorkOrderMilestone[] => {
const database =
connectedDatabase ||
sqlite(databasePath, {
readonly: true
});
database.function("userFn_dateIntegerToString", dateIntegerToString);
database.function("userFn_timeIntegerToString", timeIntegerToString);
// Filters
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
// Order By // Order By
let orderByClause = ""; let orderByClause = "";
switch (options.orderBy) { switch (options.orderBy) {
case "completion": case "completion": {
orderByClause = orderByClause =
" order by" + " order by" +
" m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime," + " m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime," +
" m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end," + " m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end," +
" t.orderNumber, m.workOrderMilestoneId"; " t.orderNumber, m.workOrderMilestoneId";
break; break;
}
case "date": case "date": {
orderByClause = orderByClause =
" order by m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end," + " order by m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end," +
" t.orderNumber, m.workOrderId, m.workOrderMilestoneId"; " t.orderNumber, m.workOrderId, m.workOrderMilestoneId";
break;
}
} }
// Query // Query