Why the custom choice is removing automatically from interactive filter?
Community Alums
Not applicable
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-01-2023 05:23 AM - edited 09-01-2023 05:55 AM
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:
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