format work order milestone times

deepsource-autofix-76c6eb20
Dan Gowans 2023-03-23 09:28:10 -04:00
parent 29140b9520
commit 0caa6af372
14 changed files with 66 additions and 51 deletions

View File

@ -1,5 +1,5 @@
import { acquireConnection } from './pool.js';
import { dateIntegerToString, dateStringToInteger, dateToInteger, timeIntegerToString } from '@cityssm/utils-datetime';
import { dateIntegerToString, dateStringToInteger, dateToInteger, timeIntegerToString, timeIntegerToPeriodString } from '@cityssm/utils-datetime';
import * as configFunctions from '../functions.config.js';
import { getLots } from './getLots.js';
import { getLotOccupancies } from './getLotOccupancies.js';
@ -67,6 +67,7 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase
const database = connectedDatabase ?? (await acquireConnection());
database.function('userFn_dateIntegerToString', dateIntegerToString);
database.function('userFn_timeIntegerToString', timeIntegerToString);
database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString);
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters);
let orderByClause = '';
switch (options.orderBy) {
@ -88,10 +89,14 @@ export async function getWorkOrderMilestones(filters, options, connectedDatabase
const sql = 'select m.workOrderMilestoneId,' +
' m.workOrderMilestoneTypeId, t.workOrderMilestoneType,' +
' m.workOrderMilestoneDate, userFn_dateIntegerToString(m.workOrderMilestoneDate) as workOrderMilestoneDateString,' +
' m.workOrderMilestoneTime, userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString,' +
' m.workOrderMilestoneTime,' +
' userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString,' +
' userFn_timeIntegerToPeriodString(m.workOrderMilestoneTime) as workOrderMilestoneTimePeriodString,' +
' m.workOrderMilestoneDescription,' +
' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' +
' m.workOrderMilestoneCompletionTime, userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' +
' m.workOrderMilestoneCompletionTime,' +
' userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' +
' userFn_timeIntegerToPeriodString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimePeriodString,' +
(options.includeWorkOrders ?? false
? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' +
' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' +

View File

@ -5,7 +5,8 @@ import {
dateIntegerToString,
dateStringToInteger,
dateToInteger,
timeIntegerToString
timeIntegerToString,
timeIntegerToPeriodString
} from '@cityssm/utils-datetime'
import * as configFunctions from '../functions.config.js'
@ -133,6 +134,7 @@ export async function getWorkOrderMilestones(
database.function('userFn_dateIntegerToString', dateIntegerToString)
database.function('userFn_timeIntegerToString', timeIntegerToString)
database.function('userFn_timeIntegerToPeriodString', timeIntegerToPeriodString)
// Filters
const { sqlWhereClause, sqlParameters } = buildWhereClause(filters)
@ -163,10 +165,14 @@ export async function getWorkOrderMilestones(
'select m.workOrderMilestoneId,' +
' m.workOrderMilestoneTypeId, t.workOrderMilestoneType,' +
' m.workOrderMilestoneDate, userFn_dateIntegerToString(m.workOrderMilestoneDate) as workOrderMilestoneDateString,' +
' m.workOrderMilestoneTime, userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString,' +
' m.workOrderMilestoneTime,' +
' userFn_timeIntegerToString(m.workOrderMilestoneTime) as workOrderMilestoneTimeString,' +
' userFn_timeIntegerToPeriodString(m.workOrderMilestoneTime) as workOrderMilestoneTimePeriodString,' +
' m.workOrderMilestoneDescription,' +
' m.workOrderMilestoneCompletionDate, userFn_dateIntegerToString(m.workOrderMilestoneCompletionDate) as workOrderMilestoneCompletionDateString,' +
' m.workOrderMilestoneCompletionTime, userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' +
' m.workOrderMilestoneCompletionTime,' +
' userFn_timeIntegerToString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimeString,' +
' userFn_timeIntegerToPeriodString(m.workOrderMilestoneCompletionTime) as workOrderMilestoneCompletionTimePeriodString,' +
(options.includeWorkOrders ?? false
? ' m.workOrderId, w.workOrderNumber, wt.workOrderType, w.workOrderDescription,' +
' w.workOrderOpenDate, userFn_dateIntegerToString(w.workOrderOpenDate) as workOrderOpenDateString,' +

View File

@ -1106,7 +1106,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
? '<span class="has-text-grey">(No Set Date)</span>'
: milestone.workOrderMilestoneDateString) +
(milestone.workOrderMilestoneTime
? ' ' + milestone.workOrderMilestoneTimeString
? ' ' + milestone.workOrderMilestoneTimePeriodString
: '') +
'<br />' +
'<span class="is-size-7">' +

View File

@ -348,7 +348,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
? '<span class="has-text-grey">(No Set Date)</span>'
: milestone.workOrderMilestoneDateString) +
(milestone.workOrderMilestoneTime
? ' ' + milestone.workOrderMilestoneTimeString
? ' ' + milestone.workOrderMilestoneTimePeriodString
: '') +
'<br />' +
'<span class="is-size-7">' +

View File

@ -521,7 +521,7 @@ declare const bulmaJS: BulmaJS
? '<span class="has-text-grey">(No Set Date)</span>'
: milestone.workOrderMilestoneDateString) +
(milestone.workOrderMilestoneTime
? ' ' + milestone.workOrderMilestoneTimeString!
? ' ' + milestone.workOrderMilestoneTimePeriodString!
: '') +
'<br />' +
'<span class="is-size-7">' +

View File

@ -81,7 +81,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
('<div class="column">' +
(milestone.workOrderMilestoneTime === 0
? ''
: milestone.workOrderMilestoneTimeString + '<br />') +
: milestone.workOrderMilestoneTimePeriodString + '<br />') +
(milestone.workOrderMilestoneTypeId
? '<strong>' +
cityssm.escapeHTML(milestone.workOrderMilestoneType) +

View File

@ -119,7 +119,7 @@ declare const cityssm: cityssmGlobal
('<div class="column">' +
(milestone.workOrderMilestoneTime === 0
? ''
: milestone.workOrderMilestoneTimeString + '<br />') +
: milestone.workOrderMilestoneTimePeriodString! + '<br />') +
(milestone.workOrderMilestoneTypeId
? '<strong>' +
cityssm.escapeHTML(milestone.workOrderMilestoneType!) +

File diff suppressed because one or more lines are too long

View File

@ -1 +1 @@
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){var r,a,i,o,n,l,c,d;if(0===s.length)return void(t.innerHTML='<div class="message is-info">\n <p class="message-body">There are no milestones that meet the search criteria.</p>\n </div>');t.innerHTML="";const p=cityssm.dateToString(new Date);let m,u="x";for(const M of s){u!==M.workOrderMilestoneDateString&&(m&&t.append(m),(m=document.createElement("div")).className="panel",m.innerHTML=`<h2 class="panel-heading">\n ${0===M.workOrderMilestoneDate?"No Set Date":M.workOrderMilestoneDateString}\n </h2>`,u=M.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!M.workOrderMilestoneCompletionDate&&""!==M.workOrderMilestoneDateString&&M.workOrderMilestoneDateString<p&&s.classList.add("has-background-warning-light");let O="";for(const s of M.workOrderLots)O+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(r=s.mapName)&&void 0!==r?r:"")+'"><i class="fas fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(null!==(a=s.lotName)&&void 0!==a?a:"")+"</span><br />";for(const s of M.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)O+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(i=r.lotOccupantType)&&void 0!==i?i:"")+'"><i class="fas fa-user" aria-label="'+e.escapedAliases.Occupancy+'"></i> '+cityssm.escapeHTML(null!==(o=r.occupantName)&&void 0!==o?o:"")+" "+cityssm.escapeHTML(null!==(n=r.occupantFamilyName)&&void 0!==n?n:"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(M.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===M.workOrderMilestoneTime?"":M.workOrderMilestoneTimeString+"<br />")+(M.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(M.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(M.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(null!==(l=M.workOrderNumber)&&void 0!==l?l:"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.getWorkOrderURL(M.workOrderId)+'">'+cityssm.escapeHTML(null!==(c=M.workOrderNumber)&&void 0!==c?c:"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(d=M.workOrderDescription)&&void 0!==d?d:"")+'</span></div><div class="column is-size-7">'+O+"</div></div>",m.append(s)}t.append(m)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})();
"use strict";Object.defineProperty(exports,"__esModule",{value:!0}),(()=>{const e=exports.los,s=document.querySelector("#form--searchFilters"),r=s.querySelector("#searchFilter--workOrderMilestoneDateFilter"),a=s.querySelector("#searchFilter--workOrderMilestoneDateString"),t=document.querySelector("#container--milestoneCalendar");function i(r){r&&r.preventDefault(),t.innerHTML=e.getLoadingParagraphHTML("Loading Milestones..."),cityssm.postJSON(e.urlPrefix+"/workOrders/doGetWorkOrderMilestones",s,s=>{!function(s){var r,a,i,o,n,l,c,d;if(0===s.length)return void(t.innerHTML='<div class="message is-info">\n <p class="message-body">There are no milestones that meet the search criteria.</p>\n </div>');t.innerHTML="";const p=cityssm.dateToString(new Date);let m,u="x";for(const M of s){u!==M.workOrderMilestoneDateString&&(m&&t.append(m),(m=document.createElement("div")).className="panel",m.innerHTML=`<h2 class="panel-heading">\n ${0===M.workOrderMilestoneDate?"No Set Date":M.workOrderMilestoneDateString}\n </h2>`,u=M.workOrderMilestoneDateString);const s=document.createElement("div");s.className="panel-block is-block",!M.workOrderMilestoneCompletionDate&&""!==M.workOrderMilestoneDateString&&M.workOrderMilestoneDateString<p&&s.classList.add("has-background-warning-light");let O="";for(const s of M.workOrderLots)O+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(r=s.mapName)&&void 0!==r?r:"")+'"><i class="fas fa-vector-square" aria-label="'+e.escapedAliases.Lot+'"></i> '+cityssm.escapeHTML(null!==(a=s.lotName)&&void 0!==a?a:"")+"</span><br />";for(const s of M.workOrderLotOccupancies)for(const r of s.lotOccupancyOccupants)O+='<span class="has-tooltip-left" data-tooltip="'+cityssm.escapeHTML(null!==(i=r.lotOccupantType)&&void 0!==i?i:"")+'"><i class="fas fa-user" aria-label="'+e.escapedAliases.Occupancy+'"></i> '+cityssm.escapeHTML(null!==(o=r.occupantName)&&void 0!==o?o:"")+" "+cityssm.escapeHTML(null!==(n=r.occupantFamilyName)&&void 0!==n?n:"")+"</span><br />";s.innerHTML='<div class="columns"><div class="column is-narrow"><span class="icon is-small">'+(M.workOrderMilestoneCompletionDate?'<i class="fas fa-check" aria-label="Completed"></i>':'<i class="far fa-square has-text-grey" aria-label="Incomplete"></i>')+'</span></div><div class="column">'+(0===M.workOrderMilestoneTime?"":M.workOrderMilestoneTimePeriodString+"<br />")+(M.workOrderMilestoneTypeId?"<strong>"+cityssm.escapeHTML(M.workOrderMilestoneType)+"</strong><br />":"")+'<span class="is-size-7">'+cityssm.escapeHTML(M.workOrderMilestoneDescription)+'</span></div><div class="column"><i class="fas fa-circle" style="color:'+e.getRandomColor(null!==(l=M.workOrderNumber)&&void 0!==l?l:"")+'" aria-hidden="true"></i> <a class="has-text-weight-bold" href="'+e.getWorkOrderURL(M.workOrderId)+'">'+cityssm.escapeHTML(null!==(c=M.workOrderNumber)&&void 0!==c?c:"")+'</a><br /><span class="is-size-7">'+cityssm.escapeHTML(null!==(d=M.workOrderDescription)&&void 0!==d?d:"")+'</span></div><div class="column is-size-7">'+O+"</div></div>",m.append(s)}t.append(m)}(s.workOrderMilestones)})}r.addEventListener("change",()=>{a.closest("fieldset").disabled="date"!==r.value,i()}),e.initializeDatePickers(s),a.addEventListener("change",i),s.addEventListener("submit",i),i()})();

View File

@ -240,11 +240,13 @@ export interface WorkOrderMilestone extends Record, WorkOrder {
workOrderMilestoneDateString?: string;
workOrderMilestoneTime?: number;
workOrderMilestoneTimeString?: string;
workOrderMilestoneTimePeriodString?: string;
workOrderMilestoneDescription?: string;
workOrderMilestoneCompletionDate?: number;
workOrderMilestoneCompletionDateString?: string;
workOrderMilestoneCompletionTime?: number;
workOrderMilestoneCompletionTimeString?: string;
workOrderMilestoneCompletionTimePeriodString?: string;
workOrderRecordUpdate_timeMillis?: number;
}
export interface WorkOrder extends Record {

View File

@ -319,6 +319,7 @@ export interface WorkOrderMilestone extends Record, WorkOrder {
workOrderMilestoneTime?: number
workOrderMilestoneTimeString?: string
workOrderMilestoneTimePeriodString?: string
workOrderMilestoneDescription?: string
@ -327,6 +328,7 @@ export interface WorkOrderMilestone extends Record, WorkOrder {
workOrderMilestoneCompletionTime?: number
workOrderMilestoneCompletionTimeString?: string
workOrderMilestoneCompletionTimePeriodString?: string
workOrderRecordUpdate_timeMillis?: number
}

View File

@ -48,7 +48,7 @@
</span>
<% } %>
<% if (milestone.workOrderMilestoneTime) { %>
<%= milestone.workOrderMilestoneTimeString %><br />
<%= milestone.workOrderMilestoneTimePeriodString %><br />
<% } %>
<% if (milestone.workOrderMilestoneTypeId) { %>
<strong><%= milestone.workOrderMilestoneType %></strong><br />

View File

@ -46,22 +46,22 @@
</tr>
</thead>
<tbody>
<% for (const occupancy of workOrder.workOrderLotOccupancies) { %>
<tr>
<td><%= occupancy.occupancyType %></td>
<td><%= occupancy.lotName %></td>
<td><%= occupancy.occupancyStartDateString %></td>
<td><%= occupancy.occupancyStartEndString %></td>
<td>
<% for (const occupant of occupancy.lotOccupancyOccupants) { %>
<%= occupant.lotOccupantType %>:
<%= occupant.occupantName %>
<%= occupant.occupantFamilyName %>
<br />
<% } %>
</td>
</tr>
<% } %>
<% for (const occupancy of workOrder.workOrderLotOccupancies) { %>
<tr>
<td><%= occupancy.occupancyType %></td>
<td><%= occupancy.lotName %></td>
<td><%= occupancy.occupancyStartDateString %></td>
<td><%= occupancy.occupancyStartEndString %></td>
<td>
<% for (const occupant of occupancy.lotOccupancyOccupants) { %>
<%= occupant.lotOccupantType %>:
<%= occupant.occupantName %>
<%= occupant.occupantFamilyName %>
<br />
<% } %>
</td>
</tr>
<% } %>
</tbody>
</table>
<% } %>
@ -71,11 +71,11 @@
<table class="data-table">
<thead>
<tr>
<th class="is-width-1"></th>
<th>Milestone Description</th>
<th>Due Date</th>
</tr>
<tr>
<th class="is-width-1"></th>
<th>Milestone Description</th>
<th>Due Date</th>
</tr>
</thead>
<tbody>
<% for (const milestone of workOrder.workOrderMilestones) { %>
@ -100,7 +100,7 @@
<%= milestone.workOrderMilestoneDateString %>
<% } %>
<% if (milestone.workOrderMilestoneTime) { %>
<%= milestone.workOrderMilestoneTimeString %>
<%= milestone.workOrderMilestoneTimePeriodString %>
<% } %>
</td>
</tr>
@ -116,8 +116,8 @@
const recordCreateDate = new Date(workOrder.recordCreate_timeMillis);
const currentDate = new Date();
%>
Work order created <%= dateTimeFunctions.dateToString(recordCreateDate) %> at <%= dateTimeFunctions.dateToTimeString(recordCreateDate) %>.
Printed <%= dateTimeFunctions.dateToString(currentDate) %> at <%= dateTimeFunctions.dateToTimeString(currentDate) %>.<br />
Work order created <%= dateTimeFunctions.dateToString(recordCreateDate) %> at <%= dateTimeFunctions.dateToTimePeriodString(recordCreateDate) %>.
Printed <%= dateTimeFunctions.dateToString(currentDate) %> at <%= dateTimeFunctions.dateToTimePeriodString(currentDate) %>.<br />
workOrderId = <%= workOrder.workOrderId %>
</p>
</body>

View File

@ -340,19 +340,19 @@
<% } %>
</div>
<div class="column">
<% if (milestone.workOrderMilestoneTypeId) { %>
<strong><%= milestone.workOrderMilestoneType %></strong><br />
<% } %>
<% if (milestone.workOrderMilestoneDate === 0) { %>
<span class="has-text-grey">(No Set Date)</span>
<% } else { %>
<%= milestone.workOrderMilestoneDateString %>
<% } %>
<% if (milestone.workOrderMilestoneTime !== 0) { %>
<%= milestone.workOrderMilestoneTimeString %>
<% } %>
<br />
<span class="is-size-7"><%= milestone.workOrderMilestoneDescription %></span>
<% if (milestone.workOrderMilestoneTypeId) { %>
<strong><%= milestone.workOrderMilestoneType %></strong><br />
<% } %>
<% if (milestone.workOrderMilestoneDate === 0) { %>
<span class="has-text-grey">(No Set Date)</span>
<% } else { %>
<%= milestone.workOrderMilestoneDateString %>
<% } %>
<% if (milestone.workOrderMilestoneTime !== 0) { %>
<%= milestone.workOrderMilestoneTimePeriodString %>
<% } %>
<br />
<span class="is-size-7"><%= milestone.workOrderMilestoneDescription %></span>
</div>
</div>
</div>