'use strict'; /** * daybook details capturing * */ app.controller('daybookCtrl', ["$scope", "$rootScope", "toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", 'ipCookie', function ($scope, $rootScope, toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state, ipCookie) { // get local client details var localDetail = JSON.parse(localStorage.getItem('localObj')); var localDetails = ipCookie('cookiechk'); $scope.searchData = { "date": "", "dateTo": "" } $scope.init = function () { $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(); } $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(); } } $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 } $scope.noRecordFound = true; $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; if ($scope.data.length !== 0) { $scope.noRecordFound = false; } else { $scope.noRecordFound = true; } // alert(JSON.stringify($scope.data)); // $scope.incomeExpenseType = response.data.typeNameList; } else { } }); } $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.getType = function (type) { $scope.getIncomeTypes = $scope.incomeExpenseType.filter(function (val) { return val.TypeID === 'I002' ? 1 : 0; }); $scope.getExpenseTypes = $scope.incomeExpenseType.filter(function (val) { return val.TypeID === 'I001' ? 1 : 0; }); $scope.myModelAdd.type = ''; $scope.getTypes = type === 'I002' ? $scope.getIncomeTypes : $scope.getExpenseTypes; }; $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": "" } } $scope.myModel = { "id": "", "date": "", "incomeExpense": "", "type": "", "amount": "", "status": "", "description": "" } $scope.copyModel = function (p) { console.log(p); $scope.myModel = { "id": p.ID, "date": p.Date, "incomeExpense": p.Name, "type": p.Type, "amount": p.Amount, "status": p.Status, "description": p.Description } } $scope.deleEditEntry = function (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(id); }); $scope.indexDelete2 = function (id) { var deleteDetails = { method: 'POST', url: apiPoint.url + 'deleteDayBookDetails/', headers: { 'Content-Type': 'application/json' }, data: { data: id, requestDetails: localDetails } }; $http(deleteDetails).then(function (response) { if (response.data.deletedStatus) { swal("Success!", response.data.message, "success"); $scope.getDayBookList(); } else { swal("Failed!", response.data.message, "error"); } }); } } $scope.myModelAdd = { "id": "", "date": "", "name": "", "type": "", "amount": "", "status": "", "description": "" } $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 formate = "dd-MM-yyyy"; $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("Success!", response.data.message, "success"); $state.go($state.current, {}, { reload: true }); } else { swal("Failed!", response.data.message, "error"); } }); } } } $scope.daybookeditUpdate = { submit: function (form, myModel) { 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 updateDayBookDetails = { method: 'POST', url: apiPoint.url + 'updateDayBookDetails/', headers: { 'Content-Type': 'application/json' }, data: { data: myModel, requestDetails: localDetails } }; $http(updateDayBookDetails).then(function (response) { if (response.data.updateDetailsStatus) { swal("Success!", response.data.message, "success"); // for success state $scope.editId = -1; $scope.getDayBookList(); } else { swal("Failed!", response.data.message, "error"); } }); } } } }]);