/// <summary> /// Load controls lookup etc. /// </summary> /// <param name="ctx"></param> /// <param name="windowNo"></param> /// <param name="C_AcctSchema_ID"></param> /// <returns>class lookups</returns> public AccountSchema AccountSchemaLoad(Ctx ctx, int windowNo, int C_AcctSchema_ID) { AccountSchema objSchema = new AccountSchema(); MAcctSchemaElement[] elements = null; var _AcctSchema = new MAcctSchema(ctx, C_AcctSchema_ID, null); ctx.GetCtx(windowNo).SetContext(windowNo, "C_AcctSchema_ID", C_AcctSchema_ID); elements = _AcctSchema.GetAcctSchemaElements(); objSchema.IsHasAlies = _AcctSchema.IsHasAlias(); objSchema.Elements = new List <AccountingElements>(); for (int i = 0; i < elements.Length; i++) { AccountingElements obj = new AccountingElements(); MAcctSchemaElement ase = elements[i]; obj.Type = ase.GetElementType(); obj.IsMandatory = ase.IsMandatory(); obj.ID = ase.Get_ID(); obj.Name = ase.GetName(); obj.DefaultValue = ase.GetDefaultValue(); obj.SeqNo = ase.GetSeqNo(); obj.AD_Column_ID = ase.GetAD_Column_ID(); obj.IsHeavyData = Util.GetValueOfBool(ase.Get_Value("IsHeavyData")); objSchema.Elements.Add(obj); } objSchema.Description = _AcctSchema.ToString(); return(objSchema); }
} // updateDefaults /// <summary> /// Update Default Accounts. // _Default.xxxx = C_ValidCombination_ID => Account_ID=C_ElementValue_ID /// </summary> /// <param name="C_AcctSchema_ID">Accounting Schema</param> private void UpdateDefaultAccounts(int C_AcctSchema_ID) { log.Config("C_AcctSchema_ID=" + C_AcctSchema_ID); MAcctSchema aas = new MAcctSchema(GetCtx(), C_AcctSchema_ID, null); if (aas.GetAcctSchemaElement("AC").GetC_Element_ID() != _C_Element_ID) { log.Log(Level.SEVERE, "C_Element_ID=" + _C_Element_ID + " not in AcctSchema=" + aas); return; } int[] counts = new int[] { 0, 0, 0 }; String sql = "SELECT i.C_ElementValue_ID, t.TableName, c.ColumnName, i.I_ElementValue_ID " + "FROM I_ElementValue i" + " INNER JOIN AD_Column c ON (i.AD_Column_ID=c.AD_Column_ID)" + " INNER JOIN AD_Table t ON (c.AD_Table_ID=t.AD_Table_ID) " + "WHERE i.I_IsImported='Y' AND Processing='-'" + " AND i.C_ElementValue_ID IS NOT NULL AND C_Element_ID=@param"; SqlParameter[] param = new SqlParameter[1]; IDataReader idr = null; try { //PreparedStatement pstmt = DataBase.prepareStatement(sql, Get_TrxName()); //pstmt.setInt(1, _C_Element_ID); param[0] = new SqlParameter("@param", _C_Element_ID); idr = DataBase.DB.ExecuteReader(sql, param, Get_TrxName()); while (idr.Read()) { int C_ElementValue_ID = Utility.Util.GetValueOfInt(idr[0]); // rs.getInt(1); String TableName = Utility.Util.GetValueOfString(idr[1]); // rs.getString(2); String ColumnName = Utility.Util.GetValueOfString(idr[2]); int I_ElementValue_ID = Utility.Util.GetValueOfInt(idr[3]); // Update it int u = UpdateDefaultAccount(TableName, ColumnName, C_AcctSchema_ID, C_ElementValue_ID); counts[u]++; if (u != UPDATE_ERROR) { sql = "UPDATE I_ElementValue SET Processing='N' " + "WHERE I_ElementValue_ID=" + I_ElementValue_ID; int no = DataBase.DB.ExecuteQuery(sql.ToString(), null, Get_TrxName()); if (no != 1) { log.Log(Level.SEVERE, "Updated=" + no); } } } idr.Close(); } catch (Exception e) { if (idr != null) { idr.Close(); } log.Log(Level.SEVERE, "", e); } AddLog(0, null, Utility.Util.GetValueOfDecimal(counts[UPDATE_ERROR]), aas.ToString() + ": @Errors@"); AddLog(0, null, Utility.Util.GetValueOfDecimal(counts[UPDATE_YES]), aas.ToString() + ": @Updated@"); AddLog(0, null, Utility.Util.GetValueOfDecimal(counts[UPDATE_SAME]), aas.ToString() + ": OK"); } // createDefaultAccounts