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; }