Exemple #1
0
        /// <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);
        }
Exemple #2
0
        /**
         *  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);
        }