From a325d768da32b4c257f3fd0e8a7c5b5eaab4c9a2 Mon Sep 17 00:00:00 2001 From: Patrick Fic Date: Thu, 28 Sep 2023 09:30:41 -0700 Subject: [PATCH] Capture additional CIECA information. --- BodyshopUploader/Properties/AssemblyInfo.cs | 2 +- BodyshopUploader/Utils/AppMetaData.cs | 6 +- .../Utils/Decoder/EstimateDecoder.cs | 809 +++++++++++++----- 3 files changed, 607 insertions(+), 210 deletions(-) diff --git a/BodyshopUploader/Properties/AssemblyInfo.cs b/BodyshopUploader/Properties/AssemblyInfo.cs index 0f8b984..451913d 100644 --- a/BodyshopUploader/Properties/AssemblyInfo.cs +++ b/BodyshopUploader/Properties/AssemblyInfo.cs @@ -51,7 +51,7 @@ using System.Windows; // You can specify all the values or you can default the Build and Revision Numbers // by using the '*' as shown below: // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.1.2.0")] +[assembly: AssemblyVersion("1.1.3.0")] [assembly: AssemblyFileVersion("1.0.0.0")] //Setting Squirrel Aware Version. [assembly: AssemblyMetadata("SquirrelAwareVersion", "1")] \ No newline at end of file diff --git a/BodyshopUploader/Utils/AppMetaData.cs b/BodyshopUploader/Utils/AppMetaData.cs index b720504..9ca07d6 100644 --- a/BodyshopUploader/Utils/AppMetaData.cs +++ b/BodyshopUploader/Utils/AppMetaData.cs @@ -55,9 +55,9 @@ namespace RomeOnlinePartner.Utils { IsTest = true; - graphQlEndpoint = "https://db.test.bodyshop.app/v1/graphql"; - RestClient = new RestClient("https://api.test.imex.online"); - FirebaseAPIKey = "AIzaSyBw7_GTy7GtQyfkIRPVrWHEGKfcqeyXw0c"; + graphQlEndpoint = "https://db.test.romeonline.io/v1/graphql"; + RestClient = new RestClient("https://api.test.romeonline.io"); + FirebaseAPIKey = "AIzaSyAuLQR9SV5LsVxjU8wh9hvFLdhcAHU6cxE"; } else { diff --git a/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs b/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs index 0e921f1..f261341 100644 --- a/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs +++ b/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs @@ -37,13 +37,15 @@ namespace RomeOnlinePartner.Utils.Decoder bool vehSuccess = ParseVehFile(ref ret, _dir); bool pfhSuccess = ParsePfhFile(ref ret, _dir); bool pflSuccess = ParsePflFile(ref ret, _dir, system); + bool pftSuccess = ParsePftFile(ref ret, _dir, system); bool pfmSuccess = ParsePfmFile(ref ret, _dir); + bool pfoSuccess = ParsePfoFile(ref ret, _dir); bool stlSuccess = ParseStlFile(ref ret, _dir); bool ttlSuccess = ParseTtlFile(ref ret, _dir); bool linSuccess = ParseLinFile(ref ret, _dir, system); bool pfpSuccess = ParsePfpFile(ref ret, _dir); ret.labor_rate_desc = "EST"; - if (!ad1Success || !ad2Success || !vehSuccess || !pfhSuccess || !pflSuccess || !pfmSuccess || !stlSuccess || !ttlSuccess || !linSuccess || !pfpSuccess) return false; + if (!ad1Success || !ad2Success || !vehSuccess || !pfhSuccess || !pflSuccess || !pftSuccess || !pfmSuccess || !stlSuccess || !ttlSuccess || !linSuccess || !pfpSuccess) return false; return ret; } @@ -378,10 +380,10 @@ namespace RomeOnlinePartner.Utils.Decoder } - - var reader = new DBFReader(fis); - //RO_AUTH references a memo file and had to be reemoved. - reader.SetSelectFields(new string[] { "CLMT_LN","CLMT_FN","CLMT_TITLE","CLMT_CO_NM","CLMT_ADDR1","CLMT_ADDR2","CLMT_CITY","CLMT_ST","CLMT_ZIP","CLMT_CTRY","CLMT_PH1", + + var reader = new DBFReader(fis); + //RO_AUTH references a memo file and had to be reemoved. + reader.SetSelectFields(new string[] { "CLMT_LN","CLMT_FN","CLMT_TITLE","CLMT_CO_NM","CLMT_ADDR1","CLMT_ADDR2","CLMT_CITY","CLMT_ST","CLMT_ZIP","CLMT_CTRY","CLMT_PH1", "CLMT_PH1X","CLMT_PH2","CLMT_PH2X","CLMT_FAX","CLMT_FAXX","CLMT_EA","EST_CO_ID","EST_CO_NM","EST_ADDR1","EST_ADDR2","EST_CITY","EST_ST","EST_ZIP","EST_CTRY","EST_PH1","EST_PH1X","EST_PH2","EST_PH2X", "EST_FAX","EST_FAXX","EST_CT_LN","EST_CT_FN","EST_EA","EST_LIC_NO","EST_FILENO","INSP_CT_LN","INSP_CT_FN","INSP_ADDR1","INSP_ADDR2","INSP_CITY","INSP_ST","INSP_ZIP","INSP_CTRY","INSP_PH1","INSP_PH1X", "INSP_PH2","INSP_PH2X","INSP_FAX","INSP_FAXX","INSP_EA","INSP_CODE","INSP_DESC","INSP_DATE","INSP_TIME","RF_CO_ID","RF_CO_NM","RF_ADDR1","RF_ADDR2","RF_CITY","RF_ST","RF_ZIP","RF_CTRY","RF_PH1","RF_PH1X", @@ -391,170 +393,170 @@ namespace RomeOnlinePartner.Utils.Decoder "LOC_PH","LOC_PHX","LOC_EA" }); - var readValues = reader.NextRecord(); + var readValues = reader.NextRecord(); - //Check to see if the owner fields are populated with OWNR_* data. If not, use clmnt. + //Check to see if the owner fields are populated with OWNR_* data. If not, use clmnt. - if (String.IsNullOrWhiteSpace((string)j.ownr_ln) && String.IsNullOrWhiteSpace((string)j.ownr_fn) && String.IsNullOrWhiteSpace((string)j.ownr_co_nm)) + if (String.IsNullOrWhiteSpace((string)j.ownr_ln) && String.IsNullOrWhiteSpace((string)j.ownr_fn) && String.IsNullOrWhiteSpace((string)j.ownr_co_nm)) + { + + j.ownr_ln = readValues[0]; + j.ownr_fn = readValues[1]; + j.ownr_title = readValues[2]; + j.ownr_co_nm = readValues[3]; + j.ownr_addr1 = readValues[4]; + j.ownr_addr2 = readValues[5]; + j.ownr_city = readValues[6]; + j.ownr_st = readValues[7]; + j.ownr_zip = readValues[8]; + j.ownr_ctry = readValues[9]; + j.ownr_ph1 = readValues[10]; + if (String.IsNullOrWhiteSpace(j.ownr_ph1.Value)) { - - j.ownr_ln = readValues[0]; - j.ownr_fn = readValues[1]; - j.ownr_title = readValues[2]; - j.ownr_co_nm = readValues[3]; - j.ownr_addr1 = readValues[4]; - j.ownr_addr2 = readValues[5]; - j.ownr_city = readValues[6]; - j.ownr_st = readValues[7]; - j.ownr_zip = readValues[8]; - j.ownr_ctry = readValues[9]; - j.ownr_ph1 = readValues[10]; - if (String.IsNullOrWhiteSpace(j.ownr_ph1.Value)) - { - j.ownr_ph1 = readValues[12]; - } - //j.ownr_ph1x = readValues[11]; - j.ownr_ph2 = readValues[12]; - // j.ownr_ph2x = readValues[13]; - //j.ownr_fax = readValues[14]; - //j.ownr_faxx = readValues[15]; - j.ownr_ea = readValues[16]; - - //Set Owner Record - //Owner record will be removed by the application if required. - j.owner.data.ownr_ln = readValues[0]; - j.owner.data.ownr_fn = readValues[1]; - j.owner.data.ownr_title = readValues[2]; - j.owner.data.ownr_co_nm = readValues[3]; - j.owner.data.ownr_addr1 = readValues[4]; - j.owner.data.ownr_addr2 = readValues[5]; - j.owner.data.ownr_city = readValues[6]; - j.owner.data.ownr_st = readValues[7]; - j.owner.data.ownr_zip = readValues[8]; - j.owner.data.ownr_ctry = readValues[9]; - j.owner.data.ownr_ph1 = readValues[10]; - if (String.IsNullOrWhiteSpace(j.owner.data.ownr_ph1.Value)) - { - j.owner.data.ownr_ph1 = readValues[12]; - } - j.owner.data.ownr_ph2 = readValues[12]; - j.owner.data.ownr_ea = readValues[16]; + j.ownr_ph1 = readValues[12]; } + //j.ownr_ph1x = readValues[11]; + j.ownr_ph2 = readValues[12]; + // j.ownr_ph2x = readValues[13]; + //j.ownr_fax = readValues[14]; + //j.ownr_faxx = readValues[15]; + j.ownr_ea = readValues[16]; + + //Set Owner Record + //Owner record will be removed by the application if required. + j.owner.data.ownr_ln = readValues[0]; + j.owner.data.ownr_fn = readValues[1]; + j.owner.data.ownr_title = readValues[2]; + j.owner.data.ownr_co_nm = readValues[3]; + j.owner.data.ownr_addr1 = readValues[4]; + j.owner.data.ownr_addr2 = readValues[5]; + j.owner.data.ownr_city = readValues[6]; + j.owner.data.ownr_st = readValues[7]; + j.owner.data.ownr_zip = readValues[8]; + j.owner.data.ownr_ctry = readValues[9]; + j.owner.data.ownr_ph1 = readValues[10]; + if (String.IsNullOrWhiteSpace(j.owner.data.ownr_ph1.Value)) + { + j.owner.data.ownr_ph1 = readValues[12]; + } + j.owner.data.ownr_ph2 = readValues[12]; + j.owner.data.ownr_ea = readValues[16]; + } - //j.clmt_ln = readValues[0];//CLMT_LN - //j.clmt_fn = readValues[1];//CLMT_FN - //j.clmt_title = readValues[2];//CLMT_TITLE - //j.clmt_co_nm = readValues[3];//CLMT_CO_NM - //j.clmt_addr1 = readValues[4];//CLMT_ADDR1 - //j.clmt_addr2 = readValues[5];//CLMT_ADDR2 - //j.clmt_city = readValues[6];//CLMT_CITY - //j.clmt_st = readValues[7];//CLMT_ST - //j.clmt_zip = readValues[8];//CLMT_ZIP - //j.clmt_ctry = readValues[9];//CLMT_CTRY - //j.clmt_ph1 = readValues[10];//CLMT_PH1 - //j.clmt_ph1x = readValues[11];//CLMT_PH1X - //j.clmt_ph2 = readValues[12];//CLMT_PH2 - //j.clmt_ph2x = readValues[13];//CLMT_PH2X - //j.clmt_fax = readValues[14];//CLMT_FAX - //j.clmt_faxx = readValues[15];//CLMT_FAXX - //j.clmt_ea = readValues[16];//CLMT_EA - //j.est_co_id = readValues[17];//EST_CO_ID - j.est_co_nm = readValues[18];//EST_CO_NM - j.est_addr1 = readValues[19];//EST_ADDR1 - j.est_addr2 = readValues[20];//EST_ADDR2 - j.est_city = readValues[21];//EST_CITY - j.est_st = readValues[22];//EST_ST - j.est_zip = readValues[23];//EST_ZIP - j.est_ctry = readValues[24];//EST_CTRY - j.est_ph1 = readValues[25];//EST_PH1 - //j.est_ph1x = readValues[26];//EST_PH1X - //j.est_ph2 = readValues[27];//EST_PH2 - //j.est_ph2x = readValues[28];//EST_PH2X - //j.est_fax = readValues[29];//EST_FAX - //j.est_faxx = readValues[30];//EST_FAXX - j.est_ct_ln = readValues[31];//EST_CT_LN - j.est_ct_fn = readValues[32];//EST_CT_FN - j.est_ea = readValues[33];//EST_EA - //j.est_lic_no = readValues[34];//EST_LIC_NO - //j.est_fileno = readValues[35];//EST_FILENO - //j.insp_ct_ln = readValues[36];//INSP_CT_LN - //j.insp_ct_fn = readValues[37];//INSP_CT_FN - //j.insp_addr1 = readValues[38];//INSP_ADDR1 - //j.insp_addr2 = readValues[39];//INSP_ADDR2 - //j.insp_city = readValues[40];//INSP_CITY - //j.insp_st = readValues[41];//INSP_ST - //j.insp_zip = readValues[42];//INSP_ZIP - //j.insp_ctry = readValues[43];//INSP_CTRY - //j.insp_ph1 = readValues[44];//INSP_PH1 - //j.insp_ph1x = readValues[45];//INSP_PH1X - //j.insp_ph2 = readValues[46];//INSP_PH2 - //j.insp_ph2x = readValues[47];//INSP_PH2X - //j.insp_fax = readValues[48];//INSP_FAX - //j.insp_faxx = readValues[49];//INSP_FAXX - //j.insp_ea = readValues[50];//INSP_EA - //j.insp_code = readValues[51];//INSP_CODE - //j.insp_desc = readValues[52];//INSP_DESC - j.date_estimated = readValues[53];//INSP_DATE - //j.insp_time = readValues[54];//INSP_TIME - //j.rf_co_id = readValues[55];//RF_CO_ID - //j.rf_co_nm = readValues[56];//RF_CO_NM - //j.rf_addr1 = readValues[57];//RF_ADDR1 - //j.rf_addr2 = readValues[58];//RF_ADDR2 - //j.rf_city = readValues[59];//RF_CITY - //j.rf_st = readValues[60];//RF_ST - //j.rf_zip = readValues[61];//RF_ZIP - //j.rf_ctry = readValues[62];//RF_CTRY - //j.rf_ph1 = readValues[63];//RF_PH1 - //j.rf_ph1x = readValues[64];//RF_PH1X - //j.rf_ph2 = readValues[65];//RF_PH2 - //j.rf_ph2x = readValues[66];//RF_PH2X - //j.rf_fax = readValues[67];//RF_FAX - //j.rf_faxx = readValues[68];//RF_FAXX - //j.rf_ct_ln = readValues[69];//RF_CT_LN - //j.rf_ct_fn = readValues[70];//RF_CT_FN - //j.rf_ea = readValues[71];//RF_EA - //j.rf_tax_id = readValues[72];//RF_TAX_ID - //j.rf_lic_no = readValues[73];//RF_LIC_NO - //j.rf_bar_no = readValues[74];//RF_BAR_NO - //j.ro_in_date = readValues[75];//RO_IN_DATE - //j.ro_in_time = readValues[76];//RO_IN_TIME - //j.tar_date = readValues[77];//TAR_DATE - //j.tar_time = readValues[78];//TAR_TIME - //j.ro_cmpdate = readValues[79];//RO_CMPDATE - //j.ro_cmptime = readValues[80];//RO_CMPTIME - //j.date_out = readValues[81];//DATE_OUT - //j.time_out = readValues[82];//TIME_OUT - //j.rf_estimtr = readValues[83];//RF_ESTIMTR - //j.mktg_type = readValues[84];//MKTG_TYPE - //j.mktg_src = readValues[85];//MKTG_SRC - //j.loc_nm = readValues[86];//LOC_NM - //j.loc_addr1 = readValues[87];//LOC_ADDR1 - //j.loc_addr2 = readValues[88];//LOC_ADDR2 - //j.loc_city = readValues[89];//LOC_CITY - //j.loc_st = readValues[90];//LOC_ST - //j.loc_zip = readValues[91];//LOC_ZIP - //j.loc_ctry = readValues[92];//LOC_CTRY - //j.loc_ph1 = readValues[93];//LOC_PH1 - //j.loc_ph1x = readValues[94];//LOC_PH1X - //j.loc_ph2 = readValues[95];//LOC_PH2 - //j.loc_ph2x = readValues[96];//LOC_PH2X - //j.loc_fax = readValues[97];//LOC_FAX - //j.loc_faxx = readValues[98];//LOC_FAXX - //j.loc_ct_ln = readValues[99];//LOC_CT_LN - //j.loc_ct_fn = readValues[100];//LOC_CT_FN - //j.loc_title = readValues[101];//LOC_TITLE - //j.loc_ph = readValues[102];//LOC_PH - //j.loc_phx = readValues[103];//LOC_PHX - //j.loc_ea = readValues[104];//LOC_EA + //j.clmt_ln = readValues[0];//CLMT_LN + //j.clmt_fn = readValues[1];//CLMT_FN + //j.clmt_title = readValues[2];//CLMT_TITLE + //j.clmt_co_nm = readValues[3];//CLMT_CO_NM + //j.clmt_addr1 = readValues[4];//CLMT_ADDR1 + //j.clmt_addr2 = readValues[5];//CLMT_ADDR2 + //j.clmt_city = readValues[6];//CLMT_CITY + //j.clmt_st = readValues[7];//CLMT_ST + //j.clmt_zip = readValues[8];//CLMT_ZIP + //j.clmt_ctry = readValues[9];//CLMT_CTRY + //j.clmt_ph1 = readValues[10];//CLMT_PH1 + //j.clmt_ph1x = readValues[11];//CLMT_PH1X + //j.clmt_ph2 = readValues[12];//CLMT_PH2 + //j.clmt_ph2x = readValues[13];//CLMT_PH2X + //j.clmt_fax = readValues[14];//CLMT_FAX + //j.clmt_faxx = readValues[15];//CLMT_FAXX + //j.clmt_ea = readValues[16];//CLMT_EA + //j.est_co_id = readValues[17];//EST_CO_ID + j.est_co_nm = readValues[18];//EST_CO_NM + j.est_addr1 = readValues[19];//EST_ADDR1 + j.est_addr2 = readValues[20];//EST_ADDR2 + j.est_city = readValues[21];//EST_CITY + j.est_st = readValues[22];//EST_ST + j.est_zip = readValues[23];//EST_ZIP + j.est_ctry = readValues[24];//EST_CTRY + j.est_ph1 = readValues[25];//EST_PH1 + //j.est_ph1x = readValues[26];//EST_PH1X + //j.est_ph2 = readValues[27];//EST_PH2 + //j.est_ph2x = readValues[28];//EST_PH2X + //j.est_fax = readValues[29];//EST_FAX + //j.est_faxx = readValues[30];//EST_FAXX + j.est_ct_ln = readValues[31];//EST_CT_LN + j.est_ct_fn = readValues[32];//EST_CT_FN + j.est_ea = readValues[33];//EST_EA + //j.est_lic_no = readValues[34];//EST_LIC_NO + //j.est_fileno = readValues[35];//EST_FILENO + //j.insp_ct_ln = readValues[36];//INSP_CT_LN + //j.insp_ct_fn = readValues[37];//INSP_CT_FN + //j.insp_addr1 = readValues[38];//INSP_ADDR1 + //j.insp_addr2 = readValues[39];//INSP_ADDR2 + //j.insp_city = readValues[40];//INSP_CITY + //j.insp_st = readValues[41];//INSP_ST + //j.insp_zip = readValues[42];//INSP_ZIP + //j.insp_ctry = readValues[43];//INSP_CTRY + //j.insp_ph1 = readValues[44];//INSP_PH1 + //j.insp_ph1x = readValues[45];//INSP_PH1X + //j.insp_ph2 = readValues[46];//INSP_PH2 + //j.insp_ph2x = readValues[47];//INSP_PH2X + //j.insp_fax = readValues[48];//INSP_FAX + //j.insp_faxx = readValues[49];//INSP_FAXX + //j.insp_ea = readValues[50];//INSP_EA + //j.insp_code = readValues[51];//INSP_CODE + //j.insp_desc = readValues[52];//INSP_DESC + j.date_estimated = readValues[53];//INSP_DATE + //j.insp_time = readValues[54];//INSP_TIME + //j.rf_co_id = readValues[55];//RF_CO_ID + //j.rf_co_nm = readValues[56];//RF_CO_NM + //j.rf_addr1 = readValues[57];//RF_ADDR1 + //j.rf_addr2 = readValues[58];//RF_ADDR2 + //j.rf_city = readValues[59];//RF_CITY + //j.rf_st = readValues[60];//RF_ST + //j.rf_zip = readValues[61];//RF_ZIP + //j.rf_ctry = readValues[62];//RF_CTRY + //j.rf_ph1 = readValues[63];//RF_PH1 + //j.rf_ph1x = readValues[64];//RF_PH1X + //j.rf_ph2 = readValues[65];//RF_PH2 + //j.rf_ph2x = readValues[66];//RF_PH2X + //j.rf_fax = readValues[67];//RF_FAX + //j.rf_faxx = readValues[68];//RF_FAXX + //j.rf_ct_ln = readValues[69];//RF_CT_LN + //j.rf_ct_fn = readValues[70];//RF_CT_FN + //j.rf_ea = readValues[71];//RF_EA + //j.rf_tax_id = readValues[72];//RF_TAX_ID + //j.rf_lic_no = readValues[73];//RF_LIC_NO + //j.rf_bar_no = readValues[74];//RF_BAR_NO + //j.ro_in_date = readValues[75];//RO_IN_DATE + //j.ro_in_time = readValues[76];//RO_IN_TIME + //j.tar_date = readValues[77];//TAR_DATE + //j.tar_time = readValues[78];//TAR_TIME + //j.ro_cmpdate = readValues[79];//RO_CMPDATE + //j.ro_cmptime = readValues[80];//RO_CMPTIME + //j.date_out = readValues[81];//DATE_OUT + //j.time_out = readValues[82];//TIME_OUT + //j.rf_estimtr = readValues[83];//RF_ESTIMTR + //j.mktg_type = readValues[84];//MKTG_TYPE + //j.mktg_src = readValues[85];//MKTG_SRC + //j.loc_nm = readValues[86];//LOC_NM + //j.loc_addr1 = readValues[87];//LOC_ADDR1 + //j.loc_addr2 = readValues[88];//LOC_ADDR2 + //j.loc_city = readValues[89];//LOC_CITY + //j.loc_st = readValues[90];//LOC_ST + //j.loc_zip = readValues[91];//LOC_ZIP + //j.loc_ctry = readValues[92];//LOC_CTRY + //j.loc_ph1 = readValues[93];//LOC_PH1 + //j.loc_ph1x = readValues[94];//LOC_PH1X + //j.loc_ph2 = readValues[95];//LOC_PH2 + //j.loc_ph2x = readValues[96];//LOC_PH2X + //j.loc_fax = readValues[97];//LOC_FAX + //j.loc_faxx = readValues[98];//LOC_FAXX + //j.loc_ct_ln = readValues[99];//LOC_CT_LN + //j.loc_ct_fn = readValues[100];//LOC_CT_FN + //j.loc_title = readValues[101];//LOC_TITLE + //j.loc_ph = readValues[102];//LOC_PH + //j.loc_phx = readValues[103];//LOC_PHX + //j.loc_ea = readValues[104];//LOC_EA - reader.Dispose(); + reader.Dispose(); fis.Dispose(); - return true; - + return true; + } catch (IOException ex) { @@ -723,15 +725,15 @@ namespace RomeOnlinePartner.Utils.Decoder pfl_x.lbr_taxp = readValues[4];//LBR_TAXP pfl_x.lbr_adjp = readValues[5];//LBR_ADJP pfl_x.lbr_tx_ty1 = readValues[6];//LBR_TX_TY1 - pfl_x.lbr_tx_in1 = readValues[7];//LBR_TX_IN1 + pfl_x.lbr_tx_in1 = (string)readValues[7] == "Y" ? true : false;//LBR_TX_IN1 pfl_x.lbr_tx_ty2 = readValues[8];//LBR_TX_TY2 - pfl_x.lbr_tx_in2 = readValues[9];//LBR_TX_IN2 + pfl_x.lbr_tx_in2 = (string)readValues[9] == "Y" ? true : false;//LBR_TX_IN2 pfl_x.lbr_tx_ty3 = readValues[10];//LBR_TX_TY3 - pfl_x.lbr_tx_in3 = readValues[11];//LBR_TX_IN3 + pfl_x.lbr_tx_in3 = (string)readValues[11] == "Y" ? true : false;//LBR_TX_IN3 pfl_x.lbr_tx_ty4 = readValues[12];//LBR_TX_TY4 - pfl_x.lbr_tx_in4 = readValues[13];//LBR_TX_IN4 + pfl_x.lbr_tx_in4 = (string)readValues[13] == "Y" ? true : false;//LBR_TX_IN4 pfl_x.lbr_tx_ty5 = readValues[14];//LBR_TX_TY5 - pfl_x.lbr_tx_in5 = readValues[15];//LBR_TX_IN5 + pfl_x.lbr_tx_in5 = (string)readValues[15] == "Y" ? true : false;//LBR_TX_IN5 pflObj[readValues[0].ToString()] = pfl_x; } @@ -754,6 +756,395 @@ namespace RomeOnlinePartner.Utils.Decoder return false; } + public static bool ParsePftFile(ref dynamic j, string RootFilePath, string system = "M") + { + if (string.IsNullOrWhiteSpace(j.ciecaid.Value)) + { + return false; + } + logger.Trace(@"Parsing PFt at: {0}{1}", RootFilePath, j.ciecaid.Value); + + int retryNumber = 0; + while (retryNumber < numRetries) + { + try + { + using (Stream fis = File.Open(RootFilePath + j.ciecaid.Value + ".pft", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + { + var reader = new DBFReader(fis); + reader.SetSelectFields(new string[] { "TAX_TYPE1", //The below is is taken from a CCC estimate. Will require validation to ensure it is also accurate for Audatex/Mitchell + "TY1_TIER1", + "TY1_THRES1", + "TY1_RATE1", + "TY1_SUR1", + "TY1_TIER2", + "TY1_THRES2", + "TY1_RATE2", + "TY1_SUR2", + "TY1_TIER3", + "TY1_THRES3", + "TY1_RATE3", + "TY1_SUR3", + "TY1_TIER4", + "TY1_THRES4", + "TY1_RATE4", + "TY1_SUR4", + "TY1_TIER5", + "TY1_THRES5", + "TY1_RATE5", + "TY1_SUR5", + "TAX_TYPE2", + "TY2_TIER1", + "TY2_THRES1", + "TY2_RATE1", + "TY2_SUR1", + "TY2_TIER2", + "TY2_THRES2", + "TY2_RATE2", + "TY2_SUR2", + "TY2_TIER3", + "TY2_THRES3", + "TY2_RATE3", + "TY2_SUR3", + "TY2_TIER4", + "TY2_THRES4", + "TY2_RATE4", + "TY2_SUR4", + "TY2_TIER5", + "TY2_THRES5", + "TY2_RATE5", + "TY2_SUR5", + "TAX_TYPE3", + "TY3_TIER1", + "TY3_THRES1", + "TY3_RATE1", + "TY3_SUR1", + "TY3_TIER2", + "TY3_THRES2", + "TY3_RATE2", + "TY3_SUR2", + "TY3_TIER3", + "TY3_THRES3", + "TY3_RATE3", + "TY3_SUR3", + "TY3_TIER4", + "TY3_THRES4", + "TY3_RATE4", + "TY3_SUR4", + "TY3_TIER5", + "TY3_THRES5", + "TY3_RATE5", + "TY3_SUR5", + "TAX_TYPE4", + "TY4_TIER1", + "TY4_THRES1", + "TY4_RATE1", + "TY4_SUR1", + "TY4_TIER2", + "TY4_THRES2", + "TY4_RATE2", + "TY4_SUR2", + "TY4_TIER3", + "TY4_THRES3", + "TY4_RATE3", + "TY4_SUR3", + "TY4_TIER4", + "TY4_THRES4", + "TY4_RATE4", + "TY4_SUR4", + "TY4_TIER5", + "TY4_THRES5", + "TY4_RATE5", + "TY4_SUR5", + "TAX_TYPE5", + "TY5_TIER1", + "TY5_THRES1", + "TY5_RATE1", + "TY5_SUR1", + "TY5_TIER2", + "TY5_THRES2", + "TY5_RATE2", + "TY5_SUR2", + "TY5_TIER3", + "TY5_THRES3", + "TY5_RATE3", + "TY5_SUR3", + "TY5_TIER4", + "TY5_THRES4", + "TY5_RATE4", + "TY5_SUR4", + "TY5_TIER5", + "TY5_THRES5", + "TY5_RATE5", + "TY5_SUR5", + "TAX_TYPE6", + "TY6_TIER1", + "TY6_THRES1", + "TY6_RATE1", + "TY6_SUR1", + "TY6_TIER2", + "TY6_THRES2", + "TY6_RATE2", + "TY6_SUR2", + "TY6_TIER3", + "TY6_THRES3", + "TY6_RATE3", + "TY6_SUR3", + "TY6_TIER4", + "TY6_THRES4", + "TY6_RATE4", + "TY6_SUR4", + "TY6_TIER5", + "TY6_THRES5", + "TY6_RATE5", + "TY6_SUR5", + + }); + + var readValues = reader.NextRecord(); + + dynamic cieca_pft = new JObject(); + cieca_pft.tax_type1 = readValues[0]?.ToString(); + cieca_pft.ty1_tier1 = readValues[1]?.ToString(); + cieca_pft.ty1_thres1 = readValues[2]?.ToString(); + cieca_pft.ty1_rate1 = readValues[3]?.ToString(); + cieca_pft.ty1_sur1 = readValues[4]?.ToString(); + cieca_pft.ty1_tier2 = readValues[5]?.ToString(); + cieca_pft.ty1_thres2 = readValues[6]?.ToString(); + cieca_pft.ty1_rate2 = readValues[7]?.ToString(); + cieca_pft.ty1_sur2 = readValues[8]?.ToString(); + cieca_pft.ty1_tier3 = readValues[9]?.ToString(); + cieca_pft.ty1_thres3 = readValues[10]?.ToString(); + cieca_pft.ty1_rate3 = readValues[11]?.ToString(); + cieca_pft.ty1_sur3 = readValues[12]?.ToString(); + cieca_pft.ty1_tier4 = readValues[13]?.ToString(); + cieca_pft.ty1_thres4 = readValues[14]?.ToString(); + cieca_pft.ty1_rate4 = readValues[15]?.ToString(); + cieca_pft.ty1_sur4 = readValues[16]?.ToString(); + cieca_pft.ty1_tier5 = readValues[17]?.ToString(); + cieca_pft.ty1_thres5 = readValues[18]?.ToString(); + cieca_pft.ty1_rate5 = readValues[19]?.ToString(); + cieca_pft.ty1_sur5 = readValues[20]?.ToString(); + cieca_pft.tax_type2 = readValues[21]?.ToString(); + cieca_pft.ty2_tier1 = readValues[22]?.ToString(); + cieca_pft.ty2_thres1 = readValues[23]?.ToString(); + cieca_pft.ty2_rate1 = readValues[24]?.ToString(); + cieca_pft.ty2_sur1 = readValues[25]?.ToString(); + cieca_pft.ty2_tier2 = readValues[26]?.ToString(); + cieca_pft.ty2_thres2 = readValues[27]?.ToString(); + cieca_pft.ty2_rate2 = readValues[28]?.ToString(); + cieca_pft.ty2_sur2 = readValues[29]?.ToString(); + cieca_pft.ty2_tier3 = readValues[30]?.ToString(); + cieca_pft.ty2_thres3 = readValues[31]?.ToString(); + cieca_pft.ty2_rate3 = readValues[32]?.ToString(); + cieca_pft.ty2_sur3 = readValues[33]?.ToString(); + cieca_pft.ty2_tier4 = readValues[34]?.ToString(); + cieca_pft.ty2_thres4 = readValues[35]?.ToString(); + cieca_pft.ty2_rate4 = readValues[36]?.ToString(); + cieca_pft.ty2_sur4 = readValues[37]?.ToString(); + cieca_pft.ty2_tier5 = readValues[38]?.ToString(); + cieca_pft.ty2_thres5 = readValues[39]?.ToString(); + cieca_pft.ty2_rate5 = readValues[40]?.ToString(); + cieca_pft.ty2_sur5 = readValues[41]?.ToString(); + cieca_pft.tax_type3 = readValues[42]?.ToString(); + cieca_pft.ty3_tier1 = readValues[43]?.ToString(); + cieca_pft.ty3_thres1 = readValues[44]?.ToString(); + cieca_pft.ty3_rate1 = readValues[45]?.ToString(); + cieca_pft.ty3_sur1 = readValues[46]?.ToString(); + cieca_pft.ty3_tier2 = readValues[47]?.ToString(); + cieca_pft.ty3_thres2 = readValues[48]?.ToString(); + cieca_pft.ty3_rate2 = readValues[49]?.ToString(); + cieca_pft.ty3_sur2 = readValues[50]?.ToString(); + cieca_pft.ty3_tier3 = readValues[51]?.ToString(); + cieca_pft.ty3_thres3 = readValues[52]?.ToString(); + cieca_pft.ty3_rate3 = readValues[53]?.ToString(); + cieca_pft.ty3_sur3 = readValues[54]?.ToString(); + cieca_pft.ty3_tier4 = readValues[55]?.ToString(); + cieca_pft.ty3_thres4 = readValues[56]?.ToString(); + cieca_pft.ty3_rate4 = readValues[57]?.ToString(); + cieca_pft.ty3_sur4 = readValues[58]?.ToString(); + cieca_pft.ty3_tier5 = readValues[59]?.ToString(); + cieca_pft.ty3_thres5 = readValues[60]?.ToString(); + cieca_pft.ty3_rate5 = readValues[61]?.ToString(); + cieca_pft.ty3_sur5 = readValues[62]?.ToString(); + cieca_pft.tax_type4 = readValues[63]?.ToString(); + cieca_pft.ty4_tier1 = readValues[64]?.ToString(); + cieca_pft.ty4_thres1 = readValues[65]?.ToString(); + cieca_pft.ty4_rate1 = readValues[66]?.ToString(); + cieca_pft.ty4_sur1 = readValues[67]?.ToString(); + cieca_pft.ty4_tier2 = readValues[68]?.ToString(); + cieca_pft.ty4_thres2 = readValues[69]?.ToString(); + cieca_pft.ty4_rate2 = readValues[70]?.ToString(); + cieca_pft.ty4_sur2 = readValues[71]?.ToString(); + cieca_pft.ty4_tier3 = readValues[72]?.ToString(); + cieca_pft.ty4_thres3 = readValues[73]?.ToString(); + cieca_pft.ty4_rate3 = readValues[74]?.ToString(); + cieca_pft.ty4_sur3 = readValues[75]?.ToString(); + cieca_pft.ty4_tier4 = readValues[76]?.ToString(); + cieca_pft.ty4_thres4 = readValues[77]?.ToString(); + cieca_pft.ty4_rate4 = readValues[78]?.ToString(); + cieca_pft.ty4_sur4 = readValues[79]?.ToString(); + cieca_pft.ty4_tier5 = readValues[80]?.ToString(); + cieca_pft.ty4_thres5 = readValues[81]?.ToString(); + cieca_pft.ty4_rate5 = readValues[82]?.ToString(); + cieca_pft.ty4_sur5 = readValues[83]?.ToString(); + cieca_pft.tax_type5 = readValues[84]?.ToString(); + cieca_pft.ty5_tier1 = readValues[85]?.ToString(); + cieca_pft.ty5_thres1 = readValues[86]?.ToString(); + cieca_pft.ty5_rate1 = readValues[87]?.ToString(); + cieca_pft.ty5_sur1 = readValues[88]?.ToString(); + cieca_pft.ty5_tier2 = readValues[89]?.ToString(); + cieca_pft.ty5_thres2 = readValues[90]?.ToString(); + cieca_pft.ty5_rate2 = readValues[91]?.ToString(); + cieca_pft.ty5_sur2 = readValues[92]?.ToString(); + cieca_pft.ty5_tier3 = readValues[93]?.ToString(); + cieca_pft.ty5_thres3 = readValues[94]?.ToString(); + cieca_pft.ty5_rate3 = readValues[95]?.ToString(); + cieca_pft.ty5_sur3 = readValues[96]?.ToString(); + cieca_pft.ty5_tier4 = readValues[97]?.ToString(); + cieca_pft.ty5_thres4 = readValues[98]?.ToString(); + cieca_pft.ty5_rate4 = readValues[99]?.ToString(); + cieca_pft.ty5_sur4 = readValues[100]?.ToString(); + cieca_pft.ty5_tier5 = readValues[101]?.ToString(); + cieca_pft.ty5_thres5 = readValues[102]?.ToString(); + cieca_pft.ty5_rate5 = readValues[103]?.ToString(); + cieca_pft.ty5_sur5 = readValues[104]?.ToString(); + cieca_pft.tax_type6 = readValues[105]?.ToString(); + cieca_pft.ty6_tier1 = readValues[106]?.ToString(); + cieca_pft.ty6_thres1 = readValues[107]?.ToString(); + cieca_pft.ty6_rate1 = readValues[108]?.ToString(); + cieca_pft.ty6_sur1 = readValues[109]?.ToString(); + cieca_pft.ty6_tier2 = readValues[110]?.ToString(); + cieca_pft.ty6_thres2 = readValues[111]?.ToString(); + cieca_pft.ty6_rate2 = readValues[112]?.ToString(); + cieca_pft.ty6_sur2 = readValues[113]?.ToString(); + cieca_pft.ty6_tier3 = readValues[114]?.ToString(); + cieca_pft.ty6_thres3 = readValues[115]?.ToString(); + cieca_pft.ty6_rate3 = readValues[116]?.ToString(); + cieca_pft.ty6_sur3 = readValues[117]?.ToString(); + cieca_pft.ty6_tier4 = readValues[118]?.ToString(); + cieca_pft.ty6_thres4 = readValues[119]?.ToString(); + cieca_pft.ty6_rate4 = readValues[120]?.ToString(); + cieca_pft.ty6_sur4 = readValues[121]?.ToString(); + cieca_pft.ty6_tier5 = readValues[122]?.ToString(); + cieca_pft.ty6_thres5 = readValues[123]?.ToString(); + cieca_pft.ty6_rate5 = readValues[124]?.ToString(); + cieca_pft.ty6_sur5 = readValues[125]?.ToString(); + + + + j.cieca_pft = cieca_pft; + + + reader.Dispose(); + return true; + } + } + catch (IOException ex) + { + logger.Trace(ex, "Unable to open PFt file. Retrying. "); + retryNumber++; + Thread.Sleep(retrySleep); + } + } + return false; + } + + + public static bool ParsePfoFile(ref dynamic j, string RootFilePath, string system = "M") + { + if (string.IsNullOrWhiteSpace(j.ciecaid.Value)) + { + return false; + } + logger.Trace(@"Parsing PFO at: {0}{1}", RootFilePath, j.ciecaid.Value); + + int retryNumber = 0; + while (retryNumber < numRetries) + { + try + { + using (Stream fis = File.Open(RootFilePath + j.ciecaid.Value + ".pfo", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) + { + var reader = new DBFReader(fis); + reader.SetSelectFields(new string[] { "TX_TOW_TY", +"TOW_T_TY1", +"TOW_T_IN1", +"TOW_T_TY2", +"TOW_T_IN2", +"TOW_T_TY3", +"TOW_T_IN3", +"TOW_T_TY4", +"TOW_T_IN4", +"TOW_T_TY5", +"TOW_T_IN5", +"TOW_T_TY6", +"TOW_T_IN6", +"TX_STOR_TY", +"STOR_T_TY1", +"STOR_T_IN1", +"STOR_T_TY2", +"STOR_T_IN2", +"STOR_T_TY3", +"STOR_T_IN3", +"STOR_T_TY4", +"STOR_T_IN4", +"STOR_T_TY5", +"STOR_T_IN5", +"STOR_T_TY6", +"STOR_T_IN6" + }); + + var readValues = reader.NextRecord(); + + dynamic cieca_pfo = new JObject(); + cieca_pfo.tx_tow_ty = readValues[0]?.ToString(); + cieca_pfo.tow_t_ty1 = readValues[1]?.ToString(); + cieca_pfo.tow_t_in1 = (string)readValues[2] == "Y" ? true : false; + cieca_pfo.tow_t_ty2 = readValues[3]?.ToString(); + cieca_pfo.tow_t_in2 = (string)readValues[4] == "Y" ? true : false; + cieca_pfo.tow_t_ty3 = readValues[5]?.ToString(); + cieca_pfo.tow_t_in3 = (string)readValues[6] == "Y" ? true : false; + cieca_pfo.tow_t_ty4 = readValues[7]?.ToString(); + cieca_pfo.tow_t_in4 = (string)readValues[8] == "Y" ? true : false; + cieca_pfo.tow_t_ty5 = readValues[9]?.ToString(); + cieca_pfo.tow_t_in5 = (string)readValues[10] == "Y" ? true : false; + cieca_pfo.tow_t_ty6 = readValues[11]?.ToString(); + cieca_pfo.tow_t_in6 = (string)readValues[12] == "Y" ? true : false; + cieca_pfo.tx_stor_ty = readValues[13]?.ToString(); + cieca_pfo.stor_t_ty1 = readValues[14]?.ToString(); + cieca_pfo.stor_t_in1 = (string)readValues[15] == "Y" ? true : false; + cieca_pfo.stor_t_ty2 = readValues[16]?.ToString(); + cieca_pfo.stor_t_in2 = (string)readValues[17] == "Y" ? true : false; + cieca_pfo.stor_t_ty3 = readValues[18]?.ToString(); + cieca_pfo.stor_t_in3 = (string)readValues[19] == "Y" ? true : false; + cieca_pfo.stor_t_ty4 = readValues[20]?.ToString(); + cieca_pfo.stor_t_in4 = (string)readValues[21] == "Y" ? true : false; + cieca_pfo.stor_t_ty5 = readValues[22]?.ToString(); + cieca_pfo.stor_t_in5 = (string)readValues[23] == "Y" ? true : false; + cieca_pfo.stor_t_ty6 = readValues[24]?.ToString(); + cieca_pfo.stor_t_in6 = (string)readValues[25] == "Y" ? true : false; + + + + + j.cieca_pfo = cieca_pfo; + + + reader.Dispose(); + return true; + } + } + catch (IOException ex) + { + logger.Trace(ex, "Unable to open PFO file. Retrying. "); + retryNumber++; + Thread.Sleep(retrySleep); + } + } + return false; + } + public static bool ParsePfmFile(ref dynamic j, string RootFilePath) { if (string.IsNullOrWhiteSpace(j.ciecaid.Value)) @@ -803,7 +1194,7 @@ namespace RomeOnlinePartner.Utils.Decoder "MAT_TX_IN5" }); - dynamic d = new JObject(); + dynamic materialsObj = new JObject(); for (int i = 0; i < reader.RecordCount; i++) { @@ -818,14 +1209,14 @@ namespace RomeOnlinePartner.Utils.Decoder j.tax_paint_mat_rt = float.Parse(readValues[14].ToString()) / 100; o.cal_maxdlr = float.Parse(readValues[3].ToString()); o.cal_opcode = readValues[12].ToString(); - d.mapa = o; + materialsObj.mapa = o; break; case "MASH": j.rate_mash = float.Parse(readValues[11].ToString()) != 0 ? readValues[11] : readValues[7]; //Use CAL_LBRRTE if exists, otherwise us the pre threshold amt.? j.tax_shop_mat_rt = float.Parse(readValues[14].ToString()) / 100; o.cal_maxdlr = float.Parse(readValues[3].ToString()); o.cal_opcode = readValues[12].ToString(); - d.mash = o; + materialsObj.mash = o; break; case "MAHW": //TODO Should the remainder of these be index 7 or 11? j.rate_mahw = float.Parse(readValues[11].ToString()) != 0 ? readValues[11] : readValues[7]; //Use CAL_LBRRTE if exists, otherwise us the pre threshold amt.? @@ -850,37 +1241,43 @@ namespace RomeOnlinePartner.Utils.Decoder logger.Error("Unknown type value present in PFM file. {0}:{1}", readValues[0].ToString(), readValues[2]); break; } + dynamic pfm_x = new JObject(); + + pfm_x.matl_type = readValues[0];//MATL_TYPE + pfm_x.cal_code = readValues[1];//CAL_CODE + pfm_x.cal_desc = readValues[2];//CAL_DESC + pfm_x.cal_maxdlr = readValues[3];//CAL_MAXDLR + pfm_x.cal_prip = readValues[4];//CAL_PRIP + pfm_x.cal_secp = readValues[5];//CAL_SECP + pfm_x.mat_calp = readValues[6];//MAT_CALP + pfm_x.cal_prethr = readValues[7];//CAL_PRETHR + pfm_x.cal_pstthr = readValues[8];//CAL_PSTTHR + pfm_x.cal_thramt = readValues[9];//CAL_THRAMT + pfm_x.cal_lbrmin = readValues[10];//CAL_LBRMIN + pfm_x.cal_lbrrte = readValues[11];//CAL_LBRRTE + pfm_x.cal_opcode = readValues[12];//CAL_OPCODE + pfm_x.tax_ind = readValues[13];//TAX_IND + pfm_x.mat_taxp = readValues[14];//MAT_TAXP + pfm_x.mat_adjp = readValues[15];//MAT_ADJP + pfm_x.mat_tx_ty1 = readValues[16];//MAT_TX_TY1 + pfm_x.mat_tx_in1 = readValues[17];//MAT_TX_IN1 + pfm_x.mat_tx_ty2 = readValues[18];//MAT_TX_TY2 + pfm_x.mat_tx_in2 = readValues[19];//MAT_TX_IN2 + pfm_x.mat_tx_ty3 = readValues[20];//MAT_TX_TY3 + pfm_x.mat_tx_in3 = readValues[21];//MAT_TX_IN3 + pfm_x.mat_tx_ty4 = readValues[22];//MAT_TX_TY4 + pfm_x.mat_tx_in4 = readValues[23];//MAT_TX_IN4 + pfm_x.mat_tx_ty5 = readValues[24];//MAT_TX_TY5 + pfm_x.mat_tx_in5 = readValues[25];//MAT_TX_IN5 + + materialsObj[readValues[0].ToString()] = pfm_x; + } - j.materials = d; + //TODO: There was additional logic in paradox here around the mxdlr being > 0 which it always appears to be. - //j.matl_type = readValues[0];//MATL_TYPE - //j.cal_code = readValues[1];//CAL_CODE - //j.cal_desc = readValues[2];//CAL_DESC - //j.cal_maxdlr = readValues[3];//CAL_MAXDLR - //j.cal_prip = readValues[4];//CAL_PRIP - //j.cal_secp = readValues[5];//CAL_SECP - //j.mat_calp = readValues[6];//MAT_CALP - //j.cal_prethr = readValues[7];//CAL_PRETHR - //j.cal_pstthr = readValues[8];//CAL_PSTTHR - //j.cal_thramt = readValues[9];//CAL_THRAMT - //j.cal_lbrmin = readValues[10];//CAL_LBRMIN - //j.cal_lbrrte = readValues[11];//CAL_LBRRTE - //j.cal_opcode = readValues[12];//CAL_OPCODE - //j.tax_ind = readValues[13];//TAX_IND - //j.mat_taxp = readValues[14];//MAT_TAXP - //j.mat_adjp = readValues[15];//MAT_ADJP - //j.mat_tx_ty1 = readValues[16];//MAT_TX_TY1 - //j.mat_tx_in1 = readValues[17];//MAT_TX_IN1 - //j.mat_tx_ty2 = readValues[18];//MAT_TX_TY2 - //j.mat_tx_in2 = readValues[19];//MAT_TX_IN2 - //j.mat_tx_ty3 = readValues[20];//MAT_TX_TY3 - //j.mat_tx_in3 = readValues[21];//MAT_TX_IN3 - //j.mat_tx_ty4 = readValues[22];//MAT_TX_TY4 - //j.mat_tx_in4 = readValues[23];//MAT_TX_IN4 - //j.mat_tx_ty5 = readValues[24];//MAT_TX_TY5 - //j.mat_tx_in5 = readValues[25];//MAT_TX_IN5 + j.materials = materialsObj; @@ -909,7 +1306,7 @@ namespace RomeOnlinePartner.Utils.Decoder { try { - Stream fis = null; + Stream fis = null; try { fis = File.Open(RootFilePath + j.ciecaid.Value + "v.veh", FileMode.Open, FileAccess.Read, FileShare.ReadWrite); @@ -972,7 +1369,7 @@ namespace RomeOnlinePartner.Utils.Decoder v.v_prod_dt = readValues[7]?.ToString(); v.v_model_yr = readValues[8]?.ToString(); v.v_makecode = readValues[9]?.ToString(); - v.v_make_desc = readValues[10]?.ToString(); + v.v_make_desc = readValues[10]?.ToString() == "" ? readValues[9]?.ToString() : readValues[10]?.ToString(); v.v_model_desc = readValues[11]?.ToString(); v.v_type = readValues[12]?.ToString(); v.v_bstyle = readValues[13]?.ToString(); @@ -1275,7 +1672,7 @@ namespace RomeOnlinePartner.Utils.Decoder ttl_x.n_ttl_amt = readValues[6];//N_TTL_AMT ttl_x.prev_net = readValues[7];//PREV_NET ttl_x.supp_amt = readValues[8];//SUPP_AMT - // ttl_x.n_supp_amt = readValues[9];//N_SUPP_AMT + // ttl_x.n_supp_amt = readValues[9];//N_SUPP_AMT ttl_x.g_upd_amt = readValues[9];//G_UPD_AMT ttl_x.g_ttl_disc = readValues[10];//G_TTL_DISC ttl_x.g_tax = readValues[11];//G_TAX @@ -1410,16 +1807,16 @@ namespace RomeOnlinePartner.Utils.Decoder t.prt_mkupp = readValues[3];//PRT_MKUPP t.prt_mktyp = readValues[4];//PRT_MKTYP t.prt_discp = readValues[5];//PRT_DISCP - //t.prt_tx_ty1 = readValues[6];//PRT_TX_TY1 - //t.prt_tx_in1 = readValues[7];//PRT_TX_IN1 - //t.prt_tx_ty2 = readValues[8];//PRT_TX_TY2 - //t.prt_tx_in2 = readValues[9];//PRT_TX_IN2 - //t.prt_tx_ty3 = readValues[10];//PRT_TX_TY3 - //t.prt_tx_in3 = readValues[11];//PRT_TX_IN3 - //t.prt_tx_ty4 = readValues[12];//PRT_TX_TY4 - //t.prt_tx_in4 = readValues[13];//PRT_TX_IN4 - //t.prt_tx_ty5 = readValues[14];//PRT_TX_TY5 - //t.prt_tx_in5 = readValues[15];//PRT_TX_IN5 + t.prt_tx_ty1 = readValues[6];//PRT_TX_TY1 + t.prt_tx_in1 = (string)readValues[7] == "Y" ? true : false;//PRT_TX_IN1 + t.prt_tx_ty2 = readValues[8];//PRT_TX_TY2 + t.prt_tx_in2 = (string)readValues[9] == "Y" ? true : false;//PRT_TX_IN2 + t.prt_tx_ty3 = readValues[10];//PRT_TX_TY3 + t.prt_tx_in3 = (string)readValues[11] == "Y" ? true : false;//PRT_TX_IN3 + t.prt_tx_ty4 = readValues[12];//PRT_TX_TY4 + t.prt_tx_in4 = (string)readValues[13] == "Y" ? true : false;//PRT_TX_IN4 + t.prt_tx_ty5 = readValues[14];//PRT_TX_TY5 + t.prt_tx_in5 = (string)readValues[15] == "Y" ? true : false;//PRT_TX_IN5 taxRates[readValues[0]] = t; }