sunrise-cms/database/addContractTypePrint.ts

64 lines
1.5 KiB
TypeScript

import sqlite from 'better-sqlite3'
import { sunriseDB } from '../helpers/database.helpers.js'
import { clearCacheByTableName } from '../helpers/functions.cache.js'
export interface AddContractTypePrintForm {
contractTypeId: number | string
printEJS: string
orderNumber?: number
}
export default function addContractTypePrint(
addForm: AddContractTypePrintForm,
user: User
): boolean {
const database = sqlite(sunriseDB)
const rightNowMillis = Date.now()
let result = database
.prepare(
`update ContractTypePrints
set recordUpdate_userName = ?,
recordUpdate_timeMillis = ?,
recordDelete_userName = null,
recordDelete_timeMillis = null
where contractTypeId = ?
and printEJS = ?`
)
.run(
user.userName,
rightNowMillis,
addForm.contractTypeId,
addForm.printEJS
)
if (result.changes === 0) {
result = database
.prepare(
`insert into ContractTypePrints (
contractTypeId, printEJS, orderNumber,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?, ?)`
)
.run(
addForm.contractTypeId,
addForm.printEJS,
addForm.orderNumber ?? -1,
user.userName,
rightNowMillis,
user.userName,
rightNowMillis
)
}
database.close()
clearCacheByTableName('ContractTypePrints')
return result.changes > 0
}