From 0eb5d5dd47cca7ea5d3448c7916f353df614d97a Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Tue, 27 Oct 2020 10:37:31 -0700 Subject: [PATCH] Resolved issue where EMS files were missed if they didnt have the expected suffix. RPS-20 --- electron/decoder/decoder.js | 327 +++++++++++++++++--------------- electron/file-scan/file-scan.js | 7 +- package.json | 2 +- 3 files changed, 184 insertions(+), 152 deletions(-) diff --git a/electron/decoder/decoder.js b/electron/decoder/decoder.js index e49e828..dd79602 100644 --- a/electron/decoder/decoder.js +++ b/electron/decoder/decoder.js @@ -80,163 +80,190 @@ async function DecodeEstimate(filePath, includeFilePathInReturnJob = false) { } async function DecodeAd1File(extensionlessFilePath) { - let dbf = await DBFFile.open(`${extensionlessFilePath}A.AD1`); - let records = await dbf.readRecords(1); - return _.pick(records[0], [ - // "INS_CO_ID", - "INS_CO_NM", - // "INS_ADDR1", - // "INS_ADDR2", - // "INS_CITY", - // "INS_ST", - // "INS_ZIP", - // "INS_CTRY", + let dbf; + try { + dbf = await DBFFile.open(`${extensionlessFilePath}A.AD1`); + } catch (error) { + log.error("Error opening AD1 File.", error); + dbf = await DBFFile.open(`${extensionlessFilePath}.AD1`); + dbf && log.log("Found AD1 file using regular CIECA Id."); + } finally { + if (!dbf) return {}; + let records = await dbf.readRecords(1); + return _.pick(records[0], [ + // "INS_CO_ID", + "INS_CO_NM", + // "INS_ADDR1", + // "INS_ADDR2", + // "INS_CITY", + // "INS_ST", + // "INS_ZIP", + // "INS_CTRY", - // "INS_EA", - // "POLICY_NO", - // "DED_AMT", - // "DED_STATUS", - // "ASGN_NO", - //"ASGN_DATE", - // "ASGN_TYPE", - "CLM_NO", - // "CLM_OFC_ID", - // "CLM_OFC_NM", - // "CLM_ADDR1", - // "CLM_ADDR2", - // "CLM_CITY", - // "CLM_ST", - // "CLM_ZIP", - // "CLM_CTRY", - // "CLM_PH1", - // "CLM_PH1X", - // "CLM_PH2", - // "CLM_PH2X", - // "CLM_FAX", - // "CLM_FAXX", - // "CLM_CT_LN", - // "CLM_CT_FN", - // "CLM_TITLE", - // "CLM_CT_PH", - // "CLM_CT_PHX", - // "CLM_EA", - // "PAYEE_NMS", - // "PAY_TYPE", - // "PAY_DATE", - // "PAY_CHKNM", - // "PAY_AMT", - // "AGT_CO_ID", - // "AGT_CO_NM", - // "AGT_ADDR1", - // "AGT_ADDR2", - // "AGT_CITY", - // "AGT_ST", - // "AGT_ZIP", - // "AGT_CTRY", - // "AGT_PH1", - // "AGT_PH1X", - // "AGT_PH2", - // "AGT_PH2X", - // "AGT_FAX", - // "AGT_FAXX", - // "AGT_CT_LN", - // "AGT_CT_FN", - // "AGT_CT_PH", - // "AGT_CT_PHX", - // "AGT_EA", - // "AGT_LIC_NO", - "LOSS_DATE", - // "LOSS_TYPE", - // "LOSS_DESC", - // "THEFT_IND", - // "CAT_NO", - // "TLOS_IND", - // "CUST_PR", - // "INSD_LN", - // "INSD_FN", - // "INSD_TITLE", - // "INSD_CO_NM", - // "INSD_ADDR1", - // "INSD_ADDR2", - // "INSD_CITY", - // "INSD_ST", - // "INSD_ZIP", - // "INSD_CTRY", - // "INSD_PH1", - // "INSD_PH1X", - // "INSD_PH2", - // "INSD_PH2X", - // "INSD_FAX", - // "INSD_FAXX", - // "INSD_EA", - "OWNR_LN", - "OWNR_FN", - // "OWNR_TITLE", - // "OWNR_CO_NM", - // "OWNR_ADDR1", - // "OWNR_ADDR2", - // "OWNR_CITY", - // "OWNR_ST", - // "OWNR_ZIP", - // "OWNR_CTRY", - // "OWNR_PH1", - // "OWNR_PH1X", - // "OWNR_PH2", - // "OWNR_PH2X", - // "OWNR_FAX", - // "OWNR_FAXX", - // "OWNR_EA", - // "INS_PH1", - // "INS_PH1X", - // "INS_PH2", - // "INS_PH2X", - // "INS_FAX", - // "INS_FAXX", - // "INS_CT_LN", - // "INS_CT_FN", - // "INS_TITLE", - // "INS_CT_PH", - // "INS_CT_PHX", - // "LOSS_CAT", - ]); + // "INS_EA", + // "POLICY_NO", + // "DED_AMT", + // "DED_STATUS", + // "ASGN_NO", + //"ASGN_DATE", + // "ASGN_TYPE", + "CLM_NO", + // "CLM_OFC_ID", + // "CLM_OFC_NM", + // "CLM_ADDR1", + // "CLM_ADDR2", + // "CLM_CITY", + // "CLM_ST", + // "CLM_ZIP", + // "CLM_CTRY", + // "CLM_PH1", + // "CLM_PH1X", + // "CLM_PH2", + // "CLM_PH2X", + // "CLM_FAX", + // "CLM_FAXX", + // "CLM_CT_LN", + // "CLM_CT_FN", + // "CLM_TITLE", + // "CLM_CT_PH", + // "CLM_CT_PHX", + // "CLM_EA", + // "PAYEE_NMS", + // "PAY_TYPE", + // "PAY_DATE", + // "PAY_CHKNM", + // "PAY_AMT", + // "AGT_CO_ID", + // "AGT_CO_NM", + // "AGT_ADDR1", + // "AGT_ADDR2", + // "AGT_CITY", + // "AGT_ST", + // "AGT_ZIP", + // "AGT_CTRY", + // "AGT_PH1", + // "AGT_PH1X", + // "AGT_PH2", + // "AGT_PH2X", + // "AGT_FAX", + // "AGT_FAXX", + // "AGT_CT_LN", + // "AGT_CT_FN", + // "AGT_CT_PH", + // "AGT_CT_PHX", + // "AGT_EA", + // "AGT_LIC_NO", + "LOSS_DATE", + // "LOSS_TYPE", + // "LOSS_DESC", + // "THEFT_IND", + // "CAT_NO", + // "TLOS_IND", + // "CUST_PR", + // "INSD_LN", + // "INSD_FN", + // "INSD_TITLE", + // "INSD_CO_NM", + // "INSD_ADDR1", + // "INSD_ADDR2", + // "INSD_CITY", + // "INSD_ST", + // "INSD_ZIP", + // "INSD_CTRY", + // "INSD_PH1", + // "INSD_PH1X", + // "INSD_PH2", + // "INSD_PH2X", + // "INSD_FAX", + // "INSD_FAXX", + // "INSD_EA", + "OWNR_LN", + "OWNR_FN", + // "OWNR_TITLE", + // "OWNR_CO_NM", + // "OWNR_ADDR1", + // "OWNR_ADDR2", + // "OWNR_CITY", + // "OWNR_ST", + // "OWNR_ZIP", + // "OWNR_CTRY", + // "OWNR_PH1", + // "OWNR_PH1X", + // "OWNR_PH2", + // "OWNR_PH2X", + // "OWNR_FAX", + // "OWNR_FAXX", + // "OWNR_EA", + // "INS_PH1", + // "INS_PH1X", + // "INS_PH2", + // "INS_PH2X", + // "INS_FAX", + // "INS_FAXX", + // "INS_CT_LN", + // "INS_CT_FN", + // "INS_TITLE", + // "INS_CT_PH", + // "INS_CT_PHX", + // "LOSS_CAT", + ]); + } } async function DecodeAd2File(extensionlessFilePath) { - let dbf = await DBFFile.open(`${extensionlessFilePath}B.AD2`); - let records = await dbf.readRecords(1); - return _.pick(records[0], ["CLMT_LN", "CLMT_FN"]); + let dbf; + try { + dbf = await DBFFile.open(`${extensionlessFilePath}B.AD2`); + } catch (error) { + log.error("Error opening AD2 File.", error); + dbf = await DBFFile.open(`${extensionlessFilePath}.AD2`); + dbf && log.log("Found AD2 file using regular CIECA Id."); + } finally { + if (!dbf) return {}; + let records = await dbf.readRecords(1); + return _.pick(records[0], ["CLMT_LN", "CLMT_FN"]); + } } async function DecodeVehFile(extensionlessFilePath) { - let dbf = await DBFFile.open(`${extensionlessFilePath}V.VEH`); - let records = await dbf.readRecords(1); - return _.pick(records[0], [ - // "IMPACT_1", - // "IMPACT_2", - // "DB_V_CODE", - // "PLATE_NO", - // "PLATE_ST", - "V_VIN", - // "V_COND", - // "V_PROD_DT", - "V_MODEL_YR", - // "V_MAKECODE", - "V_MAKEDESC", - "V_MODEL", - "V_TYPE", - "V_MILEAGE", - // "V_BSTYLE", - // "V_TRIMCODE", - // "TRIM_COLOR", - // "V_MLDGCODE", - // "V_ENGINE", - // "V_COLOR", - // "V_TONE", - // "V_STAGE", - // "PAINT_CD1", - // "PAINT_CD2", - // "PAINT_CD3", - ]); + let dbf; + try { + dbf = await DBFFile.open(`${extensionlessFilePath}V.VEH`); + } catch (error) { + log.error("Error opening VEH File.", error); + dbf = await DBFFile.open(`${extensionlessFilePath}.VEH`); + dbf && log.log("Found VEH file using regular CIECA Id."); + } finally { + if (!dbf) return {}; + let records = await dbf.readRecords(1); + return _.pick(records[0], [ + // "IMPACT_1", + // "IMPACT_2", + // "DB_V_CODE", + // "PLATE_NO", + // "PLATE_ST", + "V_VIN", + // "V_COND", + // "V_PROD_DT", + "V_MODEL_YR", + // "V_MAKECODE", + "V_MAKEDESC", + "V_MODEL", + "V_TYPE", + "V_MILEAGE", + // "V_BSTYLE", + // "V_TRIMCODE", + // "TRIM_COLOR", + // "V_MLDGCODE", + // "V_ENGINE", + // "V_COLOR", + // "V_TONE", + // "V_STAGE", + // "PAINT_CD1", + // "PAINT_CD2", + // "PAINT_CD3", + ]); + } } async function DecodeTtlFile(extensionlessFilePath) { let dbf = await DBFFile.open(`${extensionlessFilePath}.TTL`); diff --git a/electron/file-scan/file-scan.js b/electron/file-scan/file-scan.js index 1b17158..c7328e5 100644 --- a/electron/file-scan/file-scan.js +++ b/electron/file-scan/file-scan.js @@ -16,6 +16,11 @@ async function GetListOfEstimates() { const FilteredListOfSummarizedEstimates = ListOfSummarizedEstimates.filter( (j) => !j.ERROR ); + + log.log( + "Number of estimates filtered on file scan due to error: ", + ListOfSummarizedEstimates.length - FilteredListOfSummarizedEstimates.length + ); return FilteredListOfSummarizedEstimates; } @@ -71,4 +76,4 @@ async function DeleteAllEms() { } exports.GetListOfEstimates = GetListOfEstimates; -exports.DeleteAllEms = DeleteAllEms \ No newline at end of file +exports.DeleteAllEms = DeleteAllEms; diff --git a/package.json b/package.json index 739f6de..91a8d53 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "productName": "ImEX RPS", "author": "ImEX Systems Inc. ", "description": "ImEX RPS", - "version": "1.0.3", + "version": "1.0.5", "main": "electron/main.js", "homepage": "./", "dependencies": {