553 lines
18 KiB
JavaScript
553 lines
18 KiB
JavaScript
'use strict';
|
|
/*** controller***/
|
|
app.controller('report_leadCtrl', ["$scope", "$filter","$rootScope","$modal", "API_POINTS", "$http", "SweetAlert", "$state", 'md5', 'ipCookie', '$window',"dateListDescService",
|
|
function ($scope, $filter,$rootScope,$modal, apiPoint, $http, SweetAlert, $state, md5, ipCookie, $window, dateListDescService) {
|
|
|
|
/*
|
|
* auto call tracking/
|
|
*/
|
|
$scope.userType=JSON.parse(localStorage.getItem('localObj')).localType;
|
|
$scope.myModel = {
|
|
|
|
"date": new Date(),
|
|
"activity": "",
|
|
"assignedTo": "",
|
|
"status": "",
|
|
"referedBy": '',
|
|
"comments":'',
|
|
"enquiryStatus":'',
|
|
|
|
"important":false,
|
|
"branch":"",
|
|
|
|
};
|
|
|
|
|
|
|
|
// $scope.init = function() {
|
|
// alert();
|
|
var localDetail = JSON.parse(localStorage.getItem('localObj'));
|
|
const LOCALTYPE = localDetail.localType;
|
|
//console.log(LOCALTYPE)
|
|
if (localDetail != null && (LOCALTYPE == 'R003' || LOCALTYPE == 'R004' )) {
|
|
}else {
|
|
if((localDetail != null) && (LOCALTYPE !='R001')) {
|
|
$state.go('app.dashboard');
|
|
} else {
|
|
//ipCookie.remove('cookiechk');
|
|
window.localStorage.clear();
|
|
$state.go('login.signin');
|
|
}
|
|
}
|
|
// }
|
|
|
|
//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.filters = {
|
|
"branch": "",
|
|
"from_date": "",
|
|
"to_date": "",
|
|
|
|
};
|
|
|
|
$scope.filters = function () {
|
|
var filterlist = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'report_filters/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
branch : JSON.parse(localStorage.getItem('localObj')).localBranchID
|
|
|
|
}
|
|
|
|
};
|
|
$http(filterlist).then(function (response) {
|
|
if (response.data) {
|
|
$scope.batch=[];
|
|
$scope.batchlist = response.data.batch;
|
|
$scope.university = response.data.university;
|
|
//Desc order Batchlist
|
|
angular.forEach($scope.batchlist,function (values,key) {
|
|
var parts = values.BatchDate.split("-");
|
|
$scope.batch.push({
|
|
"batchcode":values.batchcode,
|
|
"batch":values.batch + '('+ values.batchcode + ')',
|
|
"BatchDate":values.BatchDate,
|
|
"givenDateObject":new Date(parts[2], parts[1] - 1, parts[0])
|
|
})
|
|
});
|
|
// call service for make a list in desc order based on date
|
|
$scope.batch=dateListDescService.getOrderByList($scope.batch);
|
|
//console.log($scope.branch);
|
|
} else {
|
|
}
|
|
});
|
|
}
|
|
|
|
$scope.show = false;
|
|
$scope.onSubmit = function (form) {
|
|
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].$addDate;
|
|
firstError = form[field].$toDate;
|
|
}
|
|
if (form[field].$pristine) {
|
|
form[field].$dirty = true;
|
|
}
|
|
}
|
|
}
|
|
angular.element('.ng-invalid[toDate=' + firstError + ']').focus();
|
|
}else {
|
|
//alert($scope.batch.name);
|
|
$scope.lead_data = '';
|
|
$scope.message = '';
|
|
var response_data = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'report_lead/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
branch: JSON.parse(localStorage.getItem('localObj')).localBranchID,
|
|
from : $scope.filters.from_date,
|
|
to : $scope.filters.to_date
|
|
}
|
|
|
|
};
|
|
|
|
$http(response_data).then(function (response) {
|
|
if (response.data.leadList == true) {
|
|
$scope.lead_data = response.data.lead_data;
|
|
for(var i=0;i<$scope.lead_data.length;i++)
|
|
$scope.lead_data[i].SL_NO = i+1;
|
|
|
|
} else {
|
|
$scope.message = response.data.message;
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
}
|
|
var mystyle = {
|
|
sheetid: 'Lead REPORT',
|
|
headers: true,
|
|
caption: {
|
|
title:'Calls done on a Particular Day/Period - 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,date as Date,CAST(tid AS NUMBER) as TrackingID,fup as FollowupDate,name as Name,CAST(mobile AS NUMBER) as MobileNo,univ as University,course as Course,prsStatus as PresentStatus,cmnts as Comments,activity as Activity,AssignTo as AssignTo INTO XLS("Lead_Report.xls",?) FROM ?',[mystyle,$scope.lead_data]);
|
|
};
|
|
|
|
/*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.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(localStorage.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) {
|
|
|
|
var modalInstance1 = $modal.open({
|
|
templateUrl: 'assets/views/student/studentPaymentModal.html',
|
|
controller: 'ModalInstanceCtrl1',
|
|
// size: size,
|
|
resolve: {
|
|
items1: function () {
|
|
var myvalues =
|
|
{
|
|
"values":values,
|
|
"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');
|
|
};
|
|
|
|
|
|
}]);
|
|
/**
|
|
* Auto Call Tracking Sriram
|
|
*/
|
|
$scope.selectedStudentsID = [];
|
|
$scope.isCheckAll = function(e){
|
|
var val = (e.target.checked ? true : false);
|
|
if(val)
|
|
{
|
|
// $scope.disable = false;
|
|
var len = $scope.lead_data.length;
|
|
var i = 0;
|
|
for(i=0;i<len;i++)
|
|
{
|
|
if($scope.selectedStudentsID.indexOf($scope.lead_data[i]) === -1)
|
|
{
|
|
|
|
$scope.selectedStudentsID.push($scope.lead_data[i]);
|
|
}
|
|
}
|
|
}
|
|
else
|
|
{
|
|
// $scope.disable = true;
|
|
$scope.selectedStudentsID = [];
|
|
}
|
|
if($scope.selectedStudentsID !=''){
|
|
$scope.disable = false;
|
|
}else{
|
|
$scope.disable = true;
|
|
}
|
|
console.log($scope.selectedStudentsID);
|
|
}
|
|
$scope.isClick = function(e){
|
|
var ide = e.target;
|
|
var val = (ide.checked ? true : false);
|
|
var sid = e.target.id;
|
|
// console.log("328");
|
|
// console.log($scope.balfee_data);
|
|
angular.forEach($scope.lead_data,function(value,key){
|
|
|
|
if(sid == value.Student_id)
|
|
{
|
|
sid = value;
|
|
}
|
|
});
|
|
console.log(sid);
|
|
var pos = $scope.selectedStudentsID.indexOf(sid);
|
|
//alert(val);
|
|
console.log($scope.selectedStudentsID.indexOf(sid));
|
|
if(val)
|
|
{
|
|
if( pos == -1)
|
|
{
|
|
|
|
//console.log("PUSH");
|
|
$scope.selectedStudentsID.push(sid);
|
|
}
|
|
|
|
}
|
|
else
|
|
{
|
|
|
|
//console.log("POP");
|
|
$scope.selectedStudentsID.splice(pos,1);
|
|
}
|
|
//
|
|
if(val){
|
|
$scope.disable = false;
|
|
}else{
|
|
$scope.disable = true;
|
|
}
|
|
//console.log($scope.selectedStudentsID);
|
|
}
|
|
$scope.calltracking = function(){
|
|
|
|
|
|
if($scope.selectedStudentsID ==''){
|
|
swal('Select Check box','','warning');
|
|
return false;
|
|
}else{
|
|
$scope.controller = 'ng-controller="report_leadCtrl"';
|
|
$scope.myModel.comments = 'Call Tracking for Lead Report';
|
|
var lead = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'getTrackingLeadDetails/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
student:$scope.selectedStudentsID,
|
|
branchID:JSON.parse(localStorage.getItem('localObj')).localBranchID,
|
|
userType:JSON.parse(localStorage.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);
|
|
var modalInstance = $modal.open({
|
|
templateUrl: 'assets/views/autoCalltracking.html',
|
|
controller: 'report_leadCtrl',
|
|
// size: size,
|
|
|
|
resolve: {
|
|
pdfitems: function () {
|
|
return $scope.activity;
|
|
|
|
}
|
|
}
|
|
});
|
|
|
|
modalInstance.result.then(function (selectedItem) {
|
|
$scope.selected = selectedItem;
|
|
}, function () {
|
|
$log.info('Modal dismissed at: ' + new Date());
|
|
});
|
|
|
|
}
|
|
|
|
});
|
|
}
|
|
}
|
|
|
|
$scope.trackForm = {
|
|
submit: function (form, myModel,loading,selectedStudents) {
|
|
//console.log(selectedStudents);
|
|
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(localStorage.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:"Call Tracking For Report Certificate Details ",
|
|
|
|
enquiryStatus:myModel.enquiryStatus,
|
|
createdBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
|
|
branchId: JSON.parse(localStorage.getItem('localObj')).localBranchID
|
|
|
|
}
|
|
};
|
|
$http(addLead).then(function (response) {
|
|
console.log(response);
|
|
if (response.data.status==200 && response.data.leadDetails.leadStatus == true) {
|
|
|
|
swal(" ", response.data.leadDetails.message, "success");
|
|
window.location.reload();
|
|
} else {
|
|
|
|
swal(" ", response.data.leadDetails.message, "error");
|
|
window.location.reload();
|
|
}
|
|
});
|
|
|
|
|
|
}
|
|
},
|
|
reset: function (form) {
|
|
|
|
$scope.myModel = angular.copy($scope.master);
|
|
form.$setPristine(true);
|
|
$scope.myModel = {
|
|
"studentName": "",
|
|
"mobileNumber": "",
|
|
"universityName": "",
|
|
"courseName": "",
|
|
"activity": "",
|
|
"assignedTo": "",
|
|
"status": "",
|
|
"referedBy": '',
|
|
"comments":''
|
|
};
|
|
}
|
|
};
|
|
|
|
|
|
/**
|
|
* Call Tracking End
|
|
*/
|
|
|
|
}]);
|
|
|
|
|
|
|
|
|