diff --git a/server/AyaNova/kpi/KPIRequestOptions.cs b/server/AyaNova/kpi/KPIRequestOptions.cs index 008c86c3..d496aceb 100644 --- a/server/AyaNova/kpi/KPIRequestOptions.cs +++ b/server/AyaNova/kpi/KPIRequestOptions.cs @@ -1,4 +1,5 @@ using Microsoft.AspNetCore.Mvc; +using Newtonsoft.Json.Linq; using System; namespace AyaNova.KPI @@ -14,7 +15,7 @@ namespace AyaNova.KPI public string KPIName { get; set; } [FromBody] - public string Criteria { get; set; } + public JObject Criteria { get; set; } [FromBody] public DateTimeOffset ClientTimeStamp { get; set; } @@ -22,7 +23,7 @@ namespace AyaNova.KPI public KPIRequestOptions() { KPIName=string.Empty; - Criteria=string.Empty; + Criteria=null; } } diff --git a/server/AyaNova/kpi/WorkOrderItemLaborQuantitySummary.cs b/server/AyaNova/kpi/WorkOrderItemLaborQuantitySummary.cs index a83de5ce..c99111ec 100644 --- a/server/AyaNova/kpi/WorkOrderItemLaborQuantitySummary.cs +++ b/server/AyaNova/kpi/WorkOrderItemLaborQuantitySummary.cs @@ -1,4 +1,5 @@ using AyaNova.Biz; +using Newtonsoft.Json.Linq; namespace AyaNova.KPI { @@ -18,6 +19,25 @@ namespace AyaNova.KPI { //build data and meta queries + //validate criteria exists + if(!options.Criteria.ContainsKey("dateRange")) + { + _errorMessage="Missing 'dateRange' criteria"; + return; + } + + if(!options.Criteria.ContainsKey("unit")) + { + _errorMessage="Missing 'unit' criteria"; + return; + } + + var crit=(string)options.Criteria["dateRange"]; + var unit=(string)options.Criteria["unit"]; + + + // jobData.ContainsKey("toTag") ? (string)jobData["toTag"] : null + _dataQuery = @"SELECT row_to_json(t) as res from ( select SUM(AWORKORDERITEMLABOR.serviceratequantity) SERVICERATESUM, date_trunc('month',AWORKORDERITEMLABOR.servicestartdate) timeframe FROM AWORKORDER