Ejemplo n.º 1
0
        /// <summary>
        /// Create Report Column
        /// </summary>
        /// <param name="ctx">context </param>
        /// <param name="columnName">column name</param>
        /// <param name="displayType">display type</param>
        /// <param name="sql">sql (if null then columnName is used). </param>
        /// <param name="AD_Reference_Value_ID">List/Table Reference</param>
        /// <param name="refColumnName">UserReference column name
        /// Will be overwritten if TableDir or Search</param>
        public RColumn(Ctx ctx, String columnName, int displayType,
                       String sql, int AD_Reference_Value_ID, String refColumnName)
        {
            _colHeader = Msg.Translate(ctx, columnName);
            if (refColumnName != null)
            {
                _colHeader = Msg.Translate(ctx, refColumnName);
            }
            _displayType = displayType;
            _colSQL      = sql;
            if (_colSQL == null || _colSQL.Length == 0)
            {
                _colSQL = columnName;
            }

            //  Strings
            if (DisplayType.IsText(displayType))
            {
                _colClass = typeof(String);// String.class;  //  default size=30
            }
            //  Amounts
            else if (displayType == DisplayType.Amount)
            {
                _colClass = typeof(Decimal);// BigDecimal.class;
                _colSize  = 70;
            }
            //  Boolean
            else if (displayType == DisplayType.YesNo)
            {
                _colClass = typeof(Boolean);// Boolean.class;
            }
            //  Date
            else if (DisplayType.IsDate(displayType))
            {
                _colClass = typeof(DateTime);// Timestamp.class;
            }
            //  Number
            else if (displayType == DisplayType.Quantity ||
                     displayType == DisplayType.Number ||
                     displayType == DisplayType.CostPrice)
            {
                _colClass = typeof(Double);// Double.class;
                _colSize  = 70;
            }
            //  Integer
            else if (displayType == DisplayType.Integer)
            {
                _colClass = typeof(int);//  Integer.class;
            }
            //  List
            else if (displayType == DisplayType.List)
            {
                Language language = Language.GetLanguage(Env.GetAD_Language(ctx));
                _colSQL = "(" + VLookUpFactory.GetLookup_ListEmbed(
                    language, AD_Reference_Value_ID, columnName) + ")";
                _colClass = typeof(String);// String.class;
                _isIDcol  = false;
            }

            /**  Table
             * else if (displayType == DisplayType.Table)
             * {
             *  Language language = Language.getLanguage(Env.getAD_Language(ctx));
             *  _colSQL += ",(" + MLookupFactory.getLookup_TableEmbed(
             *      language, columnName, RModel.TABLE_ALIAS, AD_Reference_Value_ID) + ")";
             *  _colClass = String.class;
             *  _isIDcol = false;
             * }	**/
            //  TableDir, Search,...
            else
            {
                _colClass = typeof(String);// String.class;
                Language language = Language.GetLanguage(Env.GetAD_Language(ctx));
                if (columnName.Equals("Account_ID") ||
                    columnName.Equals("User1_ID") || columnName.Equals("User2_ID"))
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, "C_ElementValue_ID", RModel.TABLE_ALIAS, columnName) + ")";
                    _isIDcol = true;
                }
                else if (columnName.StartsWith("UserElement") && refColumnName != null)
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, refColumnName, RModel.TABLE_ALIAS, columnName) + ")";
                    _isIDcol = true;
                }
                else if (columnName.Equals("C_LocFrom_ID") || columnName.Equals("C_LocTo_ID"))
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, "C_Location_ID", RModel.TABLE_ALIAS, columnName) + ")";
                    _isIDcol = true;
                }
                else if (columnName.Equals("AD_OrgTrx_ID"))
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, "AD_Org_ID", RModel.TABLE_ALIAS, columnName) + ")";
                    _isIDcol = true;
                }
                else if (displayType == DisplayType.TableDir)
                {
                    _colSQL += ",(" + VLookUpFactory.GetLookup_TableDirEmbed(
                        language, columnName, RModel.TABLE_ALIAS) + ")";
                    _isIDcol = true;
                }
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Get SQL Default Value
        /// </summary>
        /// Created By : Kiran Sangwan
        /// <returns>string default clause</returns>
        public string GetSQLDefaultValue()
        {
            string defaultValue = GetDefaultValue();
            string columnName   = GetColumnName();
            int    dt           = GetAD_Reference_ID();
            //
            string sql = "";

            if (columnName.Equals("CreatedBy") || columnName.Equals("UpdatedBy"))
            {
                sql = "0";
            }
            else if (columnName.Equals("Created") || columnName.Equals("Updated"))
            {
                if (DatabaseType.IsOracle || DatabaseType.IsPostgre)
                {
                    sql = "SYSDATE";
                }
                else
                {
                    sql = "CURRENT_TIMESTAMP";
                }
            }
            else if (defaultValue != null && defaultValue.Length > 0)
            {
                defaultValue = defaultValue.Trim();
                if (defaultValue.Equals("NULL"))
                {
                    sql = "NULL";
                }
                else if (defaultValue.StartsWith("@SQL="))
                {
                    s_log.Warning("Get sql default: " + defaultValue);  //	warning & ignore default
                }
                else
                {
                    int first = defaultValue.IndexOf("@");
                    if (first >= 0 && defaultValue.IndexOf("@", first + 1) >= 0)
                    {
                        s_log.Finer("Get default: (Unresolved Variable) " + defaultValue);
                    }
                    else if (defaultValue.Equals("-1"))
                    {
                        s_log.Finer("Get default: (invalid value) " + defaultValue);
                    }
                    else
                    {
                        if (DisplayType.IsText(dt) ||
                            DisplayType.List == dt ||
                            DisplayType.YesNo == dt ||
                            (DisplayType.Button == dt && !columnName.EndsWith("_ID")) ||
                            columnName.Equals("EntityType") ||
                            columnName.Equals("AD_Language") ||
                            columnName.Equals("DocBaseType")
                            )
                        {
                            //sql = DatabaseType.TO_STRING(defaultValue);
                            sql = GlobalVariable.TO_STRING(defaultValue);
                        }
                        else
                        {
                            sql = defaultValue;
                        }
                    }
                }
            }
            else if (columnName.Equals("IsActive"))
            {
                sql = "'Y'";
            }
            //	NO default value - set Data Type
            else
            {
                if (dt == DisplayType.YesNo)
                {
                    sql = "'N'";
                }
                else if (DisplayType.IsNumeric(dt) &&
                         (IsMandatory() || IsMandatoryUI()))
                {
                    sql = "0";
                }
            }
            return(sql);
        }
Ejemplo n.º 3
0
        }       //	getTargetColumn

        /// <summary>
        /// Execute Auto Assignment
        /// </summary>
        /// <param name="po">PO to be modified</param>
        /// <returns>true if modified</returns>
        public bool ExecuteIt(PO po)
        {
            //	Check Column
            MColumn column     = GetTargetColumn();
            String  columnName = column.GetColumnName();
            int     index      = po.Get_ColumnIndex(columnName);

            if (index == -1)
            {
                throw new Exception(ToString() + ": AD_Column_ID not found");
            }
            //	Check Value
            Object value      = po.Get_Value(index);
            String assignRule = GetAssignRule();

            if (value == null && assignRule.Equals(ASSIGNRULE_OnlyIfNOTNULL))
            {
                return(false);
            }
            else if (value != null && assignRule.Equals(ASSIGNRULE_OnlyIfNULL))
            {
                return(false);
            }

            //	Check Criteria
            if (m_criteria == null)
            {
                GetCriteria(false);
            }
            bool modified = false;

            for (int i = 0; i < m_criteria.Length; i++)
            {
                MAssignCriteria criteria = m_criteria[i];
                if (criteria.IsMet(po))
                {
                    modified = true;
                    break;
                }
            }
            if (!modified)
            {
                return(false);
            }

            //	Assignment
            String methodName    = "set" + columnName;
            Type   parameterType = null;
            Object parameter     = null;
            int    displayType   = column.GetAD_Reference_ID();
            String valueString   = GetValueString();

            if (DisplayType.IsText(displayType) || displayType == DisplayType.List)
            {
                parameterType = typeof(string);
                parameter     = valueString;
            }
            else if (DisplayType.IsID(displayType) || displayType == DisplayType.Integer)
            {
                parameterType = typeof(int);
                if (GetRecord_ID() != 0)
                {
                    parameter = GetRecord_ID();
                }
                else if (valueString != null && valueString.Length > 0)
                {
                    try
                    {
                        parameter = int.Parse(valueString);
                    }
                    catch (Exception e)
                    {
                        log.Warning(ToString() + " " + e);
                        return(false);
                    }
                }
            }
            else if (DisplayType.IsNumeric(displayType))
            {
                parameterType = typeof(Decimal);
                if (valueString != null && valueString.Length > 0)
                {
                    try
                    {
                        parameter = Decimal.Parse(valueString);
                    }
                    catch (Exception e)
                    {
                        log.Warning(ToString() + " " + e);
                        return(false);
                    }
                }
            }
            else if (DisplayType.IsDate(displayType))
            {
                parameterType = typeof(DateTime);
                if (valueString != null && valueString.Length > 0)
                {
                    try
                    {
                        parameter = DateTime.Parse(valueString);
                    }
                    catch (Exception e)
                    {
                        log.Warning(ToString() + " " + e);
                        return(false);
                    }
                }
            }
            else if (displayType == DisplayType.YesNo)
            {
                parameterType = typeof(bool);
                parameter     = "Y".Equals(valueString);
            }
            else if (displayType == DisplayType.Button)
            {
                parameterType = typeof(string);
                parameter     = GetValueString();
            }
            else if (DisplayType.IsLOB(displayType))    //	CLOB is String
            {
                parameterType = typeof(byte[]);
                //	parameter = getValueString();
            }

            //	Assignment
            try
            {
                Type clazz = po.GetType();
                System.Reflection.MethodInfo method = clazz.GetMethod(methodName, new Type[] { parameterType });
                method.Invoke(po, new Object[] { parameter });
            }
            catch (Exception e)
            {
                log.Log(Level.WARNING, ToString(), e);
                //	fallback
                if (parameter is Boolean)
                {
                    po.Set_Value(index, valueString);
                }
                else
                {
                    po.Set_Value(index, parameter);
                }
                //	modified = false;
            }
            return(modified);
        }       //	executeIt