/** * Derive MAccount from record * @return Valid Account Combination */ public MAccount GetMAccount() { MAccount acct = MAccount.Get(GetCtx(), GetAD_Client_ID(), GetAD_Org_ID(), GetC_AcctSchema_ID(), GetAccount_ID(), GetC_SubAcct_ID(), GetM_Product_ID(), GetC_BPartner_ID(), GetAD_OrgTrx_ID(), GetC_LocFrom_ID(), GetC_LocTo_ID(), GetC_SalesRegion_ID(), GetC_Project_ID(), GetC_Campaign_ID(), GetC_Activity_ID(), GetUser1_ID(), GetUser2_ID(), GetUserElement1_ID(), GetUserElement2_ID()); if (acct != null && acct.Get_ID() == 0) { acct.Save(); } return(acct); }
} // afterDelete /** Update combination and optionally **/ private bool GetOrCreateCombination(Boolean newRecord) { int Account_ID = 0, C_SubAcct_ID = 0, M_Product_ID = 0, C_BPartner_ID = 0, AD_Org_ID = 0, AD_OrgTrx_ID = 0, C_LocFrom_ID = 0, C_LocTo_ID = 0, C_SalesRegion_ID = 0, C_Project_ID = 0, C_Campaign_ID = 0, C_Activity_ID = 0, User1_ID = 0, User2_ID = 0; if (GetC_ValidCombination_ID() == 0 || (!newRecord && (Is_ValueChanged("Account_ID") || Is_ValueChanged("M_Product_ID") || Is_ValueChanged("C_BPartner_ID") || Is_ValueChanged("AD_Org_ID") || Is_ValueChanged("C_Project_ID") || Is_ValueChanged("C_Campaign_ID") || Is_ValueChanged("C_Activity_ID")))) { MJournal gl = new MJournal(GetCtx(), GetGL_Journal_ID(), Get_TrxName()); // Validate all mandatory combinations are set MAcctSchema asc = MAcctSchema.Get(GetCtx(), gl.GetC_AcctSchema_ID()); MAcctSchemaElement[] elements = MAcctSchemaElement.GetAcctSchemaElements(asc); for (int i = 0; i < elements.Length; i++) { MAcctSchemaElement elem = elements[i]; String et = elem.GetElementType(); if (MAcctSchemaElement.ELEMENTTYPE_Account.Equals(et) && Get_ColumnIndex("Account_ID") > 0) { Account_ID = Util.GetValueOfInt(Get_Value("Account_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Account.Equals(et) && Get_ColumnIndex("C_SubAcct_ID") > 0) { C_SubAcct_ID = Util.GetValueOfInt(Get_Value("C_SubAcct_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Activity.Equals(et) && Get_ColumnIndex("C_Activity_ID") > 0) { C_Activity_ID = Util.GetValueOfInt(Get_Value("C_Activity_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_BPartner.Equals(et) && Get_ColumnIndex("C_BPartner_ID") > 0) { C_BPartner_ID = Util.GetValueOfInt(Get_Value("C_BPartner_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Campaign.Equals(et) && Get_ColumnIndex("C_BPartner_ID") > 0) { C_BPartner_ID = Util.GetValueOfInt(Get_Value("C_BPartner_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Organization.Equals(et)) { AD_Org_ID = GetAD_Org_ID(); } if (MAcctSchemaElement.ELEMENTTYPE_OrgTrx.Equals(et) && Get_ColumnIndex("AD_OrgTrx_ID") > 0) { AD_OrgTrx_ID = Util.GetValueOfInt(Get_Value("AD_OrgTrx_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Product.Equals(et) && Get_ColumnIndex("C_LocFrom_ID") > 0) { C_LocFrom_ID = Util.GetValueOfInt(Get_Value("C_LocFrom_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Product.Equals(et) && Get_ColumnIndex("C_LocTo_ID") > 0) { C_LocTo_ID = Util.GetValueOfInt(Get_Value("C_LocTo_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Product.Equals(et) && Get_ColumnIndex("M_Product_ID") > 0) { M_Product_ID = Util.GetValueOfInt(Get_Value("M_Product_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Project.Equals(et) && Get_ColumnIndex("C_Project_ID") > 0) { C_Project_ID = Util.GetValueOfInt(Get_Value("C_Project_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_Project.Equals(et) && Get_ColumnIndex("C_Campaign_ID") > 0) { C_Campaign_ID = Util.GetValueOfInt(Get_Value("C_Campaign_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_SalesRegion.Equals(et) && Get_ColumnIndex("C_SalesRegion_ID") > 0) { C_SalesRegion_ID = Util.GetValueOfInt(Get_Value("C_SalesRegion_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_UserList1.Equals(et) && Get_ColumnIndex("User1_ID") > 0) { User1_ID = Util.GetValueOfInt(Get_Value("User1_ID")); } if (MAcctSchemaElement.ELEMENTTYPE_UserList2.Equals(et) && Get_ColumnIndex("User2_ID") > 0) { User2_ID = Util.GetValueOfInt(Get_Value("User2_ID")); } } MAccount acct = MAccount.Get(GetCtx(), GetAD_Client_ID(), AD_Org_ID, gl.GetC_AcctSchema_ID(), Account_ID, C_SubAcct_ID, M_Product_ID, C_BPartner_ID, AD_OrgTrx_ID, C_LocFrom_ID, C_LocTo_ID, C_SalesRegion_ID, C_Project_ID, C_Campaign_ID, C_Activity_ID, User1_ID, User2_ID, 0, 0, 0, 0, 0, 0, 0, 0, 0); if (acct != null) { acct.Save(Get_TrxName()); // get ID from transaction SetC_ValidCombination_ID(acct.Get_ID()); //if (acct.GetAlias() != null && acct.GetAlias().length > 0) // setAlias_ValidCombination_ID(acct.get_ID()); //else // setAlias_ValidCombination_ID(0); } } else { fillDimensionsFromCombination(); } return(true); }