linting
parent
3c1d023ccd
commit
656f1b052e
|
|
@ -1,10 +1,11 @@
|
||||||
|
import { type DateString, type TimeString } from '@cityssm/utils-datetime';
|
||||||
export interface AddWorkOrderMilestoneForm {
|
export interface AddWorkOrderMilestoneForm {
|
||||||
workOrderId: number | string;
|
workOrderId: number | string;
|
||||||
workOrderMilestoneTypeId: number | string;
|
workOrderMilestoneTypeId: number | string;
|
||||||
workOrderMilestoneDateString: string;
|
workOrderMilestoneDateString: '' | DateString;
|
||||||
workOrderMilestoneTimeString?: string;
|
workOrderMilestoneTimeString?: '' | TimeString;
|
||||||
workOrderMilestoneDescription: string;
|
workOrderMilestoneDescription: string;
|
||||||
workOrderMilestoneCompletionDateString?: string;
|
workOrderMilestoneCompletionDateString?: '' | DateString;
|
||||||
workOrderMilestoneCompletionTimeString?: string;
|
workOrderMilestoneCompletionTimeString?: '' | TimeString;
|
||||||
}
|
}
|
||||||
export default function addWorkOrderMilestone(milestoneForm: AddWorkOrderMilestoneForm, user: User): number;
|
export default function addWorkOrderMilestone(milestoneForm: AddWorkOrderMilestoneForm, user: User): number;
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
import {
|
import {
|
||||||
|
type DateString,
|
||||||
|
type TimeString,
|
||||||
dateStringToInteger,
|
dateStringToInteger,
|
||||||
timeStringToInteger
|
timeStringToInteger
|
||||||
} from '@cityssm/utils-datetime'
|
} from '@cityssm/utils-datetime'
|
||||||
|
|
@ -10,13 +12,13 @@ export interface AddWorkOrderMilestoneForm {
|
||||||
workOrderId: number | string
|
workOrderId: number | string
|
||||||
workOrderMilestoneTypeId: number | string
|
workOrderMilestoneTypeId: number | string
|
||||||
|
|
||||||
workOrderMilestoneDateString: string
|
workOrderMilestoneDateString: '' | DateString
|
||||||
workOrderMilestoneTimeString?: string
|
workOrderMilestoneTimeString?: '' | TimeString
|
||||||
|
|
||||||
workOrderMilestoneDescription: string
|
workOrderMilestoneDescription: string
|
||||||
|
|
||||||
workOrderMilestoneCompletionDateString?: string
|
workOrderMilestoneCompletionDateString?: '' | DateString
|
||||||
workOrderMilestoneCompletionTimeString?: string
|
workOrderMilestoneCompletionTimeString?: '' | TimeString
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function addWorkOrderMilestone(
|
export default function addWorkOrderMilestone(
|
||||||
|
|
@ -48,17 +50,19 @@ export default function addWorkOrderMilestone(
|
||||||
: dateStringToInteger(milestoneForm.workOrderMilestoneDateString),
|
: dateStringToInteger(milestoneForm.workOrderMilestoneDateString),
|
||||||
(milestoneForm.workOrderMilestoneTimeString ?? '') === ''
|
(milestoneForm.workOrderMilestoneTimeString ?? '') === ''
|
||||||
? 0
|
? 0
|
||||||
: timeStringToInteger(milestoneForm.workOrderMilestoneTimeString!),
|
: timeStringToInteger(
|
||||||
|
milestoneForm.workOrderMilestoneTimeString as TimeString
|
||||||
|
),
|
||||||
milestoneForm.workOrderMilestoneDescription,
|
milestoneForm.workOrderMilestoneDescription,
|
||||||
(milestoneForm.workOrderMilestoneCompletionDateString ?? '') === ''
|
(milestoneForm.workOrderMilestoneCompletionDateString ?? '') === ''
|
||||||
? undefined
|
? undefined
|
||||||
: dateStringToInteger(
|
: dateStringToInteger(
|
||||||
milestoneForm.workOrderMilestoneCompletionDateString!
|
milestoneForm.workOrderMilestoneCompletionDateString as DateString
|
||||||
),
|
),
|
||||||
(milestoneForm.workOrderMilestoneCompletionTimeString ?? '') === ''
|
(milestoneForm.workOrderMilestoneCompletionTimeString ?? '') === ''
|
||||||
? undefined
|
? undefined
|
||||||
: timeStringToInteger(
|
: timeStringToInteger(
|
||||||
milestoneForm.workOrderMilestoneCompletionTimeString!
|
milestoneForm.workOrderMilestoneCompletionTimeString as TimeString
|
||||||
),
|
),
|
||||||
user.userName,
|
user.userName,
|
||||||
rightNowMillis,
|
rightNowMillis,
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
|
import { type DateString, type TimeString } from '@cityssm/utils-datetime';
|
||||||
export interface CompleteWorkOrderMilestoneForm {
|
export interface CompleteWorkOrderMilestoneForm {
|
||||||
workOrderMilestoneId: number | string;
|
workOrderMilestoneId: number | string;
|
||||||
workOrderMilestoneCompletionDateString?: string;
|
workOrderMilestoneCompletionDateString?: '' | DateString;
|
||||||
workOrderMilestoneCompletionTimeString?: string;
|
workOrderMilestoneCompletionTimeString?: '' | TimeString;
|
||||||
}
|
}
|
||||||
export default function completeWorkOrderMilestone(milestoneForm: CompleteWorkOrderMilestoneForm, user: User): boolean;
|
export default function completeWorkOrderMilestone(milestoneForm: CompleteWorkOrderMilestoneForm, user: User): boolean;
|
||||||
|
|
|
||||||
|
|
@ -4,6 +4,12 @@ import { sunriseDB } from '../helpers/database.helpers.js';
|
||||||
export default function completeWorkOrderMilestone(milestoneForm, user) {
|
export default function completeWorkOrderMilestone(milestoneForm, user) {
|
||||||
const rightNow = new Date();
|
const rightNow = new Date();
|
||||||
const database = sqlite(sunriseDB);
|
const database = sqlite(sunriseDB);
|
||||||
|
const completionDate = (milestoneForm.workOrderMilestoneCompletionDateString ?? '') === ''
|
||||||
|
? dateToInteger(rightNow)
|
||||||
|
: dateStringToInteger(milestoneForm.workOrderMilestoneCompletionDateString);
|
||||||
|
const completionTime = (milestoneForm.workOrderMilestoneCompletionTimeString ?? '') === ''
|
||||||
|
? dateToTimeInteger(rightNow)
|
||||||
|
: timeStringToInteger(milestoneForm.workOrderMilestoneCompletionTimeString);
|
||||||
const result = database
|
const result = database
|
||||||
.prepare(`update WorkOrderMilestones
|
.prepare(`update WorkOrderMilestones
|
||||||
set workOrderMilestoneCompletionDate = ?,
|
set workOrderMilestoneCompletionDate = ?,
|
||||||
|
|
@ -11,11 +17,7 @@ export default function completeWorkOrderMilestone(milestoneForm, user) {
|
||||||
recordUpdate_userName = ?,
|
recordUpdate_userName = ?,
|
||||||
recordUpdate_timeMillis = ?
|
recordUpdate_timeMillis = ?
|
||||||
where workOrderMilestoneId = ?`)
|
where workOrderMilestoneId = ?`)
|
||||||
.run((milestoneForm.workOrderMilestoneCompletionDateString ?? '') === ''
|
.run(completionDate, completionTime, user.userName, rightNow.getTime(), milestoneForm.workOrderMilestoneId);
|
||||||
? dateToInteger(rightNow)
|
|
||||||
: dateStringToInteger(milestoneForm.workOrderMilestoneCompletionDateString), (milestoneForm.workOrderMilestoneCompletionTimeString ?? '') === ''
|
|
||||||
? dateToTimeInteger(rightNow)
|
|
||||||
: timeStringToInteger(milestoneForm.workOrderMilestoneCompletionTimeString), user.userName, rightNow.getTime(), milestoneForm.workOrderMilestoneId);
|
|
||||||
database.close();
|
database.close();
|
||||||
return result.changes > 0;
|
return result.changes > 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,6 @@
|
||||||
import {
|
import {
|
||||||
|
type DateString,
|
||||||
|
type TimeString,
|
||||||
dateStringToInteger,
|
dateStringToInteger,
|
||||||
dateToInteger,
|
dateToInteger,
|
||||||
dateToTimeInteger,
|
dateToTimeInteger,
|
||||||
|
|
@ -11,8 +13,8 @@ import { sunriseDB } from '../helpers/database.helpers.js'
|
||||||
export interface CompleteWorkOrderMilestoneForm {
|
export interface CompleteWorkOrderMilestoneForm {
|
||||||
workOrderMilestoneId: number | string
|
workOrderMilestoneId: number | string
|
||||||
|
|
||||||
workOrderMilestoneCompletionDateString?: string
|
workOrderMilestoneCompletionDateString?: '' | DateString
|
||||||
workOrderMilestoneCompletionTimeString?: string
|
workOrderMilestoneCompletionTimeString?: '' | TimeString
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function completeWorkOrderMilestone(
|
export default function completeWorkOrderMilestone(
|
||||||
|
|
@ -23,6 +25,20 @@ export default function completeWorkOrderMilestone(
|
||||||
|
|
||||||
const database = sqlite(sunriseDB)
|
const database = sqlite(sunriseDB)
|
||||||
|
|
||||||
|
const completionDate =
|
||||||
|
(milestoneForm.workOrderMilestoneCompletionDateString ?? '') === ''
|
||||||
|
? dateToInteger(rightNow)
|
||||||
|
: dateStringToInteger(
|
||||||
|
milestoneForm.workOrderMilestoneCompletionDateString as DateString
|
||||||
|
)
|
||||||
|
|
||||||
|
const completionTime =
|
||||||
|
(milestoneForm.workOrderMilestoneCompletionTimeString ?? '') === ''
|
||||||
|
? dateToTimeInteger(rightNow)
|
||||||
|
: timeStringToInteger(
|
||||||
|
milestoneForm.workOrderMilestoneCompletionTimeString as TimeString
|
||||||
|
)
|
||||||
|
|
||||||
const result = database
|
const result = database
|
||||||
.prepare(
|
.prepare(
|
||||||
`update WorkOrderMilestones
|
`update WorkOrderMilestones
|
||||||
|
|
@ -33,16 +49,8 @@ export default function completeWorkOrderMilestone(
|
||||||
where workOrderMilestoneId = ?`
|
where workOrderMilestoneId = ?`
|
||||||
)
|
)
|
||||||
.run(
|
.run(
|
||||||
(milestoneForm.workOrderMilestoneCompletionDateString ?? '') === ''
|
completionDate,
|
||||||
? dateToInteger(rightNow)
|
completionTime,
|
||||||
: dateStringToInteger(
|
|
||||||
milestoneForm.workOrderMilestoneCompletionDateString!
|
|
||||||
),
|
|
||||||
(milestoneForm.workOrderMilestoneCompletionTimeString ?? '') === ''
|
|
||||||
? dateToTimeInteger(rightNow)
|
|
||||||
: timeStringToInteger(
|
|
||||||
milestoneForm.workOrderMilestoneCompletionTimeString!
|
|
||||||
),
|
|
||||||
user.userName,
|
user.userName,
|
||||||
rightNow.getTime(),
|
rightNow.getTime(),
|
||||||
milestoneForm.workOrderMilestoneId
|
milestoneForm.workOrderMilestoneId
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
import sqlite from 'better-sqlite3';
|
import sqlite from 'better-sqlite3';
|
||||||
import { sunriseDB } from '../helpers/database.helpers.js';
|
import { sunriseDB } from '../helpers/database.helpers.js';
|
||||||
import { clearCacheByTableName } from '../helpers/functions.cache.js';
|
import { cacheTableNames, clearCacheByTableName } from '../helpers/functions.cache.js';
|
||||||
const recordIdColumns = new Map([
|
const recordIdColumns = new Map([
|
||||||
['BurialSiteComments', 'burialSiteCommentId'],
|
['BurialSiteComments', 'burialSiteCommentId'],
|
||||||
['BurialSiteStatuses', 'burialSiteStatusId'],
|
['BurialSiteStatuses', 'burialSiteStatusId'],
|
||||||
|
|
@ -55,6 +55,9 @@ export function deleteRecord(recordTable, recordId, user) {
|
||||||
.run(user.userName, rightNowMillis, recordId);
|
.run(user.userName, rightNowMillis, recordId);
|
||||||
}
|
}
|
||||||
database.close();
|
database.close();
|
||||||
|
// Clear cache for tables that are cached
|
||||||
|
if (cacheTableNames.includes(recordTable)) {
|
||||||
clearCacheByTableName(recordTable);
|
clearCacheByTableName(recordTable);
|
||||||
|
}
|
||||||
return result.changes > 0;
|
return result.changes > 0;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,11 @@
|
||||||
import sqlite from 'better-sqlite3'
|
import sqlite from 'better-sqlite3'
|
||||||
|
|
||||||
import { sunriseDB } from '../helpers/database.helpers.js'
|
import { sunriseDB } from '../helpers/database.helpers.js'
|
||||||
import { clearCacheByTableName } from '../helpers/functions.cache.js'
|
import {
|
||||||
|
CacheTableNames,
|
||||||
|
cacheTableNames,
|
||||||
|
clearCacheByTableName
|
||||||
|
} from '../helpers/functions.cache.js'
|
||||||
|
|
||||||
type RecordTable =
|
type RecordTable =
|
||||||
| 'BurialSiteComments'
|
| 'BurialSiteComments'
|
||||||
|
|
@ -73,7 +77,7 @@ export function deleteRecord(
|
||||||
`update ${recordTable}
|
`update ${recordTable}
|
||||||
set recordDelete_userName = ?,
|
set recordDelete_userName = ?,
|
||||||
recordDelete_timeMillis = ?
|
recordDelete_timeMillis = ?
|
||||||
where ${recordIdColumns.get(recordTable)!} = ?
|
where ${recordIdColumns.get(recordTable)} = ?
|
||||||
and recordDelete_timeMillis is null`
|
and recordDelete_timeMillis is null`
|
||||||
)
|
)
|
||||||
.run(user.userName, rightNowMillis, recordId)
|
.run(user.userName, rightNowMillis, recordId)
|
||||||
|
|
@ -84,7 +88,7 @@ export function deleteRecord(
|
||||||
`update ${relatedTable}
|
`update ${relatedTable}
|
||||||
set recordDelete_userName = ?,
|
set recordDelete_userName = ?,
|
||||||
recordDelete_timeMillis = ?
|
recordDelete_timeMillis = ?
|
||||||
where ${recordIdColumns.get(recordTable)!} = ?
|
where ${recordIdColumns.get(recordTable)} = ?
|
||||||
and recordDelete_timeMillis is null`
|
and recordDelete_timeMillis is null`
|
||||||
)
|
)
|
||||||
.run(user.userName, rightNowMillis, recordId)
|
.run(user.userName, rightNowMillis, recordId)
|
||||||
|
|
@ -92,7 +96,10 @@ export function deleteRecord(
|
||||||
|
|
||||||
database.close()
|
database.close()
|
||||||
|
|
||||||
clearCacheByTableName(recordTable)
|
// Clear cache for tables that are cached
|
||||||
|
if (cacheTableNames.includes(recordTable as CacheTableNames)) {
|
||||||
|
clearCacheByTableName(recordTable as CacheTableNames)
|
||||||
|
}
|
||||||
|
|
||||||
return result.changes > 0
|
return result.changes > 0
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -13,13 +13,17 @@ const recordNameIdColumns = new Map([
|
||||||
]);
|
]);
|
||||||
export function updateRecord(recordTable, recordId, recordName, user) {
|
export function updateRecord(recordTable, recordId, recordName, user) {
|
||||||
const database = sqlite(sunriseDB);
|
const database = sqlite(sunriseDB);
|
||||||
|
const columnNames = recordNameIdColumns.get(recordTable);
|
||||||
|
if (columnNames === undefined) {
|
||||||
|
throw new Error(`Invalid record table: ${recordTable}`);
|
||||||
|
}
|
||||||
const result = database
|
const result = database
|
||||||
.prepare(`update ${recordTable}
|
.prepare(`update ${recordTable}
|
||||||
set ${recordNameIdColumns.get(recordTable)[0]} = ?,
|
set ${columnNames[0]} = ?,
|
||||||
recordUpdate_userName = ?,
|
recordUpdate_userName = ?,
|
||||||
recordUpdate_timeMillis = ?
|
recordUpdate_timeMillis = ?
|
||||||
where recordDelete_timeMillis is null
|
where recordDelete_timeMillis is null
|
||||||
and ${recordNameIdColumns.get(recordTable)[1]} = ?`)
|
and ${columnNames[1]} = ?`)
|
||||||
.run(recordName, user.userName, Date.now(), recordId);
|
.run(recordName, user.userName, Date.now(), recordId);
|
||||||
database.close();
|
database.close();
|
||||||
clearCacheByTableName(recordTable);
|
clearCacheByTableName(recordTable);
|
||||||
|
|
|
||||||
|
|
@ -29,14 +29,20 @@ export function updateRecord(
|
||||||
): boolean {
|
): boolean {
|
||||||
const database = sqlite(sunriseDB)
|
const database = sqlite(sunriseDB)
|
||||||
|
|
||||||
|
const columnNames = recordNameIdColumns.get(recordTable)
|
||||||
|
|
||||||
|
if (columnNames === undefined) {
|
||||||
|
throw new Error(`Invalid record table: ${recordTable}`)
|
||||||
|
}
|
||||||
|
|
||||||
const result = database
|
const result = database
|
||||||
.prepare(
|
.prepare(
|
||||||
`update ${recordTable}
|
`update ${recordTable}
|
||||||
set ${recordNameIdColumns.get(recordTable)![0]} = ?,
|
set ${columnNames[0]} = ?,
|
||||||
recordUpdate_userName = ?,
|
recordUpdate_userName = ?,
|
||||||
recordUpdate_timeMillis = ?
|
recordUpdate_timeMillis = ?
|
||||||
where recordDelete_timeMillis is null
|
where recordDelete_timeMillis is null
|
||||||
and ${recordNameIdColumns.get(recordTable)![1]} = ?`
|
and ${columnNames[1]} = ?`
|
||||||
)
|
)
|
||||||
.run(recordName, user.userName, Date.now(), recordId)
|
.run(recordName, user.userName, Date.now(), recordId)
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ export declare function getWorkOrderMilestoneTypeById(workOrderMilestoneTypeId:
|
||||||
export declare function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(workOrderMilestoneTypeString: string): WorkOrderMilestoneType | undefined;
|
export declare function getWorkOrderMilestoneTypeByWorkOrderMilestoneType(workOrderMilestoneTypeString: string): WorkOrderMilestoneType | undefined;
|
||||||
export declare function getWorkOrderMilestoneTypes(): WorkOrderMilestoneType[];
|
export declare function getWorkOrderMilestoneTypes(): WorkOrderMilestoneType[];
|
||||||
export declare function preloadCaches(): void;
|
export declare function preloadCaches(): void;
|
||||||
type CacheTableNames = 'BurialSiteStatuses' | 'BurialSiteTypeFields' | 'BurialSiteTypes' | 'CommittalTypes' | 'ContractTypeFields' | 'ContractTypePrints' | 'ContractTypes' | 'FeeCategories' | 'Fees' | 'IntermentContainerTypes' | 'WorkOrderMilestoneTypes' | 'WorkOrderTypes';
|
export declare const cacheTableNames: readonly ["BurialSiteStatuses", "BurialSiteTypeFields", "BurialSiteTypes", "CommittalTypes", "ContractTypeFields", "ContractTypePrints", "ContractTypes", "FeeCategories", "Fees", "IntermentContainerTypes", "WorkOrderMilestoneTypes", "WorkOrderTypes"];
|
||||||
|
export type CacheTableNames = typeof cacheTableNames[number];
|
||||||
export declare function clearCacheByTableName(tableName: CacheTableNames, relayMessage?: boolean): void;
|
export declare function clearCacheByTableName(tableName: CacheTableNames, relayMessage?: boolean): void;
|
||||||
export declare function clearCaches(): void;
|
export declare function clearCaches(): void;
|
||||||
export {};
|
|
||||||
|
|
|
||||||
|
|
@ -170,6 +170,20 @@ export function preloadCaches() {
|
||||||
getWorkOrderTypes();
|
getWorkOrderTypes();
|
||||||
getWorkOrderMilestoneTypes();
|
getWorkOrderMilestoneTypes();
|
||||||
}
|
}
|
||||||
|
export const cacheTableNames = [
|
||||||
|
'BurialSiteStatuses',
|
||||||
|
'BurialSiteTypeFields',
|
||||||
|
'BurialSiteTypes',
|
||||||
|
'CommittalTypes',
|
||||||
|
'ContractTypeFields',
|
||||||
|
'ContractTypePrints',
|
||||||
|
'ContractTypes',
|
||||||
|
'FeeCategories',
|
||||||
|
'Fees',
|
||||||
|
'IntermentContainerTypes',
|
||||||
|
'WorkOrderMilestoneTypes',
|
||||||
|
'WorkOrderTypes'
|
||||||
|
];
|
||||||
export function clearCacheByTableName(tableName, relayMessage = true) {
|
export function clearCacheByTableName(tableName, relayMessage = true) {
|
||||||
switch (tableName) {
|
switch (tableName) {
|
||||||
case 'BurialSiteStatuses': {
|
case 'BurialSiteStatuses': {
|
||||||
|
|
|
||||||
|
|
@ -305,19 +305,22 @@ export function preloadCaches(): void {
|
||||||
getWorkOrderMilestoneTypes()
|
getWorkOrderMilestoneTypes()
|
||||||
}
|
}
|
||||||
|
|
||||||
type CacheTableNames =
|
export const cacheTableNames = [
|
||||||
| 'BurialSiteStatuses'
|
'BurialSiteStatuses'
|
||||||
| 'BurialSiteTypeFields'
|
, 'BurialSiteTypeFields'
|
||||||
| 'BurialSiteTypes'
|
, 'BurialSiteTypes'
|
||||||
| 'CommittalTypes'
|
, 'CommittalTypes'
|
||||||
| 'ContractTypeFields'
|
, 'ContractTypeFields'
|
||||||
| 'ContractTypePrints'
|
, 'ContractTypePrints'
|
||||||
| 'ContractTypes'
|
, 'ContractTypes'
|
||||||
| 'FeeCategories'
|
, 'FeeCategories'
|
||||||
| 'Fees'
|
, 'Fees'
|
||||||
| 'IntermentContainerTypes'
|
, 'IntermentContainerTypes'
|
||||||
| 'WorkOrderMilestoneTypes'
|
, 'WorkOrderMilestoneTypes'
|
||||||
| 'WorkOrderTypes'
|
, 'WorkOrderTypes'
|
||||||
|
] as const
|
||||||
|
|
||||||
|
export type CacheTableNames = typeof cacheTableNames[number]
|
||||||
|
|
||||||
export function clearCacheByTableName(
|
export function clearCacheByTableName(
|
||||||
tableName: CacheTableNames,
|
tableName: CacheTableNames,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue