Example #1
0
        //public void CalculateStaffingRequirement(int index)
        //{
        //    StaffingRequirement[index] = ForceastStaffing[index] - AssignedStaffing[index];
        //}

        public virtual void CalculateAssignedServiceLevel(int index)
        {
            //(SL +  Math.Max( SL, Math.Min( Staff/CV , 1.0 ))) / 2

            var cv       = _cvs[index];
            var staffing = this.AssignedStaffing[index];

            var staffRate = Math.Min(cv == 0 ? 0 : staffing / cv, 1.0);

            var sl = ForecastLibrary.GetServiceLevel(cv, _ahts[index], AbadonRate, ServiceLevelSecond, staffing);

            (sl < staffRate ? (sl + staffRate) / 2 : sl).Self(r =>
            {
                AssignedServiceLevel[index] = r;
                _weightedSL[index]          = cv * r;
            });
        }
Example #2
0
        public virtual void CalculateForecastStaffing(double[][] shrinkage, int startWeekDayIndex)
        {
            var count = _dateIndexer.Count * 96;

            ForceastStaffing = ForecastLibrary.ForecastStaffing(count, _cvs, _ahts, AbadonRate, ServiceLevelSecond, _goals, shrinkage, startWeekDayIndex, out _goalsExt);
        }