sunrise-cms/helpers/lotOccupancyDB/addWorkOrder.js

36 lines
1.8 KiB
JavaScript

import sqlite from 'better-sqlite3';
import { lotOccupancyDB as databasePath } from '../../data/databasePaths.js';
import { getNextWorkOrderNumber } from './getNextWorkOrderNumber.js';
import { addWorkOrderLotOccupancy } from './addWorkOrderLotOccupancy.js';
import { dateStringToInteger, dateToInteger } from '@cityssm/expressjs-server-js/dateTimeFns.js';
export function addWorkOrder(workOrderForm, requestSession) {
const database = sqlite(databasePath);
const rightNow = new Date();
let workOrderNumber = workOrderForm.workOrderNumber;
if (!workOrderNumber) {
workOrderNumber = getNextWorkOrderNumber(database);
}
const result = database
.prepare(`insert into WorkOrders (
workOrderTypeId, workOrderNumber, workOrderDescription,
workOrderOpenDate, workOrderCloseDate,
recordCreate_userName, recordCreate_timeMillis,
recordUpdate_userName, recordUpdate_timeMillis)
values (?, ?, ?, ?, ?, ?, ?, ?, ?)`)
.run(workOrderForm.workOrderTypeId, workOrderNumber, workOrderForm.workOrderDescription, workOrderForm.workOrderOpenDateString
? dateStringToInteger(workOrderForm.workOrderOpenDateString)
: dateToInteger(rightNow), workOrderForm.workOrderCloseDateString
? dateStringToInteger(workOrderForm.workOrderCloseDateString)
: undefined, requestSession.user.userName, rightNow.getTime(), requestSession.user.userName, rightNow.getTime());
const workOrderId = result.lastInsertRowid;
if (workOrderForm.lotOccupancyId) {
addWorkOrderLotOccupancy({
workOrderId,
lotOccupancyId: workOrderForm.lotOccupancyId
}, requestSession, database);
}
database.close();
return workOrderId;
}
export default addWorkOrder;