bug[ats_ATS137028]: Action ATS123813 showing 99 percent when it is completed

Change-Id: Ib67aeaffc4409617c22c0af5eb4e04252730772c
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 e90d4f8..5806680 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 @@
             // 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 @@
       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) {