/// <summary> /// Get Attributes Of Client /// </summary> /// <param name="ctx">Properties</param> /// <param name="onlyProductAttributes">only Product Attributes</param> /// <param name="onlyListAttributes">st Attributes</param> /// <returns>array of attributes</returns> public static MAttribute[] GetOfClient(Ctx ctx, bool onlyProductAttributes, bool onlyListAttributes) { List <MAttribute> list = new List <MAttribute>(); int AD_Client_ID = ctx.GetAD_Client_ID(); String sql = "SELECT * FROM M_Attribute " + "WHERE AD_Client_ID=" + AD_Client_ID + " AND IsActive='Y'"; if (onlyProductAttributes) { sql += " AND IsInstanceAttribute='N'"; } if (onlyListAttributes) { sql += " AND AttributeValueType='L'"; } sql += " ORDER BY Name"; DataSet ds = null; try { ds = ExecuteQuery.ExecuteDataset(sql, null); for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { DataRow dr = ds.Tables[0].Rows[i]; list.Add(new MAttribute(ctx, dr, null)); } ds = null; } catch (Exception e) { _log.Log(Level.SEVERE, sql, e); } MAttribute[] retValue = new MAttribute[list.Count]; retValue = list.ToArray(); _log.Fine("AD_Client_ID=" + AD_Client_ID + " - #" + retValue.Length); return(retValue); }
/** * Get Attribute Array * @param instanceAttributes true if for instance * @return instance or product attribute array */ public MAttribute[] GetMAttributes(bool instanceAttributes) { if ((_instanceAttributes == null && instanceAttributes) || _productAttributes == null && !instanceAttributes) { String sql = "SELECT mau.M_Attribute_ID " + "FROM M_AttributeUse mau" + " INNER JOIN M_Attribute ma ON (mau.M_Attribute_ID=ma.M_Attribute_ID) " + "WHERE mau.IsActive='Y' AND ma.IsActive='Y'" + " AND mau.M_AttributeSet_ID=" + GetM_AttributeSet_ID() + " AND ma.IsInstanceAttribute= " + ((instanceAttributes) ? "'Y'" : "'N'").ToString() + " ORDER BY mau.M_Attribute_ID"; List <MAttribute> list = new List <MAttribute>(); DataTable dt = null; IDataReader idr = DataBase.DB.ExecuteReader(sql, null, Get_TrxName()); dt = new DataTable(); dt.Load(idr); idr.Close(); try { //for (int i = 0; i < ds.Tables[0].Rows.Count; i++) foreach (DataRow dr in dt.Rows) { //DataRow dr = ds.Tables[0].Rows[i]; MAttribute ma = new MAttribute(GetCtx(), Convert.ToInt32(dr[0]), Get_TrxName()); list.Add(ma); } } catch (Exception ex) { if (idr != null) { idr.Close(); } log.Log(Level.SEVERE, sql, ex); } finally { dt = null; } // Differentiate attributes if (instanceAttributes) { _instanceAttributes = new MAttribute[list.Count]; _instanceAttributes = list.ToArray(); } else { _productAttributes = new MAttribute[list.Count]; _productAttributes = list.ToArray(); } } // if (instanceAttributes) { if (IsInstanceAttribute() != _instanceAttributes.Length > 0) { SetIsInstanceAttribute(_instanceAttributes.Length > 0); } } // Return if (instanceAttributes) { return(_instanceAttributes); } return(_productAttributes); }