diff --git a/src/main/ems-parts-order/ems-parts-order-generate-ad2.ts b/src/main/ems-parts-order/ems-parts-order-generate-ad2.ts index 1c630e3..c90234e 100644 --- a/src/main/ems-parts-order/ems-parts-order-generate-ad2.ts +++ b/src/main/ems-parts-order/ems-parts-order-generate-ad2.ts @@ -42,6 +42,7 @@ const EmsPartsOrderGenerateAd2File = async ( CLMT_CT_PH: partsOrder.job.clm_ct_ph, CLMT_CT_PHX: partsOrder.job.clm_ct_phx, CLMT_EA: partsOrder.job.clm_ea, + RF_CO_NM: partsOrder.job.bodyshop.shopname, }, ]; diff --git a/src/main/ems-parts-order/ems-parts-order-generate-env.ts b/src/main/ems-parts-order/ems-parts-order-generate-env.ts index ffc455a..34b9ec5 100644 --- a/src/main/ems-parts-order/ems-parts-order-generate-env.ts +++ b/src/main/ems-parts-order/ems-parts-order-generate-env.ts @@ -13,35 +13,47 @@ const EmsPartsOrderGenerateEnvFile = async ( 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 formatDate = (date: Date): string => - `${String(date.getMonth() + 1).padStart(2, "0")}/${String( - date.getDate(), - ).padStart(2, "0")}/${date.getFullYear()}`; + `${date.getHours().toString().padStart(2, "0")}${date.getMinutes().toString().padStart(2, "0")}${date.getSeconds().toString().padStart(2, "0")}`; + + const { + job: { ro_number, ciecaid }, + } = partsOrder; + + // Find the highest line_ind value + const lineInds = partsOrder.parts_order_lines.map( + (line) => line.jobline.line_ind, + ); + const getNumber = (str: string): number => { + const match = str.match(/(\d+)$/); + return match ? parseInt(match[1], 10) : 0; + }; + const highestLineInd = lineInds.reduce( + (max, current) => (getNumber(current) > getNumber(max) ? current : max), + lineInds[0] || "", + ); const records = [ { EST_SYSTEM: "M", SW_VERSION: "25.3", DB_VERSION: "OCT_25_V", - DB_DATE: formatDate(dateNow), - RO_ID: partsOrder.job.ro_number, - ESTFILE_ID: partsOrder.job.ciecaid, - SUPP_NO: "1", - EST_CTRY: "CA", - TRANS_TYPE: "S", + DB_DATE: dateNow, + RO_ID: ro_number, + ESTFILE_ID: ciecaid, + SUPP_NO: highestLineInd ? getNumber(highestLineInd).toString() : "1", + EST_CTRY: "CAN", + TOP_SECRET: "00000000-0000-0000-0000-000000000000", + TRANS_TYPE: highestLineInd ? highestLineInd.charAt(0) : "S", STATUS: false, - CREATE_DT: formatDate(dateNow), + CREATE_DT: dateNow, CREATE_TM: formatTime(dateNow), - TRANSMT_DT: formatDate(dateNow), + TRANSMT_DT: dateNow, TRANSMT_TM: formatTime(dateNow), INCL_ADMIN: true, INCL_VEH: true, INCL_EST: true, - INCL_PROFL: true, - INCL_TOTAL: true, + INCL_PROFL: false, + INCL_TOTAL: false, INCL_VENDR: false, EMS_VER: "2.0", }, diff --git a/src/main/ems-parts-order/ems-parts-order-generate-lin.ts b/src/main/ems-parts-order/ems-parts-order-generate-lin.ts index ec58fbe..791909f 100644 --- a/src/main/ems-parts-order/ems-parts-order-generate-lin.ts +++ b/src/main/ems-parts-order/ems-parts-order-generate-lin.ts @@ -18,9 +18,7 @@ const EmsPartsOrderGenerateLinFile = async ( TRAN_CODE: partsOrderLine.jobline?.tran_code ?? "1", DB_REF: partsOrderLine.jobline?.db_ref, UNQ_SEQ: partsOrderLine.jobline?.unq_seq, - WHO_PAYS: partsOrderLine.jobline?.who_pays, - PART_DESCJ: partsOrderLine.jobline?.part_descj, - + PART_DES_J: false, LINE_DESC: partsOrderLine.jobline?.line_desc, PART_TYPE: partsOrderLine.priceChange === true diff --git a/src/main/ems-parts-order/ems-parts-order-generate-pfl.ts b/src/main/ems-parts-order/ems-parts-order-generate-pfl.ts index 66dbced..ab3b8d9 100644 --- a/src/main/ems-parts-order/ems-parts-order-generate-pfl.ts +++ b/src/main/ems-parts-order/ems-parts-order-generate-pfl.ts @@ -17,7 +17,7 @@ const EmsPartsOrderGeneratePflFile = async ( let records; if (partsOrder.job.cieca_pfl && !_.isEmpty(partsOrder.job.cieca_pfl)) { - Object.keys(partsOrder.job.cieca_pfl).map((key) => { + records = Object.keys(partsOrder.job.cieca_pfl).map((key) => { const record: DecodedPflLine = partsOrder.job.cieca_pfl[key]; return uppercaseObjectKeys(record); }); diff --git a/src/main/ems-parts-order/ems-parts-order-handler.ts b/src/main/ems-parts-order/ems-parts-order-handler.ts index 4471f2b..5072a9b 100644 --- a/src/main/ems-parts-order/ems-parts-order-handler.ts +++ b/src/main/ems-parts-order/ems-parts-order-handler.ts @@ -59,6 +59,7 @@ const generateEMSPartsOrder = async ( await EmsPartsOrderGenerateAd2File(partsOrder); await EmsPartsOrderGenerateVehFile(partsOrder); await EmsPartsOrderGenerateLinFile(partsOrder); + // These are not needed await EmsPartsOrderGeneratePfhFile(partsOrder); await EmsPartsOrderGeneratePflFile(partsOrder); await EmsPartsOrderGeneratePfmFile(partsOrder); @@ -66,6 +67,7 @@ const generateEMSPartsOrder = async ( await EmsPartsOrderGeneratePfpFile(partsOrder); await EmsPartsOrderGeneratePftFile(partsOrder); await EmsPartsOrderGenerateStlFile(partsOrder); + // Till Here await EmsPartsOrderGenerateTtlFile(partsOrder); await EmsPartsOrderGenerateEnvFile(partsOrder); diff --git a/src/main/util/ems-interface/fielddescriptors/env-field-descriptor.ts b/src/main/util/ems-interface/fielddescriptors/env-field-descriptor.ts index 5c16f53..ec84c52 100644 --- a/src/main/util/ems-interface/fielddescriptors/env-field-descriptor.ts +++ b/src/main/util/ems-interface/fielddescriptors/env-field-descriptor.ts @@ -21,8 +21,8 @@ export const envFieldLineDescriptors: FieldDescriptor[] = [ }, { name: "DB_DATE", - type: "C", - size: 10, + type: "D", + size: 8, decimalPlaces: 0, }, { @@ -87,8 +87,8 @@ export const envFieldLineDescriptors: FieldDescriptor[] = [ }, { name: "CREATE_DT", - type: "C", - size: 10, + type: "D", + size: 8, decimalPlaces: 0, }, { @@ -99,8 +99,8 @@ export const envFieldLineDescriptors: FieldDescriptor[] = [ }, { name: "TRANSMT_DT", - type: "C", - size: 10, + type: "D", + size: 8, decimalPlaces: 0, }, { diff --git a/src/main/util/ems-interface/fielddescriptors/pfp-field-descriptors.ts b/src/main/util/ems-interface/fielddescriptors/pfp-field-descriptors.ts index f5ed3d1..121a576 100644 --- a/src/main/util/ems-interface/fielddescriptors/pfp-field-descriptors.ts +++ b/src/main/util/ems-interface/fielddescriptors/pfp-field-descriptors.ts @@ -45,7 +45,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [ }, { name: "PRT_TX_IN1", - type: "C", + type: "L", size: 1, decimalPlaces: 0, }, @@ -57,7 +57,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [ }, { name: "PRT_TX_IN2", - type: "C", + type: "L", size: 1, decimalPlaces: 0, }, @@ -69,7 +69,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [ }, { name: "PRT_TX_IN3", - type: "C", + type: "L", size: 1, decimalPlaces: 0, }, @@ -81,7 +81,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [ }, { name: "PRT_TX_IN4", - type: "C", + type: "L", size: 1, decimalPlaces: 0, }, @@ -93,7 +93,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [ }, { name: "PRT_TX_IN5", - type: "C", + type: "L", size: 1, decimalPlaces: 0, },