EOS/Scripts/Report/reportTicketOpen.js
Nidhi Bhargava f0c1ab20e1 code push
2025-09-04 16:25:07 +05:30

436 lines
14 KiB
JavaScript

/*================================================================================================================\
+
+ Project : GoData-Eicher
+ Filename : reportTicketOpen.js
+ Module Name : OpenTicketReport
+ Purpose : For reporting
+ Coded By : Parul Gupta
+
+================================================================================================================*/
/**
* For reporting
* @module ReportModule
*/
/**
* This class contains functionality of Ticket report(Open)
* @class OpenTicketReport
* @constructor
*/
//Global variables
var slaMetImagePath = "../../Content/css/images/icons/green_circle.png";
var slaNotMetImagePath = "../../Content/css/images/icons/red_circle.png";
var xhr_exportExport;
var temp_dataItemId, temp_dataItemRowIndex;
/**
* Function to display open ticket details
* @method showOpenTicketDetails
* @for OpenTicketReport
*/
function showOpenTicketDetails(e) {
temp_dataItemId = "";
temp_dataItemRowIndex = '';
//console.log($(e.currentTarget).closest("tr"), $(e.currentTarget).closest("tr").index());
var dataItem = this.dataItem($(e.currentTarget).closest("tr"));
//console.log(dataItem);
temp_dataItemId = dataItem.Id;
temp_dataItemRowIndex = parseInt($(e.currentTarget).closest("tr").index(), 10);
$.ajax({
type: "POST",
url: "/Report/Ticket_GetOpencloseTicketFullDetails/",
data: { ticketId: dataItem.Id, ticketStatus: "open" },
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 open tickets history
* @method getOpenTicketHistory
* @for OpenTicketReport
*/
function getOpenTicketHistory() {
var startDate, endDate;
var userID = userId;
//console.log(userID);
//console.log(startDateParam, endDateParam);
//alert('aa');
if (startDateParam) {
startDate = startDateParam;
} else {
startDate = "01 dec 2022";
}
var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun",
"Jul", "Aug", "Sep", "Oct", "Nov", "Dec"
];
var date = new Date();
var day = date.getDate();
var month = monthNames[date.getMonth()]
var year = date.getFullYear();
var d = new Date();
if (endDateParam) {
endDate = endDateParam;
} else {
endDate = day + " " + month + " " + year;
}
var params = new URL(document.location.toString()).searchParams;
var name = params.get("modeltickets");
if (name == "yes") {
; var apiUrl = url + "Api/Admin?getopen=yes&tickets=test&modelwise=test&option=yes";
//alert(apiUrl);
$.ajax({
url: apiUrl,
type: 'POST',
data: { Token: securityToken, UserId: userID, FromDate: startDate, ToDate: endDate },
success: function (data) {
$('#dvtitle').html('Report - HD Buses Ticket');
// $('#dvExcel').hide();
modelwisereport(data);
//applyFiltersBasedOnParametersToKendoGrid();
$('.excelIcon').hide();
}
});
}
//console.log(startDate, endDate);
//send ajax request
else {
var strtype = "Open";
// alert(isepsFlag);
if(isepsFlag.toLowerCase() == 'yes'){
strtype = "Open,EPS";
}
//alert(strtype);
$.ajax({
type: "POST",
url: "/Report/Ticket_Open_Grid/",
data: { userId: userID, startDate: startDate, endDate: endDate, ticketStatus: "open" , ticketStatus: strtype },
success: function (data) {
$("#divGrid").html(data);
if (document.getElementById('OpenTicket') !== null) {
applyFiltersBasedOnParametersToKendoGrid();
setTimeout(function () {
if ($("#OpenTicket .k-grid-content table tbody tr").length > 0) {
$('.excelIcon').show();
} else {
$('.excelIcon').hide();
}
}, 1000);
} else {
$('.excelIcon').hide();
}
},
complete: function () {
startDateParam = "";
endDateParam = "";
},
error: function (data) {
console.log(data);
}
});
}
}
/**
* Function to apply filters on kendo grid based on parameters
* @method applyFiltersBasedOnParametersToKendoGrid
* @for OpenTicketReport
*/
function applyFiltersBasedOnParametersToKendoGrid() {
if (assignedTo) {
//applyFilterToKendoGrid('OpenTicket', 'AssignedTo', 'or', 'eq', [assignedTo]);
applyFilterToKendoGrid('OpenTicket', 'AssignedTo', 'eq', assignedTo);
}
}
/**
* Function call on row bound of close tickets table
* @method onRowBound
* @for OpenTicketReport
*/
function onRowBound(e) {
console.log(_userRole.toLowerCase().trim());
if (_userRole.toLowerCase().trim() == 'cce' || _userRole.toLowerCase().trim() == 'cce_admin') {
$('.k-grid-EditTicketActivity').text("").removeClass("k-button k-button-icontext").html("<span class='k-icon k-edit'></span>").show();
$('.k-grid-TicketDetails').hide();
} else {
$('.k-grid-TicketDetails').text("").removeClass("k-button k-button-icontext").html("<span class='k-icon k-justifyFull'></span>").show();
$('.k-grid-EditTicketActivity').hide();
}
//$('.k-grid-Performance').text("").removeClass("k-button k-button-icontext").html("<span class='k-icon k-performance'></span>");
// called common file function to show title on mouse hover.
addTitleAttribute();
// sla met or not met functionality
var data = this.dataSource.view();
//console.log(data);
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 gps status of van
var gps_status = data[i].gps_status;
var row = this.table.find("tr[data-uid='" + uid + "']");
//console.log(defaultSla, totalLifeCycleSla);
if (defaultSla > totalLifeCycleSla) {
row.find('.k-grid-resolutionSla').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaMetImagePath + "' title='SLA met'>");
} else {
row.find('.k-grid-resolutionSla').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaNotMetImagePath + "' title='SLA not met'>");
}
if (gps_status != null) {
if (gps_status.toLowerCase().trim() == "true")
row.find('.k-grid-gps_status').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaMetImagePath + "' title='Online'>");
else
row.find('.k-grid-gps_status').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaNotMetImagePath + "' title='Offline'>");
} else {
row.find('.k-grid-gps_status').text("").removeClass("k-button k-button-icontext").html("");
}
}
var grid = $("#OpenTicket").data("kendoGrid");
var gridData = grid.dataSource.view();
for (var i = 0; i < gridData.length; i++) {
if (gridData[i].CreationTimeMorethan24Hrs === true) {
grid.table.find("tr[data-uid='" + gridData[i].uid + "']").addClass("highlighted-row");
}
}
}
/**
* To get filter parameters and export report.
* @method exportReport
* @for OpenTicketReport
*/
// function exportReport() {
// var userID = userId;
// // 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: "", endDate: "", ticketStatus: "open" },
// 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;
// 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: "", endDate: "", ticketStatus: "open" },
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(apiUrl);
/// var apiUrl = WCFRESTURL.GetConsolidateCount;
var startDate = "01 jan 1900"; //$("#startDate").val();
var endDate = $("#endtDate").val();
var apiurldata = WCFRESTURL.GetopenDataList;
var strtype = "Open";
var ddlval=$('#ddFilterType').val();
if(ddlval == "Open"){
}
else{
strtype = "Open,"+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: "open", FromDate: startDate, ToDate: endDate, UtcMinute: UtcMinutes, Token: securityToken, Limit: "1000", 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 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 {Array} filterValues Values to be filtered in the Target column
* @for OpenTicketReport
*/
function applyFilterToKendoGrid(gridId, columnName, operator, filterValues) {
var filter = {
"field": columnName,
"operator": operator,
"value": filterValues
}
$("#" + gridId).data('kendoGrid').dataSource.filter(filter);
}
var assignedTo, startDateParam, endDateParam;
/**
* To get refresh reports on close of ticket details.
* @method getRefresh
* @for OpenTicketReport
*/
function getRefresh() {
$(".k-i-close").click(function () {
//console.log(temp_dataItemId, temp_dataItemRowIndex);
var openTicketId = temp_dataItemId;
var openTicketRowIndex = temp_dataItemRowIndex;
$.ajax({
type: "POST",
url: "/Report/CheckIfTicketExistInOpen/",
data: { ticketId: openTicketId, ticketStatus: "open" },
success: function (data) {
if (data.success == true) {
} else {
$('#OpenTicket').data('kendoGrid').removeRow($('#OpenTicket').data('kendoGrid').tbody.find("tr")[parseInt(openTicketRowIndex, 10)]);
}
},
error: function (data) {
console.log(data);
}
});
});
}
/**
* Function call on edit button and redirect to ticket activity page to edit ticket activity
* @method editTicketActivity
* @for Report
*/
function editActivity(e) {
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);
}
//============================= document ready function ===============================//
$(document).ready(function () {
$('.excelIcon').hide();
/**
* Global References: Getting parameters from query string.
* @for OpenTicketRepor
*/
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();
}
}
}
getOpenTicketHistory();
},500);
assignedTo = getParameterByName('assignedTo');
startDateParam = getParameterByName('startDate');
endDateParam = getParameterByName('endDate');
addKendoWindow("#divTicketDetails", "Ticket Details", "1000px", 150, 120);
$("#divTicketDetails").parent().addClass("TicketReportDetails_Window");
});