예제 #1
0
        public static DateTime[] GetEndDates(EndTermType term, int year)
        {
            DateTime[] returnValue = new DateTime[2];

            switch (term)
            {
                case EndTermType.FullYear:
                    returnValue[0] = (new DateTime(year, 1, 1)).AddDays(-1);
                    returnValue[1] = (new DateTime(year + 1, 1, 1)).AddDays(-1);
                    break;
                case EndTermType.FirstQtr:
                    returnValue[0] = (new DateTime(year, 1, 1)).AddDays(-1);
                    returnValue[1] = (new DateTime(year, 4, 1)).AddDays(-1);
                    break;
                case EndTermType.SecondQtr:
                    returnValue[0] = (new DateTime(year, 4, 1)).AddDays(-1);
                    returnValue[1] = (new DateTime(year, 7, 1)).AddDays(-1);
                    break;
                case EndTermType.ThirdQtr:
                    returnValue[0] = (new DateTime(year, 7, 1)).AddDays(-1);
                    returnValue[1] = (new DateTime(year, 10, 1)).AddDays(-1);
                    break;
                case EndTermType.FourthQtr:
                    returnValue[0] = (new DateTime(year, 10, 1)).AddDays(-1);
                    returnValue[1] = (new DateTime(year + 1, 1, 1)).AddDays(-1);
                    break;
                default:
                    break;
            }
            return returnValue;
        }
예제 #2
0
        public static IList GetEndValues(IDalSession session, IAccount account, EndTermType term, int year)
        {
            Hashtable parameters = new Hashtable(3);
            DateTime[] dates = GetEndDates(term, year);

            parameters.Add("account", account);
            parameters.Add("startDate", dates[0]);
            parameters.Add("endDate", dates[1]);

            string hql = string.Format(
                @"from EndTermValue A
                left join ReportingPeriod R
                where A.Account = :account
                and R.EndTermDate in (:startDate, :endDate)");
            return session.GetListByHQL(hql, parameters);
        }
예제 #3
0
        public static IList GetEndValues(IDalSession session, IAccountTypeInternal account, EndTermType term, int year, bool ForcedSet)
        {
            IEndTermValue getter;
            IList returnValue = new EndTermValue[2];
            DateTime[] dates = GetEndDates(term, year);
            ReportingPeriodDetail reportingPeriodDetail = new ReportingPeriodDetail(term, year);
            IPeriodicReporting reportingPeriod = PeriodicReportingMapper.GetReportingPeriod(session, reportingPeriodDetail);

            getter = GetEndValue(session, dates[0], account);
            if (getter != null)
                returnValue[0] = getter;
            else
                returnValue[0] = new EndTermValue(account, reportingPeriod, new Money(0m, account.BaseCurrency), new Money(0m, account.BaseCurrency), new Money(0m, account.BaseCurrency));

            getter = GetEndValue(session, dates[1], account);
            if (getter != null)
                returnValue[1] = getter;
            else
                returnValue[1] = new EndTermValue(account, reportingPeriod, new Money(0m, account.BaseCurrency), new Money(0m, account.BaseCurrency), new Money(0m, account.BaseCurrency));

            return returnValue;
        }
예제 #4
0
 public ReportingPeriodDetail(EndTermType termType, int endTermYear)
 {
     this.TermType = termType;
     this.EndTermYear = endTermYear;
 }