'use strict'; /** * daybook details capturing * */ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", 'ipCookie', '$window','SweetAlert', '$timeout', function ($scope, $rootScope, toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state, ipCookie, $window, SweetAlert, $timeout) { // get local client details var localDetail = JSON.parse(localStorage.getItem('localObj')); var localDetails = ipCookie('cookiechk'); $scope.disableAddButton = false; $scope.disableEditButton = false; //In controller $scope.exportAction = function(){ alert(); switch('excel'){ case 'pdf': $scope.$broadcast('export-pdf', {}); break; case 'excel': $scope.$broadcast('export-excel', {}); break; case 'doc': $scope.$broadcast('export-doc', {}); break; default: console.log('no event caught'); } } $scope.searchData = { "date": "", "dateTo": "" } $scope.viewStudentDetailsPage = false; // load when html page load $scope.init = function () { if (localDetail != null) { if (localDetails.localType === 'R004') { // $scope.getBranchList(); getDetails(); } 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() { $scope.todayDate = new Date(); 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'); } } // get the data while page loading functions goes here // $scope.init = function () { // const LOCALTYPE = localDetail.localType; // if(LOCALTYPE === 'R003') { // $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(); // }else {alert(); // 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.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.getDayBookList(); $scope.getIncomeExpenseType_Status(); return true; } else { return true; } }); } // $scope.getApproveLoad = function() { // alert(); // } // 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) { $scope.sortKey = keyname; //set the sortKey to the param passed $scope.reverse = !$scope.reverse; //if true make it false and vice versa } $scope.noRecordFound = true; $scope.dataLength = 0; // get day book type name list $scope.getDayBookList = function () { 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.data = response.data.dayBookListDetails; $scope.dataLength = $scope.data.length; if ($scope.data.length !== 0) { $scope.noRecordFound = false; } else { $scope.noRecordFound = true; } // alert(JSON.stringify($scope.data)); // $scope.incomeExpenseType = response.data.typeNameList; } else { } }); } // 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; console.log($scope.incomeExpenseName) console.log($scope.incomeExpenseType); } else { } }); } // parse the income and expense type from the list $scope.getType = function (type) { $scope.getIncomeTypes = $scope.incomeExpenseName.filter(function (val) { return val.TypeID === 'I002' ? 1 : 0; }); $scope.getExpenseTypes = $scope.incomeExpenseName.filter(function (val) { return val.TypeID === 'I001' ? 1 : 0; }); $scope.getExpenseTypes = $scope.incomeExpenseName.filter(function (val) { return val.TypeID === 'I003' ? 1 : 0; }); $scope.getExpenseTypes = $scope.incomeExpenseName.filter(function (val) { return val.TypeID === 'I004' ? 1 : 0; }); $scope.getExpenseTypes = $scope.incomeExpenseName.filter(function (val) { return val.TypeID === 'I005' ? 1 : 0; }); $scope.getExpenseTypes = $scope.incomeExpenseName.filter(function (val) { return val.TypeID === 'I006' ? 1 : 0; }); $scope.myModelAdd.type = ''; $scope.getTypes = type === 'I002' ? $scope.getIncomeTypes : $scope.getExpenseTypes; console.log($scope.getTypes) }; $scope.editId = -1; $scope.setEditId = function (P) { //alert(id); $scope.editId = P; } $scope.editClose = function () { $scope.editId = -1; $scope.myModel = { "id": "", "date": "", "incomeExpense": "", "type": "", "amount": "", "status": "", "description": "", "paidTo": "", "description_paid": "", "voucherNumber": "", "branch":"", "name":"" } } $scope.myModel = { "id": "", "date": "", "incomeExpense": "", "type": "", "amount": "", "status": "", "description": "", "paidTo": "", "description_paid": "", "voucherNumber": "", "branch": "", "name":"" } $scope.copyModel = function (p) { var inc = $scope.incomeExpenseType.filter((inc)=>inc.ID == p.Type); console.log(inc); $scope.incexp = inc[0]; $scope.myModel = { "id": p.ID, "date": p.Date, "incomeExpense": p.Name, "type" : $scope.incexp.ID, "amount": p.Amount, "status": p.Status, "description": p.Description, "paidTo": p.PaidTo, "description_paid": p.PaidDescription, "voucherNumber": p.VoucherNumber, "branch":p.BranchCode, "name": p.Name } // alert(JSON.stringify($scope.myModel)); } $scope.deleted1 = function (id) { var id=id; var reason=prompt("Enter Reason!",""); $scope.deleteFeePayableEntry(reason,id); } //delete the income entry From the fees payable $scope.deleteFeePayableEntry = function (reason,id) { // alert(id); SweetAlert.swal({ title: "Warning!", text: "Do you want to Delete this Entry ?", type: "warning", showCancelButton: true, confirmButtonColor: "#007aff", confirmButtonText: "Yes!" }, function (res) { if (res === true) { // alert(id); // alert(stuId); var deleteFeePayableDetails ={ method: 'POST', url: apiPoint.url + 'deleteDayBookFeePayableDetails/', headers: { 'Content-Type': 'application/json' }, data: { reason:reason, data:id, requestDetails: localDetails } }; $http(deleteFeePayableDetails).then(function (response) { if (response.data.deletedStatus) { swal(" ", "Deleted Successfully.", "success"); $scope.getDayBookList(); } else { swal(" ", response.data.message, "error"); } }); } }); } $scope.deleted = function (id) { var id=id; var a=prompt("Enter Reason!",""); $scope.deleEditEntry(a,id); } // delete the income/expense list row $scope.deleEditEntry = function (a,id) { swal({ title: "Are you sure?", text: "Your will not be able to recover this record!", type: "warning", showCancelButton: true, confirmButtonClass: "btn-danger", confirmButtonText: "Yes, delete it!", closeOnConfirm: false }, function () { $scope.indexDelete2(a,id); }); $scope.indexDelete2 = function (a,id) { var deleteDetails = { method: 'POST', url: apiPoint.url + 'deleteDayBookDetails/', headers: { 'Content-Type': 'application/json' }, data: { reason:a,data: id, requestDetails: localDetails } }; $http(deleteDetails).then(function (response) { if (response.data.deletedStatus) { swal(" ", "Deleted Successfully.", "success"); $scope.getDayBookList(); } else { swal(" ", response.data.message, "error"); } }); } } $scope.myModelAdd = { "id": "", "date": "", "name": "", "type": "", "amount": "", "status": "", "description": "", "paidTo": "", "description_paid": "", "voucherNumber": "" } // add a new daybook entry $scope.daybookAdd = { submit: function (form, myModelAdd) { 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 { var sdate= $('#date').val(); $scope.disableAddButton = true; var formate = "dd-MM-yyyy"; $scope.myModelAdd.date= sdate; //$scope.myModelAdd.date = $filter('date')(new Date($scope.myModelAdd.date), formate); $scope.myModelAdd.status = $scope.myModelAdd.name == 'I001' ? 'Pending' : 'Approved'; // $scope.data.push(myModelAdd); var addDayBookDetails = { method: 'POST', url: apiPoint.url + 'addDayBook/', headers: { 'Content-Type': 'application/json' }, data: { data: myModelAdd, localReqDetails: localDetails } }; $http(addDayBookDetails).then(function (response) { if (response.data.addDayBookStatus) { swal(" ", "Income/Expense added successfully.", "success"); $state.go($state.current, {}, { reload: true }); $scope.viewStudentDetailsPage = false; // $scope.myActivateDiv(); $scope.disableAddButton = false; } else { swal(" ", response.data.message, "error"); $scope.disableAddButton = false; } }); } }, reset: function (form) { form.$setPristine(true); $scope.myModelAdd = { "id": "", "date": "", "name": "", "type": "", "amount": "", "status": "", "description": "", "paidTo": "", "description_paid": "", "voucherNumber": "" } } } // $scope.myActivateDiv = function () { // $scope.viewStudentDetailsPage = false; // $scope.myModelAdd = { // "id": "", // "date": "", // "name": "", // "type": "", // "amount": "", // "status": "", // "description": "", // "paidTo": "", // "description_paid": "", // "voucherNumber": "" // } // $timeout(function () { // getDetails(); // }, 1000); // } // update a daybook entry details $scope.daybookeditUpdate = { submit: function (form, myModel) { console.log(myModel.type); //return false; var firstError = null; if (form.$invalid) { alert(); 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 { // alert(JSON.stringify($scope.myModel));exit(); $scope.disableEditButton = true; var updateDayBookDetails = { method: 'POST', url: apiPoint.url + 'updateDayBookDetails/', headers: { 'Content-Type': 'application/json' }, data: { data: $scope.myModel, requestDetails: localDetails } }; $http(updateDayBookDetails).then(function (response) { if (response.data.updateDetailsStatus) { swal(" ","Updated successfully.", "success"); // for success state $scope.editId = -1; $scope.getDayBookList(); $scope.disableEditButton = false; } else { swal(" ", response.data.message, "error"); $scope.disableEditButton = false; } }); } } } function styleXl(){ var mystyle = { sheetid: 'DAYBOOK DETAILS', headers: true, caption: { title:'DAYBOOK DETAILS'+ '('+ $scope.searchData.date + ' - ' + $scope.searchData.dateTo +')', width: '300px', style:'font-size:50px;color:blue;' }, // style:'background:#00FF00', column: { style:'font-size:11px; color:blue;' } }; return mystyle } $scope.exportData = function () { alasql('SELECT Date as Date, ListName as IncomeExpense, VoucherNumber as VoucherNumberBillNumber, PaidTo as PaidToReceivedFrom,FeePaymentDetails as Sem, CourseName as Course,UniversityName as University,TypeName as Type, ReceiptNo as Receipt_No, ReceiptNoComments as Comments, ModeOfPayment as Mode_of_Payment,Amount as Amount,Balance as Balance, Reason, Activity INTO XLS("daybook_details.xls",?) FROM ?',[styleXl(),$scope.data]); }; }]);