var Bizgaze; (function (Bizgaze) { let Apps; (function (Apps) { let Routes; (function (Routes) { let Components; (function (Components) { class scheduler extends Unibase.Platform.Core.BaseComponent { constructor() { super(...arguments); this.arr = new Array(); this.WeekWise = new Array(); this.arr1 = new Array(); } cssFiles() { return []; } jsFiles() { return ['apps/routes/managers/routemanager.js', 'platform/forms/managers/formmanager.js', 'platform/forms/components/formviewer/formviewer.js']; } html(id, containerid) { let html = ``; return html; } load(id, containerid, callback) { } init(containerid) { this.arr = new Array(); let tbl = ""; var instance = this; instance.render(containerid); var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var RouteScheduleType = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_schedulertypeid").Value); var schedulerdates = Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_schedulerdate").Value; $("#scheduler_spin").click(function () { Bizgaze.Apps.Routes.Components.scheduler.Instance().genetrateSchedulerDates(RouteScheduleType); }); if (RouteScheduleType == 2) { $("#bizgazecrm_Routes_tbl_DayWise").show(); tbl = $("#bizgazecrm_Routes_tbl_DayWise td"); } else if (RouteScheduleType == 1) { $("#bizgazecrm_Routes_tbl_DateWise").show(); tbl = $("#bizgazecrm_Routes_tbl_DateWise td"); } else if (RouteScheduleType == 3) { $("#bizgazecrm_Routes_tbl_WeekWise").show(); tbl = $("#bizgazecrm_Routes_tbl_WeekWise td"); } Bizgaze.Apps.Routes.Components.scheduler.Instance().bindSelectedSchedulerTblCell(RouteScheduleType, schedulerdates, tbl); tbl.off('click').click(function (e) { var date; if ($(this).hasClass('click') || $(this).hasClass('')) { $(this).css('backgroundColor', '#7ABA7A'); $(this).removeClass('click'); $(this).addClass('Unclick'); if (RouteScheduleType != 1 && RouteScheduleType != 3) { var row = $(this).parent().parent().children().index($(this).parent()); var col = $(this).parent().children().index($(this)); date = Bizgaze.Apps.Routes.Components.scheduler.Instance().getDateByDayWise(row, col + 1); } else { date = $(this).text(); } if (RouteScheduleType == 3) { instance.arr = []; $('#bizgazecrm_Routes_tbl_WeekWise td.Unclick').each(function (index, el) { instance.arr.push($(el).find('.date-input').val().toString()); }); } var date = date; instance.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () { if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) { var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var routeId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_routedefinitionid").Value); if (routeId != undefined && RouteScheduleType != 3) { Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.push(date); } } }); } else if ($(this).hasClass('Unclick')) { $(this).css('backgroundColor', '#ffffff'); $(this).removeClass('Unclick'); $(this).addClass('click'); if (RouteScheduleType != 1 && RouteScheduleType != 3) { var row = $(this).parent().parent().children().index($(this).parent()); var col = $(this).parent().children().index($(this)); date = Bizgaze.Apps.Routes.Components.scheduler.Instance().getDateByDayWise(row, col + 1); } else { date = $(this).text(); } instance.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () { if (Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.length != 0) { var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var routeid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_routedefinitionid").Value); if (routeid != undefined) { const index = Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.indexOf(date, 0); if (index > -1) { Bizgaze.Apps.Routes.Components.scheduler.Instance().arr = Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.filter(obj => obj !== date); } } } }); } }); } render(containerid) { const instance = this; $("." + containerid).empty(); let html = `
Scheduler
${instance.getCurrentWeekTableHtml()}
`; $("." + containerid).append(html); $("#btnsave").off('click').on("click", function () { Bizgaze.Apps.Routes.Components.scheduler.Instance().saveroute(); }); } getDateByDayWise(row, col) { var date = ""; if (row == 1) { switch (col) { case 1: date = "1"; break; case 2: date = "8"; break; case 3: date = "15"; break; case 4: date = "22"; break; case 5: date = "29"; } } else if (row == 2) { switch (col) { case 1: date = "2"; break; case 2: date = "9"; break; case 3: date = "16"; break; case 4: date = "23"; break; case 5: date = "30"; } } else if (row == 3) { switch (col) { case 1: date = "3"; break; case 2: date = "10"; break; case 3: date = "17"; break; case 4: date = "24"; break; case 5: date = "31"; } } else if (row == 4) { switch (col) { case 1: date = "4"; break; case 2: date = "11"; break; case 3: date = "18"; break; case 4: date = "25"; ; } } else if (row == 5) { switch (col) { case 1: date = "5"; break; case 2: date = "12"; break; case 3: date = "19"; break; case 4: date = "26"; } } else if (row == 6) { switch (col) { case 1: date = "6"; break; case 2: date = "13"; break; case 3: date = "20"; break; case 4: date = "27"; } } else if (row == 7) { switch (col) { case 1: date = "7"; break; case 2: date = "14"; break; case 3: date = "21"; break; case 4: date = "28"; break; case 4: date = "30"; } } return date; } bindSelectedSchedulerTblCell(SchedulerType, schedulerdates, tbl) { var instance = this; this.getDateByDayWise; var tbl = ""; var date = ""; if (SchedulerType == 2) { $("#bizgazecrm_Routes_tbl_DayWise").show(); tbl = $("#bizgazecrm_Routes_tbl_DayWise td"); } else if (SchedulerType == 1) { $("#bizgazecrm_Routes_tbl_DateWise").show(); tbl = $("#bizgazecrm_Routes_tbl_DateWise td"); } else if (SchedulerType == 3) { $("#bizgazecrm_Routes_tbl_WeekWise").show(); tbl = $("#bizgazecrm_Routes_tbl_WeekWise td"); } if (schedulerdates != null && tbl) { var datesArr = schedulerdates.split("|"); for (var i = 0; i < datesArr.length; i++) { if (datesArr[i] != "") { tbl.each(function () { if (SchedulerType === 1) { if ($(this).html() == datesArr[i]) { $(this).css('backgroundColor', '#8ec165'); $(this).css('color', '#000000'); $(this).addClass('Unclick'); Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.push(datesArr[i]); } } else if (SchedulerType === 2) { var row = $(this).parent().parent().children().index($(this).parent()); var col = $(this).parent().children().index($(this)); date = Bizgaze.Apps.Routes.Components.scheduler.Instance().getDateByDayWise(row, col + 1); if (date == datesArr[i]) { $(this).css('backgroundColor', '#8ec165'); $(this).css('color', '#000000'); $(this).addClass('Unclick'); Bizgaze.Apps.Routes.Components.scheduler.Instance().arr.push(datesArr[i]); } } else if (SchedulerType === 3) { if ($(this).find(`.date-input[value=${datesArr[i]}]`).length) { $(this).css('backgroundColor', '#8ec165'); $(this).css('color', '#000000'); $(this).addClass('Unclick'); } } }); } } } } genetrateSchedulerDates(schedulerType) { const instance = this; var tbl = ""; var array = []; this.getDateByDayWise; var date = date; var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var RouteId = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_routedefinitionid").Value); var assignto = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_employeeid").Value); $("#scheduler_spin").addClass("fa-spin"); if (schedulerType == 1) { tbl = $("#bizgazecrm_Routes_tbl_DateWise td"); var selectedDates = []; tbl.each(function () { if ($(this).hasClass('Unclick')) { selectedDates.push($(this).text()); } }); array = selectedDates; var SchedulerDates = array; var propsettingObj = { RouteId: RouteId, RouteScheduleId: 0, SchedulerDates: selectedDates, AssignedTo: assignto, FirstWeek: [], SecondWeek: [], ThirdWeek: [], FourthWeek: [], FifthWeek: [] }; this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () { Bizgaze.Apps.Routes.Managers.RouteManager.Instance().SaveDateWiseScheduler(propsettingObj).then(function (response) { MessageHelper.Instance().showSuccess(response.message, ''); var detailobj = Unibase.Themes.Compact.Components.Details.Instance(); detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId; detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; detailobj._containerId = Unibase.Platform.Helpers.NavigationHelper.Instance().getLastContainerId(); var idetailObj = detailobj; detailobj.loadPortlets(idetailObj); }); setTimeout(function () { $("#scheduler_spin").removeClass("fa-spin"); }, 1000); }); } else if (schedulerType == 2) { var selectedFirstWeek = []; var selectedSecWeek = []; var selectedThirdWeek = []; var selectedFourthWeek = []; var selectedFifththWeek = []; $('#bizgazecrm_Routes_tbl_DayWise td').each(function (index, tr) { if ($(this).hasClass('Unclick')) { var row = $(this).parent().parent().children().index($(this).parent()); var col = $(this).parent().children().index($(this)); date = Bizgaze.Apps.Routes.Components.scheduler.Instance().getDateByDayWise(row, col + 1); if (date <= 7) { selectedFirstWeek.push(date); } else if (date <= 14) { selectedSecWeek.push(date); } else if (date <= 21) { selectedThirdWeek.push(date); } else if (date <= 28) { selectedFourthWeek.push(date); } else if (date <= 31) { selectedFifththWeek.push(date); } } }); var propsettingObj = { RouteId: RouteId, RouteScheduleId: 0, SchedulerDates: [], AssignedTo: assignto, FirstWeek: selectedFirstWeek, SecondWeek: selectedSecWeek, ThirdWeek: selectedThirdWeek, FourthWeek: selectedFourthWeek, FifthWeek: selectedFifththWeek }; this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () { Bizgaze.Apps.Routes.Managers.RouteManager.Instance().saveWeekWiseScheduler(propsettingObj).then(function (response) { MessageHelper.Instance().showSuccess(response.message, ''); var detailobj = Unibase.Themes.Compact.Components.Details.Instance(); detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId; detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; detailobj._containerId = $("._bizgaze_detail_container:visible").attr("id"); var idetailObj = detailobj; detailobj.loadPortlets(idetailObj); }, null); }); setTimeout(function () { $("#scheduler_spin").removeClass("fa-spin"); }, 1000); } else { instance.WeekWise = []; $('#bizgazecrm_Routes_tbl_WeekWise td.Unclick').each(function (index, el) { instance.WeekWise.push($(el).find('.date-input').val().toString()); }); var propsettingObjs = { RouteId: RouteId, RouteScheduleId: 0, SchedulerDates: [], AssignedTo: assignto, WeekWise: instance.WeekWise, }; this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () { Bizgaze.Apps.Routes.Managers.RouteManager.Instance().saveWeekdaysScheduler(propsettingObjs).then(function (response) { MessageHelper.Instance().showSuccess(response.message, ''); var detailobj = Unibase.Themes.Compact.Components.Details.Instance(); detailobj._recordId = Unibase.Themes.Providers.DetailHelper.recordId; detailobj._installedAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; detailobj._containerId = $("._bizgaze_detail_container:visible").attr("id"); var idetailObj = detailobj; detailobj.loadPortlets(idetailObj); }, null); }); setTimeout(function () { $("#scheduler_spin").removeClass("fa-spin"); }, 1000); } } getCurrentWeekTableHtml() { var currentDate = moment(); var weekStart = currentDate.clone().startOf('isoWeek').isoWeekday(0); var days = []; for (var i = 0; i <= 6; i++) { days.push(moment(weekStart).add(i, 'days').format("DD,dddd")); } const html = days.map(function (day) { const currentDay = day.split(','); return `${currentDay[1].substring(0, 3).toUpperCase()} `; }).join(''); return html; } saveroute() { this.fileCacheHelper.loadJsFile("apps/routes/managers/routemanager.js", function () { let arr1 = Bizgaze.Apps.Routes.Components.scheduler.Instance().arr; let str = '|'; for (var i = 0; i < arr1.length; i++) { str += arr1[i] + '|'; } var InstalledAppId = Unibase.Themes.Providers.DetailHelper.installedAppId; var routeid = Number(Unibase.Themes.Providers.Detail_Settings.Instance().InputParameters.find(x => x.Key == "hf_" + InstalledAppId + "_routedefinitionid").Value); Bizgaze.Apps.Routes.Managers.RouteManager.Instance().saveroute(str, routeid).then(function (res) { if (res) { MessageHelper.Instance().showSuccess(res.message, ''); } }); }); } static Instance() { if (this.instance === undefined) { this.instance = new scheduler(); } return this.instance; } } Components.scheduler = scheduler; })(Components = Routes.Components || (Routes.Components = {})); })(Routes = Apps.Routes || (Apps.Routes = {})); })(Apps = Bizgaze.Apps || (Bizgaze.Apps = {})); })(Bizgaze || (Bizgaze = {}));