diff --git a/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs b/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs index 3e81286..bf4a211 100644 --- a/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs +++ b/BodyshopUploader/Utils/Decoder/EstimateDecoder.cs @@ -35,8 +35,8 @@ namespace BodyshopUploader.Utils.Decoder ParsePfhFile(ref ret, _dir); ParsePflFile(ref ret, _dir, _source); ParsePfmFile(ref ret, _dir); - //ParseStlFile(ref ret, _dir); //Contains information about the total amounts of the estimate. - //ParseTtlFile(ref ret, _dir); + ParseStlFile(ref ret, _dir); + ParseTtlFile(ref ret, _dir); ParseLinFile(ref ret, _dir); return ret; @@ -1000,11 +1000,6 @@ namespace BodyshopUploader.Utils.Decoder } } - public static object ReflectPropertyValue(object source, string property) - { - return source.GetType().GetProperty(property).GetValue(source, null); - } - public static void ParseTtlFile(ref dynamic j, string RootFilePath) { if (string.IsNullOrWhiteSpace(j.ciecaid.Value)) { return; } @@ -1019,9 +1014,32 @@ namespace BodyshopUploader.Utils.Decoder using (Stream fis = File.Open(RootFilePath + j.ciecaid.Value + ".ttl", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { var reader = new DBFReader(fis); - reader.SetSelectFields(new string[] { "G_TTL_AMT" }); + reader.SetSelectFields(new string[] { "G_TTL_AMT","G_BETT_AMT","G_RPD_AMT","G_DED_AMT","G_CUST_AMT","G_AA_AMT","N_TTL_AMT","PREV_NET", + "SUPP_AMT","N_SUPP_AMT","G_UPD_AMT","G_TTL_DISC","G_TAX","GST_AMT", }); var readValues = reader.NextRecord(); - j.Claim_Total = Convert.ToDecimal(readValues[0].ToString()); + + dynamic ttl_x = new JObject(); + ttl_x.g_ttl_amt = readValues[0];//G_TTL_AMT + ttl_x.g_bett_amt = readValues[1];//G_BETT_AMT + ttl_x.g_rpd_amt = readValues[2];//G_RPD_AMT + ttl_x.g_ded_amt = readValues[3];//G_DED_AMT + ttl_x.g_cust_amt = readValues[4];//G_CUST_AMT + ttl_x.g_aa_amt = readValues[5];//G_AA_AMT + 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.g_upd_amt = readValues[10];//G_UPD_AMT + ttl_x.g_ttl_disc = readValues[11];//G_TTL_DISC + ttl_x.g_tax = readValues[12];//G_TAX + ttl_x.gst_amt = readValues[13];//GST_AMT + + j.clm_total = Convert.ToDecimal(readValues[0].ToString()); + + j.cieca_ttl = new JObject(); + j.cieca_ttl.data = ttl_x; + + } return; } @@ -1038,7 +1056,7 @@ namespace BodyshopUploader.Utils.Decoder { if (string.IsNullOrWhiteSpace(j.ciecaid.Value)) { return; } - logger.Trace(@"Parsing Ttl at: {0}{1}", RootFilePath, j.ciecaid.Value); + logger.Trace(@"Parsing STL at: {0}{1}", RootFilePath, j.ciecaid.Value); int retryNumber = 0; while (retryNumber < 11) @@ -1048,23 +1066,41 @@ namespace BodyshopUploader.Utils.Decoder using (Stream fis = File.Open(RootFilePath + j.ciecaid.Value + ".stl", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) { var reader = new DBFReader(fis); - reader.SetSelectFields(new string[] { "TTL_TYPECD", "T_HRS" }); + reader.SetSelectFields(new string[] { "TTL_TYPE","TTL_TYPECD","T_AMT","T_HRS","T_ADDLBR","T_DISCAMT","T_MKUPAMT","T_GDISCAMT", + "TAX_AMT","NT_AMT","NT_HRS","NT_ADDLBR","NT_DISC","NT_MKUP","NT_GDIS","TTL_TYPAMT","TTL_HRS","TTL_AMT", + }); var _rc = reader.RecordCount; + var totals = new JArray(); for (var i = 0; i < _rc; i++) { var readValues = reader.NextRecord(); - switch (readValues[0]) - { + dynamic ttl_x = new JObject(); - //Labor Code - case "LAB": - j.BodyHrs = Convert.ToDecimal(readValues[1]); - break; - case "LAR": - j.RefHrs = Convert.ToDecimal(readValues[1]); - break; - } + ttl_x.ttl_type = readValues[0];//TTL_TYPE + ttl_x.ttl_typecd = readValues[1];//TTL_TYPECD + ttl_x.t_amt = readValues[2];//T_AMT + ttl_x.t_hrs = readValues[3];//T_HRS + //ttl_x.t_addlbr = readValues[4];//T_ADDLBR + //ttl_x.t_discamt = readValues[5];//T_DISCAMT + //ttl_x.t_mkupamt = readValues[6];//T_MKUPAMT + //ttl_x.t_gdiscamt = readValues[7];//T_GDISCAMT + ttl_x.tax_amt = readValues[8];//TAX_AMT + //ttl_x.nt_amt = readValues[9];//NT_AMT + //ttl_x.nt_hrs = readValues[10];//NT_HRS + //ttl_x.nt_addlbr = readValues[11];//NT_ADDLBR + //ttl_x.nt_disc = readValues[12];//NT_DISC + //ttl_x.nt_mkup = readValues[13];//NT_MKUP + //ttl_x.nt_gdis = readValues[14];//NT_GDIS + //ttl_x.ttl_typamt = readValues[15];//TTL_TYPAMT + ttl_x.ttl_hrs = readValues[16];//TTL_HRS + ttl_x.ttl_amt = readValues[17];//TTL_AMT + + + totals.Add(ttl_x); } + + j.cieca_stl = new JObject(); + j.cieca_stl.data = totals; } return; } @@ -1077,60 +1113,6 @@ namespace BodyshopUploader.Utils.Decoder } } - public static void ParseLinFile_OLD(ref dynamic j, string RootFilePath, SourceSystem _source = SourceSystem.Mitchell) - { - if (string.IsNullOrWhiteSpace(j.ciecaid.Value)) { return; } - - logger.Trace(@"Parsing Ttl at: {0}{1}", RootFilePath, j.ciecaid.Value); - //j.JobSublets = new List(); - - string _maxSupp = ""; - - int retryNumber = 0; - while (retryNumber < 11) - { - try - { - using (Stream fis = File.Open(RootFilePath + j.ciecaid.Value + ".lin", FileMode.Open, FileAccess.Read, FileShare.ReadWrite)) - { - var reader = new DBFReader(fis); - reader.SetSelectFields(new string[] { "PART_TYPE", "LINE_DESC", "UNQ_SEQ", "LINE_IND" }); - var _rc = reader.RecordCount; - for (var i = 0; i < _rc; i++) - { - var readValues = reader.NextRecord(); - //Find Max Supplement Number - if (string.Compare(_maxSupp, readValues[3].ToString()) < 0) - { - _maxSupp = readValues[3].ToString(); - } - - switch (readValues[3]) - { - - //Labor Code - case "PAS": - case "PASL": - //j.JobSublets.Add(new JobSublet() - //{ - // SubletDesc = readValues[1].ToString(), - // Unq_Seq = Convert.ToInt32(readValues[2]) - //}); - break; - } - } - } - j.MaxSupplement = _maxSupp; - return; - } - catch (IOException ex) - { - logger.Trace(ex, "Unable to open LIN file. Retrying. "); - retryNumber++; - Thread.Sleep(3000); - } - } - } } } } diff --git a/BodyshopUploader/Utils/JobProcessingQueue.cs b/BodyshopUploader/Utils/JobProcessingQueue.cs index 2d27ab0..d4c7265 100644 --- a/BodyshopUploader/Utils/JobProcessingQueue.cs +++ b/BodyshopUploader/Utils/JobProcessingQueue.cs @@ -91,7 +91,7 @@ namespace BodyshopUploader.Utils }", Variables = new { - key = "CA_BC_ciecaopcodes" + key = AppMetaData.ShopRegion + "_ciecaopcodes" } }; var data = await Utils.GraphQL.ExecuteQuery(r); diff --git a/BodyshopUploader/Utils/Queries/VehicleQueries.cs b/BodyshopUploader/Utils/Queries/VehicleQueries.cs index cbb649b..d47c2bc 100644 --- a/BodyshopUploader/Utils/Queries/VehicleQueries.cs +++ b/BodyshopUploader/Utils/Queries/VehicleQueries.cs @@ -32,9 +32,14 @@ namespace BodyshopUploader.Utils.Queries try { var d = await Utils.GraphQL.ExecuteQuery(r); - return d.vehicles?[0].id?.Value; + return d.vehicles?[0]?.id?.Value; } + catch(ArgumentOutOfRangeException Ex) + { + logger.Trace("No vehicles returned in GQL query."); + return ""; + } catch (Exception Ex) { logger.Error(Ex, "Querying for vehicle by VIN failed."); diff --git a/BodyshopUploader/Views/Login.xaml b/BodyshopUploader/Views/Login.xaml index f9b9c63..8ba388b 100644 --- a/BodyshopUploader/Views/Login.xaml +++ b/BodyshopUploader/Views/Login.xaml @@ -7,7 +7,7 @@ xmlns:vm="clr-namespace:BodyshopUploader.ViewModels" mc:Ignorable="d" Title="{x:Static p:Resources.Title_Login}" - Height="300" + Height="325" Width="475" xmlns:p="clr-namespace:BodyshopUploader.Properties" xmlns:util="clr-namespace:BodyshopUploader.Utils"