diff --git a/Apollo/assets/js/controllers/daybooksuperadminCtrl.js b/Apollo/assets/js/controllers/daybooksuperadminCtrl.js index 36bfc7d6..6b9ae91a 100755 --- a/Apollo/assets/js/controllers/daybooksuperadminCtrl.js +++ b/Apollo/assets/js/controllers/daybooksuperadminCtrl.js @@ -3,43 +3,140 @@ * daybook details capturing * */ -app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$filter", "ngTableParams", "API_POINTS", "$localStorage", "$http", "$state", 'ipCookie', '$window', function ($scope, $rootScope, toaster, $filter, ngTableParams, apiPoint, $localStorage, $http, $state, ipCookie, $window) { +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.localTypeViewAdmin = false; - $scope.localTypeViewSuperAdmin = false; $scope.searchData = { "date": "", "dateTo": "" } - // get details functionality when page get loaded + $scope.viewStudentDetailsPage = false; + // load when html page load $scope.init = function () { - const LOCALTYPE = localDetail.localType; - if (LOCALTYPE === 'R004') { - $scope.localTypeViewSuperAdmin = true; - $scope.showTheRefValue = 'I001'; - $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(); + if (localDetail != null) { + if (localDetails.localType === 'R004') { + $scope.getBranchList(); + } else { + ipCookie.remove('cookiechk'); + $window.localStorage.clear(); + $state.go('login.signin'); + } } else { - ipCookie.remove('cookiechk'); - $window.localStorage.clear(); - $state.go('login.signin'); - } } + + $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'); + } + } + + // 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) { + if($scope.searchData.date !== undefined) { var formate = "dd-MM-yyyy"; $scope.searchData.date = $filter('date')(new Date($scope.searchData.date), formate); $scope.getDayBookList(); @@ -51,7 +148,7 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi // change to date, update and call search functionality $scope.changeToDate = function () { - if ($scope.searchData.dateTo !== undefined) { + if($scope.searchData.dateTo !== undefined) { var formate = "dd-MM-yyyy"; $scope.searchData.dateTo = $filter('date')(new Date($scope.searchData.dateTo), formate); $scope.getDayBookList(); @@ -67,6 +164,39 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi $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 = { @@ -88,274 +218,16 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi }); } - - $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 + 'getDayBookDetailsSuperAdmin/', - 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; - let datas = response.data.dayBookListDetails; - if (datas.length <= 0) { - $scope.noRecordFoundSearch = true; - } else { - $scope.noRecordFoundSearch = false; - } - let searchResultDetailsBef = datas.filter(val => { - return val.Name == 'I001' ? 1 : 0; - }); - $scope.IncomeData = datas.filter(val => { - return val.Name == 'I002' ? 1 : 0; - }); - $scope.dataLengthIncome = $scope.IncomeData.length; - const filterAddSelect = searchResultDetailsBef.filter(val => { - val['Selected'] = false; - return val; - }); - $scope.searchResultDetails = filterAddSelect; - $scope.dataLengthExpense = $scope.searchResultDetails.length; - // alert(JSON.stringify($scope.searchResultDetails)); - $scope.searchResultLength = Object.keys($scope.searchResultDetails).length; - - // if ($scope.data.length !== 0) { - // $scope.OpenWindowStatus = false; - // $scope.noRecordFound = false; - // } else { - // $scope.OpenWindowStatus = false; - // $scope.noRecordFound = true; - // } - // alert(JSON.stringify($scope.data)); - // $scope.incomeExpenseType = response.data.typeNameList; - } else { - $scope.loadingsearch = false; - } - }); - } - - - // select all or individual functionality - - var getAllSelected = function () { - var selectedItems = $scope.searchResultDetails.filter(function (item) { - return item.Selected; - }); - - return selectedItems.length === $scope.searchResultDetails.length; - } - - var setAllSelected = function (value) { - angular.forEach($scope.searchResultDetails, function (item) { - item.Selected = value; - }); - } - - $scope.allSelected = function (value) { - if (value !== undefined) { - return setAllSelected(value); - } else { - return getAllSelected(); - } - } - - $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; } - }); - // $scope.getStatusList(); - // alert(ItemsSelected.length); - 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(); - // swal("The form cannot be submitted because it contains validation errors!", "Errors are marked with a red, dashed border!", "error"); - } else { - var selectedItems = []; - var ItemsSelected = $scope.searchResultDetails.filter(function (item) { - if (item.Selected === true) { - 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; - } - // alert(JSON.stringify($scope.myStatusModel)); - // alert(JSON.stringify(selectedItems)); - 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.allSelected('undefined'); - $scope.OpenWindowStatus = false; - } else { - swal(" ", response.data.message, "error"); - } - }); - } - }, - reset: function (form) { - form.$setPristine(true); - $scope.myStatusModel = { - 'staus': '', - 'description': '', - } - } - } - - - - $scope.statusList = [{ - "status_id": 'TS001', - "name": "Pending", - }, { - "status_id": 'TS002', - "name": "Approved", - }, { - "status_id": 'TS003', - "name": "Rejected", - }]; - - $scope.data = [{ - "id": 1, - "date": "20-12-2017", - "incomeExpense": "Income", - "type": "typeIncome1", - "amount": "1000", - "status": "Pending", - "description": "income type income type income type" - }, { - "id": 2, - "date": "20-12-2017", - "incomeExpense": "Expense", - "type": "typeIncome2", - "amount": "2000", - "status": "Pending", - "description": "income type income type income type" - }, { - "id": 3, - "date": "20-12-2017", - "incomeExpense": "Expense", - "type": "typeIncome3", - "amount": "3000", - "status": "Pending", - "description": "income type income type income type" - }]; - - - - - $scope.incomeExpenseType = [{ - "type_id": 1, - "type": "Income", - "name": "fees" - }, { - "type_id": 2, - "type": "Expense", - "name": "food" - }, { - "type_id": 3, - "type": "Expense", - "name": "phone" - }, { - "type_id": 4, - "type": "Expense", - "name": "tea-coffee" - }, { - "type_id": 5, - "type": "Expense", - "name": "Paper" - }]; - - $scope.getIncomeExpense = function () { - $scope.incomeExpenseName = [{ - "type_id": 1, - "type": "TYPE001", - "name": "Income" - }, { - "type_id": 2, - "type": "TYPE002", - "name": "Expense" - }]; - - } - - $scope.getIncomeTypes = $scope.incomeExpenseType.filter(function (val) { - return val.type === 'Income' ? 1 : 0; - }); - $scope.getExpenseTypes = $scope.incomeExpenseType.filter(function (val) { - return val.type === 'Expense' ? 1 : 0; - }); - + // parse the income and expense type from the list $scope.getType = function (type) { - // alert(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 === 'Income' ? $scope.getIncomeTypes : $scope.getExpenseTypes; + $scope.getTypes = type === 'I002' ? $scope.getIncomeTypes : $scope.getExpenseTypes; }; $scope.editId = -1; @@ -373,7 +245,12 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi "type": "", "amount": "", "status": "", - "description": "" + "description": "", + "paidTo": "", + "description_paid": "", + "voucherNumber": "", + "branch":"", + "name":"" } } @@ -384,22 +261,73 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi "type": "", "amount": "", "status": "", - "description": "" + "description": "", + "paidTo": "", + "description_paid": "", + "voucherNumber": "", + "branch": "", + "name":"" } $scope.copyModel = function (p) { + console.log(p); $scope.myModel = { - "id": p.id, - "date": p.date, - "incomeExpense": p.incomeExpense, - "type": p.type, - "amount": p.amount, - "status": p.status, - "description": p.description + "id": p.ID, + "date": p.Date, + "incomeExpense": p.Name, + "type": p.Type, + "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)); } - // delete the entry row from the daybook list + + //delete the income entry From the fees payable + $scope.deleteFeePayableEntry = function (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: { + 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"); + } + }); + } + }); + } + + + // delete the income/expense list row $scope.deleEditEntry = function (id) { swal({ title: "Are you sure?", @@ -411,22 +339,29 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi closeOnConfirm: false }, function () { - $scope.indexDelete2(); - // if( $scope.indexDelete2() === true) { - // $scope.data; - // swal("Deleted!", "Your imaginary file has been deleted.", "success"); - // } + $scope.indexDelete2(id); }); - $scope.indexDelete2 = function () { - let ans = $scope.data.some(function (val, i) { - if (val.id === id) { - $scope.data.splice(i, 1); - swal("Deleted!", "Your record has been deleted.", "success"); - return true; + $scope.indexDelete2 = function (id) { + var deleteDetails = { + method: 'POST', + url: apiPoint.url + 'deleteDayBookDetails/', + headers: { + 'Content-Type': 'application/json' + }, + data: { + data: id, + requestDetails: localDetails } - }); return ans; + }; + $http(deleteDetails).then(function (response) { + if (response.data.deletedStatus) { + swal(" ", "Deleted Successfully.", "success"); + $scope.getDayBookList(); + } else { + swal(" ", response.data.message, "error"); + } + }); } - } $scope.myModelAdd = { @@ -436,10 +371,13 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi "type": "", "amount": "", "status": "", - "description": "" + "description": "", + "paidTo": "", + "description_paid": "", + "voucherNumber": "" } - // add a new entry to the day book list + // add a new daybook entry $scope.daybookAdd = { submit: function (form, myModelAdd) { var firstError = null; @@ -458,15 +396,75 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi 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 = 'Pending'; - $scope.data.push(myModelAdd); + $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(); + } else { + swal(" ", response.data.message, "error"); + } + }); } + }, + reset: function (form) { + form.$setPristine(true); + $scope.myModelAdd = { + "id": "", + "date": "", + "name": "", + "type": "", + "amount": "", + "status": "", + "description": "", + "paidTo": "", + "description_paid": "", + "voucherNumber": "" + } } } - // update daybook entry data from the list + + $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) { var firstError = null; @@ -485,60 +483,30 @@ app.controller('daybooksuperadminCtrl', ["$scope", "$rootScope", "toaster", "$fi 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 studentForUpdate = []; - // let formate = "dd-MM-yyyy"; - // $scope.myStatusModel.dateOn = $filter('date')(new Date($scope.myStatusModel.dateOn), formate); - // var ItemsSelected = $scope.searchResultDetails.filter(function (item) { - // if (item.Selected === true) { - // let getStudentID = new getStudentForUpdateDetails(item.StudentID); - // studentForUpdate.push(getStudentID); - // return true; - // } - // }); - // function getStudentForUpdateDetails(id) { - // this.StudentID = id; - // this.CourseID = $scope.myStatusModel.semYear; - // this.BranchCode = localDetails.localBranchID; - // this.ListCode = $scope.myStatusModel.staus; - // this.SDate = $scope.myStatusModel.dateOn; - // this.Coursedetail = id; - // this.Comments = $scope.myStatusModel.comment; - // } - // // alert(JSON.stringify($scope.myStatusModel)); - // // alert(JSON.stringify(studentForUpdate)); - - // var updateStudyMaterial = { - // method: 'POST', - // url: apiPoint.url + 'updateStudentMaterialStatus/', - // headers: { - // 'Content-Type': 'application/json' - // }, - // data: { - // data: studentForUpdate, - // requestDetails : localDetails - // } - // }; - // $http(updateStudyMaterial).then(function (response) { - // if (response.data.addStatus) { - // swal("Success!", response.data.message, "success"); - // // for success state - // $scope.allSelected('undefined'); - // $scope.OpenWindowStatus = false; - // } else { - // swal("Failed!", response.data.message, "error"); - // } - // }); + // alert(JSON.stringify($scope.myModel));exit(); + 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(); + } else { + swal(" ", response.data.message, "error"); + } + }); } - }, - // reset: function (form) { - // form.$setPristine(true); - // $scope.myStatusModel = { - // 'semYear': '', - // 'staus': '', - // 'dateOn': '', - // 'comment': '' - // } - // } + } } }]); diff --git a/Apollo/assets/views/daybook/daybooksuperadmin.html b/Apollo/assets/views/daybook/daybooksuperadmin.html index e574b44c..51ce1485 100755 --- a/Apollo/assets/views/daybook/daybooksuperadmin.html +++ b/Apollo/assets/views/daybook/daybooksuperadmin.html @@ -10,393 +10,403 @@
No
- records found...
| Branch/Date - - | - - -Income/Expense - - | -Voucher Number - - | -Paid To / Received From - - | -Description/Comments - - | -Type - - | -Amount - - | - - -
|---|---|---|---|---|---|---|
| {{p.BranchName}} {{p.Date}} |
-
- {{p.ListName}} | -{{p.VoucherNumber}} | -{{p.PaidTo}} | -
-
-
-
- {{p.PaidDescription}} / {{p.Description}}
-
- |
- {{p.TypeName}} | -{{p.Amount}} | - - -
| Branch/Date - - | - -Income/Expense - - | -Voucher Number - - | -Paid To / Received From - - | -Description/Comments - - | -Type - - | -Amount - - | - -Status - - | -
|---|---|---|---|---|---|---|---|
| {{p.BranchName}} {{p.Date}} |
-
- {{p.ListName}} | -{{p.VoucherNumber}} | -{{p.PaidTo}} | -
-
-
-
- {{p.PaidDescription}} / {{p.Description}}
-
- |
- {{p.TypeName}} | -{{p.Amount}} | - -{{p.Status}} - {{p.Status}} - {{p.Status}} - | -