@@ -488,11 +488,22 @@ export function getShiftedDateRangeAndDateType(minTime, maxTime, scale, firstDay
488488 } ;
489489}
490490
491- export function getShiftedDateRangeAndDateTypeForBillingCycle ( dateType , scale , firstDayOfWeek , statementDate ) {
492- if ( dateType === dateTimeConstants . allDateRanges . PreviousBillingCycle . type && scale === 1 ) {
493- return getDateRangeByBillingCycleDateType ( dateTimeConstants . allDateRanges . CurrentBillingCycle . type , firstDayOfWeek , statementDate ) ;
494- } else if ( dateType === dateTimeConstants . allDateRanges . CurrentBillingCycle . type && scale === - 1 ) {
495- return getDateRangeByBillingCycleDateType ( dateTimeConstants . allDateRanges . PreviousBillingCycle . type , firstDayOfWeek , statementDate ) ;
491+ export function getShiftedDateRangeAndDateTypeForBillingCycle ( minTime , maxTime , scale , firstDayOfWeek , scene , statementDate ) {
492+ if ( ! dateTimeConstants . allDateRanges . PreviousBillingCycle . availableScenes [ scene ] || ! dateTimeConstants . allDateRanges . CurrentBillingCycle . availableScenes [ scene ] ) {
493+ return ;
494+ }
495+
496+ const previousBillingCycleRange = getDateRangeByBillingCycleDateType ( dateTimeConstants . allDateRanges . PreviousBillingCycle . type , firstDayOfWeek , statementDate ) ;
497+ const currentBillingCycleRange = getDateRangeByBillingCycleDateType ( dateTimeConstants . allDateRanges . CurrentBillingCycle . type , firstDayOfWeek , statementDate ) ;
498+
499+ if ( previousBillingCycleRange && getUnixTimeBeforeUnixTime ( previousBillingCycleRange . maxTime , 1 , 'months' ) === maxTime && getUnixTimeBeforeUnixTime ( previousBillingCycleRange . minTime , 1 , 'months' ) === minTime && scale === 1 ) {
500+ return previousBillingCycleRange ;
501+ } else if ( previousBillingCycleRange && previousBillingCycleRange . maxTime === maxTime && previousBillingCycleRange . minTime === minTime && scale === 1 ) {
502+ return currentBillingCycleRange ;
503+ } else if ( currentBillingCycleRange && currentBillingCycleRange . maxTime === maxTime && currentBillingCycleRange . minTime === minTime && scale === - 1 ) {
504+ return previousBillingCycleRange ;
505+ } else if ( currentBillingCycleRange && getUnixTimeAfterUnixTime ( currentBillingCycleRange . maxTime , 1 , 'months' ) === maxTime && getUnixTimeAfterUnixTime ( currentBillingCycleRange . minTime , 1 , 'months' ) === minTime && scale === - 1 ) {
506+ return currentBillingCycleRange ;
496507 }
497508
498509 return null ;
@@ -523,6 +534,23 @@ export function getDateTypeByDateRange(minTime, maxTime, firstDayOfWeek, scene)
523534 return newDateType ;
524535}
525536
537+ export function getDateTypeByBillingCycleDateRange ( minTime , maxTime , firstDayOfWeek , scene , statementDate ) {
538+ if ( ! dateTimeConstants . allDateRanges . PreviousBillingCycle . availableScenes [ scene ] || ! dateTimeConstants . allDateRanges . CurrentBillingCycle . availableScenes [ scene ] ) {
539+ return ;
540+ }
541+
542+ const previousBillingCycleRange = getDateRangeByBillingCycleDateType ( dateTimeConstants . allDateRanges . PreviousBillingCycle . type , firstDayOfWeek , statementDate ) ;
543+ const currentBillingCycleRange = getDateRangeByBillingCycleDateType ( dateTimeConstants . allDateRanges . CurrentBillingCycle . type , firstDayOfWeek , statementDate ) ;
544+
545+ if ( previousBillingCycleRange && previousBillingCycleRange . maxTime === maxTime && previousBillingCycleRange . minTime === minTime ) {
546+ return previousBillingCycleRange . dateType ;
547+ } else if ( currentBillingCycleRange && currentBillingCycleRange . maxTime === maxTime && currentBillingCycleRange . minTime === minTime ) {
548+ return currentBillingCycleRange . dateType ;
549+ }
550+
551+ return null ;
552+ }
553+
526554export function getDateRangeByDateType ( dateType , firstDayOfWeek ) {
527555 let maxTime = 0 ;
528556 let minTime = 0 ;
0 commit comments