diff --git a/Apollo/assets/js/config.constant.js b/Apollo/assets/js/config.constant.js
index 903156a0..fc8b7fc2 100755
--- a/Apollo/assets/js/config.constant.js
+++ b/Apollo/assets/js/config.constant.js
@@ -154,6 +154,7 @@ app.constant('JS_REQUIRES', {
'daybooksuperadminCtrl': 'assets/js/controllers/daybooksuperadminCtrl.js',
'daybookapprovalCtrl': 'assets/js/controllers/daybookapprovalCtrl.js',
'daybookadminapprovalCtrl': 'assets/js/controllers/daybookadminapprovalCtrl.js',
+ 'daybooksuperadminapprovalCtrl': 'assets/js/controllers/daybooksuperadminapprovalCtrl.js',
'studentStatusUpdateCtrl':'assets/js/controllers/studentStatusUpdateCtrl.js',
'studentViewCtrl':'assets/js/controllers/studentViewCtrl.js',
diff --git a/Apollo/assets/js/config.router.js b/Apollo/assets/js/config.router.js
index f20f78cb..22da1b3c 100755
--- a/Apollo/assets/js/config.router.js
+++ b/Apollo/assets/js/config.router.js
@@ -438,16 +438,41 @@ app.config(['$stateProvider', '$urlRouterProvider', '$controllerProvider', '$com
ncyBreadcrumb: {
label: 'Approve expense'
}
- })
- .state('app.daybooksuperadmin', {
+ }).state('app.daybooksuperadmin', {
url: '/daybooksuperadmin',
- templateUrl: "assets/views/daybook/daybooksuperadmin.html",
+ template: '
',
title: 'Income/Expense',
- resolve: loadSequence('spin', 'ladda', 'angular-ladda', 'daybooksuperadminCtrl','ngTable'),
ncyBreadcrumb: {
label: 'Income/Expense'
+ }
+ }).state('app.daybooksuperadmin.details', {
+ url: '/daybooksuperadmindetails',
+ templateUrl: "assets/views/daybook/daybooksuperadmin.html",
+ title: 'Income/Expense',
+ resolve: loadSequence('spin', 'ladda', 'angular-ladda', 'daybooksuperadminCtrl','ngTable'),
+ ncyBreadcrumb: {
+ label: 'Income/Expense'
+ }
+ })
+ .state('app.daybooksuperadmin.approval', {
+ url: '/daybooksuperadminApproval',
+ templateUrl: "assets/views/daybook/daybooksuperAdminApproval.html",
+ title: 'Approve expense',
+ resolve: loadSequence('spin', 'ladda', 'angular-ladda', 'daybooksuperadminapprovalCtrl','ngTable'),
+ ncyBreadcrumb: {
+ label: 'Approve expense'
}
- }).state('app.broadCast', {
+ })
+ // .state('app.daybooksuperadmin', {
+ // url: '/daybooksuperadmin',
+ // templateUrl: "assets/views/daybook/daybooksuperadmin.html",
+ // title: 'Income/Expense',
+ // resolve: loadSequence('spin', 'ladda', 'angular-ladda', 'daybooksuperadminCtrl','ngTable'),
+ // ncyBreadcrumb: {
+ // label: 'Income/Expense'
+ // }
+ // })
+ .state('app.broadCast', {
url: '/broadcast',
template: '',
title: 'Broadcast',
diff --git a/Apollo/assets/js/controllers/daybooksuperadminapprovalCtrl.js b/Apollo/assets/js/controllers/daybooksuperadminapprovalCtrl.js
new file mode 100644
index 00000000..e9319e27
--- /dev/null
+++ b/Apollo/assets/js/controllers/daybooksuperadminapprovalCtrl.js
@@ -0,0 +1,353 @@
+'use strict';
+/**
+ * daybook details capturing
+ *
+ */
+app.controller('daybooksuperadminapprovalCtrl', ["$scope", "$rootScope", "toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", 'ipCookie', '$window', function ($scope, $rootScope, toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state, ipCookie, $window) {
+
+ // get local client details
+ var localDetail = JSON.parse(localStorage.getItem('localObj'));
+ var localDetails = ipCookie('cookiechk');
+ $scope.disableAddButton = false;
+ $scope.disableEditButton = false;
+
+ $scope.searchData = {
+ "date": "",
+ "dateTo": ""
+ }
+
+ $scope.viewStudentDetailsPage = false;
+ // load when html page load
+ $scope.init = function () {
+ if (localDetail != null) {
+ if (localDetails.localType === 'R004') {
+ $scope.getBranchList();
+ } else {
+ ipCookie.remove('cookiechk');
+ $window.localStorage.clear();
+ $state.go('login.signin');
+ }
+ } else {
+ }
+ }
+
+
+ $scope.getBranchList = function () {
+ $scope.loader = true;
+ var empListreq = {
+ method: 'POST',
+ url: apiPoint.url + 'getBranchListDetails/',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ data: {
+ data: localDetails
+ }
+ };
+ $http(empListreq).then(function (response) {
+ if (response.data.branDetailstatus) {
+ $scope.loader = false;
+ $scope.branchList_data = response.data.branch_details;
+ } else {
+ }
+ });
+ }
+
+ $scope.changeBranch = function () {
+ $scope.viewStudentDetailsPage = false;
+ localDetails.localBranchID = $scope.localBranchDetails;
+ localDetail.localBranchID = $scope.localBranchDetails;
+ getDetails()
+ }
+
+ function getDetails() {
+ const LOCALTYPE = localDetail.localType;
+ if(LOCALTYPE === 'R004') {
+ $scope.currentDate = new Date();
+ var d = new Date();
+ $scope.oneMonthBefore = d.setMonth(d.getMonth()-1);
+ // alert($scope.oneMonthBefore);
+ var formate = "dd-MM-yyyy";
+ $scope.searchData.date = $filter('date')(new Date($scope.oneMonthBefore), formate);
+ $scope.searchData.dateTo = $filter('date')(new Date($scope.currentDate), formate);
+ $scope.getDayBookList();
+ $scope.getIncomeExpenseType_Status();
+ $scope.viewStudentDetailsPage = true;
+
+ }else {
+ ipCookie.remove('cookiechk');
+ $window.localStorage.clear();
+ $state.go('login.signin');
+ }
+ }
+ $scope.dayBookApprovalAccess = '';
+
+ // Finance module access control
+ function getFinanceModuleAccess() {
+ var getFinacnceModuleAcccessCtrl = {
+ method: 'POST',
+ url: apiPoint.url + 'empDayBookModuleAccessChk/',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ data: {
+ localReqDetails: localDetails
+ }
+ };
+ $http(getFinacnceModuleAcccessCtrl).then(function (response) {
+ if (response.data.dayBkAccessChkStatus) {
+ $scope.dayBookApprovalAccess = response.data.dayBkAccessChk_Value;
+ $scope.showTheRefValue = undefined;
+ $scope.localTypeViewAdmin = true;
+ $scope.currentDate = new Date();
+ var formate = "dd-MM-yyyy";
+ $scope.searchData.date = $filter('date')(new Date($scope.currentDate), formate);
+ $scope.searchData.dateTo = $filter('date')(new Date($scope.currentDate), formate);
+ $scope.getIncomeExpenseType_Status();
+ $scope.getDayBookList();
+ return true;
+ } else {
+ return true;
+ }
+ });
+
+ }
+
+ // change from date, update and call search functionality
+ $scope.changeDate = function () {
+ if($scope.searchData.date !== undefined) {
+ var formate = "dd-MM-yyyy";
+ $scope.searchData.date = $filter('date')(new Date($scope.searchData.date), formate);
+ $scope.getDayBookList();
+ } else {
+ $scope.searchData.date = '';
+ $scope.getDayBookList();
+ }
+ }
+
+ // change to date, update and call search functionality
+ $scope.changeToDate = function () {
+ if($scope.searchData.dateTo !== undefined) {
+ var formate = "dd-MM-yyyy";
+ $scope.searchData.dateTo = $filter('date')(new Date($scope.searchData.dateTo), formate);
+ $scope.getDayBookList();
+ } else {
+ $scope.searchData.dateTo = '';
+ $scope.getDayBookList();
+ }
+ }
+
+ // sorting function for table params
+ $scope.sort = function (keyname) {
+ // alert();
+ $scope.sortKey = keyname; //set the sortKey to the param passed
+ $scope.reverse = !$scope.reverse; //if true make it false and vice versa
+ }
+
+ // income expense type status list
+ $scope.getIncomeExpenseType_Status = function () {
+ var getIncomeExpenseType = {
+ method: 'POST',
+ url: apiPoint.url + 'getIncomeExpenseTypeState/',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ data: {
+ localReqDetails: localDetails
+ }
+ };
+ $http(getIncomeExpenseType).then(function (response) {
+ if (response.data.typeNameStatus) {
+ $scope.incomeExpenseName = response.data.typeList;
+ $scope.incomeExpenseType = response.data.typeNameList;
+ } else {
+ }
+ });
+ }
+
+ $scope.loadingsearch = false;
+ $scope.noRecordFound = true;
+ $scope.noRecordFoundSearch = false;
+ $scope.dataLengthIncome = 0;
+ $scope.dataLengthExpense = 0;
+ // day book entry list
+ $scope.getDayBookList = function () {
+ $scope.loadingsearch = true;
+ $scope.noRecordFoundSearch = false;
+ var getDatBookListDetails = {
+ method: 'POST',
+ url: apiPoint.url + 'getDayBookDetails/',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ data: {
+ data: $scope.searchData,
+ localReqDetails: localDetails,
+ }
+ };
+ $http(getDatBookListDetails).then(function (response) {
+ if (response.data.dayBookListStatus) {
+ $scope.loadingsearch = false;
+ // $scope.data = response.data.dayBookListDetails;
+ $scope.datas = response.data.dayBookListDetails;
+
+ const filterAddSelect = $scope.datas.filter(val => {
+ val['Selected'] = false;
+ return val;
+ });
+ $scope.searchResultDetails = filterAddSelect;
+ $scope.searchResultDetailsCopy = filterAddSelect;
+ } else {
+ $scope.loadingsearch = false;
+ }
+ });
+ }
+
+ // Select one row in a table once
+ $scope.setOneSelect = function (value) {
+ angular.forEach($scope.searchResultDetails, function (item) {
+ item.Selected = false;
+ });
+ value.Selected = true;
+ $scope.OpenWindowStatus = true;
+ $scope.openUpdateWind();
+ }
+
+ $scope.unSelect = function () {
+ // alert(value.Selected);
+ angular.forEach($scope.searchResultDetails, function (item) {
+ item.Selected = false;
+ });
+ $scope.openUpdateWind();
+ }
+
+ $scope.myStatusModel = {
+ 'staus': '',
+ 'description': '',
+ }
+
+ // End: select all or individual functionality
+
+ $scope.OpenWindowStatus = false;
+ // open popup window when checkbox get selected / close popup window uncheck the selected items
+ $scope.openUpdateWind = function () {
+ var ItemsSelected = $scope.searchResultDetails.filter(function (item) {
+ if (item.Selected === true) { return true; }
+ });
+ if (ItemsSelected.length) {
+ $scope.myStatusModel = {
+ 'staus': '',
+ 'description': '',
+ }
+ $scope.OpenWindowStatus = true;
+ } else {
+ $scope.OpenWindowStatus = false;
+ }
+ }
+
+ // update the status details
+ $scope.statusUpdate = {
+ submit: function (form, myStatusModel) {
+ 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 {
+ var selectedItems = [];
+ var ItemsSelected = $scope.searchResultDetails.filter(function (item) {
+ if (item.Selected === true && item.Status === 'Pending' ) {
+ let itemGetID = new getUpdateDetails(item.ID);
+ selectedItems.push(itemGetID);
+ return true;
+ }
+ });
+ function getUpdateDetails(id) {
+ this.dabookListId = id;
+ this.ListCodeStatus = $scope.myStatusModel.staus;
+ this.comments = $scope.myStatusModel.description;
+ }
+ if(selectedItems.length > 0) {
+ $scope.disableStatusUpdateButton = true;
+ var updateStudyMaterial = {
+ method: 'POST',
+ url: apiPoint.url + 'updateDayBookStatusAdmin/',
+ headers: {
+ 'Content-Type': 'application/json'
+ },
+ data: {
+ data: selectedItems,
+ requestDetails: localDetails
+ }
+ };
+ $http(updateStudyMaterial).then(function (response) {
+ if (response.data.addStatus) {
+ swal(" ", "Updated successfully,", "success");
+ // for success state
+ $scope.getDayBookList();
+ $scope.unSelect();
+ $scope.myStatusModel = {
+ 'staus': '',
+ 'description': '',
+ }
+ $scope.allSelected('undefined');
+ $scope.OpenWindowStatus = false;
+ $scope.disableStatusUpdateButton = false;
+ } else {
+ swal(" ", response.data.message, "error");
+ $scope.disableStatusUpdateButton = false;
+ }
+ });
+ } else {
+ swal(" ", "Item not Selected", "warning");
+ }
+
+ }
+ },
+ reset: function (form) {
+ form.$setPristine(true);
+ $scope.myStatusModel = {
+ 'staus': '',
+ 'description': '',
+ }
+ }
+ }
+
+ $scope.showTheResType = function (type) {
+ // alert(type);
+ if (type == undefined) {
+ $scope.searchResultDetails = $scope.searchResultDetailsCopy;
+ } else {
+ $scope.searchResultDetails = $scope.searchResultDetailsCopy.filter(val => {
+ return val.Name == type ? 1 : 0;
+ })
+ }
+
+ // const filterAddSelect = $scope.searchResultDetails.filter(val => {
+
+ // });
+ }
+
+ $scope.statusList = [{
+ "status_id": 'TS001',
+ "name": "Pending",
+ }, {
+ "status_id": 'TS002',
+ "name": "Approved",
+ }, {
+ "status_id": 'TS003',
+ "name": "Rejected",
+ }];
+
+}]);
+
+
diff --git a/Apollo/assets/views/daybook/dayBookApproval.html b/Apollo/assets/views/daybook/dayBookApproval.html
index 1ecd0806..5d67e96c 100644
--- a/Apollo/assets/views/daybook/dayBookApproval.html
+++ b/Apollo/assets/views/daybook/dayBookApproval.html
@@ -207,7 +207,7 @@
Income/Expense
- Voucher Number
+ Voucher Number/Bill Number
Paid To / Received From
diff --git a/Apollo/assets/views/daybook/dayBookadminApproval.html b/Apollo/assets/views/daybook/dayBookadminApproval.html
index 7d235d51..9c9ba1f8 100644
--- a/Apollo/assets/views/daybook/dayBookadminApproval.html
+++ b/Apollo/assets/views/daybook/dayBookadminApproval.html
@@ -207,7 +207,7 @@
Income/Expense
- Voucher Number
+ Voucher Number /Bill Number
Paid To / Received From
diff --git a/Apollo/assets/views/daybook/daybooksuperAdminApproval.html b/Apollo/assets/views/daybook/daybooksuperAdminApproval.html
new file mode 100644
index 00000000..d8c2eb8b
--- /dev/null
+++ b/Apollo/assets/views/daybook/daybooksuperAdminApproval.html
@@ -0,0 +1,355 @@
+
+
+
+
+
{{ mainTitle }}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Select Branch
+
+
+
+ Select Branch
+ {{bdata.BranchName}}
+
+
+
+
+
Loading...
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ From Date
+
+
+
+
+
+
+
+
+ Income/Expense
+
+
+ Select
+ {{typeName.ListName}}
+
+ Type is Required
+
+
+
+
+
+
No
+ records found...
+
+
+
+
+
+
+
+
+
+ Total Count:
+ {{ dataLengthExpense }}
+
+
+
+
+
+
+
+
+
+
+
+ Date
+
+
+ Income/Expense
+
+
+ Voucher Number /Bill Number
+
+
+ Paid To / Received From
+
+
+ Description/Comments
+
+
+ Type
+
+
+ Amount
+
+
+
+ Status
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{p.Date}}
+ {{p.ListName}}
+ {{p.VoucherNumber}}
+ {{p.PaidTo}}
+
+
+
+ {{p.PaidDescription}} / {{p.Description}}
+
+
+
+ {{p.TypeName}}
+ {{p.Amount}}
+
+ {{p.Status}}
+ {{p.Status}}
+ {{p.Status}}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/Apollo/assets/views/partials/nav.html b/Apollo/assets/views/partials/nav.html
index dd1bf1ee..f64e56de 100755
--- a/Apollo/assets/views/partials/nav.html
+++ b/Apollo/assets/views/partials/nav.html
@@ -245,7 +245,7 @@
-
+
+
+
+
+
+