/// <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); }
/// <summary> /// Set Value and Description and Fully Qualified Flag for Combination /// </summary> public void SetValueDescription() { StringBuilder combi = new StringBuilder(); StringBuilder descr = new StringBuilder(); bool fullyQualified = true; // MAcctSchema as1 = new MAcctSchema(GetCtx(), GetC_AcctSchema_ID(), Get_TrxName()); // In Trx! MAcctSchemaElement[] elements = MAcctSchemaElement.GetAcctSchemaElements(as1); for (int i = 0; i < elements.Length; i++) { if (i > 0) { combi.Append(as1.GetSeparator()); descr.Append(as1.GetSeparator()); } MAcctSchemaElement element = elements[i]; String combiStr = "_"; // not defined String descrStr = "_"; if (MAcctSchemaElement.ELEMENTTYPE_Organization.Equals(element.GetElementType())) { if (GetAD_Org_ID() != 0) { MOrg org = new MOrg(GetCtx(), GetAD_Org_ID(), Get_TrxName()); // in Trx! combiStr = org.GetValue(); descrStr = org.GetName(); } else { combiStr = "*"; descrStr = "*"; fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_Account.Equals(element.GetElementType())) { if (GetAccount_ID() != 0) { if (_accountEV == null) { _accountEV = new MElementValue(GetCtx(), GetAccount_ID(), Get_TrxName()); } combiStr = _accountEV.GetValue(); descrStr = _accountEV.GetName(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Account"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_SubAccount.Equals(element.GetElementType())) { if (GetC_SubAcct_ID() != 0) { X_C_SubAcct sa = new X_C_SubAcct(GetCtx(), GetC_SubAcct_ID(), Get_TrxName()); combiStr = sa.GetValue(); descrStr = sa.GetName(); } } else if (MAcctSchemaElement.ELEMENTTYPE_Product.Equals(element.GetElementType())) { if (GetM_Product_ID() != 0) { X_M_Product product = new X_M_Product(GetCtx(), GetM_Product_ID(), Get_TrxName()); combiStr = product.GetValue(); descrStr = product.GetName(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Product"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_BPartner.Equals(element.GetElementType())) { if (GetC_BPartner_ID() != 0) { X_C_BPartner partner = new X_C_BPartner(GetCtx(), GetC_BPartner_ID(), Get_TrxName()); combiStr = partner.GetValue(); descrStr = partner.GetName(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Business Partner"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_OrgTrx.Equals(element.GetElementType())) { if (GetAD_OrgTrx_ID() != 0) { MOrg org = new MOrg(GetCtx(), GetAD_OrgTrx_ID(), Get_TrxName()); // in Trx! combiStr = org.GetValue(); descrStr = org.GetName(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Trx Org"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_LocationFrom.Equals(element.GetElementType())) { if (GetC_LocFrom_ID() != 0) { MLocation loc = new MLocation(GetCtx(), GetC_LocFrom_ID(), Get_TrxName()); // in Trx! combiStr = loc.GetPostal(); descrStr = loc.GetCity(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Location From"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_LocationTo.Equals(element.GetElementType())) { if (GetC_LocTo_ID() != 0) { MLocation loc = new MLocation(GetCtx(), GetC_LocFrom_ID(), Get_TrxName()); // in Trx! combiStr = loc.GetPostal(); descrStr = loc.GetCity(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Location To"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_SalesRegion.Equals(element.GetElementType())) { if (GetC_SalesRegion_ID() != 0) { MSalesRegion loc = new MSalesRegion(GetCtx(), GetC_SalesRegion_ID(), Get_TrxName()); combiStr = loc.GetValue(); descrStr = loc.GetName(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: SalesRegion"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_Project.Equals(element.GetElementType())) { if (GetC_Project_ID() != 0) { X_C_Project project = new X_C_Project(GetCtx(), GetC_Project_ID(), Get_TrxName()); combiStr = project.GetValue(); descrStr = project.GetName(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Project"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_Campaign.Equals(element.GetElementType())) { if (GetC_Campaign_ID() != 0) { X_C_Campaign campaign = new X_C_Campaign(GetCtx(), GetC_Campaign_ID(), Get_TrxName()); combiStr = campaign.GetValue(); descrStr = campaign.GetName(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Campaign"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_Activity.Equals(element.GetElementType())) { if (GetC_Activity_ID() != 0) { X_C_Activity act = new X_C_Activity(GetCtx(), GetC_Activity_ID(), Get_TrxName()); combiStr = act.GetValue(); descrStr = act.GetName(); } else if (element.IsMandatory()) { //log.warning("Mandatory Element missing: Campaign"); fullyQualified = false; } } else if (MAcctSchemaElement.ELEMENTTYPE_UserList1.Equals(element.GetElementType())) { if (GetUser1_ID() != 0) { MElementValue ev = new MElementValue(GetCtx(), GetUser1_ID(), Get_TrxName()); combiStr = ev.GetValue(); descrStr = ev.GetName(); } } else if (MAcctSchemaElement.ELEMENTTYPE_UserList2.Equals(element.GetElementType())) { if (GetUser2_ID() != 0) { MElementValue ev = new MElementValue(GetCtx(), GetUser2_ID(), Get_TrxName()); combiStr = ev.GetValue(); descrStr = ev.GetName(); } } else if (MAcctSchemaElement.ELEMENTTYPE_UserElement1.Equals(element.GetElementType())) { if (GetUserElement1_ID() != 0) { } } else if (MAcctSchemaElement.ELEMENTTYPE_UserElement2.Equals(element.GetElementType())) { if (GetUserElement2_ID() != 0) { } } combi.Append(combiStr); descr.Append(descrStr); } // Set Values base.SetCombination(combi.ToString()); base.SetDescription(descr.ToString()); if (fullyQualified != IsFullyQualified()) { SetIsFullyQualified(fullyQualified); _log.Fine("Combination=" + GetCombination() + " - " + GetDescription() + " - FullyQualified=" + fullyQualified); } }
/// <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); }