536 lines
24 KiB
HTML
536 lines
24 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<title>Report\reportTicketClose.js</title>
|
|
<link rel="stylesheet" href="http://yui.yahooapis.com/3.9.1/build/cssgrids/cssgrids-min.css">
|
|
<link rel="stylesheet" href="../assets/vendor/prettify/prettify-min.css">
|
|
<link rel="stylesheet" href="../assets/css/main.css" id="site_styles">
|
|
<link rel="shortcut icon" type="image/png" href="../assets/favicon.png">
|
|
<script src="http://yui.yahooapis.com/combo?3.9.1/build/yui/yui-min.js"></script>
|
|
</head>
|
|
<body class="yui3-skin-sam">
|
|
|
|
<div id="doc">
|
|
<div id="hd" class="yui3-g header">
|
|
<div class="yui3-u-3-4">
|
|
|
|
<h1><img src="../assets/css/logo.png" title=""></h1>
|
|
|
|
</div>
|
|
<div class="yui3-u-1-4 version">
|
|
<em>API Docs for: </em>
|
|
</div>
|
|
</div>
|
|
<div id="bd" class="yui3-g">
|
|
|
|
<div class="yui3-u-1-4">
|
|
<div id="docs-sidebar" class="sidebar apidocs">
|
|
<div id="api-list">
|
|
<h2 class="off-left">APIs</h2>
|
|
<div id="api-tabview" class="tabview">
|
|
<ul class="tabs">
|
|
<li><a href="#api-classes">Classes</a></li>
|
|
<li><a href="#api-modules">Modules</a></li>
|
|
</ul>
|
|
|
|
<div id="api-tabview-filter">
|
|
<input type="search" id="api-filter" placeholder="Type to filter APIs">
|
|
</div>
|
|
|
|
<div id="api-tabview-panel">
|
|
<ul id="api-classes" class="apis classes">
|
|
|
|
<li><a href="../classes/CallFeedbackRating.html">CallFeedbackRating</a></li>
|
|
|
|
<li><a href="../classes/CloseTicketReport.html">CloseTicketReport</a></li>
|
|
|
|
<li><a href="../classes/ConsolidatedReport.html">ConsolidatedReport</a></li>
|
|
|
|
<li><a href="../classes/CustomerReport.html">CustomerReport</a></li>
|
|
|
|
<li><a href="../classes/DealerWiseCallDetails.html">DealerWiseCallDetails</a></li>
|
|
|
|
<li><a href="../classes/DeclinedCalls.html">DeclinedCalls</a></li>
|
|
|
|
<li><a href="../classes/DropDownData.html">DropDownData</a></li>
|
|
|
|
<li><a href="../classes/EicherPromise.html">EicherPromise</a></li>
|
|
|
|
<li><a href="../classes/EosCallCount.html">EosCallCount</a></li>
|
|
|
|
<li><a href="../classes/GeoAnalysis.html">GeoAnalysis</a></li>
|
|
|
|
<li><a href="../classes/HdBusLmdContrCallFeedbackRatingibution.html">HdBusLmdContrCallFeedbackRatingibution</a></li>
|
|
|
|
<li><a href="../classes/HdBusLmdContribution.html">HdBusLmdContribution</a></li>
|
|
|
|
<li><a href="../classes/HistoryTracking.html">HistoryTracking</a></li>
|
|
|
|
<li><a href="../classes/LiveTracking.html">LiveTracking</a></li>
|
|
|
|
<li><a href="../classes/ManageEscalation.html">ManageEscalation</a></li>
|
|
|
|
<li><a href="../classes/ManageFleet.html">ManageFleet</a></li>
|
|
|
|
<li><a href="../classes/ManageFleet_Detail.html">ManageFleet_Detail</a></li>
|
|
|
|
<li><a href="../classes/ManageFleet_details.html">ManageFleet_details</a></li>
|
|
|
|
<li><a href="../classes/ManageOwner.html">ManageOwner</a></li>
|
|
|
|
<li><a href="../classes/ManageReason.html">ManageReason</a></li>
|
|
|
|
<li><a href="../classes/ManageVechile.html">ManageVechile</a></li>
|
|
|
|
<li><a href="../classes/ManageVehicle.html">ManageVehicle</a></li>
|
|
|
|
<li><a href="../classes/NonVecvUserManagement.html">NonVecvUserManagement</a></li>
|
|
|
|
<li><a href="../classes/Notifications.html">Notifications</a></li>
|
|
|
|
<li><a href="../classes/OpenTicketReport.html">OpenTicketReport</a></li>
|
|
|
|
<li><a href="../classes/OrganizationChart.html">OrganizationChart</a></li>
|
|
|
|
<li><a href="../classes/PositioningTool.html">PositioningTool</a></li>
|
|
|
|
<li><a href="../classes/PositioningTool_Report.html">PositioningTool_Report</a></li>
|
|
|
|
<li><a href="../classes/ReasonForClosure.html">ReasonForClosure</a></li>
|
|
|
|
<li><a href="../classes/Report.html">Report</a></li>
|
|
|
|
<li><a href="../classes/ShowDealerMap.html">ShowDealerMap</a></li>
|
|
|
|
<li><a href="../classes/TicketAdministration.html">TicketAdministration</a></li>
|
|
|
|
<li><a href="../classes/TicketAdministration_FullDetail.html">TicketAdministration_FullDetail</a></li>
|
|
|
|
<li><a href="../classes/TicketFeedback.html">TicketFeedback</a></li>
|
|
|
|
<li><a href="../classes/TicketForDealer.html">TicketForDealer</a></li>
|
|
|
|
<li><a href="../classes/TicketForDealer_FullDetails.html">TicketForDealer_FullDetails</a></li>
|
|
|
|
<li><a href="../classes/TicketReassign.html">TicketReassign</a></li>
|
|
|
|
<li><a href="../classes/TileDashboard.html">TileDashboard</a></li>
|
|
|
|
<li><a href="../classes/TimeSlotClosure.html">TimeSlotClosure</a></li>
|
|
|
|
<li><a href="../classes/TollFreeAndOpportunityLoss.html">TollFreeAndOpportunityLoss</a></li>
|
|
|
|
<li><a href="../classes/VanCoverageDesigner.html">VanCoverageDesigner</a></li>
|
|
|
|
<li><a href="../classes/VecvUserManagement.html">VecvUserManagement</a></li>
|
|
|
|
</ul>
|
|
|
|
<ul id="api-modules" class="apis modules">
|
|
|
|
<li><a href="../modules/Dashboard.html">Dashboard</a></li>
|
|
|
|
<li><a href="../modules/DropDownData.html">DropDownData</a></li>
|
|
|
|
<li><a href="../modules/Geo.html">Geo</a></li>
|
|
|
|
<li><a href="../modules/Inventory.html">Inventory</a></li>
|
|
|
|
<li><a href="../modules/Notifications.html">Notifications</a></li>
|
|
|
|
<li><a href="../modules/ReportModule.html">ReportModule</a></li>
|
|
|
|
<li><a href="../modules/Ticket.html">Ticket</a></li>
|
|
|
|
<li><a href="../modules/TrackingModule.html">TrackingModule</a></li>
|
|
|
|
<li><a href="../modules/UserManagement.html">UserManagement</a></li>
|
|
|
|
</ul>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
<div class="yui3-u-3-4">
|
|
<div id="api-options">
|
|
Show:
|
|
<label for="api-show-inherited">
|
|
<input type="checkbox" id="api-show-inherited" checked>
|
|
Inherited
|
|
</label>
|
|
|
|
<label for="api-show-protected">
|
|
<input type="checkbox" id="api-show-protected">
|
|
Protected
|
|
</label>
|
|
|
|
<label for="api-show-private">
|
|
<input type="checkbox" id="api-show-private">
|
|
Private
|
|
</label>
|
|
<label for="api-show-deprecated">
|
|
<input type="checkbox" id="api-show-deprecated">
|
|
Deprecated
|
|
</label>
|
|
|
|
</div>
|
|
|
|
|
|
<div class="apidocs">
|
|
<div id="docs-main">
|
|
<div class="content">
|
|
<h1 class="file-heading">File: Report\reportTicketClose.js</h1>
|
|
|
|
<div class="file">
|
|
<pre class="code prettyprint linenums">
|
|
/*================================================================================================================\
|
|
+
|
|
+ Project : GoData-Eicher
|
|
+ Filename : reportTicketClose.js
|
|
+ Module Name : CloseTicketReport
|
|
+ Purpose : For reporting
|
|
+ Coded By : Parul Gupta
|
|
+
|
|
+================================================================================================================*/
|
|
|
|
|
|
/**
|
|
* For reporting
|
|
* @module ReportModule
|
|
*/
|
|
|
|
|
|
|
|
/**
|
|
* This class contains functionality of Ticket report(Close)
|
|
* @class CloseTicketReport
|
|
* @constructor
|
|
*/
|
|
|
|
var xhr_exportExport;
|
|
|
|
|
|
|
|
//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();
|
|
},
|
|
error: function (data) {
|
|
console.log(data);
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* Function to get close tickets history
|
|
* @method getCloseTicketHistory
|
|
* @for CloseTicketReport
|
|
*/
|
|
function getCloseTicketHistory() {
|
|
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();
|
|
}
|
|
|
|
//console.log(userID);
|
|
//send ajax request
|
|
$.ajax({
|
|
type: "POST",
|
|
url: "/Report/Ticket_Close_Grid/",
|
|
data: { userId: userID, startDate: startDate, endDate: endDate, ticketStatus: "close" },
|
|
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 () {
|
|
startDateParam = "";
|
|
endDateParam = "";
|
|
},
|
|
error: function (data) {
|
|
console.log(data);
|
|
}
|
|
});
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
* Function to apply filters on kendo grid based on parameters
|
|
* @method applyFiltersBasedOnParametersToKendoGrid
|
|
* @for CloseTicketReport
|
|
*/
|
|
function applyFiltersBasedOnParametersToKendoGrid() {
|
|
|
|
if (assignedTo) {
|
|
applyFilterToKendoGrid('CloseTicket', 'AssignedTo', 'eq', assignedTo);
|
|
} else if (responseTime) {
|
|
applyFilterToKendoGrid('CloseTicket', 'TotalTicketLifeCycleTimeSlab', 'eq', responseTime);
|
|
} else if (vehicleTag && !age) {
|
|
applyFilterToKendoGrid('CloseTicket', 'VehicleTagging', 'eq', vehicleTag);
|
|
} else if (vehicleTag && age) {
|
|
applyFilterToKendoGridWithLogic('CloseTicket', ['VehicleTagging', 'Age'], 'and', ['eq', 'lte'], [vehicleTag, age]);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* Function call on row bound of close tickets table
|
|
* @method onRowBound
|
|
* @for CloseTicketReport
|
|
*/
|
|
function onRowBound(e) {
|
|
$('.k-grid-TicketDetails').text("").removeClass("k-button k-button-icontext").html("<span class='k-icon k-justifyFull'></span>");
|
|
$('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<span class='k-icon k-justifyFull'></span>");
|
|
//$('.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(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 = data[i].Age;
|
|
// get 24 hrs reason of row
|
|
var reasonFor24Hrs = data[i].DefaultCol3;
|
|
|
|
var row = this.table.find("tr[data-uid='" + uid + "']");
|
|
|
|
|
|
if ((age >= 24) && (feedback != "" && feedback != null) && (reasonFor24Hrs != "" && reasonFor24Hrs != null)) {
|
|
row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: green;'>F</span>&nbsp;&nbsp;&nbsp;&nbsp;<span id='span24Hrs' class='Hours' style='background: green;'>24</span>");
|
|
row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: green;'>F</span>");
|
|
row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("<span id='span24Hrs' class='Hours' style='background: green;'>24</span>");
|
|
} else if ((age >= 24) && (feedback == "" || feedback == null) && (reasonFor24Hrs != "" && reasonFor24Hrs != null)) {
|
|
row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: red;'>F</span>&nbsp;&nbsp;&nbsp;&nbsp;<span id='span24Hrs' class='Hours' style='background: green;'>24</span>");
|
|
row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: green;'>F</span>");
|
|
row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("<span id='span24Hrs' class='Hours' style='background: red;'>24</span>");
|
|
} else if ((age >= 24) && (feedback == "" || feedback == null) && (reasonFor24Hrs == "" || reasonFor24Hrs == null)) {
|
|
row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: red;'>F</span>&nbsp;&nbsp;&nbsp;&nbsp;<span id='span24Hrs' class='Hours' style='background: red;'>24</span>");
|
|
row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: red;'>F</span>");
|
|
row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("<span id='span24Hrs' class='Hours' style='background: red;'>24</span>");
|
|
} else if ((age >= 24) && (feedback != "" && feedback != null) && (reasonFor24Hrs == "" || reasonFor24Hrs == null)) {
|
|
row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: green;'>F</span>&nbsp;&nbsp;&nbsp;&nbsp;<span id='span24Hrs' class='Hours' style='background: red;'>24</span>");
|
|
row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: red;'>F</span>");
|
|
row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("<span id='span24Hrs' class='Hours' style='background: green;'>24</span>");
|
|
} else if (age < 24 && (feedback == "" || feedback == null)) {
|
|
row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: red;'>F</span>");
|
|
row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: red;'>F</span>");
|
|
row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("<span style='color:black'>NA</span>");
|
|
} else if (age < 24 && (feedback != "" && feedback != null)) {
|
|
row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: green;'>F</span>");
|
|
row.find('.k-grid-feedbackDetails').text("").removeClass("k-button k-button-icontext").html("<span id='spanFeedback' class='feedback' style='background: green;'>F</span>");
|
|
row.find('.k-grid-reason24Hrs').text("").removeClass("k-button k-button-icontext").html("<span style='color:black'>NA</span>");
|
|
}
|
|
|
|
|
|
|
|
|
|
if (defaultSla > totalLifeCycleSla) {
|
|
//row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<span style='background: green;' class='feedback'>F</span>");
|
|
row.find('.k-grid-resolutionSla').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaMetImagePath + "' title='SLA met'>");
|
|
} else {
|
|
// row.find('.k-grid-feedback').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaMetImagePath + "' title='SLA met'>");
|
|
row.find('.k-grid-resolutionSla').text("").removeClass("k-button k-button-icontext").html("<img src='" + slaNotMetImagePath + "' title='SLA not met'>");
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
//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" },
|
|
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");
|
|
}
|
|
});
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
* 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);
|
|
}
|
|
|
|
var assignedTo, startDateParam, endDateParam, responseTime, vehicleTag, age;
|
|
|
|
//============================= 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');
|
|
responseTime = getParameterByName('responseTime');
|
|
vehicleTag = getParameterByName('vehicleTag');
|
|
age = getParameterByName('age');
|
|
//console.log(startDateParam, endDateParam);
|
|
|
|
getCloseTicketHistory();
|
|
|
|
addKendoWindow("#divTicketDetails", "Ticket Details", "1000px", 150, 120);
|
|
$("#divTicketDetails").parent().addClass("TicketReportDetails_Window");
|
|
});
|
|
</pre>
|
|
</div>
|
|
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<script src="../assets/vendor/prettify/prettify-min.js"></script>
|
|
<script>prettyPrint();</script>
|
|
<script src="../assets/js/yui-prettify.js"></script>
|
|
<script src="../assets/../api.js"></script>
|
|
<script src="../assets/js/api-filter.js"></script>
|
|
<script src="../assets/js/api-list.js"></script>
|
|
<script src="../assets/js/api-search.js"></script>
|
|
<script src="../assets/js/apidocs.js"></script>
|
|
</body>
|
|
</html>
|