current occupancy report

deepsource-autofix-76c6eb20
Dan Gowans 2022-09-29 13:18:29 -04:00
parent 5df34264ae
commit 5726e80010
3 changed files with 184 additions and 46 deletions

View File

@ -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" +

View File

@ -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" +

View File

@ -111,6 +111,43 @@
<div class="is-hidden" id="tab--lotOccupancies">
<h1 class="title is-1"><%= configFunctions.getProperty("aliases.occupancy") %> Reports</h1>
<div class="panel">
<form class="panel-block align-items-flex-start" method="get" action="<%= urlPrefix %>/reports/lotOccupancies-current-byMapId">
<div class="has-text-centered my-2 ml-2 mr-3">
<span class="icon has-text-info">
<i class="fas fa-2x fa-file" aria-hidden="true"></i>
</span><br />
<span class="tag is-info">CSV</span>
</div>
<div>
<h3 class="title is-5 is-marginless">Current <%= configFunctions.getProperty("aliases.occupancy") %> By <%= configFunctions.getProperty("aliases.map") %></h3>
<div class="field has-addons mt-2">
<div class="control">
<label class="button is-small is-static" for="lotOccupancies-current-byMapId--mapId">
<%= configFunctions.getProperty("aliases.map") %>
</label>
</div>
<div class="control is-expanded">
<div class="select is-small is-fullwidth">
<select id="lotOccupancies-current-byMapId--mapId" name="mapId">
<% for (const map of maps) { %>
<option value="<%= map.mapId %>">
<%= map.mapName || "(No Name)" %>
</option>
<% } %>
</select>
</div>
</div>
<div class="control">
<button class="button is-small is-primary" type="submit">
Export
</button>
</div>
</div>
</div>
</form>
</div>
</div>
<div class="is-hidden" id="tab--lots">
<h1 class="title is-1"><%= configFunctions.getProperty("aliases.lot") %> Reports</h1>