Пример #1
0
        /**
         *  Get Multiplier from Scope to Display
         *	@param goal goal
         *	@return null if error or multiplier
         */
        public static Decimal?GetMultiplier(MGoal goal)
        {
            String MeasureScope   = goal.GetMeasureScope();
            String MeasureDisplay = goal.GetMeasureDisplay();

            if (MeasureDisplay == null ||
                MeasureScope.Equals(MeasureDisplay))
            {
                return(Env.ONE);         //	1:1
            }
            if (MeasureScope.Equals(MEASURESCOPE_Total) ||
                MeasureDisplay.Equals(MEASUREDISPLAY_Total))
            {
                return(null);            //	Error
            }
            Decimal?Multiplier = null;

            if (MeasureScope.Equals(MEASURESCOPE_Year))
            {
                if (MeasureDisplay.Equals(MEASUREDISPLAY_Quarter))
                {
                    Multiplier = new Decimal(1.0 / 4.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Month))
                {
                    Multiplier = new Decimal(1.0 / 12.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Week))
                {
                    Multiplier = new Decimal(1.0 / 52.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Day))
                {
                    Multiplier = new Decimal(1.0 / 364.0);
                }
            }
            else if (MeasureScope.Equals(MEASURESCOPE_Quarter))
            {
                if (MeasureDisplay.Equals(MEASUREDISPLAY_Year))
                {
                    Multiplier = new Decimal(4.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Month))
                {
                    Multiplier = new Decimal(1.0 / 3.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Week))
                {
                    Multiplier = new Decimal(1.0 / 13.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Day))
                {
                    Multiplier = new Decimal(1.0 / 91.0);
                }
            }
            else if (MeasureScope.Equals(MEASURESCOPE_Month))
            {
                if (MeasureDisplay.Equals(MEASUREDISPLAY_Year))
                {
                    Multiplier = new Decimal(12.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Quarter))
                {
                    Multiplier = new Decimal(3.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Week))
                {
                    Multiplier = new Decimal(1.0 / 4.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Day))
                {
                    Multiplier = new Decimal(1.0 / 30.0);
                }
            }
            else if (MeasureScope.Equals(MEASURESCOPE_Week))
            {
                if (MeasureDisplay.Equals(MEASUREDISPLAY_Year))
                {
                    Multiplier = new Decimal(52.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Quarter))
                {
                    Multiplier = new Decimal(13.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Month))
                {
                    Multiplier = new Decimal(4.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Day))
                {
                    Multiplier = new Decimal(1.0 / 7.0);
                }
            }
            else if (MeasureScope.Equals(MEASURESCOPE_Day))
            {
                if (MeasureDisplay.Equals(MEASUREDISPLAY_Year))
                {
                    Multiplier = new Decimal(364.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Quarter))
                {
                    Multiplier = new Decimal(91.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Month))
                {
                    Multiplier = new Decimal(30.0);
                }
                else if (MeasureDisplay.Equals(MEASUREDISPLAY_Week))
                {
                    Multiplier = new Decimal(7.0);
                }
            }
            return(Multiplier);
        }