Why the custom choice is removing automatically from interactive filter?

Community Alums
Not applicable

Hi All,

 

I want to add a custom choice (this fiscal year,next fiscal,and last fiscal year)to the date interactive filter.I check there is OOB Business rule for adding those choice "Get Date Filter Options for Date Filters"

 

I have added the custom code in the OOB BR: as below

function getDateFilterOptions() {
 //custom date filters
    var dateUtil = new DateFilterUtil();
  var as=answer.add('180_This Fiscal Year@javascript:gs.daysAgoStart(' + dateUtil.getFiscalYear("start") +')@javascript:gs.daysAgoEnd(' + dateUtil.getFiscalYear("end") + ')', gs.getMessage('This Fiscal Year'));
  gs.log("sang this "+as);
  var next=answer.add('185_Next Fiscal Year@javascript:gs.daysAgoStart(' + dateUtil.getFiscalYear("start", -1) +')@javascript:gs.daysAgoEnd(' + dateUtil.getFiscalYear("end", -1) + ')', gs.getMessage('Next Fiscal Year'));
gs.log("sang next"+next);
   var last= answer.add('190_Last Fiscal Year@javascript:gs.daysAgoStart(' + dateUtil.getFiscalYear("start"1) +')@javascript:gs.daysAgoEnd(' + dateUtil.getFiscalYear("end"1) + ')', gs.getMessage('Last Fiscal Year'));
gs.log("sang lost"+last);  answer.add('191_2 months ago@javascript:gs.monthsAgoStart(2)@' +dateUtil.monthsAgoEnd(-2) , gs.getMessage('2 months ago'));    answer.add('192_3 months ago@javascript:gs.monthsAgoStart(3)@' +dateUtil.monthsAgoEnd(-3) , gs.getMessage('3 months ago'));  answer.add('193_4 months ago@javascript:gs.monthsAgoStart(4)@' +dateUtil.monthsAgoEnd(-4) , gs.getMessage('4 months ago'));  answer.add('194_5 months ago@javascript:gs.monthsAgoStart(5)@' +dateUtil.monthsAgoEnd(-5) , gs.getMessage('5 months ago'));   answer.add('195_6 months ago@javascript:gs.monthsAgoStart(6)@' +dateUtil.monthsAgoEnd(-6) , gs.getMessage('6 months ago'));
 answer.add('196_7 months ago@javascript:gs.monthsAgoStart(7)@' +dateUtil.monthsAgoEnd(-7) , gs.getMessage('7 months ago'));  answer.add('197_8 months ago@javascript:gs.monthsAgoStart(8)@' +dateUtil.monthsAgoEnd(-8) , gs.getMessage('8 months ago'));   answer.add('198_9 months ago@javascript:gs.monthsAgoStart(9)@' +dateUtil.monthsAgoEnd(-9) , gs.getMessage('9 months ago'));    answer.add('199_10 months ago@javascript:gs.monthsAgoStart(10)@' +dateUtil.monthsAgoEnd(-10) , gs.getMessage('10 months ago'));  answer.add('200_11 months ago@javascript:gs.monthsAgoStart(11)@' +dateUtil.monthsAgoEnd(-11) , gs.getMessage('11 months ago'));   answer.add('201_12 months ago@javascript:gs.monthsAgoStart(12)@' +dateUtil.monthsAgoEnd(-12) , gs.getMessage('12 months ago'));
   answer.add('202_90-0 days ago@javascript:gs.daysAgoStart(90)@javascript:gs.daysAgoEnd(0)', gs.getMessage('90-0 days ago'));
  answer.add('203_180-91 days ago@javascript:gs.daysAgoStart(180)@javascript:gs.daysAgoEnd(91)', gs.getMessage('180-91 days ago'));

}
This is the script  include calling from BR
var DateFilterUtil = Class.create();
DateFilterUtil.prototype = {
  //pass in years ago as a negative value if you want to look into the future.
  getFiscalYear: function(timeline, yearsago) {
     var todaysDate = new GlideDateTime();
      todaysDate.setValue(todaysDate.getDate() + " 00:00:00");
      var currentYear = todaysDate.getYearLocalTime();
      var currentMonth = todaysDate.getMonthLocalTime();
               gs.log("current month sang"+currentMonth);
        if(currentMonth <=5){
          currentYear = currentYear - 1;
     }
     if(yearsago){
            currentYear = currentYear - yearsago;
            gs.log("Current year sang"+currentYear);
     }
       var startDate = new GlideDateTime(currentYear + "-06-01 00:00:00");
         gs.log("ss date sang"+startDate);
        currentYear  += 1;

        var endDate = new GlideDateTime(currentYear + "-05-31 00:00:00");
            gs.log("end date sang"+endDate);
        if(timeline == "start"){

            return GlideDateTime.subtract( startDate, todaysDate).getDayPart();
       }
        else if(timeline == "end"){
         return GlideDateTime.subtract(endDate, todaysDate ).getDayPart();
        }
    },
   monthsAgoEnd: function( monthsAgo){
       var todaysDate = new GlideDateTime();
       todaysDate.addMonthsLocalTime(monthsAgo);
      var daysInMonth =  todaysDate.getDaysInMonthLocalTime();
      todaysDate.setDayOfMonthLocalTime(daysInMonth);
      todaysDate.setValue(todaysDate.getDate() + " 23:59:59");
        gs.log("sang today"+todaysDate);
      return todaysDate.toString();
    },
  type: 'DateFilterUtil'
};
When I check log this working fine,but the choice I have added in the date interactive filter is removing automatically from selected list as below:
sangeetha10_0-1693570878097.png

Because of the the filter is not working properly,It is taking 9th june 2023 instead of 1st june 2023 for this fiscal year

not sure why this is happening

Please, anyone has any idea how to resolve this issue.

Thanks.

0 REPLIES 0