sunrise-cms/database/addBurialSiteContractTransa...

35 lines
2.0 KiB
JavaScript

import { dateStringToInteger, dateToInteger, dateToTimeInteger, timeStringToInteger } from '@cityssm/utils-datetime';
import { acquireConnection } from './pool.js';
export default async function addBurialSiteContractTransaction(burialSiteContractTransactionForm, user) {
const database = await acquireConnection();
let transactionIndex = 0;
const maxIndexResult = database
.prepare(`select transactionIndex
from BurialSiteContractTransactions
where burialSiteContractId = ?
order by transactionIndex desc
limit 1`)
.get(burialSiteContractTransactionForm.burialSiteContractId);
if (maxIndexResult !== undefined) {
transactionIndex = maxIndexResult.transactionIndex + 1;
}
const rightNow = new Date();
const transactionDate = burialSiteContractTransactionForm.transactionDateString
? dateStringToInteger(burialSiteContractTransactionForm.transactionDateString)
: dateToInteger(rightNow);
const transactionTime = burialSiteContractTransactionForm.transactionTimeString
? timeStringToInteger(burialSiteContractTransactionForm.transactionTimeString)
: dateToTimeInteger(rightNow);
database
.prepare(`insert into BurialSiteContractTransactions (
burialSiteContractId, transactionIndex,
transactionDate, transactionTime,
transactionAmount, externalReceiptNumber, transactionNote,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`)
.run(burialSiteContractTransactionForm.burialSiteContractId, transactionIndex, transactionDate, transactionTime, burialSiteContractTransactionForm.transactionAmount, burialSiteContractTransactionForm.externalReceiptNumber, burialSiteContractTransactionForm.transactionNote, user.userName, rightNow.getTime(), user.userName, rightNow.getTime());
database.release();
return transactionIndex;
}