public bool BuildFiscalYear(IBACycleObject objCalCycle, short YearNumber, out IBAFiscalYear objIFY) { IBAFiscalYear obj = new BAFASFiscalYear(); obj.InitializeWithCycleObject(objCalCycle, YearNumber); objIFY = obj; return(true); }
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); }
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); }