/** * Is R_Status_ID Valid * @param R_Status_ID id * @return true if valid */ public bool IsR_Status_IDValid(int R_Status_ID) { if (R_Status_ID == 0) { return(true); } _Status = MStatus.Get(GetCtx(), R_Status_ID); int R_StatusCategory_ID = _Status.GetR_StatusCategory_ID(); // int R_RequestType_ID = GetR_RequestType_ID(); if (R_RequestType_ID == 0) { log.Warning("No Client Request Type"); return(false); } MRequestType rt = MRequestType.Get(GetCtx(), R_RequestType_ID); if (rt.GetR_StatusCategory_ID() != R_StatusCategory_ID) { log.Warning("Status Category different - Status(" + R_StatusCategory_ID + ") <> RequestType(" + rt.GetR_StatusCategory_ID() + ")"); return(false); } return(true); }
/** * Get Default Request Type * @param ctx context * @return Request Type */ public static MRequestType GetDefault(Ctx ctx) { MRequestType retValue = null; int AD_Client_ID = ctx.GetAD_Client_ID(); String sql = "SELECT * FROM R_RequestType " + "WHERE AD_Client_ID IN (0,11) AND IsActive='Y'" + "ORDER BY IsDefault DESC, AD_Client_ID DESC, R_Request_ID DESC"; DataSet ds; try { ds = new DataSet(); ds = DataBase.DB.ExecuteDataset(sql, null, null); foreach (DataRow dr in ds.Tables[0].Rows) { retValue = new MRequestType(ctx, dr, null); if (!retValue.IsDefault()) { retValue = null; } break; } ds = null; } catch (SqlException ex) { _log.Log(Level.SEVERE, sql, ex); } finally { ds = null; } return(retValue); }
/** * Get Request Type (cached) * @param ctx context * @param R_RequestType_ID id * @return Request Type */ public static MRequestType Get(Ctx ctx, int R_RequestType_ID) { int key = R_RequestType_ID; MRequestType retValue = (MRequestType)_cache[key]; if (retValue == null) { retValue = new MRequestType(ctx, R_RequestType_ID, null); _cache.Add(key, retValue); } return(retValue); }
/** * Get R_RequestType_ID * @return Request Type */ private int GetR_RequestType_ID() { MClientInfo ci = MClientInfo.Get(GetCtx(), GetAD_Client_ID()); int R_RequestType_ID = ci.GetR_RequestType_ID(); if (R_RequestType_ID != 0) { return(R_RequestType_ID); } log.Warning("Set Request Type in Window Client Info"); // Default MRequestType rt = MRequestType.GetDefault(GetCtx()); if (rt != null) { R_RequestType_ID = rt.GetR_RequestType_ID(); ci.SetR_RequestType_ID(R_RequestType_ID); ci.Save(); return(R_RequestType_ID); } // return(0); }
/** * Update/save Goals with Requests * @return true if updated */ private Boolean UpdateRequests() { if (!MEASURETYPE_Request.Equals(GetMeasureType()) || GetR_RequestType_ID() == 0) { return(false); } MGoal[] goals = MGoal.GetMeasureGoals(GetCtx(), GetPA_Measure_ID()); for (int i = 0; i < goals.Length; i++) { MGoal goal = goals[i]; // Find Role MRole role = null; if (goal.GetAD_Role_ID() != 0) { role = MRole.Get(GetCtx(), goal.GetAD_Role_ID()); } else if (goal.GetAD_User_ID() != 0) { MUser user = MUser.Get(GetCtx(), goal.GetAD_User_ID()); MRole[] roles = user.GetRoles(goal.GetAD_Org_ID()); if (roles.Length > 0) { role = roles[0]; } } if (role == null) { role = MRole.GetDefault(GetCtx(), false); // could result in wrong data } // Decimal? ManualActual = null; MRequestType rt = MRequestType.Get(GetCtx(), GetR_RequestType_ID()); String sql = rt.GetSqlPI(goal.GetRestrictions(false), goal.GetMeasureScope(), GetMeasureDataType(), null, role); //PreparedStatement pstmt = null; IDataReader idr = null; try // SQL statement could be wrong { idr = DataBase.DB.ExecuteReader(sql, null, null); if (idr.Read()) { ManualActual = Utility.Util.GetValueOfDecimal(idr[0]); } idr.Close(); } catch (Exception e) { if (idr != null) { idr.Close(); } log.Log(Level.SEVERE, sql, e); } // SQL may return no rows or null if (ManualActual == null) { ManualActual = Env.ZERO; log.Fine("No Value = " + sql); } goal.SetMeasureActual(ManualActual); goal.Save(); } return(true); }