'use strict'; /** * controllers for ng-table * Simple table with sorting and filtering on AngularJS */ app.controller('examAttendanceCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$sessionStorage", "$http", "$state","$modal","$log", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $sessionStorage, $http, $state,$modal,$log) { $scope.myModel = { "batchName":"", "centerName":"", "examDate":"", "universityName":"", "examAttendance":"" }; $scope.pdfModel = { "universityDetails":"", "studentDetails":"", "batchDetails":"", "courseDetails":"", "centerDetails":"", "semDataType":"" }; $rootScope.userType = JSON.parse(sessionStorage.getItem('localObj')).localType; $scope.isTblShow = false; $scope.isLoader = false; $scope.isLoaderShow = false; $scope.isLoaderTxt = "Loading..."; // sorting function for table params $scope.sort = function(keyname){ $scope.sortKey = keyname; //set the sortKey to the param passed $scope.reverse = !$scope.reverse; //if true make it false and vice versa } /* * init function * created by kms * */ $scope.init = function () { // var logcheck = JSON.parse(sessionStorage.getItem('localObj')); // const LOCALTYPE = logcheck.localType; // if (logcheck != null && (LOCALTYPE == 'R003' || LOCALTYPE == 'R004' )) { // console.log("if"); // }else { // if(logcheck != null && LOCALTYPE !='R001') { // console.log("else if"); // $state.go('app.dashboard'); // } else { // console.log("else else"); // //ipCookie.remove('cookiechk'); // window.sessionStorage.clear(); // $state.go('login.signin'); // } // } var getUniv = { method: 'POST', url: apiPoint.url + 'getUniversityCourseDetails/', headers: { 'Content-Type': 'application/json' }, data: { requestedBy: JSON.parse(sessionStorage.getItem('localObj')).localUserID, branchId:JSON.parse(sessionStorage.getItem('localObj')).localBranchID } }; $http(getUniv).then(function (response) { if (response.data.status == 200 && response.data.universityStatus) { //$scope.batchDetails = response.data.batchDetails; $scope.university = response.data.univerSityDetails; $scope.centerDetails = response.data.centerDetails; } else { $scope.batchDetails = ""; $scope.centerDetails = ""; } }); } /* * get student details * created by kms * */ $scope.studentInfo=""; $scope.ExamAttendancee=""; $scope.getExamAttendanceDetails = function (form,myModel) { //console.log(myModel);return false; if(myModel.universityName == '' || myModel.universityName == null || myModel.universityName == undefined){ swal('Select University','','warning'); return false; } if(myModel.centerName == '' || myModel.centerName == null || myModel.centerName == undefined){ swal('Select Center','','warning'); return false; } if(myModel.batchName == null || myModel.batchName == '' || myModel.batchName == undefined){ swal('Select Batch','','warning'); return false; } if(myModel.examDate == null || myModel.examDate == '' || myModel.examDate == undefined){ swal('Select Date of Examination','','warning'); return false; } if(myModel.examAttendance == null || myModel.examAttendance == '' || myModel.examAttendance == undefined){ swal('Select Timing of Examination','','warning'); return false; } var firstError = null; if (form.$invalid) { var field = null, firstError = null; for (field in form) { if (field[0] != '$') { if (firstError === null && !form[field].$valid) { firstError = form[field].$name; } if (form[field].$pristine) { form[field].$dirty = true; } } } angular.element('.ng-invalid[name=' + firstError + ']').focus(); // swal("The form cannot be submitted because it contains validation errors!", "Errors are marked with a red, dashed border!", "error"); } else { // $scope.selectedStudentsID = []; // $scope.isLoaderShow = true; // $scope.myModel.all = false; // $scope.isTblShow = false; var centerName = myModel.centerName; var examDate = myModel.examDate; var batch = myModel.batchName; var University =myModel.universityName; var exam_attendance = myModel.examAttendance; $scope.ExamAttendancee = exam_attendance; //alert(examDate); var getAttendance = { method: 'POST', url: apiPoint.url + 'getStudentDetailsForExamAttendance/', headers: { 'Content-Type': 'application/json' }, data: { university:University, centerName: centerName, batch:batch, examDate:examDate, requestedtBy: JSON.parse(sessionStorage.getItem('localObj')).localUserID, branchId: JSON.parse(sessionStorage.getItem('localObj')).localBranchID, requestedDept: JSON.parse(sessionStorage.getItem('localObj')).localType, exam_attendance:exam_attendance, } }; $http(getAttendance).then(function (response) { //console.log(response); if (response.data.status == 200 && response.data.studentDetails) { $scope.studentInfo = response.data.studentDetails; $scope.isLoaderShow = false; $scope.studentInfoAM = []; $scope.studentInfoPM = []; angular.forEach($scope.studentInfo,function(value,key){ //var dateType = $filter('date')(new Date(value.FromTime),'a'); var dateType = value.FromTime.substr(-2); if(dateType == "AM" || dateType == "am") { $scope.studentInfoAM.push(value); }else if(dateType == "PM" || dateType == "pm") { $scope.studentInfoPM.push(value); } $rootScope.studentInfoAM_Length = $scope.studentInfoAM.length; $rootScope.studentInfoPM_Length = $scope.studentInfoPM.length; }); //console.log($scope.studentInfo); $scope.open($scope.myModel.universityName['universityName'],$scope.studentInfoAM,$scope.studentInfoPM,myModel.centerName,$scope.selectedBatchName, myModel.examDate); } else { $scope.studentInfo=""; $scope.isLoaderShow = true; //$scope.isTblShow = false; $scope.isLoaderTxt = "No Records Found"; } },function(error){ $scope.isLoaderShow = true; //$scope.isTblShow = false; $scope.isLoaderTxt = "No Records Found"; }); } } $scope.open = function (UNAME,PDFITEM_AM,PDFITEM_PM,PDFCENTER,PDFBATCH,PDFEXAMDATE) { /****************************************************************/ $rootScope.dataForExamAttendanceAM = PDFITEM_AM; $rootScope.dataForExamAttendancePM = PDFITEM_PM; /****************************************************************/ $rootScope.pdfcenter = PDFCENTER; $rootScope.pdfbatch = PDFBATCH; $rootScope.pdfexamdate = PDFEXAMDATE; $rootScope.pdfuname = UNAME; $rootScope.ExamAttens = $scope.ExamAttendancee; //console.log($rootScope.ExamAttens);return false; var Size = {width:800}; var modalInstance = $modal.open({ templateUrl: 'assets/views/hallticket/examAttendancePDF.html', controller: 'examAttendanceCtrl', size:Size }); modalInstance.result.then(function (selectedItem) { $scope.selected = selectedItem; }, function () { $rootScope.dataForExamAttendanceAM = ""; $rootScope.dataForExamAttendancePM = ""; $rootScope.pdfcenter = ""; $rootScope.pdfbatch = ""; $rootScope.pdfexamdate = ""; $rootScope.pdfuname = ""; $log.info('Modal dismissed at: ' + new Date()); }); }; $scope.captureCourseName = function() { $scope.selectedCourseName = course.options[course.selectedIndex].text; }; $scope.captureBatchName = function() { $scope.selectedBatchName = batch.options[batch.selectedIndex].text; }; $scope.printAttendanceDetails = function() { var AttendanceTableID_AM = ""; var AttendanceTableID_PM = ""; // $scope.currentPage = 1; // $scope.numPerPage = 10; $scope.pdfExamDateToDisplay = $filter('date')(new Date($rootScope.pdfexamdate),'dd-MM-yyyy'); var fileNameAM = $rootScope.pdfuname+'-'+$rootScope.pdfcenter['CenterName']+"-"+$rootScope.pdfbatch+'- Attendance of '+$scope.pdfExamDateToDisplay+'ForeNoon Session.PDF'; var fileNamePM = $rootScope.pdfuname+'-'+$rootScope.pdfcenter['CenterName']+"-"+$rootScope.pdfbatch+'- Attendance of '+$scope.pdfExamDateToDisplay+'After Noon Session.PDF'; var margins = { top: 70, bottom: 40, left: 30, width: 500, }; var pdfSize = 'a4'; var doc1 = new jsPDF('l', 'pt',pdfSize); // doc1.setPage(10); doc1.autoTableSetDefaults({ // // styles: {cellPadding: 5.0, fontSize: 8, height:70, overflow: 'linebreak' // }, styles: {overflow: 'linebreak', font: 'arial', fontSize: 8, cellPadding: 5, columnwidth: 'auto'}, // columStyles:{ // 0:{columnWidth:20}, // 1:{columnWidth:50}, // 2:{columnWidth:50}, // 3:{columnWidth:20}, // 4:{columnWidth:50}, // 5:{columnWidth:50}, // 6:{columnWidth:40}, // 7:{columnWidth:50}, // 8:{columnWidth:40}, // 9:{columnWidth:50} // }, headerStyles: {fillColor: [245, 245, 240], textColor: 0} }); var pdfSize = 'a4'; var doc2 = new jsPDF('l', 'pt',pdfSize); // doc2.setPage(10); doc2.autoTableSetDefaults({ // rowWidth: 'wrap', // columnWidth: 'wrap', // styles: {cellPadding: 5.0, fontSize: 8, height:70,overflow: 'linebreak',columnWidth: 'wrap'}, styles: {overflow: 'linebreak', font: 'arial', fontSize: 8, cellPadding: 5, columnwidth: 'auto'}, headerStyles: {fillColor: [245, 245, 240], textColor: 0} }); if(document.getElementById("attendanceTableAM")) { var AttendanceTableID_AM = doc1.autoTableHtmlToJson(document.getElementById("attendanceTableAM")); } if(document.getElementById("attendanceTablePM")) { var AttendanceTableID_PM = doc2.autoTableHtmlToJson(document.getElementById("attendanceTablePM")); } var headerAM = function(data) { var heading = $rootScope.pdfuname+' '+$rootScope.pdfbatch+' Examination'+' '+'Center'+' '+$rootScope.pdfcenter['CenterName']+' Attendance of '+ $scope.pdfExamDateToDisplay+' Forenoon Session '; // var heading1='Attendance of '+$scope.pdfExamDateToDisplay+'Forenoon Session'; doc1.setFontSize(9); doc1.setFontStyle('bold'); //doc1.text(60,30,heading); var heading_length = heading.length; console.log(heading_length); var heading_start_point = 0; // var heading1_start_point = 0; if(heading_length <= 100) { var heading_start_point = 50; // var heading1_start_point = 350; console.log('heading_length <= 100'); } else { var heading_start_point = 50; // var heading1_start_point = 300; console.log('else'); } // console.log(heading_length); // console.log((doc1.internal.pageSize.width/2)); // console.log((doc1.internal.pageSize.width/2)-(heading_length)); doc1.text(heading_start_point,30,heading); doc1.setFontSize(9); doc1.setFontStyle('bold'); //doc1.text(70,45,heading1); // doc1.text(heading1_start_point,45,heading1); }; // ctx.textAlign = "right"; //ctx.fillText("textAlign=right",150, 140); var headerPM = function(data) { var heading = $rootScope.pdfuname+' '+$rootScope.pdfbatch+' Examination'+' '+'Center'+' '+$rootScope.pdfcenter['CenterName']+' Attendance of '+ $scope.pdfExamDateToDisplay+' After Noon Session'; // var heading1='Attendance of '+$scope.pdfExamDateToDisplay+'After Noon Session'; doc2.setFontSize(9); doc2.setFont("helvetica"); //doc2.setFontStyle('bold'); var heading_length = heading.length; console.log(heading_length); var heading_start_point = 0; // var heading1_start_point = 0; if(heading_length <= 100) { var heading_start_point = 50; // var heading1_start_point = 350; console.log('heading_length <= 100'); } else { var heading_start_point = 50; // var heading1_start_point = 300; console.log('else'); } doc2.text(heading_start_point,30,heading); doc2.setFontSize(9); doc2.setFont("helvetica"); //doc2.setFontStyle('bold'); // doc2.text(heading1_start_point,45,heading1); }; var autoTableEndPosYvalue = 0; var options1 = { addPageContent: headerAM, drawRow: function(row,data){ row.height=50 }, margin: { top: 50 }, theme :'grid' }; var options2 = { addPageContent: headerPM, drawRow: function(row,data){ row.height=50 }, margin: { top: 50 }, theme :'grid' }; if(AttendanceTableID_AM != "") { console.log('AttendanceTableID_AM'); doc1.autoTable(AttendanceTableID_AM.columns, AttendanceTableID_AM.data, options1); doc1.save(fileNameAM); } if(AttendanceTableID_PM != "") { console.log('AttendanceTableID_PM'); doc2.autoTable(AttendanceTableID_PM.columns, AttendanceTableID_PM.data, options2); doc2.save(fileNamePM); } //console.log('END CALLED'); } }]);