| /* |
| * Licensed to the Apache Software Foundation (ASF) under one |
| * or more contributor license agreements. See the NOTICE file |
| * distributed with this work for additional information |
| * regarding copyright ownership. The ASF licenses this file |
| * to you under the Apache License, Version 2.0 (the |
| * "License"); you may not use this file except in compliance |
| * with the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, |
| * software distributed under the License is distributed on an |
| * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY |
| * KIND, either express or implied. See the License for the |
| * specific language governing permissions and limitations |
| * under the License. |
| */ |
| |
| import org.apache.ofbiz.entity.condition.* |
| import org.apache.ofbiz.base.util.* |
| |
| taskStatusId = null |
| reopenedStatusId = null |
| backlogStatusId = parameters.backlogStatusId |
| paraBacklogStatusId = backlogStatusId |
| currentStatus = sprintStatus.currentStatusId |
| projectSprintList = [] |
| |
| if ("SPRINT_CLOSED".equals(currentStatus)) { |
| backlogStatusId = null |
| } else { |
| if (backlogStatusId == "Any") { |
| backlogStatusId = null |
| } else { |
| backlogStatusId = "CRQ_REVIEWED" |
| reopenedStatusId = "CRQ_REOPENED" |
| taskStatusId = "STS_CREATED" |
| } |
| } |
| orCurentExprs = [] |
| if (taskStatusId) { |
| orCurentExprs.add(EntityCondition.makeCondition("taskCurrentStatusId", EntityOperator.EQUALS, taskStatusId)) |
| orCurentExprs.add(EntityCondition.makeCondition("taskCurrentStatusId", EntityOperator.EQUALS, "SPRINT_ACTIVE")) |
| } |
| orBacklogExprs = [] |
| if (backlogStatusId) { |
| orBacklogExprs.add(EntityCondition.makeCondition("backlogStatusId", EntityOperator.EQUALS, backlogStatusId)) |
| } |
| if (reopenedStatusId) { |
| orBacklogExprs.add(EntityCondition.makeCondition("backlogStatusId", EntityOperator.EQUALS, reopenedStatusId)) |
| } |
| andExprs = [] |
| if (parameters.projectId) { |
| andExprs.add(EntityCondition.makeCondition("projectId", EntityOperator.EQUALS, parameters.projectId)) |
| } else { |
| andExprs.add(EntityCondition.makeCondition("projectId", EntityOperator.EQUALS, sprintStatus.workEffortParentId)) |
| } |
| if (orBacklogExprs) { |
| andExprs.add(EntityCondition.makeCondition(orBacklogExprs, EntityOperator.OR)) |
| } |
| if (orCurentExprs) { |
| andExprs.add(EntityCondition.makeCondition(orCurentExprs, EntityOperator.OR)) |
| } |
| andExprs.add(EntityCondition.makeCondition("sprintId", EntityOperator.EQUALS, parameters.sprintId)) |
| andExprs.add(EntityCondition.makeCondition("sprintTypeId", EntityOperator.EQUALS, "SCRUM_SPRINT")) |
| |
| projectSprintCond = EntityCondition.makeCondition(andExprs, EntityOperator.AND) |
| projectSprintList = from("ProjectSprintBacklogAndTask").where(andExprs).orderBy("custSequenceNum","custRequestId","taskTypeId").queryList() |
| |
| context.listIt = projectSprintList |
| context.paraBacklogStatusId = paraBacklogStatusId |
| |
| //get backlog and task information |
| if (parameters.sprintId) { |
| //get total backlog size |
| completedBacklog = 0 |
| reviewedBacklog = 0 |
| totalbacklog = 0 |
| allTask = [] |
| sprintList = from("CustRequestWorkEffort").where("workEffortId", parameters.sprintId).queryList() |
| sprintList.each { sprintMap -> |
| custMap = sprintMap.getRelatedOne("CustRequest", false) |
| //if ("RF_PROD_BACKLOG".equals(custMap.custRequestTypeId)) { |
| totalbacklog += 1 |
| if ("CRQ_REVIEWED".equals(custMap.statusId)){ |
| reviewedBacklog += 1 |
| } else { |
| completedBacklog += 1 |
| } |
| //get task |
| workEffortList = custMap.getRelated("CustRequestWorkEffort", null, null, false) |
| if (workEffortList) { |
| allTask.addAll(workEffortList) |
| } |
| //} |
| } |
| //get total task size |
| completedTask = 0 |
| createdTask = 0 |
| totalTask = 0 |
| if (allTask) { |
| allTask.each { taskMap -> |
| workEffMap = taskMap.getRelatedOne("WorkEffort", false) |
| if (!"SCRUM_SPRINT".equals(workEffMap.workEffortTypeId)) { |
| totalTask += 1 |
| if ("STS_CREATED".equals(workEffMap.currentStatusId)){ |
| createdTask += 1 |
| } else { |
| completedTask += 1 |
| } |
| } |
| } |
| } |
| context.completedBacklog = completedBacklog |
| context.reviewedBacklog = reviewedBacklog |
| context.totalbacklog = totalbacklog |
| context.completedTask = completedTask |
| context.createdTask = createdTask |
| context.totalTask = totalTask |
| } |