diff options
-rw-r--r-- | plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/PercentCompleteTotalUtil.java | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/PercentCompleteTotalUtil.java b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/PercentCompleteTotalUtil.java index e90d4f8d85e..5806680c225 100644 --- a/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/PercentCompleteTotalUtil.java +++ b/plugins/org.eclipse.osee.ats.core/src/org/eclipse/osee/ats/core/util/PercentCompleteTotalUtil.java @@ -41,12 +41,13 @@ public class PercentCompleteTotalUtil { // Calculate total percent using configured weighting for (IAtsStateDefinition stateDef : workItem.getWorkDefinition().getStates()) { if (!stateDef.getStateType().isCompletedState() && !stateDef.getStateType().isCancelledState()) { - double stateWeightInt = stateDef.getStateWeight(); - double weight = stateWeightInt / 100; - int percentCompleteForState = getPercentCompleteSMAStateTotal(workItem, stateDef, services); - percent += weight * percentCompleteForState; + percent = addStatePercentWithWeight(services, percent, workItem, stateDef); } } + if (workItem.getStateMgr().getStateType().isCompleted()) { + IAtsStateDefinition stateDef = workItem.getStateDefinition(); + percent = addStatePercentWithWeight(services, percent, workItem, stateDef); + } } else { percent = getPercentCompleteSMASinglePercent(workItem, services); if (percent == 0) { @@ -70,6 +71,14 @@ public class PercentCompleteTotalUtil { return percent; } + private static int addStatePercentWithWeight(IAtsServices services, int percent, IAtsWorkItem workItem, IAtsStateDefinition stateDef) { + double stateWeightInt = stateDef.getStateWeight(); + double weight = stateWeightInt / 100; + int percentCompleteForState = getPercentCompleteSMAStateTotal(workItem, stateDef, services); + percent += weight * percentCompleteForState; + return percent; + } + private static boolean isAnyStateHavePercentEntered(IAtsWorkItem workItem) throws OseeCoreException { for (String stateName : workItem.getStateMgr().getVisitedStateNames()) { if (workItem.getStateMgr().getPercentComplete(stateName) != 0) { |