999 lines
27 KiB
JavaScript
Executable File
999 lines
27 KiB
JavaScript
Executable File
'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<len;i++)
|
|
{
|
|
if($scope.selectedStudentsID.indexOf($scope.studentInfo[i]) === -1)
|
|
{
|
|
$scope.selectedStudentsID.push($scope.studentInfo[i]);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
$scope.selectedStudentsID = [];
|
|
}
|
|
|
|
}
|
|
|
|
$scope.generateHallTicket = function()
|
|
{
|
|
if($scope.studentInfo.length == 0)
|
|
|
|
{
|
|
swal('No Students Found','','warning');return false;
|
|
}
|
|
|
|
if($scope.myModel.centerName == "" || $scope.myModel.centerName == undefined || $scope.myModel.centerName == null)
|
|
{
|
|
swal('Select Center Name','','warning');return false;
|
|
}
|
|
|
|
if($scope.selectedStudentsID.length == 0)
|
|
{
|
|
swal('Select Student(s)','','warning');return false;
|
|
}
|
|
|
|
|
|
var university = $scope.myModel.universityName;
|
|
var course = $scope.myModel.courseName;
|
|
var batch = $scope.myModel.batchName;
|
|
$scope.generateButtonTxt = "Please Wait...";
|
|
$scope.generateButtonStatus = true;
|
|
var dataForHallTicket = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'getHallTicket/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
universityID : university,
|
|
courseID :course,
|
|
batchName:batch,
|
|
StudentIDs:$scope.selectedStudentsID,
|
|
centerName:$scope.myModel.centerName,
|
|
branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID,
|
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID
|
|
}
|
|
};
|
|
$http(dataForHallTicket).then(function (response) {
|
|
if (response.data.status==200 && response.data.hallTicketStatus) {
|
|
|
|
$scope.pdfModel.universityDetails = response.data.hallTicketData.UniversityDetails;
|
|
$scope.pdfModel.studentDetails = response.data.hallTicketData.studentDetails;
|
|
|
|
$scope.pdfModel.batchDetails = $scope.selectedBatchName;
|
|
$scope.pdfModel.courseDetails = $scope.selectedCourseName;
|
|
$scope.pdfModel.centerDetails = $scope.myModel.centerName;
|
|
$scope.pdfModel.semDataType =response.data.semDataType;
|
|
|
|
$scope.open($scope.pdfModel);
|
|
$scope.generateButtonTxt = "GENERATE";
|
|
$scope.generateButtonStatus = false;
|
|
|
|
}
|
|
},function(error){
|
|
swal('No Records Found','',error);
|
|
$scope.generateButtonTxt = "No Records Found";
|
|
});
|
|
}
|
|
|
|
//Below Functions defined for Hall Ticket generation
|
|
|
|
|
|
$scope.FeesName="" ;
|
|
$scope.open = function (PDFdata) {
|
|
|
|
|
|
var modalInstance = $modal.open({
|
|
templateUrl: 'assets/views/hallticket/hallTicketPDF.html',
|
|
controller: 'HallTicketPDFCtrl',
|
|
// size: size,
|
|
resolve: {
|
|
pdfitems: function () {
|
|
//return $scope.FeesName;
|
|
return PDFdata;
|
|
}
|
|
}
|
|
});
|
|
|
|
modalInstance.result.then(function (selectedItem) {
|
|
$scope.selected = selectedItem;
|
|
}, function () {
|
|
$log.info('Modal dismissed at: ' + new Date());
|
|
});
|
|
};
|
|
// }
|
|
// generate pdf for student view
|
|
|
|
|
|
$scope.captureCourseName = function()
|
|
{
|
|
|
|
$scope.selectedCourseName = course.options[course.selectedIndex].text;
|
|
};
|
|
|
|
$scope.captureBatchName = function()
|
|
{
|
|
|
|
$scope.selectedBatchName = batch.options[batch.selectedIndex].text;
|
|
};
|
|
|
|
|
|
|
|
}]);
|
|
|
|
|
|
// Controller for Hallticket Modal PDF
|
|
app.controller('HallTicketPDFCtrl', ["$scope", "$modalInstance", "pdfitems", function ($scope, $modalInstance, pdfitems) {
|
|
|
|
console.log('child');
|
|
$scope.localPdfUniverityDetails = pdfitems.universityDetails;
|
|
$scope.universityNamePDF = $scope.localPdfUniverityDetails[0].UniversityName;
|
|
$scope.universityAddressPDF = $scope.localPdfUniverityDetails[0].Address;
|
|
$scope.universityEmailPDF = $scope.localPdfUniverityDetails[0].EmailID;
|
|
$scope.universityLogoPDF = $scope.localPdfUniverityDetails[0].ProfilePicPath;
|
|
$scope.batchNamePDF = pdfitems.batchDetails;//.BatchName;
|
|
$scope.courseNamePDF = pdfitems.courseDetails;//.CourseName;
|
|
$scope.centerNamePDF = pdfitems.centerDetails.CenterName+''+ pdfitems.centerDetails.CenterAddress;
|
|
$scope.semDataTypePDF = pdfitems.semDataType;
|
|
|
|
$scope.localPdfStudentDetails = pdfitems.studentDetails;
|
|
|
|
$scope.printStudentDetails = function(hallticket_type) {
|
|
|
|
|
|
angular.forEach($scope.localPdfStudentDetails,function(value,key){
|
|
|
|
|
|
|
|
if(value.StudentID)
|
|
{
|
|
|
|
if(hallticket_type == 'REG' || hallticket_type == 'LAT'){
|
|
console.log('REGLAT');
|
|
var semlength = value.FeeDetails.length;
|
|
if(hallticket_type == 'REG' || hallticket_type == 'LAT')
|
|
{
|
|
semlength = 7;
|
|
}
|
|
var i = 0;
|
|
for(i = 0; i <= semlength;i=i+2)
|
|
{
|
|
|
|
|
|
|
|
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);
|
|
}
|
|
fileName = value.EnrollmentID+'-'+value.Firstname+value.Lastname+$scope.courseNamePDF+semName+'.pdf';
|
|
doc.setDrawColor(0);
|
|
doc.setFillColor(245, 245, 240);
|
|
doc.rect(150, 30, 395, 60,'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
|
|
|
|
doc.setFontSize(10);
|
|
doc.text(150,50,$scope.universityNamePDF);
|
|
doc.setFontSize(8);
|
|
doc.text(170,65,$scope.universityAddressPDF);
|
|
doc.setFontSize(8);
|
|
doc.text(280,80,$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(150, 30, 395, 60,'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
|
|
|
|
doc.setFontSize(10);
|
|
doc.text(150,50,$scope.universityNamePDF);
|
|
doc.setFontSize(8);
|
|
doc.text(170,65,$scope.universityAddressPDF);
|
|
doc.setFontSize(8);
|
|
doc.text(280,80,$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(150, 30, 395, 60,'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
|
|
|
|
doc.setFontSize(10);
|
|
doc.text(150,50,$scope.universityNamePDF);
|
|
doc.setFontSize(8);
|
|
doc.text(170,65,$scope.universityAddressPDF);
|
|
doc.setFontSize(8);
|
|
doc.text(280,80,$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');
|
|
};
|
|
|
|
}]); |