diff --git a/helpers/lotOccupancyDB/getReportData.js b/helpers/lotOccupancyDB/getReportData.js index f846d8a8..795bfc3b 100644 --- a/helpers/lotOccupancyDB/getReportData.js +++ b/helpers/lotOccupancyDB/getReportData.js @@ -12,6 +12,16 @@ const mapCityAlias = mapCamelCase + "City"; const mapProvinceAlias = mapCamelCase + "Province"; const mapPostalCodeAlias = mapCamelCase + "PostalCode"; const mapPhoneNumberAlias = mapCamelCase + "PhoneNumber"; +const lotCamelCase = camelCase(configFunctions.getProperty("aliases.lot")); +const lotIdAlias = lotCamelCase + "Id"; +const lotNameAlias = lotCamelCase + "Name"; +const lotTypeAlias = lotCamelCase + "Type"; +const lotStatusAlias = lotCamelCase + "Status"; +const occupancyCamelCase = camelCase(configFunctions.getProperty("aliases.occupancy")); +const lotOccupancyIdAlias = occupancyCamelCase + "Id"; +const occupancyTypeAlias = occupancyCamelCase + "Type"; +const occupancyStartDateAlias = occupancyCamelCase + "StartDate"; +const occupancyEndDateAlias = occupancyCamelCase + "EndDate"; export const getReportData = (reportName, reportParameters) => { let sql; const sqlParameters = []; @@ -24,26 +34,19 @@ export const getReportData = (reportName, reportParameters) => { "select mapName as " + mapNameAlias + "," + - " mapDescription as " + - mapDescriptionAlias + + (" mapDescription as " + mapDescriptionAlias) + "," + - " mapAddress1 as " + - mapAddress1Alias + + (" mapAddress1 as " + mapAddress1Alias) + "," + - " mapAddress2 as " + - mapAddress2Alias + + (" mapAddress2 as " + mapAddress2Alias) + "," + - " mapCity as " + - mapCityAlias + + (" mapCity as " + mapCityAlias) + "," + - " mapProvince as " + - mapProvinceAlias + + (" mapProvince as " + mapProvinceAlias) + "," + - " mapPostalCode as " + - mapPostalCodeAlias + + (" mapPostalCode as " + mapPostalCodeAlias) + "," + - " mapPhoneNumber as " + - mapPhoneNumberAlias + + (" mapPhoneNumber as " + mapPhoneNumberAlias) + " from Maps" + " where recordDelete_timeMillis is null" + " order by mapName"; @@ -53,9 +56,16 @@ export const getReportData = (reportName, reportParameters) => { break; case "lots-byLotTypeId": sql = - "select l.lotId," + - " m.mapName, l.lotName," + - " t.lotType, s.lotStatus" + + "select l.lotId as " + + lotIdAlias + + "," + + (" m.mapName as " + mapNameAlias) + + "," + + (" l.lotName as " + lotNameAlias) + + "," + + (" t.lotType as " + lotTypeAlias) + + "," + + (" s.lotStatus as " + lotStatusAlias) + " from Lots l" + " left join LotTypes t on l.lotTypeId = t.lotTypeId" + " left join LotStatuses s on l.lotStatusId = s.lotStatusId" + @@ -66,9 +76,16 @@ export const getReportData = (reportName, reportParameters) => { break; case "lots-byLotStatusId": sql = - "select l.lotId," + - " m.mapName, l.lotName," + - " t.lotType, s.lotStatus" + + "select l.lotId as " + + lotIdAlias + + "," + + (" m.mapName as " + mapNameAlias) + + "," + + (" l.lotName as " + lotNameAlias) + + "," + + (" t.lotType as " + lotTypeAlias) + + "," + + (" s.lotStatus as " + lotStatusAlias) + " from Lots l" + " left join LotTypes t on l.lotTypeId = t.lotTypeId" + " left join LotStatuses s on l.lotStatusId = s.lotStatusId" + @@ -79,9 +96,16 @@ export const getReportData = (reportName, reportParameters) => { break; case "lots-byMapId": sql = - "select l.lotId," + - " m.mapName, l.lotName," + - " t.lotType, s.lotStatus" + + "select l.lotId as " + + lotIdAlias + + "," + + (" m.mapName as " + mapNameAlias) + + "," + + (" l.lotName as " + lotNameAlias) + + "," + + (" t.lotType as " + lotTypeAlias) + + "," + + (" s.lotStatus as " + lotStatusAlias) + " from Lots l" + " left join LotTypes t on l.lotTypeId = t.lotTypeId" + " left join LotStatuses s on l.lotStatusId = s.lotStatusId" + @@ -99,6 +123,29 @@ export const getReportData = (reportName, reportParameters) => { case "lotOccupancies-all": sql = "select * from LotOccupancies"; break; + case "lotOccupancies-current-byMapId": + sql = + "select o.lotOccupancyId as " + + lotOccupancyIdAlias + + "," + + (" l.lotName as " + lotNameAlias) + + "," + + (" m.mapName as " + mapNameAlias) + + "," + + (" ot.occupancyType as " + occupancyTypeAlias) + + "," + + (" o.occupancyStartDate as " + occupancyStartDateAlias) + + "," + + (" o.occupancyEndDate as " + occupancyEndDateAlias) + + " from LotOccupancies o" + + " left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId" + + " left join Lots l on o.lotId = l.lotId" + + " left join Maps m on l.mapId = m.mapId" + + " where o.recordDelete_timeMillis is null" + + " and (o.occupancyEndDate is null or o.occupancyEndDate >= ?)" + + " and l.mapId = ?"; + sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId); + break; case "lotOccupancyComments-all": sql = "select * from LotOccupancyComments"; break; @@ -121,6 +168,7 @@ export const getReportData = (reportName, reportParameters) => { sql = "select w.workOrderId, w.workOrderNumber," + " t.workOrderType, w.workOrderDescription," + + " w.workOrderOpenDate," + " m.workOrderMilestoneCount, m.workOrderMilestoneCompletionCount" + " from WorkOrders w" + " left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId" + diff --git a/helpers/lotOccupancyDB/getReportData.ts b/helpers/lotOccupancyDB/getReportData.ts index ac29a10c..d7bfedcd 100644 --- a/helpers/lotOccupancyDB/getReportData.ts +++ b/helpers/lotOccupancyDB/getReportData.ts @@ -23,6 +23,18 @@ const mapProvinceAlias = mapCamelCase + "Province"; const mapPostalCodeAlias = mapCamelCase + "PostalCode"; const mapPhoneNumberAlias = mapCamelCase + "PhoneNumber"; +const lotCamelCase = camelCase(configFunctions.getProperty("aliases.lot")); +const lotIdAlias = lotCamelCase + "Id"; +const lotNameAlias = lotCamelCase + "Name"; +const lotTypeAlias = lotCamelCase + "Type"; +const lotStatusAlias = lotCamelCase + "Status"; + +const occupancyCamelCase = camelCase(configFunctions.getProperty("aliases.occupancy")); +const lotOccupancyIdAlias = occupancyCamelCase + "Id"; +const occupancyTypeAlias = occupancyCamelCase + "Type"; +const occupancyStartDateAlias = occupancyCamelCase + "StartDate"; +const occupancyEndDateAlias = occupancyCamelCase + "EndDate"; + export const getReportData = ( reportName: string, reportParameters?: ReportParameters @@ -40,26 +52,19 @@ export const getReportData = ( "select mapName as " + mapNameAlias + "," + - " mapDescription as " + - mapDescriptionAlias + + (" mapDescription as " + mapDescriptionAlias) + "," + - " mapAddress1 as " + - mapAddress1Alias + + (" mapAddress1 as " + mapAddress1Alias) + "," + - " mapAddress2 as " + - mapAddress2Alias + + (" mapAddress2 as " + mapAddress2Alias) + "," + - " mapCity as " + - mapCityAlias + + (" mapCity as " + mapCityAlias) + "," + - " mapProvince as " + - mapProvinceAlias + + (" mapProvince as " + mapProvinceAlias) + "," + - " mapPostalCode as " + - mapPostalCodeAlias + + (" mapPostalCode as " + mapPostalCodeAlias) + "," + - " mapPhoneNumber as " + - mapPhoneNumberAlias + + (" mapPhoneNumber as " + mapPhoneNumberAlias) + " from Maps" + " where recordDelete_timeMillis is null" + " order by mapName"; @@ -72,9 +77,16 @@ export const getReportData = ( case "lots-byLotTypeId": sql = - "select l.lotId," + - " m.mapName, l.lotName," + - " t.lotType, s.lotStatus" + + "select l.lotId as " + + lotIdAlias + + "," + + (" m.mapName as " + mapNameAlias) + + "," + + (" l.lotName as " + lotNameAlias) + + "," + + (" t.lotType as " + lotTypeAlias) + + "," + + (" s.lotStatus as " + lotStatusAlias) + " from Lots l" + " left join LotTypes t on l.lotTypeId = t.lotTypeId" + " left join LotStatuses s on l.lotStatusId = s.lotStatusId" + @@ -88,9 +100,16 @@ export const getReportData = ( case "lots-byLotStatusId": sql = - "select l.lotId," + - " m.mapName, l.lotName," + - " t.lotType, s.lotStatus" + + "select l.lotId as " + + lotIdAlias + + "," + + (" m.mapName as " + mapNameAlias) + + "," + + (" l.lotName as " + lotNameAlias) + + "," + + (" t.lotType as " + lotTypeAlias) + + "," + + (" s.lotStatus as " + lotStatusAlias) + " from Lots l" + " left join LotTypes t on l.lotTypeId = t.lotTypeId" + " left join LotStatuses s on l.lotStatusId = s.lotStatusId" + @@ -104,9 +123,16 @@ export const getReportData = ( case "lots-byMapId": sql = - "select l.lotId," + - " m.mapName, l.lotName," + - " t.lotType, s.lotStatus" + + "select l.lotId as " + + lotIdAlias + + "," + + (" m.mapName as " + mapNameAlias) + + "," + + (" l.lotName as " + lotNameAlias) + + "," + + (" t.lotType as " + lotTypeAlias) + + "," + + (" s.lotStatus as " + lotStatusAlias) + " from Lots l" + " left join LotTypes t on l.lotTypeId = t.lotTypeId" + " left join LotStatuses s on l.lotStatusId = s.lotStatusId" + @@ -130,6 +156,32 @@ export const getReportData = ( sql = "select * from LotOccupancies"; break; + case "lotOccupancies-current-byMapId": + sql = + "select o.lotOccupancyId as " + + lotOccupancyIdAlias + + "," + + (" l.lotName as " + lotNameAlias) + + "," + + (" m.mapName as " + mapNameAlias) + + "," + + (" ot.occupancyType as " + occupancyTypeAlias) + + "," + + (" o.occupancyStartDate as " + occupancyStartDateAlias) + + "," + + (" o.occupancyEndDate as " + occupancyEndDateAlias) + + " from LotOccupancies o" + + " left join OccupancyTypes ot on o.occupancyTypeId = ot.occupancyTypeId" + + " left join Lots l on o.lotId = l.lotId" + + " left join Maps m on l.mapId = m.mapId" + + " where o.recordDelete_timeMillis is null" + + " and (o.occupancyEndDate is null or o.occupancyEndDate >= ?)" + + " and l.mapId = ?"; + + sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId); + + break; + case "lotOccupancyComments-all": sql = "select * from LotOccupancyComments"; break; @@ -158,6 +210,7 @@ export const getReportData = ( sql = "select w.workOrderId, w.workOrderNumber," + " t.workOrderType, w.workOrderDescription," + + " w.workOrderOpenDate," + " m.workOrderMilestoneCount, m.workOrderMilestoneCompletionCount" + " from WorkOrders w" + " left join WorkOrderTypes t on w.workOrderTypeId = t.workOrderTypeId" + diff --git a/views/report-search.ejs b/views/report-search.ejs index 7ab0b94f..1941a07d 100644 --- a/views/report-search.ejs +++ b/views/report-search.ejs @@ -111,6 +111,43 @@