apollodec/Apollo/assets/js/controllers/schCtrl.js
2018-06-21 19:51:22 +05:30

574 lines
15 KiB
JavaScript
Executable File

'use strict';
/**
* controllers for ng-table
* Simple table with sorting and filtering on AngularJS
*/
app.controller('schCtrl', ["$scope","$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state) {
$scope.myModel = {
"studentName": "",
"mobileNumber": "",
"universityName":"",
"semsterName":""
};
$scope.myModelAdd = {
"date": "",
"periodStart": "",
"periodEnd":"",
};
$scope.details = [];
$scope.viewPage = {
"CourseDetails":[]
};
$scope.editId = -1;
$scope.editModel = {
"editSubject": "",
"editScheduleDate": "",
"editFromTime":"",
"editToTime":"",
};
$scope.semDropDownShowLoading1 = false;
$scope.semDetailsLoadingStatus1 = false;
$scope.semDetailsLoadingTxt1 = "";
$scope.setEditId = function (pid,cid,schid,subid,c) {
var branchid=JSON.parse(localStorage.getItem('localObj')).localBranchID;
$scope.semDetailsLoadingStatus1 = true;
$scope.semDetailsLoadingTxt1 = "Loading...";
//alert(branchid);
//alert(pid);
$scope.editModel.editSubject = c.SubjectName;
$scope.editModel.editScheduleDate = c.ScheduleDate;
$scope.editModel.editFromTime = c.FromTime;
$scope.editModel.editToTime = c.ToTime;
//$scope.localUniversityDetails="";
//$scope.localUniversityDetails = JSON.parse(localStorage.getItem('localUniversityDetails'));
$scope.editId = pid;
$scope.courseCode = cid;
var mappingid = schid;
//alert(mappingid+'n');
var getsheduledetails = {
method: 'POST',
url: apiPoint.url + 'getSheduleDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
//requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
mapid:mappingid,
subid:subid,
branchcode:branchid,
}
};
$http(getsheduledetails).then(function (response) {
if (response.data.status==200)
{
$scope.unsheduledetails=response.data.getunSheduleDetailsinfo.scheduleDetails;
} else {
$scope.unsheduledetails="";
}
});
};
// $scope.details = [];
$scope.cancel = function () {
$scope.init();
$scope.editId = -1;
};
$scope.semDropDownShow = false;
$scope.semDropDownShowLoading = false;
$scope.saveButtonDisabled = false;
$scope.saveButtonTxt = "SAVE";
$rootScope.userType = JSON.parse(localStorage.getItem('localObj')).localType;
$scope.semDetailsLoadingStatus = false;
$scope.semDetailsLoadingTxt = "";
$scope.selectedCourseName = [];
$scope.selectedUniversityCourseName = '';
$scope.selectedSemSubjetcsSem1 = [];
$scope.selectedSemSubjetcsSem2 = [];
$scope.selectedSemSubjetcsSem3 = [];
$scope.selectedSemSubjetcsSem4 = [];
$scope.selectedSemSubjetcsSem5 = [];
$scope.selectedSemSubjetcsSem6 = [];
$scope.selectedSemSubjetcsSem7 = [];
$scope.selectedSemSubjetcsSem8 = [];
$scope.overallSelectedSubjetcs = [];
// 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
}
//Assign Courses to Course array for Multiple select
$scope.getuniversity = function(){
$scope.selectedUniversityCourseName = $scope.myModel.universityName.courseDetails;
if($scope.selectedUniversityCourseName.length == 0){ swal('No Courses Available','','info'); }
$scope.selectedCourseNameC = {
list: $scope.selectedCourseName,
}
}
/*
* get course semester,subjects details
* created by TamilBala
* */
var course='';
$scope.getSemSubDetails = function(UID,COURSES){
course=COURSES;
//alert(course)
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();
}
else
{
if(UID == undefined || UID == '')
{
swal("Select University");
return false;
}
if(COURSES.list == '')
{
swal("Select Course");
return false;
}
$scope.semDropDownShowLoading = false;
$scope.semDropDownShow = false;
$scope.semDropDownShowLoading = true;
var getsubject = {
method: 'POST',
url: apiPoint.url + 'getSemesterSubjectDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
universityID : UID,
courseID : COURSES,
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID
}
};
$http(getsubject).then(function (response) {
if(response.data.status == 200)
{
$scope.semDropDownShowLoading = false;
$scope.semDropDownShow = true;
$scope.subjects = [];// For Main Dropdown
$scope.subjectsFromDBtoComapare = [];
//$scope.semesters = response.data.semesterDetails;
$scope.subjectsFromDB = response.data.subjectDetails; //Store Response Data to subjectsFromDB
angular.forEach($scope.subjectsFromDB,function(value,key){
$scope.subjects.push({
"Subject":value,
"ScheduleDate":"",
"ScheduleStartTime":"",
"ScheduleEndTime":""
});// For Main Dropdown
});
}
},function(error){
$scope.semDropDownShowLoading = false;
swal('No Subjetcs Found','','error');
} );
}
}
/*
* Remove Subjects from Master Subjects Arry
* after selecting subjects for each semester
* created by TamilBala
* */
$scope.removeSelectedSubjetcs = function(newsublist){
//Every time copy all subjetcs from subjectsFromDB to ompare
angular.forEach($scope.subjectsFromDB,function(value,key){
$scope.subjectsFromDBtoComapare.push(value);
});
//For Compare Single Semesters Array and Master Subjetcs Array and remove selected subjects from Master Subjetcs Array
angular.forEach(newsublist,function(value,key){
angular.forEach($scope.subjects,function(value2,key2){
if(value.SubjectID == value2.SubjectID)
{
$scope.subjects.splice(key2,1);
}
});
});
//For Concat all subjetcs from all semsters.
$scope.overallSelectedSubjetcs=[].concat($scope.selectedSubjetcsSem1C.list,$scope.selectedSubjetcsSem2C.list,$scope.selectedSubjetcsSem3C.list,$scope.selectedSubjetcsSem4C.list,$scope.selectedSubjetcsSem5C.list,$scope.selectedSubjetcsSem6C.list,$scope.selectedSubjetcsSem7C.list,$scope.selectedSubjetcsSem8C.list);
//For Compare Over all selected subjects And Master Subjetcs to avoid duplicate.
angular.forEach($scope.overallSelectedSubjetcs,function(value,key){
angular.forEach($scope.subjectsFromDBtoComapare,function(value2,key2){
if(value.SubjectID != value2.SubjectID)
{
if ($scope.overallSelectedSubjetcs.indexOf(value2) == -1 && $scope.subjects.indexOf(value2) == -1)
{
$scope.subjects.push(value2);
$scope.subjectsFromDBtoComapare.splice(key2,1);
}
}
});
});
$scope.subjectsFromDBtoComapare = [];
}
var date= '';
var stime= '';
var etime='';
var subjectname= '';
var subjectcode = '';
var c='';
var subid='';
var subjectId= '';
$scope.details = [];
$scope.add= function(index,myModelAdd,p)
{
var subname = p.SubjectName;
var item=[];
c = $scope.details.length + 1;
var formate = "dd-MM-yyyy";
date = $filter('date')(new Date(myModelAdd.date), formate);
stime = myModelAdd.periodStart;
etime = myModelAdd.periodEnd;
subjectname = p.SubjectName;
subjectcode = p.SubjectCode;
subid = p.SubjectID;
item.push({
date : date,
stime : stime,
etime : etime,
subjectname : subjectname,
subjectcode : subjectcode,
subjectId : subid
});
$scope.details.splice(0,0,item);
}
$scope.saveAll= function(myModel,courseDetails,subjectsDetails)
{
$scope.courseDetailsArray=courseDetails.list;
$scope.scheduledDetails=[];
angular.forEach(subjectsDetails,function (value) {
if((value.ScheduleDate!='' && value.ScheduleDate!=undefined) && (value.ScheduleStartTime!='' && value.ScheduleStartTime!=undefined) && (value.ScheduleEndTime!='' && value.ScheduleEndTime!=undefined)){
$scope.scheduledDetails.push({
"universityID":myModel.universityName.universityID,
//"courseID":courseDetails.list[0],
"subjectID":value.Subject.SubjectID,
"scheduleDate":$filter('date')(value.ScheduleDate, 'dd-MM-yyyy'),
"scheduleStart":value.ScheduleStartTime,
"scheduleEnd":value.ScheduleEndTime,
});
}
});
var saveAllInfo = {
method: 'POST',
url: apiPoint.url + 'saveBatchSchedule/',
headers: {
'Content-Type': 'application/json'
},
data: {
getuniversityid :myModel.universityName.universityID,
//getcourseid :courseDetails.list[0],
courseDetails : $scope.courseDetailsArray,
scheduleDetails : $scope.scheduledDetails,
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
branchId:JSON.parse(localStorage.getItem('localObj')).localBranchID
}
};
$http(saveAllInfo).then(function(response)
{
//console.log(status);
if (response.data.status==200)
{
swal(" ", "Saved successfully,", "success");
$scope.init();
}
},function(error){
swal('Some Thing Went Wrong!','Try Later','error')
});
}
$scope.updateShedule = function (unsheduledetails) {
$scope.UpdatescheduledDetails=[];
angular.forEach(unsheduledetails,function (value) {
if((value.ScheduleDate!='' && value.ScheduleDate!=undefined) && (value.FromTime!='' && value. FromTime!=undefined) && (value.ToTime!='' && value.ToTime!=undefined)){
$scope.UpdatescheduledDetails.push({
"SchId":value.SchId,
"SubjectID":value.SubjectID,
"schChildId":value.SchChildId,
"scheduleDate":$filter('date')(value.ScheduleDate, 'dd-MM-yyyy'),
"scheduleStart":value.FromTime,
"scheduleEnd":value.ToTime,
});
}
});
var update = {
method: 'POST',
url: apiPoint.url + 'updateSheduleDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
updatescheduledetails : $scope.UpdatescheduledDetails,
//status: myModel.IsActive,
createdBy: JSON.parse(localStorage.getItem('localObj')).localUserID
}
};
$http(update).then(function (response) {
if (response.data.status==200 ) {
// $scope.ldloading[loading.replace('-', '_')] = false;
//
swal("", "Saved Successfully.", "success");
//$scope.editId = -1;
// $scope.init();
} else {
$scope.ldloading[loading.replace('-', '_')] = false;
swal("", response.data.message,"error");
}
});
};
$scope.addForm ={
submit:function(myModelAdd,addmoreItem)
{
//alert();
time = myModelAdd.ScheduleTime;
$scope.details.push({
time:time})
}
};
$scope.processDataforViewPage = function()
{
$scope.viewPage.UniversityID = $scope.existSemesterSubjectMapDetails[0].UniversityID;
$scope.viewPage.UniversityName = $scope.existSemesterSubjectMapDetails[0].UniversityName;
var tArry = [];
angular.forEach($scope.existSemesterSubjectMapDetails,function(value,key){
if(tArry.indexOf(value.CourseID) == -1)
{
tArry.push(value.CourseID);
var tempArray = {'CourseID':value.CourseID,'CourseCode':value.CourseCode,'CourseName':value.CourseName};
$scope.viewPage.CourseDetails.push(tempArray);
}
});
}
/*
* init function
* created by TamilBala
* */
$scope.init = function () {
var branchid=JSON.parse(localStorage.getItem('localObj')).localBranchID;
//alert(branchid);
$scope.semDetailsLoadingStatus = true;
$scope.semDetailsLoadingTxt = "Loading...";
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;
} else {
$scope.university="";
}
});
$scope.selectedCourseNameC = {
list: $scope.selectedCourseName,
}
/*
* getUnivid function
* created by TamilBala
* */
var getUnivid = {
method: 'POST',
url: apiPoint.url + 'getUniversityCourseId/',
headers: {
'Content-Type': 'application/json'
},
data: {
//requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID,
branchCode:branchid,
}
};
$http(getUnivid).then(function (response) {
if (response.data.status==200)
{
$scope.universitycourse=response.data.getUnivDetailsinfo;
} else {
$scope.universitycourse="";
}
});
}
$scope.batchschedule={
submit: function (form, myModelAdd)
{
var alldata = $("#batchsch");
},
};
}]);