diff --git a/helpers/lotOccupancyDB/getReportData.js b/helpers/lotOccupancyDB/getReportData.js index 1f4a6416..18d9ffa7 100644 --- a/helpers/lotOccupancyDB/getReportData.js +++ b/helpers/lotOccupancyDB/getReportData.js @@ -78,6 +78,24 @@ export const getReportData = (reportName, reportParameters) => { case "workOrders-all": sql = "select * from WorkOrders"; break; + case "workOrders-open": + sql = + "select w.workOrderId, w.workOrderNumber," + + " t.workOrderType, w.workOrderDescription," + + " m.workOrderMilestoneCount, m.workOrderMilestoneCompletionCount" + + " from WorkOrders w" + + " left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId" + + (" left join (" + + "select m.workOrderId," + + " count(m.workOrderMilestoneId) as workOrderMilestoneCount," + + " sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount" + + " from WorkOrderMilestones m" + + " where m.recordDelete_timeMillis is null" + + " group by m.workOrderId" + + ") m on w.workOrderId = m.workOrderId") + + " where w.recordDelete_timeMillis is null" + + " and w.workOrderCloseDate is null"; + break; case "workOrderComments-all": sql = "select * from WorkOrderComments"; break; diff --git a/helpers/lotOccupancyDB/getReportData.ts b/helpers/lotOccupancyDB/getReportData.ts index 0b4825b5..b1e9ecc2 100644 --- a/helpers/lotOccupancyDB/getReportData.ts +++ b/helpers/lotOccupancyDB/getReportData.ts @@ -106,6 +106,25 @@ export const getReportData = ( sql = "select * from WorkOrders"; break; + case "workOrders-open": + sql = + "select w.workOrderId, w.workOrderNumber," + + " t.workOrderType, w.workOrderDescription," + + " m.workOrderMilestoneCount, m.workOrderMilestoneCompletionCount" + + " from WorkOrders w" + + " left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId" + + (" left join (" + + "select m.workOrderId," + + " count(m.workOrderMilestoneId) as workOrderMilestoneCount," + + " sum(case when m.workOrderMilestoneCompletionDate is null then 0 else 1 end) as workOrderMilestoneCompletionCount" + + " from WorkOrderMilestones m" + + " where m.recordDelete_timeMillis is null" + + " group by m.workOrderId" + + ") m on w.workOrderId = m.workOrderId") + + " where w.recordDelete_timeMillis is null" + + " and w.workOrderCloseDate is null"; + break; + case "workOrderComments-all": sql = "select * from WorkOrderComments"; break; @@ -157,7 +176,7 @@ export const getReportData = ( case "workOrderMilestoneTypes-all": sql = "select * from WorkOrderMilestoneTypes"; break; - + default: return undefined; } @@ -166,14 +185,8 @@ export const getReportData = ( readonly: true }); - database.function( - "userFn_dateIntegerToString", - dateTimeFunctions.dateIntegerToString - ); - database.function( - "userFn_timeIntegerToString", - dateTimeFunctions.timeIntegerToString - ); + database.function("userFn_dateIntegerToString", dateTimeFunctions.dateIntegerToString); + database.function("userFn_timeIntegerToString", dateTimeFunctions.timeIntegerToString); const rows = database.prepare(sql).all(sqlParameters); diff --git a/public-typescript/reportSearch.ts b/public-typescript/reportSearch.ts index 593e522b..09004cd4 100644 --- a/public-typescript/reportSearch.ts +++ b/public-typescript/reportSearch.ts @@ -1,7 +1,8 @@ (() => { - const menuTabElements = document.querySelectorAll(".menu a") as NodeListOf; - const tabContainerElements = document.querySelectorAll(".tabs-container > div") as NodeListOf; + const tabContainerElements = document.querySelectorAll( + ".tabs-container > div" + ) as NodeListOf; const selectTab = (clickEvent: Event) => { clickEvent.preventDefault(); @@ -19,10 +20,11 @@ // Hide all but selected tab - const selectedTabContainerId = selectedTabElement.href.slice(Math.max(0, selectedTabElement.href.indexOf("#") + 1)); + const selectedTabContainerId = selectedTabElement.href.slice( + Math.max(0, selectedTabElement.href.indexOf("#") + 1) + ); for (const tabContainerElement of tabContainerElements) { - if (tabContainerElement.id === selectedTabContainerId) { tabContainerElement.classList.remove("is-hidden"); } else { @@ -31,8 +33,7 @@ } }; - for (const menuTabElement of menuTabElements) { menuTabElement.addEventListener("click", selectTab); } -})(); \ No newline at end of file +})(); diff --git a/views/report-search.ejs b/views/report-search.ejs index 20ae5512..5b075b3f 100644 --- a/views/report-search.ejs +++ b/views/report-search.ejs @@ -9,17 +9,29 @@