IO-3437 Beta 4

This commit is contained in:
Allan Carr
2025-11-10 20:06:43 -08:00
parent a322fb5ca4
commit e8d69d0b09
7 changed files with 45 additions and 32 deletions

View File

@@ -42,6 +42,7 @@ const EmsPartsOrderGenerateAd2File = async (
CLMT_CT_PH: partsOrder.job.clm_ct_ph, CLMT_CT_PH: partsOrder.job.clm_ct_ph,
CLMT_CT_PHX: partsOrder.job.clm_ct_phx, CLMT_CT_PHX: partsOrder.job.clm_ct_phx,
CLMT_EA: partsOrder.job.clm_ea, CLMT_EA: partsOrder.job.clm_ea,
RF_CO_NM: partsOrder.job.bodyshop.shopname,
}, },
]; ];

View File

@@ -13,35 +13,47 @@ const EmsPartsOrderGenerateEnvFile = async (
try { try {
const dateNow = new Date(); const dateNow = new Date();
const formatTime = (date: Date): string => const formatTime = (date: Date): string =>
[date.getHours(), date.getMinutes(), date.getSeconds()] `${date.getHours().toString().padStart(2, "0")}${date.getMinutes().toString().padStart(2, "0")}${date.getSeconds().toString().padStart(2, "0")}`;
.map((unit) => String(unit).padStart(2, "0"))
.join(""); const {
const formatDate = (date: Date): string => job: { ro_number, ciecaid },
`${String(date.getMonth() + 1).padStart(2, "0")}/${String( } = partsOrder;
date.getDate(),
).padStart(2, "0")}/${date.getFullYear()}`; // 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 = [ const records = [
{ {
EST_SYSTEM: "M", EST_SYSTEM: "M",
SW_VERSION: "25.3", SW_VERSION: "25.3",
DB_VERSION: "OCT_25_V", DB_VERSION: "OCT_25_V",
DB_DATE: formatDate(dateNow), DB_DATE: dateNow,
RO_ID: partsOrder.job.ro_number, RO_ID: ro_number,
ESTFILE_ID: partsOrder.job.ciecaid, ESTFILE_ID: ciecaid,
SUPP_NO: "1", SUPP_NO: highestLineInd ? getNumber(highestLineInd).toString() : "1",
EST_CTRY: "CA", EST_CTRY: "CAN",
TRANS_TYPE: "S", TOP_SECRET: "00000000-0000-0000-0000-000000000000",
TRANS_TYPE: highestLineInd ? highestLineInd.charAt(0) : "S",
STATUS: false, STATUS: false,
CREATE_DT: formatDate(dateNow), CREATE_DT: dateNow,
CREATE_TM: formatTime(dateNow), CREATE_TM: formatTime(dateNow),
TRANSMT_DT: formatDate(dateNow), TRANSMT_DT: dateNow,
TRANSMT_TM: formatTime(dateNow), TRANSMT_TM: formatTime(dateNow),
INCL_ADMIN: true, INCL_ADMIN: true,
INCL_VEH: true, INCL_VEH: true,
INCL_EST: true, INCL_EST: true,
INCL_PROFL: true, INCL_PROFL: false,
INCL_TOTAL: true, INCL_TOTAL: false,
INCL_VENDR: false, INCL_VENDR: false,
EMS_VER: "2.0", EMS_VER: "2.0",
}, },

View File

@@ -18,9 +18,7 @@ const EmsPartsOrderGenerateLinFile = async (
TRAN_CODE: partsOrderLine.jobline?.tran_code ?? "1", TRAN_CODE: partsOrderLine.jobline?.tran_code ?? "1",
DB_REF: partsOrderLine.jobline?.db_ref, DB_REF: partsOrderLine.jobline?.db_ref,
UNQ_SEQ: partsOrderLine.jobline?.unq_seq, UNQ_SEQ: partsOrderLine.jobline?.unq_seq,
WHO_PAYS: partsOrderLine.jobline?.who_pays, PART_DES_J: false,
PART_DESCJ: partsOrderLine.jobline?.part_descj,
LINE_DESC: partsOrderLine.jobline?.line_desc, LINE_DESC: partsOrderLine.jobline?.line_desc,
PART_TYPE: PART_TYPE:
partsOrderLine.priceChange === true partsOrderLine.priceChange === true

View File

@@ -17,7 +17,7 @@ const EmsPartsOrderGeneratePflFile = async (
let records; let records;
if (partsOrder.job.cieca_pfl && !_.isEmpty(partsOrder.job.cieca_pfl)) { 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]; const record: DecodedPflLine = partsOrder.job.cieca_pfl[key];
return uppercaseObjectKeys(record); return uppercaseObjectKeys(record);
}); });

View File

@@ -59,6 +59,7 @@ const generateEMSPartsOrder = async (
await EmsPartsOrderGenerateAd2File(partsOrder); await EmsPartsOrderGenerateAd2File(partsOrder);
await EmsPartsOrderGenerateVehFile(partsOrder); await EmsPartsOrderGenerateVehFile(partsOrder);
await EmsPartsOrderGenerateLinFile(partsOrder); await EmsPartsOrderGenerateLinFile(partsOrder);
// These are not needed
await EmsPartsOrderGeneratePfhFile(partsOrder); await EmsPartsOrderGeneratePfhFile(partsOrder);
await EmsPartsOrderGeneratePflFile(partsOrder); await EmsPartsOrderGeneratePflFile(partsOrder);
await EmsPartsOrderGeneratePfmFile(partsOrder); await EmsPartsOrderGeneratePfmFile(partsOrder);
@@ -66,6 +67,7 @@ const generateEMSPartsOrder = async (
await EmsPartsOrderGeneratePfpFile(partsOrder); await EmsPartsOrderGeneratePfpFile(partsOrder);
await EmsPartsOrderGeneratePftFile(partsOrder); await EmsPartsOrderGeneratePftFile(partsOrder);
await EmsPartsOrderGenerateStlFile(partsOrder); await EmsPartsOrderGenerateStlFile(partsOrder);
// Till Here
await EmsPartsOrderGenerateTtlFile(partsOrder); await EmsPartsOrderGenerateTtlFile(partsOrder);
await EmsPartsOrderGenerateEnvFile(partsOrder); await EmsPartsOrderGenerateEnvFile(partsOrder);

View File

@@ -21,8 +21,8 @@ export const envFieldLineDescriptors: FieldDescriptor[] = [
}, },
{ {
name: "DB_DATE", name: "DB_DATE",
type: "C", type: "D",
size: 10, size: 8,
decimalPlaces: 0, decimalPlaces: 0,
}, },
{ {
@@ -87,8 +87,8 @@ export const envFieldLineDescriptors: FieldDescriptor[] = [
}, },
{ {
name: "CREATE_DT", name: "CREATE_DT",
type: "C", type: "D",
size: 10, size: 8,
decimalPlaces: 0, decimalPlaces: 0,
}, },
{ {
@@ -99,8 +99,8 @@ export const envFieldLineDescriptors: FieldDescriptor[] = [
}, },
{ {
name: "TRANSMT_DT", name: "TRANSMT_DT",
type: "C", type: "D",
size: 10, size: 8,
decimalPlaces: 0, decimalPlaces: 0,
}, },
{ {

View File

@@ -45,7 +45,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [
}, },
{ {
name: "PRT_TX_IN1", name: "PRT_TX_IN1",
type: "C", type: "L",
size: 1, size: 1,
decimalPlaces: 0, decimalPlaces: 0,
}, },
@@ -57,7 +57,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [
}, },
{ {
name: "PRT_TX_IN2", name: "PRT_TX_IN2",
type: "C", type: "L",
size: 1, size: 1,
decimalPlaces: 0, decimalPlaces: 0,
}, },
@@ -69,7 +69,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [
}, },
{ {
name: "PRT_TX_IN3", name: "PRT_TX_IN3",
type: "C", type: "L",
size: 1, size: 1,
decimalPlaces: 0, decimalPlaces: 0,
}, },
@@ -81,7 +81,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [
}, },
{ {
name: "PRT_TX_IN4", name: "PRT_TX_IN4",
type: "C", type: "L",
size: 1, size: 1,
decimalPlaces: 0, decimalPlaces: 0,
}, },
@@ -93,7 +93,7 @@ export const pfpFieldLineDescriptors: FieldDescriptor[] = [
}, },
{ {
name: "PRT_TX_IN5", name: "PRT_TX_IN5",
type: "C", type: "L",
size: 1, size: 1,
decimalPlaces: 0, decimalPlaces: 0,
}, },