mirror of
https://github.com/openMF/community-app.git
synced 2026-02-06 13:17:04 +00:00
210 lines
7.5 KiB
JavaScript
210 lines
7.5 KiB
JavaScript
(function(module) {
|
|
mifosX.controllers = _.extend(module, {
|
|
TaskController: function(scope, resourceFactory, route, dateFilter,$modal,location) {
|
|
|
|
scope.clients = [];
|
|
scope.loans = [];
|
|
scope.offices = [];
|
|
var idToNodeMap = {};
|
|
scope.formData = {};
|
|
scope.loanTemplate = {};
|
|
scope.date = {};
|
|
scope.checkData = [];
|
|
scope.isCollapsed = true;
|
|
resourceFactory.checkerInboxResource.get({templateResource:'searchtemplate'},function(data){
|
|
scope.checkerTemplate = data;
|
|
});
|
|
resourceFactory.checkerInboxResource.search(function(data) {
|
|
scope.searchData = data;
|
|
});
|
|
scope.viewUser = function(item){
|
|
scope.userTypeahead = true;
|
|
scope.formData.user = item.id;
|
|
};
|
|
scope.approveChecker = function () {
|
|
$modal.open({
|
|
templateUrl: 'approvechecker.html',
|
|
controller: CheckerApproveCtrl
|
|
});
|
|
};
|
|
var CheckerApproveCtrl = function ($scope, $modalInstance) {
|
|
|
|
$scope.approve = function () {
|
|
var totalApprove = 0;
|
|
var approveCount = 0;
|
|
_.each(scope.checkData,function(value,key)
|
|
{
|
|
if(value==true)
|
|
{
|
|
totalApprove++;
|
|
}
|
|
});
|
|
_.each(scope.checkData,function(value,key)
|
|
{
|
|
if(value==true)
|
|
{
|
|
|
|
resourceFactory.checkerInboxResource.save({templateResource: key,command:'approve'},{}, function(data){
|
|
approveCount++;
|
|
if(approveCount==totalApprove){
|
|
scope.search();
|
|
}
|
|
},function(data){
|
|
approveCount++;
|
|
if(approveCount==totalApprove){
|
|
scope.search();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
scope.checkData = {};
|
|
$modalInstance.close('approve');
|
|
|
|
};
|
|
$scope.cancel = function () {
|
|
$modalInstance.dismiss('cancel');
|
|
};
|
|
};
|
|
|
|
scope.deleteChecker = function () {
|
|
$modal.open({
|
|
templateUrl: 'deletechecker.html',
|
|
controller: CheckerDeleteCtrl
|
|
});
|
|
};
|
|
var CheckerDeleteCtrl = function ($scope, $modalInstance) {
|
|
$scope.delete = function () {
|
|
var totalDelete = 0;
|
|
var deleteCount = 0
|
|
_.each(scope.checkData,function(value,key)
|
|
{
|
|
if(value==true)
|
|
{
|
|
totalDelete++;
|
|
}
|
|
});
|
|
_.each(scope.checkData,function(value,key)
|
|
{
|
|
if(value==true)
|
|
{
|
|
|
|
resourceFactory.checkerInboxResource.delete({templateResource: key}, {}, function(data){
|
|
deleteCount++;
|
|
if(deleteCount==totalDelete){
|
|
scope.search();
|
|
}
|
|
}, function(data){
|
|
deleteCount++;
|
|
if(deleteCount==totalDelete){
|
|
scope.search();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
scope.checkData = {};
|
|
$modalInstance.close('delete');
|
|
};
|
|
$scope.cancel = function () {
|
|
$modalInstance.dismiss('cancel');
|
|
};
|
|
};
|
|
|
|
scope.routeTo = function(id){
|
|
location.path('viewcheckerinbox/'+id);
|
|
};
|
|
|
|
resourceFactory.officeResource.getAllOffices(function(data){
|
|
scope.offices = data;
|
|
for(var i in data){
|
|
data[i].loans = [];
|
|
idToNodeMap[data[i].id] = data[i];
|
|
}
|
|
|
|
resourceFactory.loanResource.getAllLoans(function(loanData) {
|
|
scope.loans = loanData.pageItems;
|
|
for(var i in scope.loans) {
|
|
if (scope.loans[i].status.pendingApproval) {
|
|
var tempOffice = undefined;
|
|
if (scope.loans[i].clientOfficeId) {
|
|
tempOffice = idToNodeMap[scope.loans[i].clientOfficeId];
|
|
tempOffice.loans.push(scope.loans[i]);
|
|
} else {
|
|
if (scope.loans[i].group) {
|
|
tempOffice = idToNodeMap[scope.loans[i].group.officeId];
|
|
tempOffice.loans.push(scope.loans[i]);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var finalArray = [];
|
|
for(var i in scope.offices){
|
|
if (scope.offices[i].loans.length > 0) {
|
|
finalArray.push(scope.offices[i]);
|
|
}
|
|
}
|
|
scope.offices = finalArray;
|
|
});
|
|
});
|
|
|
|
resourceFactory.clientResource.getAllClients(function(data) {
|
|
scope.clients = data.pageItems;
|
|
});
|
|
|
|
scope.search = function(){
|
|
scope.isCollapsed = true;
|
|
var reqFromDate = dateFilter(scope.date.from,'yyyy-MM-dd');
|
|
var reqToDate = dateFilter(scope.date.to,'yyyy-MM-dd');
|
|
var params = {};
|
|
if (scope.formData.action) { params.actionName = scope.formData.action; };
|
|
|
|
if (scope.formData.entity) { params.entityName = scope.formData.entity; };
|
|
|
|
if (scope.formData.resourceId) { params.resourceId = scope.formData.resourceId; };
|
|
|
|
if (scope.formData.user) { params.makerId = scope.formData.user; };
|
|
|
|
if (scope.date.from) { params.makerDateTimeFrom = reqFromDate; };
|
|
|
|
if (scope.date.to) { params.makerDateTimeto = reqToDate; };
|
|
resourceFactory.checkerInboxResource.search(params , function(data) {
|
|
scope.searchData = data;
|
|
if(scope.userTypeahead){
|
|
scope.formData.user = '';
|
|
scope.userTypeahead = false;
|
|
scope.user = '';
|
|
}
|
|
});
|
|
};
|
|
|
|
scope.bulkApproval = function (){
|
|
scope.formData.approvedOnDate = dateFilter(new Date(),'dd MMMM yyyy');
|
|
scope.formData.dateFormat = "dd MMMM yyyy";
|
|
scope.formData.locale = "en";
|
|
var selectedAccounts = 0;
|
|
var approvedAccounts = 0;
|
|
_.each(scope.loanTemplate,function(value,key){
|
|
if(value==true) {
|
|
selectedAccounts++;
|
|
}
|
|
});
|
|
_.each(scope.loanTemplate,function(value,key){
|
|
if(value==true) {
|
|
resourceFactory.LoanAccountResource.save({command:'approve', loanId:key}, scope.formData, function(data){
|
|
approvedAccounts++;
|
|
scope.loanTemplate[key] = false;
|
|
if (selectedAccounts == approvedAccounts) {
|
|
route.reload();
|
|
}
|
|
});
|
|
}
|
|
});
|
|
};
|
|
|
|
}
|
|
});
|
|
mifosX.ng.application.controller('TaskController', ['$scope', 'ResourceFactory', '$route', 'dateFilter','$modal','$location', mifosX.controllers.TaskController]).run(function($log) {
|
|
$log.info("TaskController initialized");
|
|
});
|
|
}(mifosX.controllers || {}));
|