Added lagged commits

More changes
This commit is contained in:
mbj36 2017-06-28 20:47:56 +05:30
parent da24d97597
commit 826cab6715
16 changed files with 221 additions and 84 deletions

View File

@ -4213,13 +4213,22 @@
"m_savings_account": "Savings Account",
"error.msg.collection.sheet.can.not.be.selected.meeting.date.not.attached.to.any.center" : "Collection sheet can not be generated without meeting date `{{params[0].value}}` attached to any center",
"error.msg.guarantor.saving.account.activation.date.is.on.or.before.loan.submitted.on.date" : "Guarantor saving account activation date `{{params[0].value}}` is on or before the loan submitted on date `{{params[1].value}}`.",
"error.msg.non.empty.datatable.cannot.be.deleted" : "non empty datatable can not be deleted.",
"error.msg.non.empty.datatable.column.cannot.be.deleted" : "non empty datatable columns can not be deleted.",
"error.msg.non.empty.datatable.mandatory.column.cannot.be.added" : "non empty datatable mandatory columns can not be added.",
"": "",
"label.heading.depositaccounttype" : "Deposit Account Type",
"label.input.activationcharge" : "Activation Charge",
" # teller management localization" : "---",
"cashier.insufficient.amount.exception" : "Cashier do not have sufficient amount for this transaction.",
"cashier.date.range.out.of.teller.date.range.exception" : "Cashier date range should be in teller date range.",
"cashier.already.allocated.for.given.data.and.time.exception" : "Cashier already allocated for given date and time range.",
"": "",
"label.heading.nodataavailablefor" : "No Data Available For ",
"label.heading.onmeetingdate" : "on meeting date : ",
"label.heading.reschedulefrom" : "Reschedule From",
"label.heading.reschedulereason" : "Reschedule Reason",
"#------------------": "------------",
"#Notifications": "....",

View File

@ -67,7 +67,7 @@
scope.loanOfficerSelected = function (loanOfficerId) {
if (loanOfficerId) {
$scope.loanOfficerId = loanOfficerId;
scope.loanOfficerId = loanOfficerId;
resourceFactory.centerResource.getAllCenters({officeId: scope.officeId, staffId: loanOfficerId, orderBy: 'name', sortOrder: 'ASC', limit: -1}, function (data) {
scope.centers = data;
});
@ -371,7 +371,7 @@
var cl = scope.clients.length;
for (var j = 0; j < cl; j++) {
scope.client = scope.clients[j];
if (scope.client.attendanceType.id === 0) {
if (scope.client.attendanceType && scope.client.attendanceType.id === 0) {
scope.client.attendanceType.id = 1;
}
}
@ -390,9 +390,12 @@
}
var savingsTransaction = {
savingsId:saving.savingsId,
transactionAmount:dueAmount
transactionAmount:dueAmount,
depositAccountType: saving.depositAccountType=='Saving Deposit'?100:(saving.depositAccountType=='Recurring Deposit'?300:400)
};
scope.bulkSavingsDueTransactions.push(savingsTransaction);
if(savingsTransaction.transactionAmount>0){
scope.bulkSavingsDueTransactions.push(savingsTransaction);
}
});
_.each(client.loans, function (loan) {
@ -422,7 +425,7 @@
_.each(group.clients, function (client) {
var clientAttendanceDetails = {
clientId: client.clientId,
attendanceType: client.attendanceType.id
attendanceType: client.attendanceType != undefined?client.attendanceType.id:null
};
scope.clientsAttendance.push(clientAttendanceDetails);
});

View File

@ -113,7 +113,8 @@
}
var savingsTransaction = {
savingsId: saving.savingsId,
transactionAmount: dueAmount
transactionAmount: dueAmount,
depositAccountType: saving.depositAccountType=='Saving Deposit'?100:(saving.depositAccountType=='Recurring Deposit'?300:400)
};
if(saving.showPaymentDetails && saving.paymentTypeId != ""){
savingsTransaction.paymentTypeId = saving.paymentTypeId;
@ -123,7 +124,10 @@
savingsTransaction.receiptNumber = saving.receiptNumber;
savingsTransaction.bankNumber = saving.bankNumber;
}
scope.bulkSavingsDueTransactions.push(savingsTransaction);
if(savingsTransaction.transactionAmount>0){
scope.bulkSavingsDueTransactions.push(savingsTransaction);
}
});
_.each(client.loans, function (loan) {

View File

@ -18,7 +18,7 @@
scope.meetingDate = routeParams.meetingDate;
var submittedStaffId = [];
scope.details = false;
scope.noData = true;
resourceFactory.centerResource.getAllMeetingFallCenters(params, function (data) {
if (data[0]) {
scope.staffCenterData = data[0].meetingFallCenters;
@ -61,6 +61,9 @@
}
resourceFactory.centerResource.save({'centerId': scope.centerId, command: 'generateCollectionSheet'}, scope.formData, function (data) {
scope.collectionsheetdata = data;
if(data.groups.length > 0){
scope.noData = false;
}
scope.clientsAttendanceArray(data.groups);
scope.total(data);
});
@ -217,7 +220,7 @@
break;
}
}
});
};
}

View File

@ -148,18 +148,19 @@
if (scope.charges.length > 0) {
for (var i in scope.charges) {
if (scope.charges[i].chargeTimeType.value == 'Annual Fee') {
this.formData.charges.push({ chargeId: scope.charges[i].chargeId, amount: scope.charges[i].amount,
feeOnMonthDay: dateFilter(scope.charges[i].feeOnMonthDay, 'dd MMMM')});
} else if (scope.charges[i].chargeTimeType.value == 'Specified due date') {
this.formData.charges.push({ chargeId: scope.charges[i].chargeId, amount: scope.charges[i].amount,
dueDate: dateFilter(scope.charges[i].dueDate, scope.df)});
} else if (scope.charges[i].chargeTimeType.value == 'Monthly Fee') {
this.formData.charges.push({ chargeId: scope.charges[i].chargeId, amount: scope.charges[i].amount,
feeOnMonthDay: dateFilter(scope.charges[i].feeOnMonthDay, 'dd MMMM'), feeInterval: scope.charges[i].feeInterval});
} else {
this.formData.charges.push({ chargeId: scope.charges[i].chargeId, amount: scope.charges[i].amount});
var chargeData = { chargeId: scope.charges[i].chargeId, amount: scope.charges[i].amount};
if(scope.charges[i].chargeTimeType.value == 'Annual Fee' || scope.charges[i].chargeTimeType.value == 'Monthly Fee'){
chargeData.feeOnMonthDay = dateFilter(scope.charges[i].feeOnMonthDay, 'dd MMMM');
}
if (scope.charges[i].chargeTimeType.value == 'Specified due date' || scope.charges[i].chargeTimeType.code=='chargeTimeType.weeklyFee') {
chargeData.dueDate = dateFilter(scope.charges[i].dueDate, scope.df);
}
if (scope.charges[i].chargeTimeType.value == 'Monthly Fee' || scope.charges[i].chargeTimeType.code=='chargeTimeType.weeklyFee') {
chargeData.feeInterval = scope.charges[i].feeInterval;
}
this.formData.charges.push(chargeData);
}
}

View File

@ -11,6 +11,16 @@
scope.isAccountClose = false;
scope.showPaymentDetails = false;
scope.paymentTypes = [];
scope.activationChargeAmount = 0;
scope.totalAmountIncludingActivationCharge = 0;
scope.depositAmount = 0;
if(scope.action=='activate'){
resourceFactory.fixedDepositAccountResource.get({accountId: scope.savingAccountId, associations:'charges'}, function (data) {
scope.totalAmountIncludingActivationCharge = data.depositAmount+parseFloat(data.activationCharge);
scope.depositAmount = data.depositAmount;
scope.activationChargeAmount = data.activationCharge;
});
}
switch (scope.action) {
case "approve":

View File

@ -121,6 +121,12 @@
scope.formData.numberOfRepayments = scope.loanaccountinfo.numberOfRepayments;
scope.formData.repaymentEvery = scope.loanaccountinfo.repaymentEvery;
scope.formData.repaymentFrequencyType = scope.loanaccountinfo.repaymentFrequencyType.id;
if (scope.loanaccountinfo.repaymentFrequencyNthDayType != null){
scope.formData.repaymentFrequencyNthDayType = scope.loanaccountinfo.repaymentFrequencyNthDayType.id;
}
if(scope.loanaccountinfo.repaymentFrequencyDayOfWeekType != null){
scope.formData.repaymentFrequencyDayOfWeekType = scope.loanaccountinfo.repaymentFrequencyDayOfWeekType.id
}
scope.formData.interestRatePerPeriod = scope.loanaccountinfo.interestRatePerPeriod;
scope.formData.interestRateFrequencyType = scope.loanaccountinfo.interestRateFrequencyType.id;
scope.formData.amortizationType = scope.loanaccountinfo.amortizationType.id;
@ -230,11 +236,13 @@
for (var i in scope.collaterals) {
scope.formData.collateral.push({type: scope.collaterals[i].type, value: scope.collaterals[i].value, description: scope.collaterals[i].description});
}
}
if (this.formData.syncRepaymentsWithMeeting) {
this.formData.calendarId = scope.loanaccountinfo.calendarOptions[0].id;
if(scope.loanaccountinfo.calendarOptions){
this.formData.calendarId = scope.loanaccountinfo.calendarOptions[0].id;
}
scope.syncRepaymentsWithMeeting = this.formData.syncRepaymentsWithMeeting;
}
delete this.formData.syncRepaymentsWithMeeting;
@ -288,7 +296,9 @@
}
if (this.formData.syncRepaymentsWithMeeting) {
this.formData.calendarId = scope.loanaccountinfo.calendarOptions[0].id;
if(scope.loanaccountinfo.calendarOptions){
this.formData.calendarId = scope.loanaccountinfo.calendarOptions[0].id;
}
}
delete this.formData.syncRepaymentsWithMeeting;
delete this.formData.interestRateFrequencyType;
@ -328,4 +338,4 @@
mifosX.ng.application.controller('EditLoanAccAppController', ['$scope', '$routeParams', 'ResourceFactory', '$location', 'dateFilter', 'UIConfigService', mifosX.controllers.EditLoanAccAppController]).run(function ($log) {
$log.info("EditLoanAccAppController initialized");
});
}(mifosX.controllers || {}));
}(mifosX.controllers || {}));

View File

@ -15,9 +15,18 @@
scope.restrictDate = new Date();
//this value will be changed within each specific tab
scope.requestIdentifier = "loanId";
scope.itemsPerPage = 15;
scope.loanRescheduleData = [];
scope.checkForBulkLoanRescheduleApprovalData = [];
scope.rescheduleData = function(){
resourceFactory.loanRescheduleResource.getAll({command:'pending'}, function (data) {
scope.loanRescheduleData = data;
});
};
scope.rescheduleData();
resourceFactory.checkerInboxResource.get({templateResource: 'searchtemplate'}, function (data) {
scope.checkerTemplate = data;
});
@ -32,7 +41,7 @@
var newValue = !scope.checkerInboxAllCheckBoxesMet();
if(!angular.isUndefined(scope.searchData)) {
for (var i = scope.searchData.length - 1; i >= 0; i--) {
scope.checkData[scope.searchData[i].id] = newValue;
scope.checkData[scope.searchData[i].id] = newValue;
};
}
}
@ -53,7 +62,7 @@
var newValue = !scope.clientApprovalAllCheckBoxesMet(officeName);
if(!angular.isUndefined(scope.groupedClients[officeName])) {
for (var i = scope.groupedClients[officeName].length - 1; i >= 0; i--) {
scope.approveData[scope.groupedClients[officeName][i].id] = newValue;
scope.approveData[scope.groupedClients[officeName][i].id] = newValue;
};
}
}
@ -74,7 +83,7 @@
var newValue = !scope.loanApprovalAllCheckBoxesMet(office);
if(!angular.isUndefined(scope.offices)) {
for (var i = office.loans.length - 1; i >= 0; i--) {
scope.loanTemplate[office.loans[i].id] = newValue;
scope.loanTemplate[office.loans[i].id] = newValue;
};
}
}
@ -95,7 +104,7 @@
var newValue = !scope.loanDisbursalAllCheckBoxesMet();
if(!angular.isUndefined(scope.loans)) {
for (var i = scope.loans.length - 1; i >= 0; i--) {
scope.loanDisbursalTemplate[scope.loans[i].id] = newValue;
scope.loanDisbursalTemplate[scope.loans[i].id] = newValue;
};
}
}
@ -251,10 +260,10 @@
scope.requestIdentifier = "clientId";
var reqId = 1;
_.each(items, function (value, key) {
_.each(items, function (value, key) {
if (value == true) {
scope.batchRequests.push({requestId: reqId++, relativeUrl: "clients/"+key+"?command=activate",
method: "POST", body: JSON.stringify(activate)});
scope.batchRequests.push({requestId: reqId++, relativeUrl: "clients/"+key+"?command=activate",
method: "POST", body: JSON.stringify(activate)});
}
});
@ -266,8 +275,8 @@
route.reload();
}
}
}
}
});
scope.approveData = {};
@ -324,7 +333,7 @@
resourceFactory.clientResource.getAllClients({sqlSearch: 'c.status_enum=100'}, function (data) {
scope.groupedClients = _.groupBy(data.pageItems, "officeName");
scope.groupedClients = _.groupBy(data.pageItems, "officeName");
});
scope.search = function () {
@ -407,10 +416,10 @@
scope.requestIdentifier = "loanId";
var reqId = 1;
_.each(scope.loanTemplate, function (value, key) {
_.each(scope.loanTemplate, function (value, key) {
if (value == true) {
scope.batchRequests.push({requestId: reqId++, relativeUrl: "loans/"+key+"?command=approve",
method: "POST", body: JSON.stringify(scope.formData)});
scope.batchRequests.push({requestId: reqId++, relativeUrl: "loans/"+key+"?command=approve",
method: "POST", body: JSON.stringify(scope.formData)});
}
});
@ -424,8 +433,8 @@
scope.loanResource();
}
}
}
}
});
};
@ -462,14 +471,14 @@
}
});
scope.batchRequests = [];
scope.requestIdentifier = "loanId";
scope.batchRequests = [];
scope.requestIdentifier = "loanId";
var reqId = 1;
_.each(scope.loanDisbursalTemplate, function (value, key) {
_.each(scope.loanDisbursalTemplate, function (value, key) {
if (value == true) {
scope.batchRequests.push({requestId: reqId++, relativeUrl: "loans/"+key+"?command=disburse",
method: "POST", body: JSON.stringify(scope.formData)});
scope.batchRequests.push({requestId: reqId++, relativeUrl: "loans/"+key+"?command=disburse",
method: "POST", body: JSON.stringify(scope.formData)});
}
});
@ -483,11 +492,80 @@
scope.loanResource();
}
}
}
}
});
};
scope.approveBulkLoanReschedule = function () {
if (scope.checkForBulkLoanRescheduleApprovalData) {
$uibModal.open({
templateUrl: 'loanreschedule.html',
controller: ApproveBulkLoanRescheduleCtrl
});
}
};
var ApproveBulkLoanRescheduleCtrl = function ($scope, $uibModalInstance) {
$scope.approveLoanReschedule = function () {
scope.bulkLoanRescheduleApproval();
route.reload();
$uibModalInstance.close('approveLoanReschedule');
};
$scope.cancel = function () {
$uibmodalInstance.dismiss('cancel');
};
}
scope.checkerInboxAllCheckBoxesClickedForBulkLoanRescheduleApproval = function() { var newValue = !scope.checkerInboxAllCheckBoxesMetForBulkLoanRescheduleApproval();
scope.checkForBulkLoanRescheduleApprovalData = [];
if(!angular.isUndefined(scope.loanRescheduleData)) {
for (var i = scope.loanRescheduleData.length - 1; i >= 0; i--) { scope.checkForBulkLoanRescheduleApprovalData[scope.loanRescheduleData[i].id] = newValue;
};
}
}
scope.checkerInboxAllCheckBoxesMetForBulkLoanRescheduleApproval = function() {
var checkBoxesMet = 0;
if(!angular.isUndefined(scope.loanRescheduleData)) {
_.each(scope.loanRescheduleData, function(data) {
if(_.has(scope.checkForBulkLoanRescheduleApprovalData, data.id)) {
if(scope.checkForBulkLoanRescheduleApprovalData[data.id] == true) {
checkBoxesMet++;
}
}
});
return (checkBoxesMet===scope.loanRescheduleData.length);
}
}
scope.bulkLoanRescheduleApproval = function () {
scope.formData.approvedOnDate = dateFilter(new Date(), scope.df);
scope.formData.dateFormat = scope.df;
scope.formData.locale = scope.optlang.code;
var selectedAccounts = 0;
var approvedAccounts = 0;
_.each(scope.checkForBulkLoanRescheduleApprovalData, function (value, key) {
if (value == true) {
selectedAccounts++;
}
});
scope.batchRequests = [];
scope.requestIdentifier = "RESCHEDULELOAN";
var reqId = 1;
_.each(scope.checkForBulkLoanRescheduleApprovalData, function (value, key) {
if (value == true) {
var url = "rescheduleloans/"+key+"?command=approve";
var bodyData = JSON.stringify(scope.formData);
var batchData = {requestId: reqId++, relativeUrl: url, method: "POST", body: bodyData};
scope.batchRequests.push(batchData);
}
});
resourceFactory.batchResource.post(scope.batchRequests, function (data) {
for(var i = 0; i < data.length; i++) {
if(data[i].statusCode = '200') {
approvedAccounts++;
data[i].body = JSON.parse(data[i].body); scope.checkForBulkLoanRescheduleApprovalData[data[i].body.resourceId] = false;
}
}
});
};
}
});
mifosX.ng.application.controller('TaskController', ['$scope', 'ResourceFactory', '$route', 'dateFilter', '$uibModal', '$location', mifosX.controllers.TaskController]).run(function ($log) {

View File

@ -43,7 +43,7 @@
}),
clientResource: defineResource(apiVer + "/clients/:clientId/:anotherresource", {clientId: '@clientId', anotherresource: '@anotherresource', sqlSearch: '@sqlSearch'}, {
getAllClients: {method: 'GET', params: {limit: 1000, sqlSearch: '@sqlSearch'}},
getAllClientsWithoutLimit: {method: 'GET', params: {limit: -1}},
getAllClientsWithoutLimit: {method: 'GET', params: {}},
getClientClosureReasons: {method: 'GET', params: {}},
getAllClientDocuments: {method: 'GET', params: {}, isArray: true},
update: { method: 'PUT'}
@ -81,8 +81,8 @@
surveyResource: defineResource(apiVer + "/surveys", {}, {
get: {method: 'GET', params: {}, isArray: true}
}),
surveyScorecardResource: defineResource(apiVer + "/surveys/:surveyId/scorecards", {surveyId: '@surveyId'}, {
post: {method: 'POST', params: {}, isArray: false}
surveyScorecardResource: defineResource(apiVer + "/surveys/:surveyId/scorecards", {surveyId: '@surveyId'}, {
post: {method: 'POST', params: {}, isArray: false}
}),
groupResource: defineResource(apiVer + "/groups/:groupId/:anotherresource", {groupId: '@groupId', anotherresource: '@anotherresource'}, {
@ -163,8 +163,8 @@
update: {method: 'PUT', params: {}},
getAllInterestRateCharts: {method: 'GET', params: {productId: '@productId'}, isArray: true}
}),
batchResource: defineResource(apiVer + "/batches", {}, {
post: {method: 'POST', params: {}, isArray: true}
batchResource: defineResource(apiVer + "/batches", {}, {
post: {method: 'POST', params: {}, isArray: true}
}),
loanResource: defineResource(apiVer + "/loans/:loanId/:resourceType/:resourceId", {resourceType: '@resourceType', loanId: '@loanId', resourceId: '@resourceId', limit: '@limit', sqlSearch: '@sqlSearch'}, {
getAllLoans: {method: 'GET', params: {limit:'@limit', sqlSearch: '@sqlSearch'}},
@ -427,8 +427,9 @@
loanReassignmentResource: defineResource(apiVer + "/loans/loanreassignment/:templateSource", {templateSource: '@templateSource'}, {
get: {method: 'GET', params: {}}
}),
loanRescheduleResource: defineResource(apiVer + "/rescheduleloans/:scheduleId",{scheduleId:'@scheduleId'},{
loanRescheduleResource: defineResource(apiVer + "/rescheduleloans/:scheduleId",{scheduleId:'@scheduleId', command: '@command'},{
get: {method: 'GET',params:{}},
getAll: {method: 'GET', params: {}, isArray: true},
template: {method: 'GET',params:{}},
preview:{method:'GET',params:{command:'previewLoanReschedule'}},
put: {method: 'POST', params: {command:'reschedule'}},
@ -640,13 +641,7 @@
getAll: {method: 'GET', params: {}},
get: {method: 'GET', params: {}},
save: {method: 'POST', params: {}},
delete: {method: 'DELETE', params: {}},
getByStatus: {method: 'GET', params: {}}
}),
notificationsResource: defineResource(apiVer + "/notifications", {}, {
getAllNotifications : {method : 'GET', params: {isRead:true}},
getAllUnreadNotifications: {method: 'GET', params: {isRead:false}},
update: {method: 'PUT'}
delete: {method: 'DELETE', params: {}}
})
};
}];

View File

@ -120,7 +120,7 @@
{{loanproduct.name}}/{{'label.heading.charges' | translate}}
</th>
<th scope="colgroup" ng-repeat="savingproduct in collectionsheetdata.savingsProducts">
{{savingproduct.name}}
{{savingproduct.name}} ({{savingproduct.depositAccountType}})
</th>
<th>{{'label.heading.attendance' | translate}}</th>
</tr>
@ -281,4 +281,4 @@
</form>
</div>
</div>
</div>
</div>

View File

@ -30,7 +30,7 @@
<div class="form-group">
<label class="control-label col-sm-2">{{ 'label.input.repaymentdate' | translate }}<span
class="required">*</span></label>
<div class="col-sm-3">
<input type="text" id="transactionDate" name="transactiondate" datepicker-pop="dd MMMM yyyy"
ng-model="date.transactionDate" is-open="opened" class=" form-control"/>
@ -39,7 +39,7 @@
<div class="form-group">
<label class="control-label col-sm-2">{{ 'label.input.staff' | translate }}</label>
<div class="col-sm-3">
<select chosen="loanOfficers" id="loanOfficerId" ng-model="loanOfficerId"
ng-options="loanOfficer.id as loanOfficer.displayName for loanOfficer in loanOfficers"
@ -93,7 +93,7 @@
ng-model="loan.totalDue">
</td>
<td>
<input type="text" class="input-sm form-control" ng-model="loan.chargesDue">
{{loan.feeDue}}
</td>
<td>
<button class="btn btn-default" ng-show="!loan.showPaymentDetails"
@ -149,6 +149,7 @@
</tr>
<tr>
<th>{{'label.heading.depositaccounttype' | translate }}</th>
<th>{{'label.heading.savingsaccountno' | translate}}</th>
<th>{{'label.heading.productname' | translate}}</th>
<th>{{'label.heading.clientname' | translate}}</th>
@ -158,6 +159,7 @@
</thead>
<tbody ng-repeat="client in collectionsheetdata.clients">
<tr ng-repeat-start="saving in client.savings">
<td>{{saving.depositAccountType}}</td>
<td>{{saving.accountId}}</td>
<td>{{saving.productName}}({{saving.productId}})</td>
<td>{{client.clientName}}({{client.clientId}})</td>

View File

@ -15,7 +15,10 @@
<span>{{'label.heading.branch' | translate}}&nbsp;:{{officeName}}</span>
<span class="paddedleft90">{{'label.input.meetingdate' | translate}}&nbsp;:{{meetingDate}}</span>
</div>
<div class="tabbable tabs-below ">
<div class="tabbable tabs-below paddedtop" ng-show="noData">
<span class="col-sm-6 alert alert-warning"> <h3>{{'label.heading.nodataavailablefor' | translate}}&nbsp;{{officeName}}&nbsp;{{'label.heading.onmeetingdate' | translate}}{{meetingDate}}</h3></span>
</div>
<div class="tabbable tabs-below" ng-hide="noData">
<ul class="nav nav-tabs nav-pills">
<li ng-class="{statusactive: selectedTab == center.id}" ng-repeat="center in staffCenterData">
<a ng-click="getAllGroupsByCenter(center.id, center.collectionMeetingCalendar.id)">
@ -27,7 +30,7 @@
</li>
</ul>
</div>
<div>
<div ng-hide="noData">
<span>
<button id="add" class="btn btn-primary" ng-click="detailsShow()">
<i class="fa fa-plus" ng-hide="details"></i>
@ -45,7 +48,7 @@
</span>
</div>
<div ng-show="details">
<div ng-show="details" ng-hide="noData">
<table class="table table-bordered">
<thead>
<tr>
@ -98,7 +101,7 @@
</tbody>
</table>
</div>
<div class="col-md-offset-9 ">
<div class="col-md-offset-9" ng-hide"noData">
<button id="save" type="submit" class="btn btn-primary" ng-show="submitNextShow" ng-click="submit()">
{{'label.button.submitandnextcenter' | translate}}
</button>

View File

@ -20,7 +20,18 @@
ng-model="formData[modelName]" is-open="opened" min="minDate" max="restrictDate"/>
</div>
</div>
<div class="form-group" ng-show="action=='activate' && activationChargeAmount>0">
<label class="control-label col-sm-2">{{'label.input.depositamount' | translate}}</label>
<label class="col-sm-3">{{depositAmount}}</label>
</div>
<div class="form-group" ng-show="action=='activate' && activationChargeAmount>0">
<label class="control-label col-sm-2">{{ 'label.input.activationcharge' | translate}}</label>
<label class="col-sm-3">{{activationChargeAmount}}</label>
</div>
<div class="form-group" ng-show="action=='activate' && activationChargeAmount>0">
<label class="control-label col-sm-2">{{ 'label.heading.transactionamount' | translate}}</label>
<label class="col-sm-2">{{totalAmountIncludingActivationCharge}}</label>
</div>
<div class="form-group" ng-show="showAmount">
<label class="control-label col-sm-2">{{ 'label.input.amount' | translate}}<span
class="required">*</span></label>

View File

@ -280,19 +280,19 @@
<input id="charges[{{$index}}].feeOnMonthDay" class="date-disable form-control"
type="text" datepicker-pop="dd MMMM" ng-model="charge.feeOnMonthDay" is-open="opened"/>
</td>
<td ng-show="charge.chargeTimeType.value=='Specified due date'">
<td ng-show="charge.chargeTimeType.value=='Specified due date' || charge.chargeTimeType.code=='chargeTimeType.weeklyFee'">
<input id="charges[{{$index}}].dueDate" class="date-disable form-control"
type="text" datepicker-pop="dd MMMM yyyy" ng-model="charge.dueDate" is-open="opened"/>
</td>
<td ng-show="charge.chargeTimeType.value=='Monthly Fee'">
<input class="date-disable form-control" type="text" datepicker-pop="dd MMMM" number-format ng-model="charge.feeOnMonthDay" is-open="opened"/>
<input class="form-control" type="text" datepicker-pop="dd MMMM yyyy" ng-model="charge.feeOnMonthDay" is-open="opened"/>
</td>
<td ng-show="charge.chargeTimeType.value=='Monthly Fee'">
<td ng-show="charge.chargeTimeType.value=='Monthly Fee' || charge.chargeTimeType.code=='chargeTimeType.weeklyFee'">
<input id="charges[{{$index}}].amount" class="form-control" type="text"
number-format ng-model="charge.feeInterval"/>
</td>
<td ng-hide="charge.chargeTimeType.value=='Monthly Fee'"></td>
<td ng-hide="charge.chargeTimeType.value=='Annual Fee' || charge.chargeTimeType.value=='Specified due date' || charge.chargeTimeType.value=='Monthly Fee'"></td>
<td ng-hide="charge.chargeTimeType.value=='Monthly Fee' || charge.chargeTimeType.code=='chargeTimeType.weeklyFee'"></td>
<td ng-hide="charge.chargeTimeType.value=='Annual Fee' || charge.chargeTimeType.value=='Specified due date' || charge.chargeTimeType.value=='Monthly Fee' || charge.chargeTimeType.code=='chargeTimeType.weeklyFee'"></td>
<td><a ng-click="deleteCharge($index)"><i class="fa fa-times "></i></a></td>
</tr>
</table>

View File

@ -166,6 +166,9 @@
ng-disabled="!loanaccountinfo.product.allowAttributeOverrides.repaymentEvery"
ng-options="repaymentFrequencyType.id as repaymentFrequencyType.value for repaymentFrequencyType in loanaccountinfo.termFrequencyTypeOptions"
value="{{repaymentFrequencyType.id}}"/>&nbsp;
<select id="repaymentFrequencyNthDayType" class="form-control" ng-model="formData.repaymentFrequencyNthDayType" ng-options="repaymentFrequencyNthDayType.id as repaymentFrequencyNthDayType.value for repaymentFrequencyNthDayType in loanaccountinfo.repaymentFrequencyNthDayTypeOptions" ng-show="formData.repaymentFrequencyType == 2" value="{{repaymentFrequencyNthDayType.id}}"/>&nbsp;
<select id="repaymentFrequencyDayOfWeekType" class="form-control" ng-model="formData.repaymentFrequencyDayOfWeekType"
ng-options="repaymentFrequencyDayOfWeekType.id as repaymentFrequencyDayOfWeekType.value for repaymentFrequencyDayOfWeekType in loanaccountinfo.repaymentFrequencyDaysOfWeekTypeOptions" ng-show="formData.repaymentFrequencyType == 2" value="{{repaymentFrequencyDayOfWeekType.id}}"/>&nbsp;
<form-validate valattributeform="editloanaccountform" valattribute="repaidevery"/>
</td>
</tr>

View File

@ -355,7 +355,7 @@
</div>
<script type="text/ng-template" id="disburseloan.html">
<div class="modal-header silver">
<h3 class="bolder">{{'label.heading.disburse' | translate}}</h3>
<h3 class="bolder">{{'label.heading.rescheduleloan' | translate}}</h3>
</div>
<div class="modal-body">
<api-validate></api-validate>
@ -409,7 +409,7 @@
</th>
<th>
<button type="button" class="btn btn-success"
data-ng-click="approveLoanReschedule()"
data-ng-click="approveBulkLoanReschedule()"
has-permission='APPROVE_LOANRESCHEDULE'><i class="icon-ok"></i>{{'label.button.approve'
| translate}}
</button>
@ -420,7 +420,7 @@
</div>
<script type="text/ng-template" id="loanreschedule.html">
<div class="modal-header silver">
<h3 class="bolder">{{'label.heading.disburse' | translate}}</h3>
<h3 class="bolder">{{'label.heading.rescheduleloan' | translate}}</h3>
</div>
<div class="modal-body">
<api-validate></api-validate>
@ -437,17 +437,22 @@
<table class="table condensed-table">
<thead>
<tr class="graybg">
<th></th>
<th><input type="checkbox" ng-click="checkerInboxAllCheckBoxesClickedForBulkLoanRescheduleApproval()" ng-checked="checkerInboxAllCheckBoxesMetForBulkLoanRescheduleApproval()"/></th>
<th>{{'label.heading.client' | translate}}</th>
<th>{{'label.heading.reschulerequest' | translate}}</th>
<th>{{'label.heading.loanaccountnum' | translate}}</th>
<th>{{'label.heading.loanproduct' | translate}}</th>
<th>{{'label.heading.principal' | translate}}</th>
<th>{{'label.heading.reschedulefrom' | translate}}</th>
<th>{{'label.heading.reschedulereason' | translate}}</th>
</tr>
</thead>
<tbody>
<tr dir-paginate="loanReschedule in loanRescheduleData | itemsPerPage: itemsPerPage"> <td><input type="checkbox" data-ng-model="checkForBulkLoanRescheduleApprovalData[loanReschedule.id]"/></td>
<td><a href="#/viewclient/{{loanReschedule.clientId}}">{{loanReschedule.clientName}}</a></td>
<td><a href="#/loans/{{loanReschedule.loanId}}/viewreschedulerequest/{{loanReschedule.id}}">{{loanReschedule.id}}</a></td>
<td><a href="#/viewloanaccount/{{loanReschedule.loanId}}">{{loanReschedule.loanAccountNumber}}</a></td>
<td><a>{{loanReschedule.rescheduleFromDate | DateFormat}}</a></td>
<td><a>{{loanReschedule.rescheduleReasonCodeValue.name}}</a></td>
</tr>
</tbody>
</table>
</div>