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