/**
         *  Get the first Date From date based on Accumulation
         *	@param from date
         *	@return  first date
         */
        public DateTime?GetDateFrom(DateTime?from)
        {
            if (from == null)
            {
                return(from);
            }

            if (BALANCEACCUMULATION_CalendarMonth.Equals(GetBALANCEACCUMULATION()))
            {
                return(TimeUtil.Trunc(from, TimeUtil.TRUNC_MONTH));
            }
            else if (BALANCEACCUMULATION_CalendarWeek.Equals(GetBALANCEACCUMULATION()))
            {
                return(TimeUtil.Trunc(from, TimeUtil.TRUNC_WEEK));
            }
            else if (BALANCEACCUMULATION_PeriodOfAViennaCalendar.Equals(GetBALANCEACCUMULATION()) &&
                     GetC_Calendar_ID() != 0)
            {
                MPeriod period = MPeriod.GetOfCalendar(GetCtx(), GetC_Calendar_ID(), from);
                if (period != null)
                {
                    return(period.GetStartDate());
                }
            }
            return(from);
        }