示例#1
0
        /// <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);
        }
示例#2
0
        }       //	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