/// <summary> /// Create the key columns in sequence /// </summary> /// <returns>List of Key Columns</returns> private List <String> CreateKeyColumns() { List <String> columns = new List <String>(); _leadingColumns = 0; // Sorting Fields columns.Add(sortBy1); // may add "" if (!columns.Contains(sortBy2)) { columns.Add(sortBy2); } if (!columns.Contains(sortBy3)) { columns.Add(sortBy3); } if (!columns.Contains(sortBy4)) { columns.Add(sortBy4); } // Add Account Segments MAcctSchemaElement[] elements = ASchema.GetAcctSchemaElements(); for (int i = 0; i < elements.Length; i++) { if (_leadingColumns == 0 && columns.Contains("AD_Org_ID") && columns.Contains("Account_ID")) { _leadingColumns = columns.Count; } // MAcctSchemaElement ase = elements[i]; String columnName = ase.GetColumnName(); if (columnName.StartsWith("UserElement")) { if (columnName.IndexOf("1") != -1) { _ref1 = ase.GetDisplayColumnName(); } else { _ref2 = ase.GetDisplayColumnName(); } } if (!columns.Contains(columnName)) { columns.Add(columnName); } } if (_leadingColumns == 0 && columns.Contains("AD_Org_ID") && columns.Contains("Account_ID")) { _leadingColumns = columns.Count; } return(columns); }
/// <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); }