| /* |
| * 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; |
| } |