add daily transactions report

deepsource-autofix-76c6eb20
Dan Gowans 2022-10-19 10:50:38 -04:00
parent 51794096a4
commit a034ad5ddc
7 changed files with 191 additions and 63 deletions

View File

@ -26,10 +26,11 @@ export const getReportData = (reportName, reportParameters) => {
let sql; let sql;
const sqlParameters = []; const sqlParameters = [];
switch (reportName) { switch (reportName) {
case "maps-all": case "maps-all": {
sql = "select * from Maps"; sql = "select * from Maps";
break; break;
case "maps-formatted": }
case "maps-formatted": {
sql = sql =
"select mapName as " + "select mapName as " +
mapNameAlias + mapNameAlias +
@ -51,10 +52,12 @@ export const getReportData = (reportName, reportParameters) => {
" where recordDelete_timeMillis is null" + " where recordDelete_timeMillis is null" +
" order by mapName"; " order by mapName";
break; break;
case "lots-all": }
case "lots-all": {
sql = "select * from Lots"; sql = "select * from Lots";
break; break;
case "lots-byLotTypeId": }
case "lots-byLotTypeId": {
sql = sql =
"select l.lotId as " + "select l.lotId as " +
lotIdAlias + lotIdAlias +
@ -74,7 +77,8 @@ export const getReportData = (reportName, reportParameters) => {
" and l.lotTypeId = ?"; " and l.lotTypeId = ?";
sqlParameters.push(reportParameters.lotTypeId); sqlParameters.push(reportParameters.lotTypeId);
break; break;
case "lots-byLotStatusId": }
case "lots-byLotStatusId": {
sql = sql =
"select l.lotId as " + "select l.lotId as " +
lotIdAlias + lotIdAlias +
@ -94,7 +98,8 @@ export const getReportData = (reportName, reportParameters) => {
" and l.lotStatusId = ?"; " and l.lotStatusId = ?";
sqlParameters.push(reportParameters.lotStatusId); sqlParameters.push(reportParameters.lotStatusId);
break; break;
case "lots-byMapId": }
case "lots-byMapId": {
sql = sql =
"select l.lotId as " + "select l.lotId as " +
lotIdAlias + lotIdAlias +
@ -114,16 +119,20 @@ export const getReportData = (reportName, reportParameters) => {
" and l.mapId = ?"; " and l.mapId = ?";
sqlParameters.push(reportParameters.mapId); sqlParameters.push(reportParameters.mapId);
break; break;
case "lotComments-all": }
case "lotComments-all": {
sql = "select * from LotComments"; sql = "select * from LotComments";
break; break;
case "lotFields-all": }
case "lotFields-all": {
sql = "select * from LotFields"; sql = "select * from LotFields";
break; break;
case "lotOccupancies-all": }
case "lotOccupancies-all": {
sql = "select * from LotOccupancies"; sql = "select * from LotOccupancies";
break; break;
case "lotOccupancies-current-byMapId": }
case "lotOccupancies-current-byMapId": {
sql = sql =
"select o.lotOccupancyId as " + "select o.lotOccupancyId as " +
lotOccupancyIdAlias + lotOccupancyIdAlias +
@ -146,25 +155,44 @@ export const getReportData = (reportName, reportParameters) => {
" and l.mapId = ?"; " and l.mapId = ?";
sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId); sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId);
break; break;
case "lotOccupancyComments-all": }
case "lotOccupancyComments-all": {
sql = "select * from LotOccupancyComments"; sql = "select * from LotOccupancyComments";
break; break;
case "lotOccupancyFees-all": }
case "lotOccupancyFees-all": {
sql = "select * from LotOccupancyFees"; sql = "select * from LotOccupancyFees";
break; break;
case "lotOccupancyFields-all": }
case "lotOccupancyFields-all": {
sql = "select * from LotOccupancyFields"; sql = "select * from LotOccupancyFields";
break; break;
case "lotOccupancyOccupants-all": }
case "lotOccupancyOccupants-all": {
sql = "select * from LotOccupancyOccupants"; sql = "select * from LotOccupancyOccupants";
break; break;
case "lotOccupancyTransactions-all": }
case "lotOccupancyTransactions-all": {
sql = "select * from LotOccupancyTransactions"; sql = "select * from LotOccupancyTransactions";
break; break;
case "workOrders-all": }
case "lotOccupancyTransactions-byTransactionDateString": {
sql =
"select t.lotOccupancyId, t.transactionIndex," +
" t.transactionDate, t.transactionTime," +
" t.transactionAmount, t.externalReceiptNumber," +
" t.transactionNote" +
" from LotOccupancyTransactions t" +
" where t.recordDelete_timeMillis is null" +
" and t.transactionDate = ?";
sqlParameters.push(dateTimeFunctions.dateStringToInteger(reportParameters.transactionDateString));
break;
}
case "workOrders-all": {
sql = "select * from WorkOrders"; sql = "select * from WorkOrders";
break; break;
case "workOrders-open": }
case "workOrders-open": {
sql = sql =
"select w.workOrderId, w.workOrderNumber," + "select w.workOrderId, w.workOrderNumber," +
" t.workOrderType, w.workOrderDescription," + " t.workOrderType, w.workOrderDescription," +
@ -183,47 +211,62 @@ export const getReportData = (reportName, reportParameters) => {
" where w.recordDelete_timeMillis is null" + " where w.recordDelete_timeMillis is null" +
" and w.workOrderCloseDate is null"; " and w.workOrderCloseDate is null";
break; break;
case "workOrderComments-all": }
case "workOrderComments-all": {
sql = "select * from WorkOrderComments"; sql = "select * from WorkOrderComments";
break; break;
case "workOrderLots-all": }
case "workOrderLots-all": {
sql = "select * from WorkOrderLots"; sql = "select * from WorkOrderLots";
break; break;
case "workOrderMilestones-all": }
case "workOrderMilestones-all": {
sql = "select * from WorkOrderMilestones"; sql = "select * from WorkOrderMilestones";
break; break;
case "fees-all": }
case "fees-all": {
sql = "select * from Fees"; sql = "select * from Fees";
break; break;
case "feeCategories-all": }
case "feeCategories-all": {
sql = "select * from FeeCategories"; sql = "select * from FeeCategories";
break; break;
case "lotTypes-all": }
case "lotTypes-all": {
sql = "select * from LotTypes"; sql = "select * from LotTypes";
break; break;
case "lotTypeFields-all": }
case "lotTypeFields-all": {
sql = "select * from LotTypeFields"; sql = "select * from LotTypeFields";
break; break;
case "lotStatuses-all": }
case "lotStatuses-all": {
sql = "select * from LotStatuses"; sql = "select * from LotStatuses";
break; break;
case "occupancyTypes-all": }
case "occupancyTypes-all": {
sql = "select * from OccupancyTypes"; sql = "select * from OccupancyTypes";
break; break;
case "occupancyTypeFields-all": }
case "occupancyTypeFields-all": {
sql = "select * from OccupancyTypeFields"; sql = "select * from OccupancyTypeFields";
break; break;
case "lotOccupantTypes-all": }
case "lotOccupantTypes-all": {
sql = "select * from LotOccupantTypes"; sql = "select * from LotOccupantTypes";
break; break;
case "workOrderTypes-all": }
case "workOrderTypes-all": {
sql = "select * from WorkOrderTypes"; sql = "select * from WorkOrderTypes";
break; break;
case "workOrderMilestoneTypes-all": }
case "workOrderMilestoneTypes-all": {
sql = "select * from WorkOrderMilestoneTypes"; sql = "select * from WorkOrderMilestoneTypes";
break; break;
default: }
default: {
return undefined; return undefined;
}
} }
const database = sqlite(databasePath, { const database = sqlite(databasePath, {
readonly: true readonly: true

View File

@ -43,11 +43,12 @@ export const getReportData = (
const sqlParameters = []; const sqlParameters = [];
switch (reportName) { switch (reportName) {
case "maps-all": case "maps-all": {
sql = "select * from Maps"; sql = "select * from Maps";
break; break;
}
case "maps-formatted": case "maps-formatted": {
sql = sql =
"select mapName as " + "select mapName as " +
mapNameAlias + mapNameAlias +
@ -70,12 +71,14 @@ export const getReportData = (
" order by mapName"; " order by mapName";
break; break;
}
case "lots-all": case "lots-all": {
sql = "select * from Lots"; sql = "select * from Lots";
break; break;
}
case "lots-byLotTypeId": case "lots-byLotTypeId": {
sql = sql =
"select l.lotId as " + "select l.lotId as " +
lotIdAlias + lotIdAlias +
@ -97,8 +100,9 @@ export const getReportData = (
sqlParameters.push(reportParameters.lotTypeId); sqlParameters.push(reportParameters.lotTypeId);
break; break;
}
case "lots-byLotStatusId": case "lots-byLotStatusId": {
sql = sql =
"select l.lotId as " + "select l.lotId as " +
lotIdAlias + lotIdAlias +
@ -120,8 +124,9 @@ export const getReportData = (
sqlParameters.push(reportParameters.lotStatusId); sqlParameters.push(reportParameters.lotStatusId);
break; break;
}
case "lots-byMapId": case "lots-byMapId": {
sql = sql =
"select l.lotId as " + "select l.lotId as " +
lotIdAlias + lotIdAlias +
@ -143,20 +148,24 @@ export const getReportData = (
sqlParameters.push(reportParameters.mapId); sqlParameters.push(reportParameters.mapId);
break; break;
}
case "lotComments-all": case "lotComments-all": {
sql = "select * from LotComments"; sql = "select * from LotComments";
break; break;
}
case "lotFields-all": case "lotFields-all": {
sql = "select * from LotFields"; sql = "select * from LotFields";
break; break;
}
case "lotOccupancies-all": case "lotOccupancies-all": {
sql = "select * from LotOccupancies"; sql = "select * from LotOccupancies";
break; break;
}
case "lotOccupancies-current-byMapId": case "lotOccupancies-current-byMapId": {
sql = sql =
"select o.lotOccupancyId as " + "select o.lotOccupancyId as " +
lotOccupancyIdAlias + lotOccupancyIdAlias +
@ -181,32 +190,57 @@ export const getReportData = (
sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId); sqlParameters.push(dateTimeFunctions.dateToInteger(new Date()), reportParameters.mapId);
break; break;
}
case "lotOccupancyComments-all": case "lotOccupancyComments-all": {
sql = "select * from LotOccupancyComments"; sql = "select * from LotOccupancyComments";
break; break;
}
case "lotOccupancyFees-all": case "lotOccupancyFees-all": {
sql = "select * from LotOccupancyFees"; sql = "select * from LotOccupancyFees";
break; break;
}
case "lotOccupancyFields-all": case "lotOccupancyFields-all": {
sql = "select * from LotOccupancyFields"; sql = "select * from LotOccupancyFields";
break; break;
}
case "lotOccupancyOccupants-all": case "lotOccupancyOccupants-all": {
sql = "select * from LotOccupancyOccupants"; sql = "select * from LotOccupancyOccupants";
break; break;
}
case "lotOccupancyTransactions-all": case "lotOccupancyTransactions-all": {
sql = "select * from LotOccupancyTransactions"; sql = "select * from LotOccupancyTransactions";
break; break;
}
case "workOrders-all": case "lotOccupancyTransactions-byTransactionDateString": {
sql =
"select t.lotOccupancyId, t.transactionIndex," +
" t.transactionDate, t.transactionTime," +
" t.transactionAmount, t.externalReceiptNumber," +
" t.transactionNote" +
" from LotOccupancyTransactions t" +
" where t.recordDelete_timeMillis is null" +
" and t.transactionDate = ?";
sqlParameters.push(
dateTimeFunctions.dateStringToInteger(
reportParameters.transactionDateString as string
)
);
break;
}
case "workOrders-all": {
sql = "select * from WorkOrders"; sql = "select * from WorkOrders";
break; break;
}
case "workOrders-open": case "workOrders-open": {
sql = sql =
"select w.workOrderId, w.workOrderNumber," + "select w.workOrderId, w.workOrderNumber," +
" t.workOrderType, w.workOrderDescription," + " t.workOrderType, w.workOrderDescription," +
@ -225,61 +259,76 @@ export const getReportData = (
" where w.recordDelete_timeMillis is null" + " where w.recordDelete_timeMillis is null" +
" and w.workOrderCloseDate is null"; " and w.workOrderCloseDate is null";
break; break;
}
case "workOrderComments-all": case "workOrderComments-all": {
sql = "select * from WorkOrderComments"; sql = "select * from WorkOrderComments";
break; break;
}
case "workOrderLots-all": case "workOrderLots-all": {
sql = "select * from WorkOrderLots"; sql = "select * from WorkOrderLots";
break; break;
}
case "workOrderMilestones-all": case "workOrderMilestones-all": {
sql = "select * from WorkOrderMilestones"; sql = "select * from WorkOrderMilestones";
break; break;
}
case "fees-all": case "fees-all": {
sql = "select * from Fees"; sql = "select * from Fees";
break; break;
}
case "feeCategories-all": case "feeCategories-all": {
sql = "select * from FeeCategories"; sql = "select * from FeeCategories";
break; break;
}
case "lotTypes-all": case "lotTypes-all": {
sql = "select * from LotTypes"; sql = "select * from LotTypes";
break; break;
}
case "lotTypeFields-all": case "lotTypeFields-all": {
sql = "select * from LotTypeFields"; sql = "select * from LotTypeFields";
break; break;
}
case "lotStatuses-all": case "lotStatuses-all": {
sql = "select * from LotStatuses"; sql = "select * from LotStatuses";
break; break;
}
case "occupancyTypes-all": case "occupancyTypes-all": {
sql = "select * from OccupancyTypes"; sql = "select * from OccupancyTypes";
break; break;
}
case "occupancyTypeFields-all": case "occupancyTypeFields-all": {
sql = "select * from OccupancyTypeFields"; sql = "select * from OccupancyTypeFields";
break; break;
}
case "lotOccupantTypes-all": case "lotOccupantTypes-all": {
sql = "select * from LotOccupantTypes"; sql = "select * from LotOccupantTypes";
break; break;
}
case "workOrderTypes-all": case "workOrderTypes-all": {
sql = "select * from WorkOrderTypes"; sql = "select * from WorkOrderTypes";
break; break;
}
case "workOrderMilestoneTypes-all": case "workOrderMilestoneTypes-all": {
sql = "select * from WorkOrderMilestoneTypes"; sql = "select * from WorkOrderMilestoneTypes";
break; break;
}
default: default: {
return undefined; return undefined;
}
} }
const database = sqlite(databasePath, { const database = sqlite(databasePath, {

View File

@ -0,0 +1 @@
export {};

View File

@ -1,4 +1,7 @@
"use strict";
Object.defineProperty(exports, "__esModule", { value: true });
(() => { (() => {
const los = exports.los;
const menuTabElements = document.querySelectorAll(".menu a"); const menuTabElements = document.querySelectorAll(".menu a");
const tabContainerElements = document.querySelectorAll(".tabs-container > div"); const tabContainerElements = document.querySelectorAll(".tabs-container > div");
const selectTab = (clickEvent) => { const selectTab = (clickEvent) => {

View File

@ -1,4 +1,10 @@
/* eslint-disable unicorn/prefer-module */
import type * as globalTypes from "../types/globalTypes";
(() => { (() => {
const los = exports.los as globalTypes.LOS;
const menuTabElements = document.querySelectorAll(".menu a") as NodeListOf<HTMLAnchorElement>; const menuTabElements = document.querySelectorAll(".menu a") as NodeListOf<HTMLAnchorElement>;
const tabContainerElements = document.querySelectorAll( const tabContainerElements = document.querySelectorAll(
".tabs-container > div" ".tabs-container > div"

View File

@ -1 +1 @@
(()=>{const e=document.querySelectorAll(".menu a"),s=document.querySelectorAll(".tabs-container > div"),t=t=>{t.preventDefault();for(const s of e)s.classList.remove("is-active");const c=t.currentTarget;c.classList.add("is-active");const i=c.href.slice(Math.max(0,c.href.indexOf("#")+1));for(const e of s)e.id===i?e.classList.remove("is-hidden"):e.classList.add("is-hidden")};for(const s of e)s.addEventListener("click",t)})(); "use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{exports.los;const e=document.querySelectorAll(".menu a"),s=document.querySelectorAll(".tabs-container > div"),t=t=>{t.preventDefault();for(const s of e)s.classList.remove("is-active");const o=t.currentTarget;o.classList.add("is-active");const c=o.href.slice(Math.max(0,o.href.indexOf("#")+1));for(const e of s)e.id===c?e.classList.remove("is-hidden"):e.classList.add("is-hidden")};for(const s of e)s.addEventListener("click",t)})();

View File

@ -147,6 +147,32 @@
</div> </div>
</div> </div>
</form> </form>
<form class="panel-block align-items-flex-start" method="get" action="<%= urlPrefix %>/reports/lotOccupancyTransactions-byTransactionDateString">
<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">Transactions by Date</h3>
<div class="field has-addons mt-2">
<div class="control">
<label class="button is-small is-static" for="lotOccupancyTransactions-byTransactionDateString--transactionDateString">
Transaction Date
</label>
</div>
<div class="control is-expanded">
<input class="input is-small" id="lotOccupancyTransactions-byTransactionDateString--transactionDateString" name="transactionDateString" type="date" value="<%= dateTimeFunctions.dateToString(new Date()) %>" required />
</div>
<div class="control">
<button class="button is-small is-primary" type="submit">
Export
</button>
</div>
</div>
</div>
</form>
</div> </div>
</div> </div>
<div class="is-hidden" id="tab--lots"> <div class="is-hidden" id="tab--lots">