593 lines
19 KiB
JavaScript
593 lines
19 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.isTblShow = false;
|
|
$scope.isLoader = false;
|
|
$scope.isLoaderShow = false;
|
|
$scope.isLoaderShow1 =false;
|
|
$scope.isLoaderTxt = "Loading...";
|
|
$scope.isLoaderTxt1 ="Selected Date Range is wrong";
|
|
$scope.generateButtonTxt = "GENERATE";
|
|
$scope.generateButtonStatus = false;
|
|
$scope.currentPage = 1;
|
|
$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.filtersList = {
|
|
"univ": "",
|
|
"activity": "",
|
|
"status": "",
|
|
"assigned": "",
|
|
"from_date": "",
|
|
"to_date": "",
|
|
|
|
};
|
|
console.log($scope.filters);
|
|
$scope.filters = function () {
|
|
var filterlist = {
|
|
method: 'POST',
|
|
url: apiPoint.url + 'report_filter/',
|
|
headers: {
|
|
'Content-Type': 'application/json'
|
|
},
|
|
data: {
|
|
branch : JSON.parse(localStorage.getItem('localObj')).localBranchID
|
|
|
|
}
|
|
|
|
};
|
|
$http(filterlist).then(function (response) {
|
|
if (response.data) {
|
|
$scope.batch=[];
|
|
$scope.activity = response.data.Activity;
|
|
$scope.university = response.data.Univ.university;
|
|
$scope.staff = response.data.Staff.staff;
|
|
// console.log($scope.activity);
|
|
console.log($scope.university);
|
|
// console.log($scope.staff);
|
|
// console.log(response.data);
|
|
} else {
|
|
}
|
|
});
|
|
}
|
|
/* watch university model for bind batch objects*/
|
|
|
|
$scope.$watch('filtersList.activity', function (newValue,oldValue) {
|
|
if(newValue==undefined || newValue==''){
|
|
$scope.statusDetails="";
|
|
}
|
|
else{
|
|
if(angular.isString(newValue)){
|
|
$scope.statusDetails=angular.fromJson(newValue);
|
|
// console.log($scope.statusDetails);
|
|
}
|
|
}
|
|
|
|
});
|
|
// if($scope.filtersList.activity)
|
|
// {
|
|
|
|
// }
|
|
//Button disable if no fields selected
|
|
$scope.disableSubmit=true;
|
|
$scope.click = function(){
|
|
|
|
$scope.disableSubmit=false;
|
|
console.log('hi');
|
|
}
|
|
|
|
|
|
$scope.show = false;
|
|
$scope.onSubmit = function (form) {
|
|
$scope.isLoaderShow1 =true;
|
|
console.log($scope.filtersList);
|
|
|
|
|
|
if($scope.filtersList.activity) {
|
|
$scope.filterActivity = angular.fromJson($scope.filtersList.activity);
|
|
}
|
|
else{
|
|
$scope.filterActivity='';
|
|
}
|
|
|
|
//$scope.filterActivity = angular.fromJson($scope.filtersList.activity);
|
|
$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,
|
|
university : $scope.filtersList.univ,
|
|
activity : $scope.filterActivity.activityID,
|
|
status : $scope.filtersList.status,
|
|
assigned : $scope.filtersList.assigned,
|
|
from : $scope.filters.from_date,
|
|
to : $scope.filters.to_date
|
|
}
|
|
|
|
};
|
|
|
|
if($scope.filters.from_date > $scope.filters.to_date){
|
|
$scope.isLoaderShow =true;
|
|
}else{
|
|
$scope.isLoaderShow =false;
|
|
}
|
|
|
|
console.log($scope.filtersList.univ);
|
|
console.log($scope.filterActivity.activityID);
|
|
console.log($scope.filtersList.status);
|
|
console.log($scope.filtersList.assigned);
|
|
$http(response_data).then(function (response) {
|
|
if (response.data.leadList == true) {
|
|
$scope.isLoaderShow1 =false;
|
|
$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.isLoaderShow1 =false;
|
|
$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 PhoneNumber,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
|
|
*/
|
|
|
|
}]);
|
|
|
|
|
|
|
|
|