} // updateManualGoals /** * Update/save Goals with Achievement * @return true if updated */ private Boolean UpdateAchievementGoals() { if (!MEASURETYPE_Achievements.Equals(GetMeasureType())) { return(false); } DateTime today = DateTime.Now; MGoal[] goals = MGoal.GetMeasureGoals(GetCtx(), GetPA_Measure_ID()); for (int i = 0; i < goals.Length; i++) { MGoal goal = goals[i]; String MeasureScope = goal.GetMeasureScope(); String trunc = TimeUtil.TRUNC_DAY; if (MGoal.MEASUREDISPLAY_Year.Equals(MeasureScope)) { trunc = TimeUtil.TRUNC_YEAR; } else if (MGoal.MEASUREDISPLAY_Quarter.Equals(MeasureScope)) { trunc = TimeUtil.TRUNC_QUARTER; } else if (MGoal.MEASUREDISPLAY_Month.Equals(MeasureScope)) { trunc = TimeUtil.TRUNC_MONTH; } else if (MGoal.MEASUREDISPLAY_Week.Equals(MeasureScope)) { trunc = TimeUtil.TRUNC_WEEK; } DateTime compare = TimeUtil.Trunc(today, trunc); // MAchievement[] achievements = MAchievement.GetOfMeasure(GetCtx(), GetPA_Measure_ID()); Decimal ManualActual = Env.ZERO; for (int j = 0; j < achievements.Length; j++) { MAchievement achievement = achievements[j]; if (achievement.IsAchieved() && achievement.GetDateDoc() != null) { DateTime ach = TimeUtil.Trunc(achievement.GetDateDoc(), trunc); if (compare.Equals(ach)) { ManualActual = Decimal.Add(ManualActual, achievement.GetManualActual()); } } } goal.SetMeasureActual(ManualActual); goal.Save(); } return(true); }
} // afterSave /** * Update/save Goals * @return true if updated */ public Boolean UpdateGoals() { String mt = GetMeasureType(); try { if (MEASURETYPE_Manual.Equals(mt)) { return(UpdateManualGoals()); } else if (MEASURETYPE_Achievements.Equals(mt)) { return(UpdateAchievementGoals()); } else if (MEASURETYPE_Calculated.Equals(mt)) { return(UpdateCalculatedGoals()); } else if (MEASURETYPE_Ratio.Equals(mt)) { return(UpdateRatios()); } else if (MEASURETYPE_Request.Equals(mt)) { return(UpdateRequests()); } else if (MEASURETYPE_Project.Equals(mt)) { return(UpdateProjects()); } // Projects } catch (Exception e) { log.Log(Level.SEVERE, "MeasureType=" + mt, e); } return(false); } // updateGoals