61 lines
1.7 KiB
TypeScript
61 lines
1.7 KiB
TypeScript
import { DBFFile } from "dbffile";
|
|
import errorTypeCheck from "../../util/errorTypeCheck";
|
|
import { envFieldLineDescriptors } from "../util/ems-interface/fielddescriptors/env-field-descriptor";
|
|
import {
|
|
deleteEmsFileIfExists,
|
|
generateEmsOutFilePath,
|
|
} from "../util/ems-util";
|
|
import { EmsPartsOrder } from "./ems-parts-order-interfaces";
|
|
|
|
const EmsPartsOrderGenerateEnvFile = async (
|
|
partsOrder: EmsPartsOrder,
|
|
): Promise<boolean> => {
|
|
try {
|
|
const dateNow = new Date();
|
|
const formatTime = (date: Date): string =>
|
|
[date.getHours(), date.getMinutes(), date.getSeconds()]
|
|
.map((unit) => String(unit).padStart(2, "0"))
|
|
.join("");
|
|
|
|
const records = [
|
|
{
|
|
EST_SYSTEM: "C",
|
|
DB_DATE: new Date(),
|
|
RO_ID: partsOrder.job.ro_number,
|
|
ESTFILE_ID: partsOrder.job.ciecaid,
|
|
TRANS_TYPE: "S",
|
|
STATUS: false,
|
|
CREATE_DT: dateNow,
|
|
CREATE_TM: formatTime(dateNow),
|
|
TRANSMT_DT: dateNow,
|
|
TRANSMT_TM: formatTime(dateNow),
|
|
INCL_ADMIN: true,
|
|
INCL_VEH: true,
|
|
INCL_EST: true,
|
|
INCL_PROFL: true,
|
|
INCL_TOTAL: true,
|
|
INCL_VENDR: false,
|
|
EMS_VER: "2.0",
|
|
},
|
|
];
|
|
|
|
await deleteEmsFileIfExists(
|
|
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.ENV`),
|
|
);
|
|
|
|
const dbf: DBFFile = await DBFFile.create(
|
|
generateEmsOutFilePath(`${partsOrder.job.ciecaid}.ENV`),
|
|
envFieldLineDescriptors,
|
|
);
|
|
|
|
await dbf.appendRecords(records);
|
|
console.log(`${records.length} ENV file records added.`);
|
|
return true;
|
|
} catch (error) {
|
|
console.error("Error generating ENV file:", errorTypeCheck(error));
|
|
return false;
|
|
}
|
|
};
|
|
|
|
export default EmsPartsOrderGenerateEnvFile;
|