diff --git a/.vscode/launch.json b/.vscode/launch.json index f18b4927..d0cceaa8 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -48,7 +48,7 @@ "AYANOVA_DATA_PATH": "c:\\temp\\ravendata", "AYANOVA_USE_URLS": "http://*:7575;", //"AYANOVA_PERMANENTLY_ERASE_DATABASE":"true", - "AYANOVA_SERVER_TEST_MODE": "true", + "AYANOVA_SERVER_TEST_MODE": "false", "AYANOVA_SERVER_TEST_MODE_TZ_OFFSET": "-8", //"AYANOVA_REPORT_RENDERING_TIMEOUT":"1", "AYANOVA_SERVER_TEST_MODE_SEEDLEVEL": "small", diff --git a/server/AyaNova/kpi/WorkOrderByStatusList.cs b/server/AyaNova/kpi/WorkOrderByStatusList.cs index db747967..9be2d3f5 100644 --- a/server/AyaNova/kpi/WorkOrderByStatusList.cs +++ b/server/AyaNova/kpi/WorkOrderByStatusList.cs @@ -38,8 +38,26 @@ namespace AyaNova.KPI if (wostatus != null) { statusWhere = $"AND LASTSTATUSID = {wostatus}"; + }else{ + statusWhere= "AND LASTSTATUSID is null" ; } + if (!options.Criteria.ContainsKey("timeSpan")) + { + _errorMessage = "Missing 'timeSpan' criteria"; + return; + } + + if (!options.Criteria.ContainsKey("interval")) + { + _errorMessage = "Missing 'interval' criteria"; + return; + } + + var timeSpan = (string)options.Criteria["timeSpan"]; + var interval = (string)options.Criteria["interval"]; + var dateWhere = DataListSqlFilterCriteriaBuilder.DataFilterToColumnCriteria("aworkorder.createddate", UiFieldDataType.DateTime, "no-operator", timeSpan, options.ClientTimeStamp); + var wotags = options.Criteria["wotags"].ToObject>(); bool wotagsany = options.Criteria["wotagsany"].ToObject(); var woitemtags = options.Criteria["woitemtags"].ToObject>(); @@ -51,14 +69,15 @@ namespace AyaNova.KPI SELECT distinct(AWORKORDER.ID), AWORKORDER.SERIAL, AWORKORDER.SERVICEDATE, ACUSTOMER.NAME, - AWORKORDER.NOTES + AWORKORDER.NOTES, + AWORKORDER.LASTSTATUSID FROM AWORKORDER LEFT JOIN AWORKORDERITEM ON AWORKORDER.ID = AWORKORDERITEM.WORKORDERID LEFT JOIN AWORKORDERITEMSCHEDULEDUSER ON AWORKORDERITEM.ID = AWORKORDERITEMSCHEDULEDUSER.WORKORDERITEMID LEFT JOIN AWORKORDERSTATUS ON (AWORKORDER.LASTSTATUSID = AWORKORDERSTATUS.ID) LEFT JOIN ACUSTOMER ON (AWORKORDER.CUSTOMERID = ACUSTOMER.ID) - WHERE {statusWhere} {woTagsWhere} {woItemTagsWhere} - ORDER BY AWORKORDER.ID ASC + WHERE {dateWhere} {statusWhere} {woTagsWhere} {woItemTagsWhere} + ORDER BY AWORKORDER.ID DESC ) t"; _metaQuery = string.Empty; // @"SELECT row_to_json(t) as res from (