diff --git a/handlers/lots-get/next.js b/handlers/lots-get/next.js index fdbc8364..08cc811a 100644 --- a/handlers/lots-get/next.js +++ b/handlers/lots-get/next.js @@ -3,7 +3,7 @@ import { getNextLotId } from '../../helpers/functions.lots.js'; export async function handler(request, response) { const lotId = Number.parseInt(request.params.lotId, 10); const nextLotId = await getNextLotId(lotId); - if (!nextLotId) { + if (nextLotId === undefined) { response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + '/lots/?error=noNextLotIdFound'); return; diff --git a/handlers/lots-get/next.ts b/handlers/lots-get/next.ts index 163c1e45..54f444a0 100644 --- a/handlers/lots-get/next.ts +++ b/handlers/lots-get/next.ts @@ -12,7 +12,7 @@ export async function handler( const nextLotId = await getNextLotId(lotId) - if (!nextLotId) { + if (nextLotId === undefined) { response.redirect( configFunctions.getProperty('reverseProxy.urlPrefix') + '/lots/?error=noNextLotIdFound' diff --git a/handlers/lots-get/previous.js b/handlers/lots-get/previous.js index 694a88e1..6232d0fc 100644 --- a/handlers/lots-get/previous.js +++ b/handlers/lots-get/previous.js @@ -3,7 +3,7 @@ import { getPreviousLotId } from '../../helpers/functions.lots.js'; export async function handler(request, response) { const lotId = Number.parseInt(request.params.lotId, 10); const previousLotId = await getPreviousLotId(lotId); - if (!previousLotId) { + if (previousLotId === undefined) { response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + '/lots/?error=noPreviousLotIdFound'); return; diff --git a/handlers/lots-get/previous.ts b/handlers/lots-get/previous.ts index 0cb1cbdf..439a27d2 100644 --- a/handlers/lots-get/previous.ts +++ b/handlers/lots-get/previous.ts @@ -12,7 +12,7 @@ export async function handler( const previousLotId = await getPreviousLotId(lotId) - if (!previousLotId) { + if (previousLotId === undefined) { response.redirect( configFunctions.getProperty('reverseProxy.urlPrefix') + '/lots/?error=noPreviousLotIdFound' diff --git a/handlers/maps-post/doDeleteMap.js b/handlers/maps-post/doDeleteMap.js index 6d9e28c1..4edeb594 100644 --- a/handlers/maps-post/doDeleteMap.js +++ b/handlers/maps-post/doDeleteMap.js @@ -1,8 +1,12 @@ +import { clearNextPreviousLotIdCache } from '../../helpers/functions.lots.js'; import { deleteRecord } from '../../helpers/lotOccupancyDB/deleteRecord.js'; export async function handler(request, response) { const success = await deleteRecord('Maps', request.body.mapId, request.session); response.json({ success }); + response.on('finish', () => { + clearNextPreviousLotIdCache(); + }); } export default handler; diff --git a/handlers/maps-post/doDeleteMap.ts b/handlers/maps-post/doDeleteMap.ts index f4401551..116edc2c 100644 --- a/handlers/maps-post/doDeleteMap.ts +++ b/handlers/maps-post/doDeleteMap.ts @@ -1,4 +1,5 @@ import type { Request, Response } from 'express' +import { clearNextPreviousLotIdCache } from '../../helpers/functions.lots.js' import { deleteRecord } from '../../helpers/lotOccupancyDB/deleteRecord.js' @@ -6,11 +7,19 @@ export async function handler( request: Request, response: Response ): Promise { - const success = await deleteRecord('Maps', request.body.mapId, request.session) + const success = await deleteRecord( + 'Maps', + request.body.mapId, + request.session + ) response.json({ success }) + + response.on('finish', () => { + clearNextPreviousLotIdCache() + }) } export default handler diff --git a/handlers/workOrders-get/edit.js b/handlers/workOrders-get/edit.js index d2dcc2b0..48f90383 100644 --- a/handlers/workOrders-get/edit.js +++ b/handlers/workOrders-get/edit.js @@ -7,7 +7,7 @@ export async function handler(request, response) { includeComments: true, includeMilestones: true }); - if (!workOrder) { + if (workOrder === undefined) { response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + '/workOrders/?error=workOrderIdNotFound'); return; diff --git a/handlers/workOrders-get/edit.ts b/handlers/workOrders-get/edit.ts index e81b6907..5f4711a6 100644 --- a/handlers/workOrders-get/edit.ts +++ b/handlers/workOrders-get/edit.ts @@ -20,7 +20,7 @@ export async function handler( includeMilestones: true }) - if (!workOrder) { + if (workOrder === undefined) { response.redirect( configFunctions.getProperty('reverseProxy.urlPrefix') + '/workOrders/?error=workOrderIdNotFound' diff --git a/handlers/workOrders-get/view.js b/handlers/workOrders-get/view.js index 25743d76..97eb48fa 100644 --- a/handlers/workOrders-get/view.js +++ b/handlers/workOrders-get/view.js @@ -6,7 +6,7 @@ export async function handler(request, response) { includeComments: true, includeMilestones: true }); - if (!workOrder) { + if (workOrder === undefined) { response.redirect(configFunctions.getProperty('reverseProxy.urlPrefix') + '/workOrders/?error=workOrderIdNotFound'); return; diff --git a/handlers/workOrders-get/view.ts b/handlers/workOrders-get/view.ts index effc1f52..a81b0602 100644 --- a/handlers/workOrders-get/view.ts +++ b/handlers/workOrders-get/view.ts @@ -14,7 +14,7 @@ export async function handler( includeMilestones: true }) - if (!workOrder) { + if (workOrder === undefined) { response.redirect( configFunctions.getProperty('reverseProxy.urlPrefix') + '/workOrders/?error=workOrderIdNotFound' diff --git a/helpers/functions.authentication.js b/helpers/functions.authentication.js index 0c04746d..72b3d300 100644 --- a/helpers/functions.authentication.js +++ b/helpers/functions.authentication.js @@ -8,7 +8,7 @@ async function authenticateViaActiveDirectory(userName, password) { const ad = new ActiveDirectory(activeDirectoryConfig); ad.authenticate(userDomain + '\\' + userName, password, (error, auth) => { let authenticated = false; - if (!error) { + if ((error ?? '') === '') { authenticated = auth; } resolve(authenticated); diff --git a/helpers/functions.authentication.ts b/helpers/functions.authentication.ts index c8ee6eaf..8a1a6a45 100644 --- a/helpers/functions.authentication.ts +++ b/helpers/functions.authentication.ts @@ -17,7 +17,7 @@ async function authenticateViaActiveDirectory( ad.authenticate(userDomain + '\\' + userName, password, (error, auth) => { let authenticated = false - if (!error) { + if ((error ?? '') === '') { authenticated = auth } diff --git a/helpers/lotOccupancyDB/addLotOccupancyFee.js b/helpers/lotOccupancyDB/addLotOccupancyFee.js index f8a6261a..9c045995 100644 --- a/helpers/lotOccupancyDB/addLotOccupancyFee.js +++ b/helpers/lotOccupancyDB/addLotOccupancyFee.js @@ -7,7 +7,13 @@ export async function addLotOccupancyFee(lotOccupancyFeeForm, requestSession) { const rightNowMillis = Date.now(); let feeAmount; 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 = typeof lotOccupancyFeeForm.feeAmount === 'string' ? Number.parseFloat(lotOccupancyFeeForm.feeAmount) @@ -17,12 +23,6 @@ export async function addLotOccupancyFee(lotOccupancyFeeForm, requestSession) { ? Number.parseFloat(lotOccupancyFeeForm.taxAmount) : 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 .prepare(`select feeAmount, taxAmount, recordDelete_timeMillis from LotOccupancyFees diff --git a/helpers/lotOccupancyDB/addLotOccupancyFee.ts b/helpers/lotOccupancyDB/addLotOccupancyFee.ts index 7feef640..f15cfce9 100644 --- a/helpers/lotOccupancyDB/addLotOccupancyFee.ts +++ b/helpers/lotOccupancyDB/addLotOccupancyFee.ts @@ -28,7 +28,15 @@ export async function addLotOccupancyFee( let feeAmount: 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 = typeof lotOccupancyFeeForm.feeAmount === 'string' ? Number.parseFloat(lotOccupancyFeeForm.feeAmount) @@ -37,14 +45,6 @@ export async function addLotOccupancyFee( typeof lotOccupancyFeeForm.taxAmount === 'string' ? Number.parseFloat(lotOccupancyFeeForm.taxAmount) : 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 diff --git a/helpers/lotOccupancyDB/getFeeCategories.js b/helpers/lotOccupancyDB/getFeeCategories.js index 25f72415..651a485b 100644 --- a/helpers/lotOccupancyDB/getFeeCategories.js +++ b/helpers/lotOccupancyDB/getFeeCategories.js @@ -28,7 +28,7 @@ export async function getFeeCategories(filters, options) { sqlWhereClause + ' order by orderNumber, feeCategory') .all(sqlParameters); - if (options.includeFees) { + if (options.includeFees ?? false) { let expectedOrderNumber = 0; for (const feeCategory of feeCategories) { if (updateOrderNumbers && diff --git a/helpers/lotOccupancyDB/getFeeCategories.ts b/helpers/lotOccupancyDB/getFeeCategories.ts index 73d813d8..42bcd658 100644 --- a/helpers/lotOccupancyDB/getFeeCategories.ts +++ b/helpers/lotOccupancyDB/getFeeCategories.ts @@ -56,7 +56,7 @@ export async function getFeeCategories( ) .all(sqlParameters) - if (options.includeFees) { + if (options.includeFees ?? false) { let expectedOrderNumber = 0 for (const feeCategory of feeCategories) { diff --git a/helpers/lotOccupancyDB/getNextLotId.js b/helpers/lotOccupancyDB/getNextLotId.js index 8abfb78d..51dfa6b0 100644 --- a/helpers/lotOccupancyDB/getNextLotId.js +++ b/helpers/lotOccupancyDB/getNextLotId.js @@ -12,9 +12,9 @@ export async function getNextLotId(lotId) { limit 1`) .get(lotId); database.release(); - if (result) { - return result.lotId; + if (result === undefined) { + return undefined; } - return undefined; + return result.lotId; } export default getNextLotId; diff --git a/helpers/lotOccupancyDB/getNextLotId.ts b/helpers/lotOccupancyDB/getNextLotId.ts index a79d90a7..386b92a3 100644 --- a/helpers/lotOccupancyDB/getNextLotId.ts +++ b/helpers/lotOccupancyDB/getNextLotId.ts @@ -27,11 +27,11 @@ export async function getNextLotId( database.release() - if (result) { - return result.lotId + if (result === undefined) { + return undefined } - return undefined + return result.lotId } export default getNextLotId diff --git a/helpers/lotOccupancyDB/getPreviousLotId.js b/helpers/lotOccupancyDB/getPreviousLotId.js index 3749b278..108f37ff 100644 --- a/helpers/lotOccupancyDB/getPreviousLotId.js +++ b/helpers/lotOccupancyDB/getPreviousLotId.js @@ -11,9 +11,9 @@ export async function getPreviousLotId(lotId) { limit 1`) .get(lotId); database.release(); - if (result) { - return result.lotId; + if (result === undefined) { + return undefined; } - return undefined; + return result.lotId; } export default getPreviousLotId; diff --git a/helpers/lotOccupancyDB/getPreviousLotId.ts b/helpers/lotOccupancyDB/getPreviousLotId.ts index 7a331bec..528fecf9 100644 --- a/helpers/lotOccupancyDB/getPreviousLotId.ts +++ b/helpers/lotOccupancyDB/getPreviousLotId.ts @@ -26,11 +26,11 @@ export async function getPreviousLotId( database.release() - if (result) { - return result.lotId + if (result === undefined) { + return undefined } - return undefined + return result.lotId } export default getPreviousLotId diff --git a/helpers/lotOccupancyDB/getWorkOrder.d.ts b/helpers/lotOccupancyDB/getWorkOrder.d.ts index 1df39a3b..3a867ed5 100644 --- a/helpers/lotOccupancyDB/getWorkOrder.d.ts +++ b/helpers/lotOccupancyDB/getWorkOrder.d.ts @@ -5,6 +5,6 @@ interface WorkOrderOptions { includeComments: boolean; includeMilestones: boolean; } -export declare function getWorkOrderByWorkOrderNumber(workOrderNumber: string): Promise; -export declare function getWorkOrder(workOrderId: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection): Promise; +export declare function getWorkOrderByWorkOrderNumber(workOrderNumber: string): Promise; +export declare function getWorkOrder(workOrderId: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection): Promise; export default getWorkOrder; diff --git a/helpers/lotOccupancyDB/getWorkOrder.js b/helpers/lotOccupancyDB/getWorkOrder.js index 5085b6cd..029310bd 100644 --- a/helpers/lotOccupancyDB/getWorkOrder.js +++ b/helpers/lotOccupancyDB/getWorkOrder.js @@ -19,7 +19,7 @@ async function _getWorkOrder(sql, workOrderIdOrWorkOrderNumber, options, connect const workOrder = database .prepare(sql) .get(workOrderIdOrWorkOrderNumber); - if (workOrder) { + if (workOrder !== undefined) { if (options.includeLotsAndLotOccupancies) { const workOrderLotsResults = await getLots({ workOrderId: workOrder.workOrderId diff --git a/helpers/lotOccupancyDB/getWorkOrder.ts b/helpers/lotOccupancyDB/getWorkOrder.ts index 16126e25..ba768f2f 100644 --- a/helpers/lotOccupancyDB/getWorkOrder.ts +++ b/helpers/lotOccupancyDB/getWorkOrder.ts @@ -34,7 +34,7 @@ async function _getWorkOrder( workOrderIdOrWorkOrderNumber: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection -): Promise { +): Promise { const database = connectedDatabase ?? (await acquireConnection()) database.function('userFn_dateIntegerToString', dateIntegerToString) @@ -43,7 +43,7 @@ async function _getWorkOrder( .prepare(sql) .get(workOrderIdOrWorkOrderNumber) - if (workOrder) { + if (workOrder !== undefined) { if (options.includeLotsAndLotOccupancies) { const workOrderLotsResults = await getLots( { @@ -104,7 +104,7 @@ async function _getWorkOrder( export async function getWorkOrderByWorkOrderNumber( workOrderNumber: string -): Promise { +): Promise { return await _getWorkOrder( baseSQL + ' and w.workOrderNumber = ?', workOrderNumber, @@ -120,7 +120,7 @@ export async function getWorkOrder( workOrderId: number | string, options: WorkOrderOptions, connectedDatabase?: PoolConnection -): Promise { +): Promise { return await _getWorkOrder( baseSQL + ' and w.workOrderId = ?', workOrderId, diff --git a/helpers/lotOccupancyDB/getWorkOrderMilestones.js b/helpers/lotOccupancyDB/getWorkOrderMilestones.js index 47347fe7..d289374f 100644 --- a/helpers/lotOccupancyDB/getWorkOrderMilestones.js +++ b/helpers/lotOccupancyDB/getWorkOrderMilestones.js @@ -7,7 +7,7 @@ const commaSeparatedNumbersRegex = /^\d+(,\d+)*$/; function buildWhereClause(filters) { let sqlWhereClause = ' where m.recordDelete_timeMillis is null and w.recordDelete_timeMillis is null'; const sqlParameters = []; - if (filters.workOrderId) { + if ((filters.workOrderId ?? '') !== '') { sqlWhereClause += ' and m.workOrderId = ?'; sqlParameters.push(filters.workOrderId); } @@ -34,16 +34,16 @@ function buildWhereClause(filters) { break; } } - if (filters.workOrderMilestoneDateString) { + if ((filters.workOrderMilestoneDateString ?? '') !== '') { sqlWhereClause += ' and m.workOrderMilestoneDate = ?'; sqlParameters.push(dateStringToInteger(filters.workOrderMilestoneDateString)); } - if (filters.workOrderTypeIds && + if ((filters.workOrderTypeIds ?? '') !== '' && commaSeparatedNumbersRegex.test(filters.workOrderTypeIds)) { sqlWhereClause += ' and w.workOrderTypeId in (' + filters.workOrderTypeIds + ')'; } - if (filters.workOrderMilestoneTypeIds && + if ((filters.workOrderMilestoneTypeIds ?? '') !== '' && commaSeparatedNumbersRegex.test(filters.workOrderMilestoneTypeIds)) { sqlWhereClause += ' and m.workOrderMilestoneTypeId in (' + @@ -63,17 +63,17 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase let orderByClause = ''; switch (options.orderBy) { case 'completion': { - orderByClause = - ' order by' + - ' m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime,' + - ' m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,' + - ' t.orderNumber, m.workOrderMilestoneId'; + orderByClause = ` order by + m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime, + m.workOrderMilestoneDate, + case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end, + t.orderNumber, m.workOrderMilestoneId`; break; } case 'date': { - orderByClause = - ' order by m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,' + - ' t.orderNumber, m.workOrderId, m.workOrderMilestoneId'; + orderByClause = ` order by m.workOrderMilestoneDate, + case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end, + t.orderNumber, m.workOrderId, m.workOrderMilestoneId`; break; } } @@ -84,7 +84,7 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase ' m.workOrderMilestoneDescription,' + ' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' + ' m.workOrderMilestoneCompletionTime, userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' + - (options.includeWorkOrders + (options.includeWorkOrders ?? false ? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' + ' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' + ' w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString,' + @@ -101,7 +101,7 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase const workOrderMilestones = database .prepare(sql) .all(sqlParameters); - if (options.includeWorkOrders) { + if (options.includeWorkOrders ?? false) { for (const workOrderMilestone of workOrderMilestones) { const workOrderLotsResults = await getLots({ workOrderId: workOrderMilestone.workOrderId diff --git a/helpers/lotOccupancyDB/getWorkOrderMilestones.ts b/helpers/lotOccupancyDB/getWorkOrderMilestones.ts index f5922be5..e121ebf1 100644 --- a/helpers/lotOccupancyDB/getWorkOrderMilestones.ts +++ b/helpers/lotOccupancyDB/getWorkOrderMilestones.ts @@ -38,7 +38,7 @@ function buildWhereClause(filters: WorkOrderMilestoneFilters): { ' where m.recordDelete_timeMillis is null and w.recordDelete_timeMillis is null' const sqlParameters: unknown[] = [] - if (filters.workOrderId) { + if ((filters.workOrderId ?? '') !== '') { sqlWhereClause += ' and m.workOrderId = ?' sqlParameters.push(filters.workOrderId) } @@ -83,28 +83,28 @@ function buildWhereClause(filters: WorkOrderMilestoneFilters): { } } - if (filters.workOrderMilestoneDateString) { + if ((filters.workOrderMilestoneDateString ?? '') !== '') { sqlWhereClause += ' and m.workOrderMilestoneDate = ?' sqlParameters.push( - dateStringToInteger(filters.workOrderMilestoneDateString) + dateStringToInteger(filters.workOrderMilestoneDateString!) ) } if ( - filters.workOrderTypeIds && - commaSeparatedNumbersRegex.test(filters.workOrderTypeIds) + (filters.workOrderTypeIds ?? '') !== '' && + commaSeparatedNumbersRegex.test(filters.workOrderTypeIds!) ) { sqlWhereClause += - ' and w.workOrderTypeId in (' + filters.workOrderTypeIds + ')' + ' and w.workOrderTypeId in (' + filters.workOrderTypeIds! + ')' } if ( - filters.workOrderMilestoneTypeIds && - commaSeparatedNumbersRegex.test(filters.workOrderMilestoneTypeIds) + (filters.workOrderMilestoneTypeIds ?? '') !== '' && + commaSeparatedNumbersRegex.test(filters.workOrderMilestoneTypeIds!) ) { sqlWhereClause += ' and m.workOrderMilestoneTypeId in (' + - filters.workOrderMilestoneTypeIds + + filters.workOrderMilestoneTypeIds! + ')' } @@ -132,18 +132,18 @@ export async function getWorkOrderMilestones( switch (options.orderBy) { case 'completion': { - orderByClause = - ' order by' + - ' m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime,' + - ' m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,' + - ' t.orderNumber, m.workOrderMilestoneId' + orderByClause = ` order by + m.workOrderMilestoneCompletionDate, m.workOrderMilestoneCompletionTime, + m.workOrderMilestoneDate, + case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end, + t.orderNumber, m.workOrderMilestoneId` break } case 'date': { - orderByClause = - ' order by m.workOrderMilestoneDate, case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end,' + - ' t.orderNumber, m.workOrderId, m.workOrderMilestoneId' + orderByClause = ` order by m.workOrderMilestoneDate, + case when m.workOrderMilestoneTime = 0 then 9999 else m.workOrderMilestoneTime end, + t.orderNumber, m.workOrderId, m.workOrderMilestoneId` break } } @@ -157,7 +157,7 @@ export async function getWorkOrderMilestones( ' m.workOrderMilestoneDescription,' + ' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' + ' m.workOrderMilestoneCompletionTime, userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' + - (options.includeWorkOrders + (options.includeWorkOrders ?? false ? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' + ' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' + ' w.workOrderCloseDate, userFn_dateIntegerToString(w.workOrderCloseDate) as workOrderCloseDateString,' + @@ -176,7 +176,7 @@ export async function getWorkOrderMilestones( .prepare(sql) .all(sqlParameters) - if (options.includeWorkOrders) { + if (options.includeWorkOrders ?? false) { for (const workOrderMilestone of workOrderMilestones) { const workOrderLotsResults = await getLots( { diff --git a/helpers/lotOccupancyDB/getWorkOrders.js b/helpers/lotOccupancyDB/getWorkOrders.js index 543cce80..c4158574 100644 --- a/helpers/lotOccupancyDB/getWorkOrders.js +++ b/helpers/lotOccupancyDB/getWorkOrders.js @@ -82,18 +82,20 @@ export async function getWorkOrders(filters, options, connectedDatabase) { ' group by workOrderId) m on w.workOrderId = m.workOrderId') + sqlWhereClause + ' 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); } - if (options && - (options.includeComments || - options.includeLotsAndLotOccupancies || - options.includeMilestones)) { + if (options !== undefined && + ((options.includeComments ?? false) || + (options.includeLotsAndLotOccupancies ?? false) || + (options.includeMilestones ?? false))) { for (const workOrder of workOrders) { - if (options.includeComments) { + if (options.includeComments ?? false) { workOrder.workOrderComments = await getWorkOrderComments(workOrder.workOrderId, database); } - if (options.includeLotsAndLotOccupancies) { + if (options.includeLotsAndLotOccupancies ?? false) { const workOrderLotsResults = await getLots({ workOrderId: workOrder.workOrderId }, { @@ -110,7 +112,7 @@ export async function getWorkOrders(filters, options, connectedDatabase) { }, database); workOrder.workOrderLotOccupancies = lotOccupancies.lotOccupancies; } - if (options.includeMilestones) { + if (options.includeMilestones ?? false) { workOrder.workOrderMilestones = await getWorkOrderMilestones({ workOrderId: workOrder.workOrderId }, { diff --git a/helpers/lotOccupancyDB/getWorkOrders.ts b/helpers/lotOccupancyDB/getWorkOrders.ts index 0db774f2..2e4f511a 100644 --- a/helpers/lotOccupancyDB/getWorkOrders.ts +++ b/helpers/lotOccupancyDB/getWorkOrders.ts @@ -138,26 +138,28 @@ export async function getWorkOrders( ' group by workOrderId) m on w.workOrderId = m.workOrderId') + sqlWhereClause + ' 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) } if ( - options && - (options.includeComments || - options.includeLotsAndLotOccupancies || - options.includeMilestones) + options !== undefined && + ((options.includeComments ?? false) || + (options.includeLotsAndLotOccupancies ?? false) || + (options.includeMilestones ?? false)) ) { for (const workOrder of workOrders) { - if (options.includeComments) { + if (options.includeComments ?? false) { workOrder.workOrderComments = await getWorkOrderComments( workOrder.workOrderId as number, database ) } - if (options.includeLotsAndLotOccupancies) { + if (options.includeLotsAndLotOccupancies ?? false) { const workOrderLotsResults = await getLots( { workOrderId: workOrder.workOrderId @@ -186,7 +188,7 @@ export async function getWorkOrders( workOrder.workOrderLotOccupancies = lotOccupancies.lotOccupancies } - if (options.includeMilestones) { + if (options.includeMilestones ?? false) { workOrder.workOrderMilestones = await getWorkOrderMilestones( { workOrderId: workOrder.workOrderId