apollodec/Apollo/assets/js/controllers/report_study_material_statusCtrl.js
2021-01-21 20:21:17 +05:30

601 lines
19 KiB
JavaScript
Executable File

'use strict';
/*** controller***/
app.controller('report_study_material_statusCtrl', ["$scope", "$filter","$rootScope", "API_POINTS", "$http", "SweetAlert", "$state", 'md5', 'ipCookie', '$window',"dateListDescService","$modal","$timeout",
function ($scope, $filter,$rootScope,apiPoint, $http, SweetAlert, $state, md5, ipCookie, $window, dateListDescService,$modal,$timeout,$log) {
/**
* auto call tracking
*/
$scope.userType=JSON.parse(sessionStorage.getItem('localObj')).localType;
$scope.isTblShow = false;
$scope.isLoader = false;
$scope.isLoaderShow = false;
$scope.isLoaderShow1 =false;
$scope.isLoaderTxt = "Loading...";
$scope.generateButtonTxt = "GENERATE";
$scope.generateButtonStatus = false;
$scope.currentPage = 1;
$scope.myModel = {
"date": new Date(),
"activity": "",
"assignedTo": "",
"status": "",
"referedBy": '',
"comments":'',
"enquiryStatus":'',
"important":false,
"branch":"",
};
//get current date
$scope.hideDateSearch=true;
$scope.modifyMinDate = moment();
//$scope.minDate = $filter('date')($scope.modifyMinDate, 'MM-dd-yyyy');
$scope.currentDate=$filter('date')(new Date(), 'dd-MM-yyyy');
// get 30 plus date for follwup details
$scope.modifyDate = moment();
$scope.modifyDate.add(30, 'days');
$scope.futureDate = $filter('date')($scope.modifyDate, 'dd-MM-yyyy');
$scope.myModel.date=$scope.currentDate;
// console.log($scope.currentDate);
/**
* End of the call tracking
*/
// DataTables configurable options
$scope.univModel = {
"branch": "",
"university": "",
"batch": "",
};
$scope.filters = function () {
var filterlist = {
method: 'POST',
url: apiPoint.url + 'report_filters/',
headers: {
'Content-Type': 'application/json'
},
data: {
branch : JSON.parse(sessionStorage.getItem('localObj')).localBranchID
}
};
$http(filterlist).then(function (response) {
if (response.data) {
$scope.university = response.data.university;
//Desc order Batchlist
// call service for make a list in desc order based on date
// console.log(response.data.batch);
// console.log($scope.batch);
} else {
}
});
}
/* watch university model for bind batch objects*/
$scope.$watch('univModel.university', function (newValue,oldValue) {
if(newValue==undefined || newValue==''){
$scope.filterBatchDetails="";
}
else{
if(angular.isString(newValue)){
$scope.filterBatchDetails=angular.fromJson(newValue);
}
}
});
$scope.show = false;
$scope.onSubmit = function (form) {
$scope.isLoaderShow1 =true;
if(angular.isString($scope.univModel.university)) {
$scope.filterUniv = angular.fromJson($scope.univModel.university);
}
else{
$scope.filterUniv=$scope.univModel.university;
}
var firstError = null;
if (form.$invalid) {
var field = null, firstError = null;
$scope.show = true;
for (field in form) {
if (field[0] != '$') {
if (firstError === null && !form[field].$valid) {
firstError = form[field].$batch;
}
if (form[field].$pristine) {
form[field].$dirty = true;
}
}
}
angular.element('.ng-invalid[batch=' + firstError + ']').focus();
}else {
//alert($scope.batch.name);
$scope.study_mat_data = '';
$scope.message = '';
$scope.message1 ='';
var response_data = {
method: 'POST',
url: apiPoint.url + 'report_status/',
headers: {
'Content-Type': 'application/json'
},
data: {
branch : JSON.parse(sessionStorage.getItem('localObj')).localBranchID,
university : $scope.filterUniv.universityID,
batch : $scope.univModel.batch
}
};
$http(response_data).then(function (response) {
if (response.data.statusList == true) {
$scope.study_mat_data = response.data.statusr;
$scope.isLoaderShow1 =false;
for(var i=0;i<$scope.study_mat_data.length;i++)
$scope.study_mat_data[i].SL_NO = i+1;
} else {
$scope.message = response.data.message;
$scope.isLoaderShow1 =false;
}
});
}
}
//Export to excel
var mystyle = {
sheetid: 'STUDY MATERIAL STATUS REPORT',
headers: true,
caption: {
title:'STUDY MATERIAL STATUS REPORT',
width: '300px',
style:'font-size:50px;'
},
// style:'background:#00FF00',
column: {
style:'font-size:10px;'
},
};
$scope.exportData = function () {
alasql('SELECT CAST(SL_NO AS NUMBER) as SLNO,Initial_paid_date as InitialPaymentPaidDate,Enrollment_id as EnrollmentId,Student_name as StudentName,Father_name as FatherName,Course_name as Course,Sem as SemYear,University,CAST(Balance_fee AS NUMBER) as BalanceFee,appdate as ApplicationSendtoUnivDate,Status as StudyMaterialStatus,Date as Date INTO XLS("Study_material_status.xls",?) FROM ?',[mystyle,$scope.study_mat_data]);
};
$scope.$watch(function () {
$scope.filteredItems = $scope.$eval(" study_mat_data | filter: search ");
});
/**
* Auto Call Tracking Status
*/
$scope.selectedStudentsID = [];
$scope.isCheckAll = function(e){
var val = (e.target.checked ? true : false);
if(val)
{
// $scope.disable = false;
var len = $scope.filteredItems.length;
var i = 0;
for(i=0;i<len;i++)
{
if($scope.selectedStudentsID.indexOf($scope.filteredItems[i]) === -1)
{
$scope.selectedStudentsID.push($scope.filteredItems[i]);
}
}
}
else
{
// $scope.disable = true;
$scope.selectedStudentsID = [];
}
if($scope.selectedStudentsID !=''){
$scope.disable = false;
}else{
$scope.disable = true;
}
}
$scope.isClick = function(e){
var ide = e.target;
var val = (ide.checked ? true : false);
var sid = e.target.id;
//console.log(sid);
angular.forEach($scope.study_mat_data,function(value,key){
// console.log()
if(sid == value.Student_id)
{
sid = value;
}
});
var pos = $scope.selectedStudentsID.indexOf(sid);
if(val)
{
if( pos == -1)
{
$scope.selectedStudentsID.push(sid);
}
}
else
{
$scope.selectedStudentsID.splice(pos,1);
}
//
if(val){
$scope.disable = false;
}else{
$scope.disable = true;
}
}
$scope.calltracking = function(){
//$rootScope.student = $scope.selectedStudentsID;
if($scope.selectedStudentsID ==''){
swal('Select Check box','','warning');
return false;
}else{
$scope.controller = 'ng-controller="report_study_material_statusCtrl"';
var lead = {
method: 'POST',
url: apiPoint.url + 'getTrackingLeadDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
requestedBy: JSON.parse(sessionStorage.getItem('localObj')).localUserID,
student:$scope.selectedStudentsID,
branchID:JSON.parse(sessionStorage.getItem('localObj')).localBranchID,
userType:JSON.parse(sessionStorage.getItem('localObj')).localType,
}
};
$http(lead).then(function (response) {
if (response.data.status==200) {
$rootScope.activity = response.data.activityDetails;
$rootScope.status = response.data.statusDetails;
$rootScope.staffDetails = response.data.staffDetails;
$rootScope.studentDetails = $scope.selectedStudentsID;
// $scope.modalopen($scope.activity);
// define modal in root scope
$rootScope.modalInstance = $modal.open({
templateUrl: 'assets/views/autoCalltracking.html',
controller: 'report_study_material_statusCtrl',
// size: size,
resolve: {
pdfitems: function () {
return $scope.activity;
}
}
});
$rootScope.modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
}
});
}
}
$scope.trackForm = {
submit: function (form, myModel,loading,selectedStudents) {
var comments = [];
for(var stuid=0;stuid<=selectedStudents.length-1;stuid++){
comments [stuid] ="Call Tracking For Study Material Status Report - Sem:"+selectedStudents[stuid].Sem + " - Study Material Status:" +selectedStudents[stuid].Status + " - Balance Fee:" +selectedStudents[stuid].Balance_fee;
}
if(isNaN(myModel.date)){
$scope.nextFollowupDate = myModel.date;
}
else{
$scope.getdate=new Date(myModel.date).toDateString();
$scope.nextFollowupDate = $filter('date')(new Date($scope.getdate), 'dd-MM-yyyy');
}
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.ldloading1 = {};
$scope.ldloading1[loading.replace('-', '_')] = true;
/* hide this fun after branch level changes
if($scope.userType !='R004'){
$scope.updateBranchID = JSON.parse(sessionStorage.getItem('localObj')).localBranchID;
$scope.updateAssignTo = myModel.assignedTo;
}
else{
$scope.updateBranchID = myModel.branch.BranchCode;
$scope.updateAssignTo = myModel.assignedTo;
}*/
var addLead = {
method: 'POST',
url: apiPoint.url + 'autoAddlead/',
headers: {
'Content-Type': 'application/json'
},
data: {
student:selectedStudents,
date: $scope.nextFollowupDate,
activity: myModel.activity.activityID,
assignedTo: myModel.assignedTo,
status: myModel.status,
referedBy: myModel.referedBy,
comments:comments,
enquiryStatus:myModel.enquiryStatus,
createdBy: JSON.parse(sessionStorage.getItem('localObj')).localUserID,
branchId: JSON.parse(sessionStorage.getItem('localObj')).localBranchID
}
};
$http(addLead).then(function (response) {
if (response.data.status==200 && response.data.leadDetails.leadStatus == true) {
$rootScope.modalInstance.close();
swal(" ", response.data.leadDetails.message, "success");
$state.go($state.current, {}, { reload: true });
} else {
swal(" ", response.data.leadDetails.message, "error");
}
});
}
},
reset: function (form) {
$scope.myModel = angular.copy($scope.master);
form.$setPristine(true);
$scope.myModel = {
"studentName": "",
"mobileNumber": "",
"universityName": "",
"courseName": "",
"activity": "",
"assignedTo": "",
"status": "",
"referedBy": '',
"comments":''
};
}
};
/*
*End Call Tracking Status
*/
}]);
/*modal controller
* */
app.controller('studentModalDemoCtrl', ["$scope","$rootScope", "$modal", "$log", "API_POINTS", "$http", function ($scope,$rootScope, $modal, $log, apiPoint, $http) {
//Tooltip for print button
$scope.dynamicTooltip = 'Student View';
$scope.userType=JSON.parse(sessionStorage.getItem('localObj')).localType;
// $scope.items = ['item1', 'item2', 'item3'];
$scope.open = function (studentDetails) {
// get student view details
var getcourse = {
method: 'POST',
url: apiPoint.url + 'getStudentBasicInfo/',
headers: {
'Content-Type': 'application/json'
},
data: {
requestedBy: studentDetails.Phone_number,
requestedFrom: 3,
branchCode:JSON.parse(sessionStorage.getItem('localObj')).localBranchID
}
};
$http(getcourse).then(function (response) {
if (response.data.status == 200 && response.data.studentStatus == true) {
$scope.courseEditLoading = false;
// $scope.studentDetails = response.data.studentDetails;
$scope.studentDetails = response.data;
// $scope.courseDetails = response.data.courseDetails;
var modalInstance = $modal.open({
templateUrl: 'assets/views/student/studentDetailsModal.html',
controller: 'ModalInstanceCtrl',
// size: size,
resolve: {
items: function () {
return $scope.studentDetails;
}
}
});
modalInstance.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
} else {
swal("Failed!", "This student is not registerd", "warning");
$scope.courseEditLoading = false;
$scope.studentDetails = "";
$scope.courseDetails = "";
}
});
};
$scope.open1 = function (values,type,filterby) {
if(type == '1' || type == '2' || type == '3'){ var result = []; for (var i = 0; i < values.length; i++){result.push(values[i]);} }
if(type == '4'){
var result = [];
for (var i = 0; i < values.length; i++)
{
if (values[i].Sem_Year === filterby)
{
result.push(values[i]);
}
}
}
if(type == '5'){
var result = [];
for (var i = 0; i < values.length; i++)
{
if (values[i].Sem === filterby)
{
result.push(values[i]);
}
}
}
if(type == '6'){
var result = [];
for (var i = 0; i < values.length; i++)
{
if (values[i].CertificateName === filterby)
{
result.push(values[i]);
}
}
}
if(type == '7' || type == '8'){
var result = [];
for (var i = 0; i < values.length; i++)
{
if (values[i].Sem === filterby)
{
result.push(values[i]);
}
}
}
var modalInstance1 = $modal.open({
templateUrl: 'assets/views/student/studentPaymentModal.html',
controller: 'ModalInstanceCtrl1',
// size: size,
resolve: {
items1: function () {
var myvalues =
{
"values":result,
"type":type
};
return myvalues;
}
}
});
modalInstance1.result.then(function (selectedItem) {
$scope.selected = selectedItem;
}, function () {
$log.info('Modal dismissed at: ' + new Date());
});
};
$scope.printStudentDetails = function (details) {
$rootScope.pdfItems = details;
var printInstance = $modal.open({
templateUrl: 'assets/views/student/studentPdf.html',
controller: 'studentModalDemoCtrl',
});
};
// generate pdf for student view
$scope.export = function(getName) {
kendo.drawing.drawDOM($("#exportthis")).then(function(group) {
kendo.drawing.pdf.saveAs(group, getName+".pdf");
});
}
}]);
// Please note that $modalInstance represents a modal window (instance) dependency.
// It is not the same as the $modal service used above.
app.controller('ModalInstanceCtrl', ["$scope", "$modalInstance", "items", "WordsService", function ($scope, $modalInstance, items, WordsService) {
$scope.items = items;
$scope.selected = {
item: $scope.items[0]
};
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
}]);
app.controller('ModalInstanceCtrl1', ["$scope", "$modalInstance", "items1", "WordsService", function ($scope, $modalInstance, items1, WordsService) {
$scope.items1 = items1.values;
$scope.selectedtype = items1.type;
$scope.ok = function () {
$modalInstance.close($scope.selected.item);
};
$scope.cancel = function () {
$modalInstance.dismiss('cancel');
};
}]);