public string GetBucketDescriptionForAgedReport( DateTime?reportDate, int?dayBucketBoundary0, int?dayBucketBoundary1, int?dayBucketBoundary2, int?dayBucketBoundary3, bool?isByFinancialPeriod, bool?isForwardAging, int?bucketIndex) { if (reportDate == null || dayBucketBoundary0 == null || dayBucketBoundary1 == null || dayBucketBoundary2 == null || dayBucketBoundary3 == null || bucketIndex == null) { return(null); } AgingDirection agingDirection = isForwardAging == true ? AgingDirection.Forward : AgingDirection.Backwards; if (isByFinancialPeriod == true) { try { IFinancialPeriodProvider periodProvider = FinancialPeriodProvider.Default; IEnumerable <string> bucketDescriptions = AgingEngine.GetPeriodAgingBucketDescriptions( FinancialPeriodProvider.Default, reportDate.Value, agingDirection, NUMBER_OF_AGING_BUCKETS); return(bucketDescriptions.ElementAtOrDefault(bucketIndex.Value)); } catch (PXFinPeriodException) { throw new PXFinPeriodException( isForwardAging == true ? AR.Messages.UnableToCalculateBucketNamesPeriodsAfterwardsNotDefined : AR.Messages.UnableToCalculateBucketNamesPeriodsPrecedingNotDefined); } } else { IEnumerable <string> bucketDescriptions = AgingEngine.GetDayAgingBucketDescriptions( agingDirection, new int[] { dayBucketBoundary0 ?? 0, dayBucketBoundary1 ?? 0, dayBucketBoundary2 ?? 0, dayBucketBoundary3 ?? 0 }, true); return(bucketDescriptions.ElementAtOrDefault(bucketIndex.Value)); } }