示例#1
0
        public bool BuildFiscalYear(IBACycleObject objCalCycle, short YearNumber, out IBAFiscalYear objIFY)
        {
            IBAFiscalYear obj = new BAFASFiscalYear();

            obj.InitializeWithCycleObject(objCalCycle, YearNumber);
            objIFY = obj;

            return(true);
        }
示例#2
0
        static DateTime DetermineDateForFY(IBACycleObject newVal, short iYearNumber)
        {
            DateTime _dtStartDate;
            short    _iFYEndMonthEnum;
            int      month;
            short    iOffset;
            DateTime dtTarget = DateTime.MinValue;
            ECALENDARCYCLE_CYCLETYPE _eCycleType;

            if (newVal == null)
            {
                return(DateTime.MinValue);
            }

            _dtStartDate     = newVal.EffectiveDate;
            _eCycleType      = newVal.CycleType;
            _iFYEndMonthEnum = newVal.FYEndMonth;
            iOffset          = newVal.YearNumberOffset;

            month = (_dtStartDate.Month);
            if (iOffset == 0 && month == _iFYEndMonthEnum && _eCycleType == ECALENDARCYCLE_CYCLETYPE.CYCLETYPE_MONTHLY)
            {
                dtTarget = new DateTime((_dtStartDate.Year) + iYearNumber - 1, _iFYEndMonthEnum, 10);
                if (dtTarget < _dtStartDate)
                {
                    dtTarget = _dtStartDate;
                }
            }
            else
            {
                if ((_dtStartDate.Day) > 18)
                {
                    month++;
                }
                if (_iFYEndMonthEnum < month)
                {
                    dtTarget = new DateTime((_dtStartDate.Year) + iYearNumber, _iFYEndMonthEnum, 10);
                }
                else
                {
                    dtTarget = new DateTime((_dtStartDate.Year) + iYearNumber - 1, _iFYEndMonthEnum, 10);
                }
            }
            return(dtTarget);
        }
示例#3
0
        public bool InitializeWithCycleObject(IBACycleObject newVal, short iYearNumber)
        {
            bool     hr;
            DateTime _dtStartDate;
            DateTime _dtEndDate;
            DateTime tmpDate;
            ECALENDARCYCLE_CYCLETYPE       _eCycleType;
            ECALENDARCYCLE_DATEOFWEEK      _eDayWeekEnum;
            ECALENDARCYCLE_PDCOUNTING      _ePDCounting;
            ECALENDARCYCLE_YEARENDELECTION _eYearEndElect;
            short _iFYEndMonthEnum;
            long  lYearEnd;
            short iYearNumberOffset;


            if (newVal == null)
            {
                throw new Exception("E_POINTER");
            }

            _dtStartDate      = newVal.EffectiveDate;
            _dtEndDate        = newVal.EndDate;
            _eCycleType       = newVal.CycleType;
            _eDayWeekEnum     = newVal.DateOfWeek;
            _ePDCounting      = newVal.PDCounting;
            _eYearEndElect    = newVal.YearEndElect;
            _iFYEndMonthEnum  = newVal.FYEndMonth;
            iYearNumberOffset = newVal.YearNumberOffset;

            FYNum        = (short)(iYearNumber + iYearNumberOffset);
            CycleType    = (_eCycleType);
            DateOfWeek   = (_eDayWeekEnum);
            PDCounting   = (_ePDCounting);
            YearEndElect = (_eYearEndElect);
            FYEndMonth   = (_iFYEndMonthEnum);

            if (_iFYEndMonthEnum > (_dtStartDate.Month))
            {
                lYearEnd = (_dtStartDate.Year) + iYearNumber - 1;
            }
            else if (_iFYEndMonthEnum == (_dtStartDate.Month))
            {
                lYearEnd = (_dtStartDate.Year) + iYearNumber;

                FiscalYearEndDate((_dtStartDate.Year), out tmpDate);

                /*  _dtStartDate <= tmpDate   = sign added by KENT fix JLRU-00036 */
                if (_dtStartDate <= tmpDate && (((tmpDate - _dtStartDate).TotalDays > 6) || (iYearNumberOffset == 0 /*&& iYearNumber == 1*/)))
                {
                    lYearEnd--;
                }
            }
            else
            {
                lYearEnd = (_dtStartDate.Year) + iYearNumber;
            }
            if (iYearNumber == 1)
            {
                YRStartDate = (_dtStartDate);
            }
            else
            {
                FiscalYearEndDate(lYearEnd - 1, out tmpDate);
                YRStartDate = tmpDate.AddDays(1);
            }

            FiscalYearEndDate(lYearEnd, out tmpDate);
            YREndDate = (tmpDate);

            if ((_dtEndDate > DateTime.MinValue && _dtEndDate.AddDays(-7) < m_dtEndDate) || (m_dtStartDate < _dtEndDate && _dtEndDate < m_dtEndDate))
            {
                YREndDate = (_dtEndDate);
            }
            IsShortYear = m_helper.IsShortYear(this);
            return(true);
        }