/// <summary>
        /// Factory: Return ArrayList of Account Schema Elements
        /// </summary>
        /// <param name="as1">Accounting Schema</param>
        /// <returns>ArrayList with Elements</returns>
        public static MAcctSchemaElement[] GetAcctSchemaElements(MAcctSchema as1)
        {
            int key = as1.GetC_AcctSchema_ID();

            MAcctSchemaElement[] retValue = (MAcctSchemaElement[])s_cache[key];
            if (retValue != null)
            {
                return(retValue);
            }

            _log.Fine("C_AcctSchema_ID=" + as1.GetC_AcctSchema_ID());
            List <MAcctSchemaElement> list = new List <MAcctSchemaElement>();
            //
            String sql = "SELECT * FROM C_AcctSchema_Element "
                         + "WHERE C_AcctSchema_ID=" + as1.GetC_AcctSchema_ID() + " AND IsActive='Y' ORDER BY SeqNo";

            try
            {
                DataSet ds = DataBase.DB.ExecuteDataset(sql, null, as1.Get_TrxName());
                for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
                {
                    DataRow            dr  = ds.Tables[0].Rows[i];
                    MAcctSchemaElement ase = new MAcctSchemaElement(as1.GetCtx(), dr, as1.Get_TrxName());
                    _log.Fine(" - " + ase);
                    if (ase.IsMandatory() && ase.GetDefaultValue() == 0)
                    {
                        _log.Log(Level.SEVERE, "No default value for " + ase.GetName());
                    }
                    list.Add(ase);
                }
            }
            catch (Exception e)
            {
                _log.Log(Level.SEVERE, sql, e);
            }

            retValue = new MAcctSchemaElement[list.Count];
            retValue = list.ToArray();
            s_cache.Add(key, retValue);
            return(retValue);
        }
Пример #2
0
        /// <summary>
        /// Factory: default combination
        /// </summary>
        /// <param name="acctSchema">accounting schema</param>
        /// <param name="optionalNull">if true, the optional values are null</param>
        /// <returns>Account</returns>
        public static MAccount GetDefault(MAcctSchema acctSchema, bool optionalNull)
        {
            MAccount vc = new MAccount(acctSchema);

            //  Active Elements
            MAcctSchemaElement[] elements = acctSchema.GetAcctSchemaElements();
            for (int i = 0; i < elements.Length; i++)
            {
                MAcctSchemaElement ase         = elements[i];
                String             elementType = ase.GetElementType();
                int  defaultValue = ase.GetDefaultValue();
                bool setValue     = ase.IsMandatory() || (!ase.IsMandatory() && !optionalNull);
                //
                if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_Organization))
                {
                    vc.SetAD_Org_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_Account))
                {
                    vc.SetAccount_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_SubAccount) && setValue)
                {
                    vc.SetC_SubAcct_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_BPartner) && setValue)
                {
                    vc.SetC_BPartner_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_Product) && setValue)
                {
                    vc.SetM_Product_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_Activity) && setValue)
                {
                    vc.SetC_Activity_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_LocationFrom) && setValue)
                {
                    vc.SetC_LocFrom_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_LocationTo) && setValue)
                {
                    vc.SetC_LocTo_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_Campaign) && setValue)
                {
                    vc.SetC_Campaign_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_OrgTrx) && setValue)
                {
                    vc.SetAD_OrgTrx_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_Project) && setValue)
                {
                    vc.SetC_Project_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_SalesRegion) && setValue)
                {
                    vc.SetC_SalesRegion_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_UserList1) && setValue)
                {
                    vc.SetUser1_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_UserList2) && setValue)
                {
                    vc.SetUser2_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_UserElement1) && setValue)
                {
                    vc.SetUserElement1_ID(defaultValue);
                }
                else if (elementType.Equals(MAcctSchemaElement.ELEMENTTYPE_UserElement2) && setValue)
                {
                    vc.SetUserElement2_ID(defaultValue);
                }
            }
            _log.Fine("Client_ID=" + vc.GetAD_Client_ID() + ", Org_ID=" + vc.GetAD_Org_ID()
                      + " - AcctSchema_ID=" + vc.GetC_AcctSchema_ID() + ", Account_ID=" + vc.GetAccount_ID());
            return(vc);
        }