deepsource-autofix-76c6eb20
Dan Gowans 2023-01-20 13:28:24 -05:00
parent dccb4a611c
commit 749f381ebd
27 changed files with 114 additions and 97 deletions

View File

@ -3,7 +3,7 @@ import { getNextLotId } from '../../helpers/functions.lots.js';
export async function handler(request, response) { export async function handler(request, response) {
const lotId = Number.parseInt(request.params.lotId, 10); const lotId = Number.parseInt(request.params.lotId, 10);
const nextLotId = await getNextLotId(lotId); const nextLotId = await getNextLotId(lotId);
if (!nextLotId) { if (nextLotId === undefined) {
response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') +
'/lots/?error=noNextLotIdFound'); '/lots/?error=noNextLotIdFound');
return; return;

View File

@ -12,7 +12,7 @@ export async function handler(
const nextLotId = await getNextLotId(lotId) const nextLotId = await getNextLotId(lotId)
if (!nextLotId) { if (nextLotId === undefined) {
response.redirect( response.redirect(
configFunctions.getProperty('reverseProxy.urlPrefix') + configFunctions.getProperty('reverseProxy.urlPrefix') +
'/lots/?error=noNextLotIdFound' '/lots/?error=noNextLotIdFound'

View File

@ -3,7 +3,7 @@ import { getPreviousLotId } from '../../helpers/functions.lots.js';
export async function handler(request, response) { export async function handler(request, response) {
const lotId = Number.parseInt(request.params.lotId, 10); const lotId = Number.parseInt(request.params.lotId, 10);
const previousLotId = await getPreviousLotId(lotId); const previousLotId = await getPreviousLotId(lotId);
if (!previousLotId) { if (previousLotId === undefined) {
response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') +
'/lots/?error=noPreviousLotIdFound'); '/lots/?error=noPreviousLotIdFound');
return; return;

View File

@ -12,7 +12,7 @@ export async function handler(
const previousLotId = await getPreviousLotId(lotId) const previousLotId = await getPreviousLotId(lotId)
if (!previousLotId) { if (previousLotId === undefined) {
response.redirect( response.redirect(
configFunctions.getProperty('reverseProxy.urlPrefix') + configFunctions.getProperty('reverseProxy.urlPrefix') +
'/lots/?error=noPreviousLotIdFound' '/lots/?error=noPreviousLotIdFound'

View File

@ -1,8 +1,12 @@
import { clearNextPreviousLotIdCache } from '../../helpers/functions.lots.js';
import { deleteRecord } from '../../helpers/lotOccupancyDB/deleteRecord.js'; import { deleteRecord } from '../../helpers/lotOccupancyDB/deleteRecord.js';
export async function handler(request, response) { export async function handler(request, response) {
const success = await deleteRecord('Maps', request.body.mapId, request.session); const success = await deleteRecord('Maps', request.body.mapId, request.session);
response.json({ response.json({
success success
}); });
response.on('finish', () => {
clearNextPreviousLotIdCache();
});
} }
export default handler; export default handler;

View File

@ -1,4 +1,5 @@
import type { Request, Response } from 'express' import type { Request, Response } from 'express'
import { clearNextPreviousLotIdCache } from '../../helpers/functions.lots.js'
import { deleteRecord } from '../../helpers/lotOccupancyDB/deleteRecord.js' import { deleteRecord } from '../../helpers/lotOccupancyDB/deleteRecord.js'
@ -6,11 +7,19 @@ export async function handler(
request: Request, request: Request,
response: Response response: Response
): Promise<void> { ): Promise<void> {
const success = await deleteRecord('Maps', request.body.mapId, request.session) const success = await deleteRecord(
'Maps',
request.body.mapId,
request.session
)
response.json({ response.json({
success success
}) })
response.on('finish', () => {
clearNextPreviousLotIdCache()
})
} }
export default handler export default handler

View File

@ -7,7 +7,7 @@ export async function handler(request, response) {
includeComments: true, includeComments: true,
includeMilestones: true includeMilestones: true
}); });
if (!workOrder) { if (workOrder === undefined) {
response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') +
'/workOrders/?error=workOrderIdNotFound'); '/workOrders/?error=workOrderIdNotFound');
return; return;

View File

@ -20,7 +20,7 @@ export async function handler(
includeMilestones: true includeMilestones: true
}) })
if (!workOrder) { if (workOrder === undefined) {
response.redirect( response.redirect(
configFunctions.getProperty('reverseProxy.urlPrefix') + configFunctions.getProperty('reverseProxy.urlPrefix') +
'/workOrders/?error=workOrderIdNotFound' '/workOrders/?error=workOrderIdNotFound'

View File

@ -6,7 +6,7 @@ export async function handler(request, response) {
includeComments: true, includeComments: true,
includeMilestones: true includeMilestones: true
}); });
if (!workOrder) { if (workOrder === undefined) {
response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') +
'/workOrders/?error=workOrderIdNotFound'); '/workOrders/?error=workOrderIdNotFound');
return; return;

View File

@ -14,7 +14,7 @@ export async function handler(
includeMilestones: true includeMilestones: true
}) })
if (!workOrder) { if (workOrder === undefined) {
response.redirect( response.redirect(
configFunctions.getProperty('reverseProxy.urlPrefix') + configFunctions.getProperty('reverseProxy.urlPrefix') +
'/workOrders/?error=workOrderIdNotFound' '/workOrders/?error=workOrderIdNotFound'

View File

@ -8,7 +8,7 @@ async function authenticateViaActiveDirectory(userName, password) {
const ad = new ActiveDirectory(activeDirectoryConfig); const ad = new ActiveDirectory(activeDirectoryConfig);
ad.authenticate(userDomain + '\\' + userName, password, (error, auth) => { ad.authenticate(userDomain + '\\' + userName, password, (error, auth) => {
let authenticated = false; let authenticated = false;
if (!error) { if ((error ?? '') === '') {
authenticated = auth; authenticated = auth;
} }
resolve(authenticated); resolve(authenticated);

View File

@ -17,7 +17,7 @@ async function authenticateViaActiveDirectory(
ad.authenticate(userDomain + '\\' + userName, password, (error, auth) => { ad.authenticate(userDomain + '\\' + userName, password, (error, auth) => {
let authenticated = false let authenticated = false
if (!error) { if ((error ?? '') === '') {
authenticated = auth authenticated = auth
} }

View File

@ -7,7 +7,13 @@ export async function addLotOccupancyFee(lotOccupancyFeeForm, requestSession) {
const rightNowMillis = Date.now(); const rightNowMillis = Date.now();
let feeAmount; let feeAmount;
let taxAmount; let taxAmount;
if (lotOccupancyFeeForm.feeAmount) { if ((lotOccupancyFeeForm.feeAmount ?? '') === '') {
const lotOccupancy = (await getLotOccupancy(lotOccupancyFeeForm.lotOccupancyId));
const fee = await getFee(lotOccupancyFeeForm.feeId);
feeAmount = calculateFeeAmount(fee, lotOccupancy);
taxAmount = calculateTaxAmount(fee, feeAmount);
}
else {
feeAmount = feeAmount =
typeof lotOccupancyFeeForm.feeAmount === 'string' typeof lotOccupancyFeeForm.feeAmount === 'string'
? Number.parseFloat(lotOccupancyFeeForm.feeAmount) ? Number.parseFloat(lotOccupancyFeeForm.feeAmount)
@ -17,12 +23,6 @@ export async function addLotOccupancyFee(lotOccupancyFeeForm, requestSession) {
? Number.parseFloat(lotOccupancyFeeForm.taxAmount) ? Number.parseFloat(lotOccupancyFeeForm.taxAmount)
: 0; : 0;
} }
else {
const lotOccupancy = (await getLotOccupancy(lotOccupancyFeeForm.lotOccupancyId));
const fee = await getFee(lotOccupancyFeeForm.feeId);
feeAmount = calculateFeeAmount(fee, lotOccupancy);
taxAmount = calculateTaxAmount(fee, feeAmount);
}
const record = database const record = database
.prepare(`select feeAmount, taxAmount, recordDelete_timeMillis .prepare(`select feeAmount, taxAmount, recordDelete_timeMillis
from LotOccupancyFees from LotOccupancyFees

View File

@ -28,7 +28,15 @@ export async function addLotOccupancyFee(
let feeAmount: number let feeAmount: number
let taxAmount: number let taxAmount: number
if (lotOccupancyFeeForm.feeAmount) { if ((lotOccupancyFeeForm.feeAmount ?? '') === '') {
const lotOccupancy = (await getLotOccupancy(
lotOccupancyFeeForm.lotOccupancyId
))!
const fee = await getFee(lotOccupancyFeeForm.feeId)
feeAmount = calculateFeeAmount(fee, lotOccupancy)
taxAmount = calculateTaxAmount(fee, feeAmount)
} else {
feeAmount = feeAmount =
typeof lotOccupancyFeeForm.feeAmount === 'string' typeof lotOccupancyFeeForm.feeAmount === 'string'
? Number.parseFloat(lotOccupancyFeeForm.feeAmount) ? Number.parseFloat(lotOccupancyFeeForm.feeAmount)
@ -37,14 +45,6 @@ export async function addLotOccupancyFee(
typeof lotOccupancyFeeForm.taxAmount === 'string' typeof lotOccupancyFeeForm.taxAmount === 'string'
? Number.parseFloat(lotOccupancyFeeForm.taxAmount) ? Number.parseFloat(lotOccupancyFeeForm.taxAmount)
: 0 : 0
} else {
const lotOccupancy = (await getLotOccupancy(
lotOccupancyFeeForm.lotOccupancyId
))!
const fee = await getFee(lotOccupancyFeeForm.feeId)
feeAmount = calculateFeeAmount(fee, lotOccupancy)
taxAmount = calculateTaxAmount(fee, feeAmount)
} }
// Check if record already exists // Check if record already exists

View File

@ -28,7 +28,7 @@ export async function getFeeCategories(filters, options) {
sqlWhereClause + sqlWhereClause +
' order by orderNumber, feeCategory') ' order by orderNumber, feeCategory')
.all(sqlParameters); .all(sqlParameters);
if (options.includeFees) { if (options.includeFees ?? false) {
let expectedOrderNumber = 0; let expectedOrderNumber = 0;
for (const feeCategory of feeCategories) { for (const feeCategory of feeCategories) {
if (updateOrderNumbers && if (updateOrderNumbers &&

View File

@ -56,7 +56,7 @@ export async function getFeeCategories(
) )
.all(sqlParameters) .all(sqlParameters)
if (options.includeFees) { if (options.includeFees ?? false) {
let expectedOrderNumber = 0 let expectedOrderNumber = 0
for (const feeCategory of feeCategories) { for (const feeCategory of feeCategories) {

View File

@ -12,9 +12,9 @@ export async function getNextLotId(lotId) {
limit 1`) limit 1`)
.get(lotId); .get(lotId);
database.release(); database.release();
if (result) { if (result === undefined) {
return result.lotId;
}
return undefined; return undefined;
}
return result.lotId;
} }
export default getNextLotId; export default getNextLotId;

View File

@ -27,11 +27,11 @@ export async function getNextLotId(
database.release() database.release()
if (result) { if (result === undefined) {
return result.lotId return undefined
} }
return undefined return result.lotId
} }
export default getNextLotId export default getNextLotId

View File

@ -11,9 +11,9 @@ export async function getPreviousLotId(lotId) {
limit 1`) limit 1`)
.get(lotId); .get(lotId);
database.release(); database.release();
if (result) { if (result === undefined) {
return result.lotId;
}
return undefined; return undefined;
}
return result.lotId;
} }
export default getPreviousLotId; export default getPreviousLotId;

View File

@ -26,11 +26,11 @@ export async function getPreviousLotId(
database.release() database.release()
if (result) { if (result === undefined) {
return result.lotId return undefined
} }
return undefined return result.lotId
} }
export default getPreviousLotId export default getPreviousLotId

View File

@ -5,6 +5,6 @@ interface WorkOrderOptions {
includeComments: boolean; includeComments: boolean;
includeMilestones: boolean; includeMilestones: boolean;
} }
export declare function getWorkOrderByWorkOrderNumber(workOrderNumber: string): Promise<recordTypes.WorkOrder>; export declare function getWorkOrderByWorkOrderNumber(workOrderNumber: string): Promise<recordTypes.WorkOrder | undefined>;
export declare function getWorkOrder(workOrderId: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection): Promise<recordTypes.WorkOrder>; export declare function getWorkOrder(workOrderId: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection): Promise<recordTypes.WorkOrder | undefined>;
export default getWorkOrder; export default getWorkOrder;

View File

@ -19,7 +19,7 @@ async function _getWorkOrder(sql, workOrderIdOrWorkOrderNumber, options, connect
const workOrder = database const workOrder = database
.prepare(sql) .prepare(sql)
.get(workOrderIdOrWorkOrderNumber); .get(workOrderIdOrWorkOrderNumber);
if (workOrder) { if (workOrder !== undefined) {
if (options.includeLotsAndLotOccupancies) { if (options.includeLotsAndLotOccupancies) {
const workOrderLotsResults = await getLots({ const workOrderLotsResults = await getLots({
workOrderId: workOrder.workOrderId workOrderId: workOrder.workOrderId

View File

@ -34,7 +34,7 @@ async function _getWorkOrder(
workOrderIdOrWorkOrderNumber: number | string, workOrderIdOrWorkOrderNumber: number | string,
options: WorkOrderOptions, options: WorkOrderOptions,
connectedDatabase?: PoolConnection connectedDatabase?: PoolConnection
): Promise<recordTypes.WorkOrder> { ): Promise<recordTypes.WorkOrder | undefined> {
const database = connectedDatabase ?? (await acquireConnection()) const database = connectedDatabase ?? (await acquireConnection())
database.function('userFn_dateIntegerToString', dateIntegerToString) database.function('userFn_dateIntegerToString', dateIntegerToString)
@ -43,7 +43,7 @@ async function _getWorkOrder(
.prepare(sql) .prepare(sql)
.get(workOrderIdOrWorkOrderNumber) .get(workOrderIdOrWorkOrderNumber)
if (workOrder) { if (workOrder !== undefined) {
if (options.includeLotsAndLotOccupancies) { if (options.includeLotsAndLotOccupancies) {
const workOrderLotsResults = await getLots( const workOrderLotsResults = await getLots(
{ {
@ -104,7 +104,7 @@ async function _getWorkOrder(
export async function getWorkOrderByWorkOrderNumber( export async function getWorkOrderByWorkOrderNumber(
workOrderNumber: string workOrderNumber: string
): Promise<recordTypes.WorkOrder> { ): Promise<recordTypes.WorkOrder | undefined> {
return await _getWorkOrder( return await _getWorkOrder(
baseSQL + ' and w.workOrderNumber = ?', baseSQL + ' and w.workOrderNumber = ?',
workOrderNumber, workOrderNumber,
@ -120,7 +120,7 @@ export async function getWorkOrder(
workOrderId: number | string, workOrderId: number | string,
options: WorkOrderOptions, options: WorkOrderOptions,
connectedDatabase?: PoolConnection connectedDatabase?: PoolConnection
): Promise<recordTypes.WorkOrder> { ): Promise<recordTypes.WorkOrder | undefined> {
return await _getWorkOrder( return await _getWorkOrder(
baseSQL + ' and w.workOrderId = ?', baseSQL + ' and w.workOrderId = ?',
workOrderId, workOrderId,

View File

@ -7,7 +7,7 @@ const commaSeparatedNumbersRegex = /^\d+(,\d+)*$/;
function buildWhereClause(filters) { function buildWhereClause(filters) {
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 ?? '') !== '') {
sqlWhereClause += ' and m.workOrderId = ?'; sqlWhereClause += ' and m.workOrderId = ?';
sqlParameters.push(filters.workOrderId); sqlParameters.push(filters.workOrderId);
} }
@ -34,16 +34,16 @@ function buildWhereClause(filters) {
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));
} }
if (filters.workOrderTypeIds && if ((filters.workOrderTypeIds ?? '') !== '' &&
commaSeparatedNumbersRegex.test(filters.workOrderTypeIds)) { commaSeparatedNumbersRegex.test(filters.workOrderTypeIds)) {
sqlWhereClause += sqlWhereClause +=
' and w.workOrderTypeId in (' + filters.workOrderTypeIds + ')'; ' and w.workOrderTypeId in (' + filters.workOrderTypeIds + ')';
} }
if (filters.workOrderMilestoneTypeIds && if ((filters.workOrderMilestoneTypeIds ?? '') !== '' &&
commaSeparatedNumbersRegex.test(filters.workOrderMilestoneTypeIds)) { commaSeparatedNumbersRegex.test(filters.workOrderMilestoneTypeIds)) {
sqlWhereClause += sqlWhereClause +=
' and m.workOrderMilestoneTypeId in (' + ' and m.workOrderMilestoneTypeId in (' +
@ -63,17 +63,17 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase
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,
' m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,' + 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,
' order by m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,' + case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
' t.orderNumber, m.workOrderId, m.workOrderMilestoneId'; t.orderNumber, m.workOrderId, m.workOrderMilestoneId`;
break; break;
} }
} }
@ -84,7 +84,7 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase
' m.workOrderMilestoneDescription,' + ' m.workOrderMilestoneDescription,' +
' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' + ' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' +
' m.workOrderMilestoneCompletionTime, userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' + ' m.workOrderMilestoneCompletionTime, userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' +
(options.includeWorkOrders (options.includeWorkOrders ?? false
? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' + ? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' +
' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' + ' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' +
' w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString,' + ' w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString,' +
@ -101,7 +101,7 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase
const workOrderMilestones = database const workOrderMilestones = database
.prepare(sql) .prepare(sql)
.all(sqlParameters); .all(sqlParameters);
if (options.includeWorkOrders) { if (options.includeWorkOrders ?? false) {
for (const workOrderMilestone of workOrderMilestones) { for (const workOrderMilestone of workOrderMilestones) {
const workOrderLotsResults = await getLots({ const workOrderLotsResults = await getLots({
workOrderId: workOrderMilestone.workOrderId workOrderId: workOrderMilestone.workOrderId

View File

@ -38,7 +38,7 @@ function buildWhereClause(filters: WorkOrderMilestoneFilters): {
' 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: unknown[] = [] const sqlParameters: unknown[] = []
if (filters.workOrderId) { if ((filters.workOrderId ?? '') !== '') {
sqlWhereClause += ' and m.workOrderId = ?' sqlWhereClause += ' and m.workOrderId = ?'
sqlParameters.push(filters.workOrderId) sqlParameters.push(filters.workOrderId)
} }
@ -83,28 +83,28 @@ function buildWhereClause(filters: WorkOrderMilestoneFilters): {
} }
} }
if (filters.workOrderMilestoneDateString) { if ((filters.workOrderMilestoneDateString ?? '') !== '') {
sqlWhereClause += ' and m.workOrderMilestoneDate = ?' sqlWhereClause += ' and m.workOrderMilestoneDate = ?'
sqlParameters.push( sqlParameters.push(
dateStringToInteger(filters.workOrderMilestoneDateString) dateStringToInteger(filters.workOrderMilestoneDateString!)
) )
} }
if ( if (
filters.workOrderTypeIds && (filters.workOrderTypeIds ?? '') !== '' &&
commaSeparatedNumbersRegex.test(filters.workOrderTypeIds) commaSeparatedNumbersRegex.test(filters.workOrderTypeIds!)
) { ) {
sqlWhereClause += sqlWhereClause +=
' and w.workOrderTypeId in (' + filters.workOrderTypeIds + ')' ' and w.workOrderTypeId in (' + filters.workOrderTypeIds! + ')'
} }
if ( if (
filters.workOrderMilestoneTypeIds && (filters.workOrderMilestoneTypeIds ?? '') !== '' &&
commaSeparatedNumbersRegex.test(filters.workOrderMilestoneTypeIds) commaSeparatedNumbersRegex.test(filters.workOrderMilestoneTypeIds!)
) { ) {
sqlWhereClause += sqlWhereClause +=
' and m.workOrderMilestoneTypeId in (' + ' and m.workOrderMilestoneTypeId in (' +
filters.workOrderMilestoneTypeIds + filters.workOrderMilestoneTypeIds! +
')' ')'
} }
@ -132,18 +132,18 @@ export async function getWorkOrderMilestones(
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,
' m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,' + 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,
' order by m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,' + case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,
' t.orderNumber, m.workOrderId, m.workOrderMilestoneId' t.orderNumber, m.workOrderId, m.workOrderMilestoneId`
break break
} }
} }
@ -157,7 +157,7 @@ export async function getWorkOrderMilestones(
' m.workOrderMilestoneDescription,' + ' m.workOrderMilestoneDescription,' +
' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' + ' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' +
' m.workOrderMilestoneCompletionTime, userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' + ' m.workOrderMilestoneCompletionTime, userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' +
(options.includeWorkOrders (options.includeWorkOrders ?? false
? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' + ? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' +
' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' + ' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' +
' w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString,' + ' w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString,' +
@ -176,7 +176,7 @@ export async function getWorkOrderMilestones(
.prepare(sql) .prepare(sql)
.all(sqlParameters) .all(sqlParameters)
if (options.includeWorkOrders) { if (options.includeWorkOrders ?? false) {
for (const workOrderMilestone of workOrderMilestones) { for (const workOrderMilestone of workOrderMilestones) {
const workOrderLotsResults = await getLots( const workOrderLotsResults = await getLots(
{ {

View File

@ -82,18 +82,20 @@ export async function getWorkOrders(filters, options, connectedDatabase) {
' group by workOrderId) m on w.workOrderId = m.workOrderId') + ' group by workOrderId) m on w.workOrderId = m.workOrderId') +
sqlWhereClause + sqlWhereClause +
' order by w.workOrderOpenDate desc, w.workOrderNumber desc' + ' order by w.workOrderOpenDate desc, w.workOrderNumber desc' +
(options ? ` limit ${options.limit} offset ${options.offset}` : '')) (options === undefined
? ''
: ` limit ${options.limit} offset ${options.offset}`))
.all(sqlParameters); .all(sqlParameters);
} }
if (options && if (options !== undefined &&
(options.includeComments || ((options.includeComments ?? false) ||
options.includeLotsAndLotOccupancies || (options.includeLotsAndLotOccupancies ?? false) ||
options.includeMilestones)) { (options.includeMilestones ?? false))) {
for (const workOrder of workOrders) { for (const workOrder of workOrders) {
if (options.includeComments) { if (options.includeComments ?? false) {
workOrder.workOrderComments = await getWorkOrderComments(workOrder.workOrderId, database); workOrder.workOrderComments = await getWorkOrderComments(workOrder.workOrderId, database);
} }
if (options.includeLotsAndLotOccupancies) { if (options.includeLotsAndLotOccupancies ?? false) {
const workOrderLotsResults = await getLots({ const workOrderLotsResults = await getLots({
workOrderId: workOrder.workOrderId workOrderId: workOrder.workOrderId
}, { }, {
@ -110,7 +112,7 @@ export async function getWorkOrders(filters, options, connectedDatabase) {
}, database); }, database);
workOrder.workOrderLotOccupancies = lotOccupancies.lotOccupancies; workOrder.workOrderLotOccupancies = lotOccupancies.lotOccupancies;
} }
if (options.includeMilestones) { if (options.includeMilestones ?? false) {
workOrder.workOrderMilestones = await getWorkOrderMilestones({ workOrder.workOrderMilestones = await getWorkOrderMilestones({
workOrderId: workOrder.workOrderId workOrderId: workOrder.workOrderId
}, { }, {

View File

@ -138,26 +138,28 @@ export async function getWorkOrders(
' group by workOrderId) m on w.workOrderId = m.workOrderId') + ' group by workOrderId) m on w.workOrderId = m.workOrderId') +
sqlWhereClause + sqlWhereClause +
' order by w.workOrderOpenDate desc, w.workOrderNumber desc' + ' order by w.workOrderOpenDate desc, w.workOrderNumber desc' +
(options ? ` limit ${options.limit} offset ${options.offset}` : '') (options === undefined
? ''
: ` limit ${options.limit} offset ${options.offset}`)
) )
.all(sqlParameters) .all(sqlParameters)
} }
if ( if (
options && options !== undefined &&
(options.includeComments || ((options.includeComments ?? false) ||
options.includeLotsAndLotOccupancies || (options.includeLotsAndLotOccupancies ?? false) ||
options.includeMilestones) (options.includeMilestones ?? false))
) { ) {
for (const workOrder of workOrders) { for (const workOrder of workOrders) {
if (options.includeComments) { if (options.includeComments ?? false) {
workOrder.workOrderComments = await getWorkOrderComments( workOrder.workOrderComments = await getWorkOrderComments(
workOrder.workOrderId as number, workOrder.workOrderId as number,
database database
) )
} }
if (options.includeLotsAndLotOccupancies) { if (options.includeLotsAndLotOccupancies ?? false) {
const workOrderLotsResults = await getLots( const workOrderLotsResults = await getLots(
{ {
workOrderId: workOrder.workOrderId workOrderId: workOrder.workOrderId
@ -186,7 +188,7 @@ export async function getWorkOrders(
workOrder.workOrderLotOccupancies = lotOccupancies.lotOccupancies workOrder.workOrderLotOccupancies = lotOccupancies.lotOccupancies
} }
if (options.includeMilestones) { if (options.includeMilestones ?? false) {
workOrder.workOrderMilestones = await getWorkOrderMilestones( workOrder.workOrderMilestones = await getWorkOrderMilestones(
{ {
workOrderId: workOrder.workOrderId workOrderId: workOrder.workOrderId