diff --git a/BodyshopUploader/BodyshopUploader.csproj b/BodyshopUploader/BodyshopUploader.csproj index 43b530d..53a63f5 100644 --- a/BodyshopUploader/BodyshopUploader.csproj +++ b/BodyshopUploader/BodyshopUploader.csproj @@ -317,6 +317,7 @@ + diff --git a/BodyshopUploader/Utils/JobProcessingQueue.cs b/BodyshopUploader/Utils/JobProcessingQueue.cs index d4c7265..b0c6488 100644 --- a/BodyshopUploader/Utils/JobProcessingQueue.cs +++ b/BodyshopUploader/Utils/JobProcessingQueue.cs @@ -78,7 +78,7 @@ namespace BodyshopUploader.Utils } } } - + private static async Task GetOpCodes() { var r = new GraphQLRequest @@ -91,7 +91,7 @@ namespace BodyshopUploader.Utils }", Variables = new { - key = AppMetaData.ShopRegion + "_ciecaopcodes" + key = AppMetaData.ShopRegion + "_ciecaopcodes" } }; var data = await Utils.GraphQL.ExecuteQuery(r); @@ -122,6 +122,7 @@ namespace BodyshopUploader.Utils newJob.ownr_name = item.Job.ownr_fn?.Value + " " + item.Job.ownr_ln?.Value; newJob.vehicle_info = item.Job.vehicle.data.v_model_yr.Value + " " + item.Job.vehicle.data.v_make_desc.Value + " " + item.Job.vehicle.data.v_model_desc.Value; newJob.clm_no = item.Job.clm_no?.Value; + newJob.clm_amt = item.Job.clm_total?.Value; var vehuuid = await Utils.Queries.VehicleQueries.GetVehicleUuidByVin(item?.Job?.vehicle?.data?.v_vin.Value ?? ""); if (!string.IsNullOrEmpty(vehuuid)) @@ -130,6 +131,12 @@ namespace BodyshopUploader.Utils newJob.est_data.vehicleid = vehuuid; } + if (await Utils.Queries.JobsQueries.GetJobUuidByClmNo(item.Job.clm_no?.Value ?? "")) + { + newJob.issupplement = true; + }; + + var r = new GraphQLRequest { Query = @" diff --git a/BodyshopUploader/Utils/Queries/JobsQueries.cs b/BodyshopUploader/Utils/Queries/JobsQueries.cs new file mode 100644 index 0000000..f2c96db --- /dev/null +++ b/BodyshopUploader/Utils/Queries/JobsQueries.cs @@ -0,0 +1,50 @@ +using GraphQL.Common.Request; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BodyshopUploader.Utils.Queries +{ + class JobsQueries + { + private static NLog.Logger logger = NLog.LogManager.GetCurrentClassLogger(); + + public static async Task GetJobUuidByClmNo(string ClmNo) + { + if (string.IsNullOrEmpty(ClmNo)) + return false; + + var r = new GraphQLRequest + { + Query = @"query QUERY_JOB_BY_CLM_NO($clm_no: String!) { + jobs(where: {clm_no: {_eq: $clm_no}}) { + id + } + }", + Variables = new + { + clm_no = ClmNo + } + }; + + try + { + var d = await Utils.GraphQL.ExecuteQuery(r); + return d.jobs?.Count > 0; + + } + catch (ArgumentOutOfRangeException Ex) + { + logger.Trace(Ex, "No jobs returned in GQL query."); + return false; + } + catch (Exception Ex) + { + logger.Error(Ex, "Querying for jobs by clm_no failed."); + return false; + } + } + } +} diff --git a/Reference/CIECA Standard.xlsx b/Reference/CIECA Standard.xlsx index dd0cea7..67f0b05 100644 Binary files a/Reference/CIECA Standard.xlsx and b/Reference/CIECA Standard.xlsx differ