sunrise-cms/database/addBurialSiteContract.js

55 lines
2.8 KiB
JavaScript

import { dateStringToInteger } from '@cityssm/utils-datetime';
import addBurialSiteContractOccupant from './addBurialSiteContractOccupant.js';
import addOrUpdateBurialSiteContractField from './addOrUpdateBurialSiteContractField.js';
import { acquireConnection } from './pool.js';
export default async function addBurialSiteContract(addForm, user, connectedDatabase) {
const database = connectedDatabase ?? (await acquireConnection());
const rightNowMillis = Date.now();
const contractStartDate = dateStringToInteger(addForm.contractStartDateString);
if (contractStartDate <= 0) {
console.error(addForm);
}
const result = database
.prepare(`insert into BurialSiteContracts (
contractTypeId, lotId,
contractStartDate, contractEndDate,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?, ?, ?)`)
.run(addForm.contractTypeId, addForm.burialSiteId === '' ? undefined : addForm.burialSiteId, contractStartDate, addForm.contractEndDateString === ''
? undefined
: dateStringToInteger(addForm.contractEndDateString), user.userName, rightNowMillis, user.userName, rightNowMillis);
const burialSiteContractId = result.lastInsertRowid;
const contractTypeFieldIds = (addForm.contractTypeFieldIds ?? '').split(',');
for (const contractTypeFieldId of contractTypeFieldIds) {
const burialSiteContractFieldValue = addForm[`burialSiteContractFieldValue_${contractTypeFieldId}`];
if ((burialSiteContractFieldValue ?? '') !== '') {
await addOrUpdateBurialSiteContractField({
burialSiteContractId,
contractTypeFieldId,
burialSiteContractFieldValue: burialSiteContractFieldValue ?? ''
}, user, database);
}
}
if ((addForm.lotOccupantTypeId ?? '') !== '') {
await addBurialSiteContractOccupant({
burialSiteContractId,
lotOccupantTypeId: addForm.lotOccupantTypeId ?? '',
occupantName: addForm.occupantName ?? '',
occupantFamilyName: addForm.occupantFamilyName ?? '',
occupantAddress1: addForm.occupantAddress1 ?? '',
occupantAddress2: addForm.occupantAddress2 ?? '',
occupantCity: addForm.occupantCity ?? '',
occupantProvince: addForm.occupantProvince ?? '',
occupantPostalCode: addForm.occupantPostalCode ?? '',
occupantPhoneNumber: addForm.occupantPhoneNumber ?? '',
occupantEmailAddress: addForm.occupantEmailAddress ?? '',
occupantComment: addForm.occupantComment ?? ''
}, user, database);
}
if (connectedDatabase === undefined) {
database.release();
}
return burialSiteContractId;
}