var xhr_exportExport; var assignedTo, startDateParam, endDateParam, responseTime, vehicleTag, age, assignedToUser, isTicketScore; //Global variables var slaMetImagePath = "../../Content/css/images/icons/green_circle.png"; var slaNotMetImagePath = "../../Content/css/images/icons/red_circle.png"; /** * Function to display close ticket details * @method showCloseTicketDetails * @for CloseTicketReport */ function showCloseTicketDetails(e) { var dataItem = this.dataItem($(e.currentTarget).closest("tr")); // console.log(dataItem.Id); $.ajax({ type: "POST", url: "/Report/Ticket_GetOpencloseTicketFullDetails/", data: { ticketId: dataItem.Id, ticketStatus: "close" }, success: function (data) { $("#divTicketDetails").html(data); //open window in new dialog box $("#divTicketDetails").data("kendoWindow").open(); openKendoWindowInCenter("#divTicketDetails"); }, error: function (data) { console.log(data); } }); } /** * Function to get close tickets history * @method getCloseTicketHistory * @for CloseTicketReport */ function getCloseTicketHistory(currentPage) { var startDate, endDate; var userID = userId; // console.log(startDateParam, endDateParam); if (startDateParam) { startDate = startDateParam; $("#startDate").val(startDate); } else { startDate = $("#startDate").val(); } if (endDateParam) { endDate = endDateParam; $("#endtDate").val(endDate); } else { endDate = $("#endtDate").val(); } var strtype = "Close"; var ddlval=$('#ddFilterType').val(); if(ddlval == "Close"){ } else{ strtype = "Close,"+ddlval; } console.log(strtype); var date1 = new Date(startDate); var date2 = new Date(endDate); var timeDiff = Math.abs(date2.getTime() - date1.getTime()); var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); $('.excelIcon').show(); if (diffDays <= 90) { //console.log(userID); //send ajax request $.ajax({ type: "POST", url: "/Report/Ticket_Close_Grid/", data: { userId: userID, startDate: startDate, endDate: endDate, ticketStatus: "close", isTicketScore: isTicketScore, TicketType: strtype }, success: function (data) { $("#divGrid").html(data); if (document.getElementById('CloseTicket') !== null) { applyFiltersBasedOnParametersToKendoGrid(); setTimeout(function () { //console.log($("#CloseTicket .k-grid-content table tbody tr").length); if ($("#CloseTicket .k-grid-content table tbody tr").length > 0) { $('.excelIcon').show(); } else { $('.excelIcon').hide(); } }, 1000); } else { $('.excelIcon').hide(); } }, complete: function (data) { console.log(data); //if (currentPage) { // setTimeout(function () { $("#CloseTicket").data('kendoGrid').dataSource.page(currentPage); }, 1000); //} startDateParam = ""; endDateParam = ""; if (isTicketScore != "true") { if (typeof $("#CloseTicket").data("kendoGrid") != "undefined" && $("#CloseTicket").data("kendoGrid") != null) { var grid = $("#CloseTicket").data("kendoGrid"); grid.hideColumn("Score"); } } }, error: function (data) { console.log(data); } }); } else { jAlert("Please select 3 months data only.", 'message'); } } /** * Function to apply filters on kendo grid based on parameters * @method applyFiltersBasedOnParametersToKendoGrid * @for CloseTicketReport */ function applyFiltersBasedOnParametersToKendoGrid() { if (assignedToUser && assignedTo) { if (assignedTo.trim().toLowerCase() == "van") { applyFilterToKendoGridWithLogic('CloseTicket', ['ServiceEngineerName', 'AssignedTo'], 'and', ['contains', 'eq'], [assignedToUser, assignedTo]); } else if (assignedTo.trim().toLowerCase() == "dealer") { applyFilterToKendoGridWithLogic('CloseTicket', ['DealerDealerName', 'AssignedTo'], 'and', ['contains', 'eq'], [assignedToUser, assignedTo]); } } else if (assignedTo && !responseTime) { applyFilterToKendoGrid('CloseTicket', 'AssignedTo', 'eq', assignedTo); } else if (responseTime && !assignedTo) { applyFilterToKendoGrid('CloseTicket', 'TotalTicketLifeCycleTimeSlab', 'eq', responseTime); } else if (vehicleTag && !age) { applyFilterToKendoGrid('CloseTicket', 'VehicleTagging', 'eq', vehicleTag); } else if (vehicleTag && age) { applyFilterToKendoGridWithLogic('CloseTicket', ['VehicleTagging', 'Age'], 'and', ['eq', 'lt'], [vehicleTag, age]); } else if (responseTime && assignedTo) { applyFilterToKendoGridWithLogic('CloseTicket', ['TotalTicketLifeCycleTimeSlab', 'AssignedTo'], 'and', ['eq', 'eq'], [responseTime, assignedTo]); } } /** * Function call on row bound of close tickets table * @method onRowBound * @for CloseTicketReport */ function onRowBound(e) { if (_userRole.toLowerCase().trim() == 'cce' || _userRole.toLowerCase().trim() == 'cce_admin') { $('.k-grid-EditTicketFeedback').text("").removeClass("k-button k-button-icontext").html("").show(); $('.k-grid-TicketDetails').hide(); } else { $('.k-grid-TicketDetails').text("").removeClass("k-button k-button-icontext").html("").show(); $('.k-grid-EditTicketFeedback').hide(); } $('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html(""); //$('.k-grid-Performance').text("").removeClass("k-button k-button-icontext").html(""); // called common file function to show title on mouse hover. addTitleAttribute(); // sla met or not met functionality var data = this.dataSource.view(); //console.log(this.dataSource.view()); for (var i = 0; i < data.length; i++) { //get uid of row var uid = data[i].uid; // get default sla time of row var defaultSla = data[i].DefaultSlaTime; // get total ticket life cycle sla value var totalLifeCycleSla = data[i].TotalTicketLifeCycleTimeSlab; // get feedback of row var feedback = data[i].DefaultCol2; // get age of row var age = parseFloat(data[i].Age, 10); //console.log(age); // get 24 hrs reason of row var reasonFor24Hrs = data[i].DefaultCol3; // get feedback of row var feedbackCallStatus = data[i].CallStatus; //console.log(feedbackCallStatus); var row = this.table.find("tr[data-uid='" + uid + "']"); feedbackCallStatus = (feedbackCallStatus == null) ? "" : feedbackCallStatus; if ((age >= 24) && ((feedbackCallStatus).toLowerCase().trim() == "feedback collected") && (reasonFor24Hrs != "" && reasonFor24Hrs != null)) { //if ((age >= 24) && (feedback != "" && feedback != null) && (reasonFor24Hrs != "" && reasonFor24Hrs != null)) { row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("F    24"); row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("24"); } else if ((age >= 24) && ((feedbackCallStatus).toLowerCase().trim() != "feedback collected" || feedbackCallStatus == "" || feedbackCallStatus == null) && (reasonFor24Hrs != "" && reasonFor24Hrs != null)) { //} else if ((age >= 24) && (feedback == "" || feedback == null) && (reasonFor24Hrs != "" && reasonFor24Hrs != null)) { row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("F    24"); row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("24"); } else if ((age >= 24) && ((feedbackCallStatus).toLowerCase().trim() != "feedback collected" || feedbackCallStatus == "" || feedbackCallStatus == null) && (reasonFor24Hrs == "" || reasonFor24Hrs == null)) { //} else if ((age >= 24) && (feedback == "" || feedback == null) && (reasonFor24Hrs == "" || reasonFor24Hrs == null)) { row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("F    24"); row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("24"); } else if ((age >= 24) && ((feedbackCallStatus).toLowerCase().trim() == "feedback collected") && (reasonFor24Hrs == "" || reasonFor24Hrs == null)) { //} else if ((age >= 24) && (feedback != "" && feedback != null) && (reasonFor24Hrs == "" || reasonFor24Hrs == null)) { row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("F    24"); row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("24"); } else if (age < 24 && ((feedbackCallStatus).toLowerCase().trim() != "feedback collected" || feedbackCallStatus == "" || feedbackCallStatus == null)) { //} else if (age < 24 && (feedback == "" || feedback == null)) { row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("NA"); } else if (age < 24 && ((feedbackCallStatus).toLowerCase().trim() == "feedback collected")) { //} else if (age < 24 && (feedback != "" && feedback != null)) { row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("NA"); } if (defaultSla > totalLifeCycleSla) { //row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("F"); row.find('.k-grid-resolutionSla').text("").removeClass("k-button k-button-icontext").html(""); } else { // row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html(""); row.find('.k-grid-resolutionSla').text("").removeClass("k-button k-button-icontext").html(""); } } } //function call on change of start date /** * Add 15 days in endDate based on the startDate. * @method onChangeDateSelection * @for CloseTicketReport */ function onChangeDateSelection() { } /** * To get filter parameters and export report. * @method exportReport * @for CloseTicketReport */ // function exportReport() { // var userID = userId; // var startDate = $("#startDate").val(); // var endDate = $("#endtDate").val(); // // sending ajax request to export ICR Unique Users and Data Usage to Excel, and hadling its completion // if (xhr_exportExport && xhr_exportExport.readystate != 4) { // xhr_exportExport.abort(); // } // xhr_exportExport = $.ajax({ // type: "POST", // url: "/Report/Ticket_Close_Open_ExportToExcel/", // data: { UserId: userID, startDate: startDate, endDate: endDate, ticketStatus: "close", isTicketScore: isTicketScore }, // success: function (data) { // // making the generated Excel available for downloading. // window.location.href = data; // }, // complete: function () { // }, // error: function (data) { // console.log("Error in Export to Excel"); // } // }); // } //function exportReport() { // var userID = userId; // var startDate = $("#startDate").val(); // var endDate = $("#endtDate").val(); // // sending ajax request to export ICR Unique Users and Data Usage to Excel, and hadling its completion // if (xhr_exportExport && xhr_exportExport.readystate != 4) { // xhr_exportExport.abort(); // } // xhr_exportExport = $.ajax({ // type: "POST", // url: "/Report/Ticket_Close_Open_NewExportToExcel/", // data: { UserId: userID, startDate: startDate, endDate: endDate, ticketStatus: "close", isTicketScore: isTicketScore }, // success: function (data) { // // making the generated Excel available for downloading. // window.location.href = data; // }, // complete: function () { // }, // error: function (data) { // console.log("Error in Export to Excel"); // } // }); //} function exportReport() { var userID = userId; // var apiUrl = url + "Api/Ticket?tickettype=count&openData=hh&isOpenclose=true&iscount=true&isajax=t&isajaxcount=true"; ////alert(userID); /// var apiUrl = WCFRESTURL.GetConsolidateCount; var startDate = $("#startDate").val(); var endDate = $("#endtDate").val(); console.log(startDate + 'startDate' + endtDate); var apiurldata = WCFRESTURL.GetcloseDataList; var strtype = "Close"; var ddlval=$('#ddFilterType').val(); if(ddlval == "Close"){ } else{ strtype = "Close,"+ddlval; } console.log(strtype);// sending ajax request to export ICR Unique Users and Data Usage to Excel, and hadling its completion if (xhr_exportExport && xhr_exportExport.readystate != 4) { xhr_exportExport.abort(); } xhr_exportExport = $.ajax({ type: "POST", //url: apiUrl, url: apiurldata, data: { UserId: userID, StartDate: startDate, EndDate: endDate, ticketStatus: "close", FromDate: startDate, ToDate: endDate, UtcMinute: UtcMinutes, Token: securityToken, Limit: "10000000", OffSet: "0", _timeOffSetMinutes: "330", TicketType: strtype }, dataType: "json", success: function (data) { // alert(data); // making the generated Excel available for downloading. window.location.href = data; }, complete: function () { }, error: function (data) { //alert(data); console.log("Error in Export to Excel"); } }); } /** * To apply filters to the Kendo-Grid-Columns. * @method applyFilterToKendoGridWithLogic * @param {String} gridId Target-Grid * @param {Array} columnName Target-Column-Name * @param {String} logic Filtering-Logic (eg: for Equals-to = eq) * @param {Array} operator Filtering-Operator (eg: AND, OR) * @param {Array} filterValues Values to be filtered in the Target column * @for CloseTicketReport */ function applyFilterToKendoGridWithLogic(gridId, columnName, logic, operator, filterValues) { var filter = { logic: logic, filters: [] }; for (var i = 0; i < filterValues.length; i++) { filter.filters.push({ field: columnName[i], operator: operator[i], value: filterValues[i] }); } //console.log(gridId); $("#" + gridId).data('kendoGrid').dataSource.filter(filter); } /** * To apply filters to the Kendo-Grid-Columns. * @method applyFilterToKendoGrid * @param {String} gridId Target-Grid * @param {String} columnName Target-Column-Name * @param {String} logic Filtering-Logic (eg: for Equals-to = eq) * @param {String} operator Filtering-Operator (eg: AND, OR) * @param {String} filterValues Values to be filtered in the Target column * @for CloseTicketReport */ function applyFilterToKendoGrid(gridId, columnName, operator, filterValues) { var filter = { "field": columnName, "operator": operator, "value": filterValues } $("#" + gridId).data('kendoGrid').dataSource.filter(filter); } /** * To get refresh reports on close of ticket details. * @method getRefresh * @for CloseTicketReport */ function getRefresh() { $(".k-i-close").click(function () { var currentPage = $("#CloseTicket").data('kendoGrid').dataSource.page(); //getCloseTicketHistory(currentPage); $('#CloseTicket').data('kendoGrid').dataSource.read(); $('#CloseTicket').data('kendoGrid').refresh(); }); } /** * Function call on edit button and redirect to ticket feedback page to edit feedback * @method editTicketFeedback * @for Report */ function editFeedback(e) { //alert('hello kitty'); var dataItem = this.dataItem($(e.currentTarget).closest("tr")); var ticketid = dataItem.Id; //window.location.href = "/Ticket/TicketAdministration?complaintNo=" + ticketid; window.open("/Ticket/TicketAdministration?complaintNo=" + ticketid + "&feedback=yes"); } //============================= document ready function ===============================// $(document).ready(function () { $('.excelIcon').hide(); /** * Global References: Getting parameters from query string. * @for OpenTicketReport */ assignedTo = getParameterByName('assignedTo'); startDateParam = getParameterByName('startDate'); endDateParam = getParameterByName('endDate'); setTimeout(function () { console.log(isepsFlag.toLowerCase()); if(isepsFlag.toLowerCase() == 'yes'){ $("#ddFilterType option").not("[value='EPS']").remove(); //$("#ddReasonForDealerTicket option[value='EPS']").remove(); } else{ if (_userRole.toLowerCase().trim() == 'cce'){ if(isepsFlag.toLowerCase() == 'both'){ } else{ $("#ddFilterType option[value='EPS']").remove(); } } } }, 2000); responseTime = getParameterByName('responseTime'); vehicleTag = getParameterByName('vehicleTag'); age = getParameterByName('age'); assignedToUser = getParameterByName('assignedToUser'); isTicketScore = getParameterByName('isTicketScore'); //console.log(startDateParam, endDateParam); // getCloseTicketHistory(); addKendoWindow("#divTicketDetails", "Ticket Details", "1000px", 150, 120); $("#divTicketDetails").parent().addClass("TicketReportDetails_Window"); });