apollodec/Apollo/assets/js/controllers/subjectCtrl.js
2018-02-06 15:40:53 +05:30

587 lines
19 KiB
JavaScript

'use strict';
/**
* controllers for ng-table
* Simple table with sorting and filtering on AngularJS
*/
app.controller('subjectCtrl', ["$scope", "$rootScope","toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state",'ipCookie', function ($scope,$rootScope,toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state,ipCookie) {
$scope.myModel = {
"university": "",
"course": "",
"batch": "",
"comments":"",
"switchsetting": true,
};
$rootScope.updateMoreItems = [];
$scope.editId = -1;
$rootScope.setEditId = function (pid,p) {
$rootScope.updateMoreItems=[];
// find index for fees type drop down list
angular.forEach(p.feesStructures, function(value, key){
$rootScope.updateMoreItems.push({
"ID":value.ID,
"Semester":value.Semester,
"SubjectCode":value.SubjectCode,
"SubjectName": value. SubjectName,
});
});
$scope.editId = pid;
};
$scope.viewId=-1;
$scope.setEditI = function (pid,p) {
$scope.editId=-1;
$scope.init();
$scope.viewId=p.ID;
$scope.editId = pid;
}
/*
* cancel edit div
*
* */
$scope.cancel = function () {
$scope.init();
$scope.editId = -1;
};
// 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
}
/*
* Submit,update and reset Subject details
* @params myModel
*
* */
$scope.subjectFORM = {
submit: function (form, myModel,semYearModel,loading,addMoreItems) {
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;
$rootScope.addMoreItems.push({
Semester: semYearModel. Semester,
SubjectCode:semYearModel.SubjectCode,
SubjectName:semYearModel.SubjectName
});
var addSubject = {
method: 'POST',
url: apiPoint.url + 'addSubjectDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
university:myModel.university,
course:myModel.course,
batch:myModel.batch,
semFeesAmounts:$rootScope.addMoreItems,
Comment:myModel.Comment,
createdBy: JSON.parse(localStorage.getItem('localObj')).localUserID
}
};
$http(addSubject).then(function (response) {
if (response.data.status==200 && response.data.SubjectStatus) {
// $scope.ldloading1[loading.replace('-', '_')] = false;
swal("Success!", response.data.message, "success");
$state.go($state.current, {}, {reload: true});
} else {
$rootScope.addMoreItems.splice($rootScope.addMoreItems.length-1);
// $scope.ldloading1[loading.replace('-', '_')] = false;
swal("Failed!", response.data.message, "error");
}
});
}
},
reset: function (form) {
$rootScope.addMoreItems = [];
$scope.myModel = angular.copy($scope.master);
form.$setPristine(true);
$scope.myModel = {
"university": "",
"course": "",
"batch": "",
"comments":"",
"switchsetting": true,
};
$scope.myModelSemYear = {
"Semester":"",
"SubjectCode":"",
"SubjectName":"",
};
$rootScope.myModelSemYear1 = {
"Semester":"",
"SubjectCode":"",
"SubjectName":"",
};
}
};
$rootScope.addMoreItems = [];
$scope.myModelSemYear = {
"Semester":"",
"SubjectCode":"",
"SubjectName":"",
};
$rootScope.addMoreFeesItems = function (model,form) {
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].$stop_name;
}
if (form[field].$pristine) {
form[field].$dirty = true;
}
}
}
angular.element('.ng-invalid[name=' + firstError + ']').focus();
}
else {
$rootScope.addMoreItems.push({
Semester: model.Semester,
SubjectCode:model.SubjectCode,
SubjectName:model.SubjectName
});
$scope.myModelSemYear.Semester="";
$scope.myModelSemYear.SubjectCode="";
$scope.myModelSemYear.SubjectName="";
}
}
// //alert('Duplicate Semester: ' + checkDuplicateInObject('Semester', $rootScope.addMoreItems));
// alert('Duplicate SubjectCode: ' + checkDuplicateInObject('SubjectCode', $rootScope.addMoreItems));
// //alert('DuplicateSubjectName: ' + checkDuplicateInObject('SubjectName', $rootScope.addMoreItems));
// //
// if(checkDuplicateInObject('SubjectCode', $rootScope.addMoreItems) === false) {
// $scope.myModelSemYear.SubjectCode="";
// }else{
// $rootScope.addMoreItems.push({
// Semester: model.Semester,
// SubjectCode:model.SubjectCode,
// SubjectName:model.SubjectName
// });
// }
// $scope.myModelSemYear.SubjectCode="";
// $scope.myModelSemYear.Semester="";
// $scope.myModelSemYear.SubjectName="";
// function checkDuplicateInObject(propertyName, inputArray) {
// var seenDuplicate = true,
// testObject = {};
// inputArray.map(function(item) {
// var itemPropertyName = item[propertyName];
// if (itemPropertyName in testObject) {
// testObject[itemPropertyName].duplicate = true;
// item.duplicate = true;
// seenDuplicate = false;
// }
// else {
// testObject[itemPropertyName] = item;
// delete item.duplicate;
// }
// });
// return seenDuplicate;
// }
// function checkDuplicateInObject(propertyName, inputArray) {
// // alert(JSON.stringify(inputArray));
// var seenDuplicate = false;
// $rootScope.testObject = {};
// // alert(propertyName);
// // if(inputArray.length === 0) {
// // return $rootScope.seenDuplicate = true;
// // } else{
// inputArray.map(function(item) {
// alert(JSON.stringify(item));
// $rootScope.itemPropertyName = item[propertyName];
// if ($rootScope.itemPropertyName in $rootScope.testObject) {
// $rootScope.testObject[$rootScope.itemPropertyName].duplicate = true;
// item.duplicate = true;
// seenDuplicate = true;
// alert('kd');
// }
// else {
// $rootScope.testObject[$rootScope.itemPropertyName] = item;
// delete item.duplicate;
// }
// // alert(JSON.stringify($rootScope.testObject));
// });
// // }
// return seenDuplicate;
// }
///***updateupdateMoreItems */
$rootScope.updateMoreItems = [];
$rootScope.myModelSemYear1 = {
"Semester":"",
"SubjectCode":"",
"SubjectName":"",
};
$rootScope.updateMoreFeesItems = function (model,form) {
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].$stop_name;
}
if (form[field].$pristine) {
form[field].$dirty = true;
}
}
}
angular.element('.ng-invalid[name=' + firstError + ']').focus();
}
else {
$rootScope.updateMoreItems.push({
ID:"",
Semester: model.Semester,
SubjectCode:model.SubjectCode,
SubjectName:model.SubjectName
});
}
$scope.myModelSemYear1.ID="";
$scope.myModelSemYear1.Semester="";
$scope.myModelSemYear1.SubjectCode="";
$scope.myModelSemYear1.SubjectName="";
}
////*****update subject details */
$scope.updateSubject = function (myModel, form,semYear, loading) {
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].$stop_name;
}
if (form[field].$pristine) {
form[field].$dirty = true;
}
}
}
angular.element('.ng-invalid[name=' + firstError + ']').focus();
} else {
if(semYear. Semester!="" || semYear.SubjectCode!=""|| semYear. SubjectName!=""){
$rootScope.updateMoreItems.push({
ID:"",
Semester:semYear. Semester,
SubjectCode:semYear.SubjectCode,
SubjectName: semYear. SubjectName,
});
}
$scope.ldloading = {};
$scope.ldloading[loading.replace('-', '_')] = true;
var update = {
method: 'POST',
url: apiPoint.url + 'updateSubjectDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
semFeesAmounts:$rootScope.updateMoreItems,
Comments:myModel.Comments,
updateID: myModel.ID,
updatedBy: JSON.parse(localStorage.getItem('localObj')).localUserID
}
};
$http(update).then(function (response) {
if (response.data.status==200 && response.data.SubjectStatus) {
$scope.ldloading[loading.replace('-', '_')] = false;
$rootScope.updateMoreItems=[];
$rootScope.myModelSemYear1.ID="";
$rootScope.myModelSemYear1.Semester="";
$rootScope.myModelSemYear1.SubjectCode="";
$rootScope.myModelSemYear1.SubjectName="";
$scope.init();
$rootScope.updateMoreItems.splice( $rootScope.updateMoreItems.length-1);
swal("Success!", response.data.message, "success");
$scope.editId = -1;
} else {
$scope.ldloading[loading.replace('-', '_')] = false;
$scope.init();
swal("Failed!", response.data.message, "error");
$rootScope.updateMoreItems.splice( $rootScope.updateMoreItems.length-1);
// $rootScope.addMoreItems.splice($rootScope.addMoreItems.length-1);
}
});
}
};
/////**********/// */
var localDetail = JSON.parse(localStorage.getItem('localObj'));
var localDetails = ipCookie('cookiechk');
$scope.init = function () {
$scope.getUniversityList();
}
//GET UNIVERSITY dETAILS
$scope.universityData = '';
$scope.getUniversityList = function () {
var empListreq = {
method: 'POST',
url: apiPoint.url + 'getUniversity/',
headers: {
'Content-Type': 'application/json'
},
data: {
data: localDetails
}
};
$http(empListreq).then(function (response) {
if (response.data.univList) {
$scope.universityData = response.data.university_details;
} else {
}
});
}
$scope.getUniversityList();
//GET COURSE&BATCH
$scope.courseLoading = false;
$scope.onSlecetUnivAdd = function () {
$scope.courseDataAdd = '';
$scope.batchDataAdd = '';
$scope.myModel.course = '';
$scope.myModel.batch = '';
$scope.courseLoading = true;
var univListreq = {
method: 'POST',
url: apiPoint.url + 'getCourseBatch/',
headers: {
'Content-Type': 'application/json'
},
data: {
data: $scope.myModel.university
}
};
$http(univListreq).then(function (response) {
if (response.data.courseStatus) {
$scope.courseLoading = false;
$scope.courseDataAdd = response.data.course_details;
$scope.batchDataAdd = response.data.batch_details;
} else {
$scope.courseLoading = false;
}
});
}
$scope.loader='';
$rootScope.emptyData='';
$scope.init = function () {
$scope.loader='';
var getsubject = {
method: 'POST',
url: apiPoint.url + 'getSubjectDetails/',
headers: {
'Content-Type': 'application/json'
},
data: {
requestedBy: JSON.parse(localStorage.getItem('localObj')).localUserID
}
};
$http(getsubject).then(function (response) {
if (response.data.status==200 && response.data.SubjectStatus) {
$scope.emptyData=true;
$scope.loader=true;
$scope.data = response.data.details;
//alert(JSON.stringify( $scope.data ));
///
// $scope.setModel = {
// "feesType": $scope.data[0],
// };
// //alert(JSON.stringify( $scope.data[0] ));
// // $scope.setTotalAmount=$scope.data[0].PayableFees;
// $rootScope.updateMoreItems=[];
// if($scope.data[0].feesStructures != '')
// // alert(JSON.stringify($scope.data[0].feesStructures))
// {
// $scope.myModelSemYear1.ID=$scope.data[0].feesStructures[$scope.data[0].feesStructures.length-1].ID;
// //alert(JSON.stringify( $scope.myModelSemYear1.ID ));
// $rootScope.myModelSemYear1.Semester=$scope.data[0].feesStructures[$scope.data[0].feesStructures.length-1].Semester;
// //alert(JSON.stringify( $scope.myModelSemYear1.Semester ));
// $rootScope.myModelSemYear1.SubjectCode=$scope.data[0].feesStructures[$scope.data[0].feesStructures.length-1].SubjectCode;
// //alert(JSON.stringify( $scope.myModelSemYear1.SubjectCode ));
// $rootScope.myModelSemYear1.SubjectName=$scope.data[0].feesStructures[$scope.data[0].feesStructures.length-1].SubjectName;
// //alert(JSON.stringify( $scope.myModelSemYear1.SubjectName ));
// for(var i=0; i < $scope.data[0].feesStructures.length-1; i++){
// $rootScope.updateMoreItems.push($scope.data[0].feesStructures[i]);
// }
// }
// // alert(JSON.stringify( $scope.data[0].feesStructures[i] ));
////////////
} else {
$scope.emptyData=false;
$scope.loader=true;
$scope.data = response.data.details;
}
});
};
}]);