- <script type="text/javascript" src="https://code.jquery.com/jquery-1.8.3.js"></script>
- <script type="text/javascript" src="//code.highcharts.com/highcharts.src.js"></script>
- <script type="text/javascript">
- var maternityLeaveDays = 0;
- var paternityLeaveDays = 0;
- var ComOffLeaveDays = 0;
- var sickLeaveDays = 0;
- var casualLeaveDays = 0;
- var userExist = false;
- var compOffLeaveFromEmployeeLeaveList = 0;
- var sickLeaveFromEmployeeLeaveList = 0;
- var casualLeaveFromEmployeeLeaveList = 0;
- var MLOffLeaveFromEmployeeLeaveList = 0;
- var PLLeaveFromEmployeeLeaveList = 0;
- var URLString = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('EmployeeLeave')/Items?$select=Totalleavedays,LeaveType/LeaveType&$filter=(EmpName eq'" + _spPageContextInfo.userDisplayName + "') and (Employee0 eq'16')&$expand=LeaveType";
- $.ajax({
- url: URLString,
- type: "GET",
- dataType: "json",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose"
- },
- success: callSuccessMethod,
- error: callFailureMethod
- });
- function callSuccessMethod(data, request) {
- if (data.d.results.length >= 1) {
- userExist = true;
- $.each(data.d.results, function(key, val) {
- if (val.LeaveType.LeaveType === 'Compoff') {
- compOffLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- } else if (val.LeaveType.LeaveType === 'SickLeave') {
- sickLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- } else if (val.LeaveType.LeaveType === 'CasualLeave') {
- casualLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- } else if (val.LeaveType.LeaveType === 'MaternityLeave') {
- MLOffLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- } else if (val.LeaveType.LeaveType === 'PaternityLeave') {
- PLLeaveFromEmployeeLeaveList += parseInt(val.Totalleavedays);
- }
- });
- var endPointURLString = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Leavetype')/Items?$select=LeaveType,Total,isActive&$filter=isActive eq '1' ";
- $.ajax({
- url: endPointURLString,
- type: "GET",
- dataType: "json",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose"
- },
- success: callSuccessMethodForLeaveType,
- error: callFailureMethodLeaveType
- });
- } else {
- userExist = false;
- var endPointURLString = _spPageContextInfo.webAbsoluteUrl + "/_api/web/lists/getbytitle('Leavetype')/Items";
- $.ajax({
- url: endPointURLString,
- type: "GET",
- dataType: "json",
- async: false,
- headers: {
- "accept": "application/json;odata=verbose"
- },
- success: callSuccessMethodForLeaveType,
- error: callFailureMethodLeaveType
- });
- }
- }
- function callFailureMethod(data, errCode, errMessage) {
- alert("Error: " + errMessage);
- }
- function callSuccessMethodForLeaveType(data, request) {
- $.each(data.d.results, function(key, val) {
- if (val.LeaveType === 'Casual Leave') {
- casualLeaveDays = val.Total;
- } else if (val.LeaveType === 'Marriage Leave') {
- marriageLeaveDays = val.Total;
- } else if (val.LeaveType === 'Maternity Leave') {
- maternityLeaveDays = val.Total;
- } else if (val.LeaveType === 'Paternity Leave') {
- paternityLeaveDays = val.Total;
- } else if (val.LeaveType === 'Compensatory Leave') {
- ComOffLeaveDays = val.Total;
- } else if (val.LeaveType === 'Sick Leave') {
- sickLeaveDays = val.Total;
- }
- });
- }
- if (userExist) {
- ComOffLeaveDays = (parseInt(ComOffLeaveDays) - parseInt(compOffLeaveFromEmployeeLeaveList));
- sickLeaveDays = (parseInt(sickLeaveDays) - parseInt(sickLeaveFromEmployeeLeaveList));
- casualLeaveDays = (parseInt(casualLeaveDays) - parseInt(casualLeaveFromEmployeeLeaveList));
- maternityLeaveDays = (parseInt(maternityLeaveDays) - parseInt(MLOffLeaveFromEmployeeLeaveList));
- paternityLeaveDays = (parseInt(paternityLeaveDays) - parseInt(PLLeaveFromEmployeeLeaveList));
- DrawChart();
- }
- if (!userExist) {
- DrawChart();
- }
- }
- function callFailureMethodLeaveType(data, errCode, errMessage) {
- alert("Error: " + errMessage);
- }
- function DrawChart() {
- PieChart = new Highcharts.Chart({
- chart: {
- renderTo: 'chart-container',
- plotBackgroundColor: null,
- plotBorderWidth: null,
- plotShadow: false,
- type: 'pie'
- },
- title: {
- text: 'Balance Leave Availble'
- },
- tooltip: {
- pointFormat: '{series.name}: <b>{point.y}</b>'
- },
- plotOptions: {
- pie: {
- allowPointSelect: true,
- cursor: 'pointer',
- dataLabels: {
- enabled: true,
- format: '<b>{point.name}</b>: {point.y}',
- style: {
- color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
- }
- }
- }
- },
- series: [{
- name: 'Leave Balance',
- colorByPoint: true,
- data: [
- ['TotalCasualLeave', casualLeaveDays],
- ['CompOff', ComOffLeaveDays],
- ['MaternityLeave', maternityLeaveDays],
- ['PaternityLeave', paternityLeaveDays],
- ['SicKLeave', sickLeaveDays]
- ]
- }]
- });
- }
- </script>
Join the conversation! Your thoughts help the community grow.
Sign in to leave a comment
It is the same account you read, post and publish with — and you will come straight back to this page.

Md Tahmidul AbedinPosted Oct 14, 2019, 8:48 AM
Nice one .Thanks for sharing. (Y)
Vinodh NarayananPosted Jun 28, 2017, 3:28 AM
Good one thanks for sharing please share the final result if possible