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 => { 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;