'use strict'; /** * controllers for ng-table * Simple table with sorting and filtering on AngularJS */ app.controller('generateHallTicketCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state","$modal","$log", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state,$modal,$log) { $scope.myModel = { "universityName":"", "courseName":"", "batchName":"", "centerName":"" }; $scope.pdfModel = { "universityDetails":"", "studentDetails":"", "batchDetails":"", "courseDetails":"", "centerDetails":"", "semDataType":"" }; $rootScope.userType = JSON.parse(localStorage.getItem('localObj')).localType; $scope.isTblShow = false; $scope.isLoader = false; $scope.isLoaderShow = false; $scope.isLoaderTxt = "Loading..."; $scope.generateButtonTxt = "GENERATE"; $scope.generateButtonStatus = false; // 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(localStorage.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.localStorage.clear(); // $state.go('login.signin'); // } // } var getUniv = { method: 'POST', url: apiPoint.url + 'getUniversityCourseDetails/', headers: { 'Content-Type': 'application/json' }, data: { requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID, branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID } }; $http(getUniv).then(function (response) { if (response.data.status==200 && response.data.universityStatus) { $scope.university = response.data.univerSityDetails; $scope.centers = response.data.centerDetails; //console.log( $scope.university); } else { $scope.university = ""; } }); } /* * get student details * created by kms * */ $scope.studentInfo=""; $scope.getStudentDetails = function (form,myModel) { if(myModel.universityName == null || myModel.universityName == '' || myModel.universityName == undefined){ swal('Select University','','warning'); return false; } if(myModel.courseName == '' || myModel.courseName == null || myModel.courseName == undefined){ swal('Select Course','','warning'); return false; } if(myModel.batchName == null || myModel.batchName == '' || myModel.batchName == undefined){ swal('Select Batch','','warning'); return false; } if(myModel.centerName == null || myModel.centerName == '' || myModel.centerName == undefined){ swal('Select Center','','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 university = myModel.universityName; var course = myModel.courseName; var batch = myModel.batchName; var centerDetails = myModel.centerName; var getStudents = { method: 'POST', url: apiPoint.url + 'getStudentListForHallTicket/', headers: { 'Content-Type': 'application/json' }, data: { university: university, course:course, batch:batch, requestedtBy: JSON.parse(localStorage.getItem('localObj')).localUserID, branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID, requestedDept: JSON.parse(localStorage.getItem('localObj')).localType, center:centerDetails } }; $http(getStudents).then(function (response) { if (response.data.status == 200 && response.data.studentStatus) { $scope.studentInfo = response.data.studentDetails; $scope.isLoaderShow = false; $scope.isTblShow = true; } 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.selectedStudentsID = []; $scope.isClick = function(e) { var ide = e.target; var val = (ide.checked ? true : false); var sid = e.target.id; angular.forEach($scope.studentInfo,function(value,key){ if(sid == value.StudentID) { sid = value; } }); var pos = $scope.selectedStudentsID.indexOf(sid); if(val) { if( pos == -1) { $scope.selectedStudentsID.push(sid); } } else { $scope.selectedStudentsID.splice(pos,1); } } $scope.isCheckAll = function(e) { var val = (e.target.checked ? true : false); if(val) { var len = $scope.studentInfo.length; var i = 0; for(i=0;i= 20 ){ // uni_add_position = 110;console.log(uni_add_position); // } // else{ // uni_add_position = 10;console.log(uni_add_position); // } doc.setFontSize(14); doc.setFontType("bold"); doc.text(130,50,$scope.universityNamePDF); doc.setFontSize(10); doc.text(130,70,$scope.universityAddressPDF); doc.setFontSize(8); doc.text(130,90,$scope.universityEmailPDF); doc.rect(45, 100, 400, 60); doc.rect(445, 100, 100, 60); doc.line(45, 125, 445, 125); doc.setFontSize(8); doc.setFontType("bold"); doc.text(50,115,examName); doc.setFontSize(10); doc.setFontType("normal"); doc.text(50,140,rollNo); doc.text(230,140,stuName); doc.text(50,155,centerName); //footer content var footerNote1 ="Note : 1. Without Identification Card Candidates shallnot Allowed to write for examination."; var footerNote2 ="2. For further instructions refer to the facing sheet of the Answer book before writting examination."; var footerNote3 ="3. Carrying Mobile phone to the examination hall is strictly prohibited."; var footerNote4 ="4. Attend the examintaion as per mentioned above."; var footerNote_student_sign ="Signature of the Student"; var footerNote_controller_sign ="Controller of Examination"; doc.setFontSize(8); doc.text(40,doc.internal.pageSize.height - 150,footerNote1); doc.text(70,doc.internal.pageSize.height - 140,footerNote2); doc.text(70,doc.internal.pageSize.height - 130,footerNote3); doc.text(70,doc.internal.pageSize.height - 120,footerNote4); doc.text(40,doc.internal.pageSize.height - 50,footerNote_student_sign); doc.text(450,doc.internal.pageSize.height - 50,footerNote_controller_sign); }; var autoTableEndPosYvalue = 0; if(sem1 == "") { autoTableEndPosYvalue = 200; } else { autoTableEndPosYvalue = 300; } var options2 = { addPageContent: header, margin: { top: 100 }, startY: doc.autoTableEndPosY() + autoTableEndPosYvalue, theme :'grid' }; var options1 = { addPageContent: header, margin: { top: 200 }, theme :'grid' }; if(sem1 != "") { doc.autoTable(sem1.columns, sem1.data, options1); } if(sem2 != "") { doc.autoTable(sem2.columns, sem2.data, options2); } if(sem2 != "" || sem1 != "") { doc.save(fileName); } }//End of semlength for loop }//END OF SEM HALL TICKET TYPE else if(hallticket_type == 'YEAR') { console.log('YEAR'); var semlength = value.FeeDetails.length; var i = 0; for(i = 0; i <= semlength;i++) { // console.log('FOR'+i); var fileName = "DEFAULT.pdf"; var semName = 'DEFAULT_SEM'; var margins = { top: 70, bottom: 40, left: 30, width: 550 }; var doc = new jsPDF('p', 'pt'); //convert img to base 64 var img = document.getElementById("logo") var canvas = document.createElement("canvas"); canvas.width = 100; canvas.height = 100; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0,100,100); var dataURL = canvas.toDataURL("image/png"); //console.log('***'+dataURL); //convert img to base 64 //convert img to base 64 var profile = document.getElementById("sprofile") var canvas2 = document.createElement("canvas"); canvas2.width = 100; canvas2.height = 100; var ctx2 = canvas2.getContext("2d"); ctx2.drawImage(profile, 0, 0,100,100); var profiledataURL = canvas2.toDataURL("image/png",1.0); //convert img to base 64 var sem1 = ""; // var sem2 = ""; var tableid = value.StudentID; doc.autoTableSetDefaults({ styles: {cellPadding: 3.0, fontSize: 8}, headerStyles: {fillColor: [245, 245, 240], textColor: 0}, }); var firstTableID = "0"; //var SecTableID = "1"; switch(i) { case 0: var firstTableID = tableid+'year1'+key; //var SecTableID = tableid+'year11'; semName = 'YEAR1'; break; case 1: var firstTableID = tableid+'year2'+key; //var SecTableID = tableid+'year21'; semName = 'YEAR2'; break; case 2: var firstTableID = tableid+'year3'+key; //var SecTableID = tableid+'year31'; semName = 'YEAR3'; break; case 4: var firstTableID = tableid+'year4'+key; //var SecTableID = tableid+'year41'; semName = 'YEAR4'; break; } if(document.getElementById(firstTableID)) { var sem1 = doc.autoTableHtmlToJson(document.getElementById(firstTableID)); } // if(document.getElementById(SecTableID)) // { // var sem2 = doc.autoTableHtmlToJson(document.getElementById(SecTableID)); // } var header = function(data) { var examName = 'ADMIT CARD : '+$scope.courseNamePDF+' EXAMINATION ' +$scope.batchNamePDF; var rollNo = 'Reg No : '+value.EnrollmentID; var stuName = 'Name : '+value.Firstname+' '+value.Lastname; var centerName = 'Centre : '+$scope.centerNamePDF; fileName = value.EnrollmentID+'-'+value.Firstname+value.Lastname+$scope.courseNamePDF+semName+'.pdf'; doc.setDrawColor(0); doc.setFillColor(245, 245, 240); doc.rect(120, 30, 425, 67,'FD'); doc.setFontSize(12); doc.setTextColor(40); doc.setFontStyle('normal'); doc.addImage(dataURL, 'jpeg', 50, 35, 50, 50);//university logo location doc.addImage(profiledataURL, 'jpeg', 470, 100, 60, 60);//student profile location var uni_add_position = 0; // if($scope.length_of_universityNamePDF >= 20 ){ // uni_add_position = 110;console.log(uni_add_position); // } // else{ // uni_add_position = 10;console.log(uni_add_position); // } doc.setFontSize(14); doc.setFontType("bold"); doc.text(130,50,$scope.universityNamePDF); doc.setFontSize(10); doc.text(130,70,$scope.universityAddressPDF); doc.setFontSize(8); doc.text(130,90,$scope.universityEmailPDF); doc.rect(45, 100, 400, 60); doc.rect(445, 100, 100, 60); doc.line(45, 125, 445, 125); doc.setFontSize(8); doc.setFontType("bold"); doc.text(50,115,examName); doc.setFontSize(10); doc.setFontType("normal"); doc.text(50,140,rollNo); doc.text(230,140,stuName); doc.text(50,155,centerName); //footer content var footerNote1 ="Note : 1. Without Identification Card Candidates shallnot Allowed to write for examination."; var footerNote2 ="2. For further instructions refer to the facing sheet of the Answer book before writting examination."; var footerNote3 ="3. Carrying Mobile phone to the examination hall is strictly prohibited."; var footerNote4 ="4. Attend the examintaion as per mentioned above."; var footerNote_student_sign ="Signature of the Student"; var footerNote_controller_sign ="Controller of Examination"; doc.setFontSize(8); doc.text(40,doc.internal.pageSize.height - 150,footerNote1); doc.text(70,doc.internal.pageSize.height - 140,footerNote2); doc.text(70,doc.internal.pageSize.height - 130,footerNote3); doc.text(70,doc.internal.pageSize.height - 120,footerNote4); doc.text(40,doc.internal.pageSize.height - 50,footerNote_student_sign); doc.text(450,doc.internal.pageSize.height - 50,footerNote_controller_sign); }; var options = { addPageContent: header, margin: { top: 170 }, //startY: doc.autoTableEndPosY() + 20, theme :'grid' }; if(sem1 != "") { doc.autoTable(sem1.columns, sem1.data, options); } // if(sem2 != "") // { // doc.autoTable(sem2.columns, sem2.data, options); // } if(sem1 != "") { doc.save(fileName); } }//End of semlength for loop }//END OF YEAR HALL TICKET TYPE else if(hallticket_type == 'SEM' ){ console.log('SEM*********df;lsjfo'); var semlength = value.FeeDetails.length; var i = 0; for(i = 0; i < semlength;i++) { var fileName = "DEFAULT.pdf"; var margins = { top: 70, bottom: 40, left: 30, width: 550 }; var doc = new jsPDF('p', 'pt'); //convert img to base 64 var img = document.getElementById("logo") var canvas = document.createElement("canvas"); canvas.width = 100; canvas.height = 100; var ctx = canvas.getContext("2d"); ctx.drawImage(img, 0, 0,100,100); var dataURL = canvas.toDataURL("image/png"); //console.log('***'+dataURL); //convert img to base 64 //convert img to base 64 var profile = document.getElementById("sprofile") var canvas2 = document.createElement("canvas"); canvas2.width = 100; canvas2.height = 100; var ctx2 = canvas2.getContext("2d"); ctx2.drawImage(profile, 0, 0,100,100); var profiledataURL = canvas2.toDataURL("image/png",1.0); //convert img to base 64 var sem1 = ""; //var sem2 = ""; var tableid = value.StudentID; doc.autoTableSetDefaults({ styles: {cellPadding: 3.0, fontSize: 8}, headerStyles: {fillColor: [245, 245, 240], textColor: 0} }); var firstTableID = tableid+i; // var SecTableID = (tableid+(i+1)); if(document.getElementById(firstTableID)) { var sem1 = doc.autoTableHtmlToJson(document.getElementById(firstTableID)); } // if(document.getElementById(SecTableID)) // { // var sem2 = doc.autoTableHtmlToJson(document.getElementById(SecTableID)); // } var header = function(data) { var examName = 'ADMIT CARD : '+$scope.courseNamePDF+' EXAMINATION ' +$scope.batchNamePDF; var rollNo = 'Reg No : '+value.EnrollmentID; var stuName = 'Name : '+value.Firstname+' '+value.Lastname; var centerName = 'Centre : '+$scope.centerNamePDF; // if(hallticket_type == 'SEM' || hallticket_type == 'REG') // { // var semName = 'SEM'+(i+1)+'&'+(i+2); // } // else if(hallticket_type == 'LAT') // { // var semName = 'SEM'+(i+3)+'&'+(i+4); // } var semName = 'SEM'+(i+1); fileName = value.EnrollmentID+'-'+value.Firstname+value.Lastname+$scope.courseNamePDF+semName+'.pdf'; doc.setDrawColor(0); doc.setFillColor(245, 245, 240); doc.rect(120, 30, 425, 67,'FD'); doc.setFontSize(12); doc.setTextColor(40); doc.setFontStyle('normal'); doc.addImage(dataURL, 'jpeg', 50, 35, 50, 50);//university logo location doc.addImage(profiledataURL, 'jpeg', 470, 100, 60, 60);//student profile location var uni_add_position = 0; // if($scope.length_of_universityNamePDF >= 20 ){ // uni_add_position = 110;console.log(uni_add_position); // } // else{ // uni_add_position = 10;console.log(uni_add_position); // } doc.setFontSize(14); doc.setFontType("bold"); doc.text(130,50,$scope.universityNamePDF); doc.setFontSize(10); doc.text(130,70,$scope.universityAddressPDF); doc.setFontSize(8); doc.text(130,90,$scope.universityEmailPDF); doc.rect(45, 100, 400, 60); doc.rect(445, 100, 100, 60); doc.line(45, 125, 445, 125); doc.setFontSize(8); doc.setFontType("bold"); doc.text(50,115,examName); doc.setFontType("normal"); doc.setFontSize(10); doc.text(50,140,rollNo); doc.text(230,140,stuName); doc.text(50,155,centerName); //footer content var footerNote1 ="Note : 1. Without Identification Card Candidates shallnot Allowed to write for examination."; var footerNote2 ="2. For further instructions refer to the facing sheet of the Answer book before writting examination."; var footerNote3 ="3. Carrying Mobile phone to the examination hall is strictly prohibited."; var footerNote4 ="4. Attend the examintaion as per mentioned above."; var footerNote_student_sign ="Signature of the Student"; var footerNote_controller_sign ="Controller of Examination"; doc.setFontSize(8); doc.text(40,doc.internal.pageSize.height - 150,footerNote1); doc.text(70,doc.internal.pageSize.height - 140,footerNote2); doc.text(70,doc.internal.pageSize.height - 130,footerNote3); doc.text(70,doc.internal.pageSize.height - 120,footerNote4); doc.text(40,doc.internal.pageSize.height - 50,footerNote_student_sign); doc.text(450,doc.internal.pageSize.height - 50,footerNote_controller_sign); }; // var autoTableEndPosYvalue = 0; // if(sem1 == "") // { // autoTableEndPosYvalue = 200; // } // else // { // autoTableEndPosYvalue = 300; // } // var options2 = { // addPageContent: header, // margin: { // top: 100 // }, // startY: doc.autoTableEndPosY() + autoTableEndPosYvalue, // theme :'grid' // }; var options1 = { addPageContent: header, margin: { top: 200 }, theme :'grid' }; if(sem1 != "") { doc.autoTable(sem1.columns, sem1.data, options1); } // if(sem2 != "") // { // doc.autoTable(sem2.columns, sem2.data, options2); // } if(sem2 != "" || sem1 != "") { doc.save(fileName); } }//End of semlength for loop } }// END of studentID Check });//END of For Each } $scope.ok = function () { $modalInstance.close($scope.selected.item); }; $scope.cancel = function () { $modalInstance.dismiss('cancel'); }; $scope.generatePDF = function(){ var innerContents = document.getElementById("university_header").innerHTML; var popupWinindow = window.open('', '_blank', 'width=1200,height=700,scrollbars=no,menubar=no,toolbar=no,location=no,status=no,titlebar=no'); popupWinindow.document.open(); popupWinindow.document.write(''); popupWinindow.document.write(''); popupWinindow.document.write(innerContents); popupWinindow.document.write('
'); popupWinindow.document.write('
'); popupWinindow.document.write('
'); popupWinindow.document.write('
'); //popupWinindow.document.write(innerContents); popupWinindow.document.write(''); popupWinindow.document.close(); popupWinindow.focus(); popupWinindow.print(); popupWinindow.close(); } }]);