diff --git a/server/AyaNova/kpi/WorkOrderUnscheduledOpenList.cs b/server/AyaNova/kpi/WorkOrderUnscheduledOpenList.cs index 0cd44cc7..855c2184 100644 --- a/server/AyaNova/kpi/WorkOrderUnscheduledOpenList.cs +++ b/server/AyaNova/kpi/WorkOrderUnscheduledOpenList.cs @@ -28,39 +28,25 @@ AuthorizationRoles.TechRestricted; public string ErrorMessage => _errorMessage; public void BuildQuery(KPIRequestOptions options, long userId) - { - //build data and meta queries - - //validate criteria exists + { if (!options.Criteria.ContainsKey("wostatus")) { _errorMessage = "Missing 'wostatus' criteria"; return; } - - - var wostatus = (int?)options.Criteria["wostatus"]; - - var wotags = options.Criteria["wotags"].ToObject>(); - var woitemtags = options.Criteria["woitemtags"].ToObject>(); - - // var dateWhere = DataListSqlFilterCriteriaBuilder.DataFilterToColumnCriteria("aworkorderitemlabor.servicestopdate", UiFieldDataType.DateTime, "no-operator", timeSpan, options.ClientTimeStamp); - + var wostatus = (int?)options.Criteria["wostatus"]; string statusWhere = string.Empty; if (wostatus != null) { statusWhere = $"AND LASTSTATUSID = {wostatus}"; } - //optional tags - string woTagsWhere = null; - if (wotags.Count > 0) - woTagsWhere = " AND " + DataListSqlFilterCriteriaBuilder.TagDataFilterToColumnCriteria("aworkorder.tags", DataListFilterComparisonOperator.Contains, string.Join(",", wotags)); - - - string woItemTagsWhere = null; - if (woitemtags.Count > 0) - woItemTagsWhere = " AND " + DataListSqlFilterCriteriaBuilder.TagDataFilterToColumnCriteria("aworkorderitem.tags", DataListFilterComparisonOperator.Contains, string.Join(",", woitemtags)); + var wotags = options.Criteria["wotags"].ToObject>(); + bool wotagsany = options.Criteria["wotagsany"].ToObject(); + var woitemtags = options.Criteria["woitemtags"].ToObject>(); + bool woitemtagsany = options.Criteria["woitemtagsany"].ToObject(); + string woTagsWhere = DataListSqlFilterCriteriaBuilder.KPITagFilterToSqlCriteria("aworkorder.tags", wotags, wotagsany); + string woItemTagsWhere = DataListSqlFilterCriteriaBuilder.KPITagFilterToSqlCriteria("aworkorderitem.tags", woitemtags, woitemtagsany); ;