| 254 | | params.max = Math.min(params?.max?.toInteger() ?: 10, paramsMax) |
| 255 | | params.offset = params?.offset?.toInteger() ?: 0 |
| 256 | | params.sort = params?.sort ?: "targetStartDate" |
| 257 | | params.order = params?.order ?: "asc" |
| 258 | | |
| 259 | | budgetStatus = budgetStatus ?: TaskBudgetStatus.read(2) // Planned. |
| 260 | | startDate = startDate ?: dateUtilService.today |
| 261 | | endDate = endDate ?: dateUtilService.tomorrow |
| 262 | | |
| 263 | | def taskInstanceList = Task.createCriteria().list( |
| 264 | | max: params.max, |
| 265 | | offset: params.offset, |
| 266 | | sort: params.sort, |
| 267 | | order: params.order) { |
| 268 | | eq("taskBudgetStatus", budgetStatus) |
| 269 | | lt("targetStartDate", dateUtilService.tomorrow) |
| 270 | | ge("targetCompletionDate", dateUtilService.oneWeekAgo) |
| 271 | | eq("trash", false) |
| 272 | | } // createCriteria |
| | 254 | def paginateParams = [:] |
| | 255 | paginateParams.max = Math.min(params?.max?.toInteger() ?: 10, paramsMax) |
| | 256 | paginateParams.offset = params?.offset?.toInteger() ?: 0 |
| | 257 | |
| | 258 | def sort = "task." + (params?.sort ?: "targetStartDate") |
| | 259 | def order = params?.order == "desc" ? "desc" : "asc" |
| | 260 | def orderBy = " order by " + sort + ' ' + order |
| | 261 | |
| | 262 | def namedParams = [:] |
| | 263 | namedParams.budgetStatus = budgetStatus ?: TaskBudgetStatus.read(2) // Planned. |
| | 264 | namedParams.startDate = startDate ?: dateUtilService.today |
| | 265 | namedParams.endDate = endDate ?: dateUtilService.oneWeekAgo |
| | 266 | |
| | 267 | def baseQuery = "from Task as task \ |
| | 268 | where (task.trash = false \ |
| | 269 | and task.budgetStatus = :budgetStatus \ |
| | 270 | and task.targetStartDate < :endDate \ |
| | 271 | and task.targetCompletionDate >= :startDate \ |
| | 272 | )" |
| | 273 | |
| | 274 | def searchQuery = "select distinct task " + baseQuery + orderBy |
| | 275 | def list = Task.executeQuery(searchQuery, namedParams, paginateParams) |
| | 276 | |
| | 277 | def countQuery = "select count(distinct task) as taskCount " + baseQuery |
| | 278 | def totalCount = Task.executeQuery(countQuery, namedParams)[0].toInteger() |
| | 279 | |
| | 280 | def taskInstanceList = new PagedResultList(list, totalCount) |
| | 281 | return taskInstanceList |