Merge pull request #71 from goutham-M/mifosx-savings

view saving product feature is added
This commit is contained in:
Nayan Ambali 2013-09-02 07:31:54 -07:00
commit 1c97195300
7 changed files with 197 additions and 5 deletions

View File

@ -25,6 +25,20 @@
"label.developer.group" : "Developer group",
"label.product.irc" : "IRC",
"label.product.news" : "News and Upcoming events",
"label.savingsreference":"Savings Reference",
"label.savingscontrol":"Savings Control",
"label.interestonsavings":"Interest On Savings",
"label.incomefromfee":"Income from Fee",
"label.assets":"Assets",
"label.liabilities":"Liabilities",
"label.expenses":"Expenses",
"label.income":"Income",
"label.heading.paymenttype":"Payment Type",
"label.heading.fundsource":"Fund Source",
"label.income":"Income",
"label.annualfeeon":"Annual fees on:",
"label.advancedaccountingrules":"Advanced accounting rules",
"label.heading.configurefundsourcesforpaymentchannels":"Configure Fund sources for payment channels",
"# common table headings":"....",
"table.heading.officename":"Office name",
@ -96,10 +110,10 @@
"label.disburseamount":"Principal amount:",
"label.loanpurpose":"Loan purpose:",
"tab.summary":"Summary",
"tab.accountdetail":"Account details",
"tab.repaymentschedule":"Repayment schedule",
"tab.accountdetail":"Details",
"tab.repaymentschedule":"Schedule",
"tab.transaction":"Transaction",
"tab.loandocuments":"Loan documents",
"tab.loandocuments":"Documents",
"tab.notes":"Notes",
"label.repayments":"Repayments:",
"label.repaymentstrategy":"Repayment strategy:",
@ -113,6 +127,25 @@
"label.matureson":"Matures on:",
"label.interestChargedFrom":"Interest charged from:",
"# view savingproduct":"",
"label.heading.details":"Details",
"label.heading.tems":"Terms",
"label.heading.accounting":"Accounting",
"label.heading.details":"Details",
"label.description":"Description:",
"label.decimalplaces":"Decimal places:",
"label.currencyinmultiplesof":"Currency in multiples of:",
"label.nominalannualinterestrate":"Nominal annual interest rate:",
"label.interestcompoundingperiod":"Interest compounding period:",
"label.interestpostingperiod":"Interest posting period:",
"label.interestcalculatedusing":"Interest calculated using:",
"label.daysinyears":"# Days in Year:",
"label.heading.settings":"Settings",
"label.minimumopeningbalance":"Minimum opening balance:",
"label.lockinPeriodFrequency":"Locked in for:",
"label.withdrawfee":"Withdrawal fee:",
"label.annualfee":"Annual fee:",
"#summary table":"",
"table.heading.original":"Original Loan",
"table.heading.paid":"Paid",

View File

@ -14,7 +14,7 @@
</thead>
<tbody>
<tr ng-repeat="savingproduct in savingproducts | filter:filterText">
<td>{{savingproduct.name}}</td>
<td><a href="#/viewsavingproduct/{{savingproduct.id}}">{{savingproduct.name}}</a></td>
</tr>
</tbody>
</table>

View File

@ -0,0 +1,136 @@
<div id="viewlptop">
<div class="row paddedtop">
<div class="pull-right">
<div class="btn-group">
<a href="#" class="btn btn-primary"><i class="icon-edit icon-white"></i> Edit</a>
<a href="#" class="btn btn-primary"><i class="icon-trash icon-white"></i> Delete</a>
</div>
</div>
</div>
<div class="row paddedleft" ng-controller="ViewSavingProductController">
<legend>{{savingproduct.name}}</legend>
<table width="100%">
<tr>
<td>
<a id="test" name="test" class="old-syle-anchor">&nbsp;</a>
</td>
</tr>
<tr class="bottomborder">
<td colspan="4">
<strong>{{'label.heading.details' | translate}}</strong>
</td>
</tr>
<tr class="toppadding">
<td>{{'label.description' | translate}}</td>
<td colspan="3">{{savingproduct.description}}</td>
</tr>
<tr><td colspan="4"><br/></td></tr>
<tr class="bottomborder"><td colspan="4"><strong>{{'label.heading.tems' | translate}}</strong></td></tr>
<tr class="toppadding">
<td>{{'label.currency' | translate}}</td>
<td colspan="3">{{savingproduct.currency.name}}</td>
</tr>
<tr>
<td>{{'label.decimalplaces' | translate}}</td>
<td colspan="3">{{savingproduct.currency.decimalPlaces}}</td>
</tr>
<tr>
<td>{{'label.currencyinmultiplesof' | translate}}</td>
<td colspan="3">{{savingproduct.currency.inMultiplesOf}}</td>
</tr>
<tr>
<td>{{'label.nominalannualinterestrate' | translate}}</td>
<td colspan="3">{{savingproduct.nominalAnnualInterestRate}}</td>
</tr>
<tr>
<td>{{'label.interestcompoundingperiod' | translate}}</td>
<td colspan="3">{{savingproduct.interestCompoundingPeriodType.value}}</td>
</tr>
<tr>
<td>{{'label.interestpostingperiod' | translate}}</td>
<td colspan="3">{{savingproduct.interestPostingPeriodType.value}}</td>
</tr>
<tr>
<td>{{'label.interestcalculatedusing' | translate}}</td>
<td colspan="3">{{savingproduct.interestCalculationType.value}}</td>
</tr>
<tr>
<td>{{'label.daysinyears' | translate}}</td>
<td colspan="3">{{savingproduct.interestCalculationDaysInYearType.value}}</td>
</tr>
<tr><td colspan="4"><br/></td></tr>
<tr class="bottomborder"><td colspan="4"><strong>{{'label.heading.settings' | translate}}</strong></td></tr>
<tr class="toppadding">
<td>{{'label.minimumopeningbalance' | translate}}</td>
<td colspan="3">{{loanproduct.minRequiredOpeningBalances}}</td>
</tr>
<tr>
<td>{{'label.lockinPeriodFrequency' | translate}}</td>
<td>{{savingproduct.lockinPeriodFrequency}}</td>&nbsp;
<td>{{savingproduct.lockinPeriodFrequencyType.value}}</td>
</tr>
<tr>
<td>{{'label.withdrawfee' | translate}}</td>
<td>{{savingproduct.withdrawalFeeAmount}}</td>
<td>{{savingproduct.withdrawalFeeType.value}}</td>
</tr>
<tr>
<td>{{'label.annualfee' | translate}}</td>
<td>{{savingproduct.annualFeeAmount}}</td>&nbsp;
</tr>
<tr>
<td>{{'label.annualfeeon' | translate}}</td>
<td>{{savingproduct.annualFeeOnMonthDay}}</td>
</tr>
<tr><td colspan="4"><br/></td></tr>
<tr class="bottomborder"><td><strong>{{'label.heading.accounting' | translate}}</strong></td><td colspan="3"><span ng-hide="hasAccounting"> None</span></td></tr>
<tr>
<td colspan="4">
<table width="100%" ng-show="hasAccounting">
<tr class="toppadding">
<td>{{'label.savingsreference' | translate}}({{'label.assets' | translate}})</td>
<td colspan="3">{{savingproduct.accountingMappings.savingsReferenceAccountId}}</td>
</tr>
<tr>
<td>{{'label.savingscontrol' | translate}}({{'label.liabilities' | translate}})</td>
<td colspan="3">{{savingproduct.accountingMappings.savingsControlAccountId}}</td>
</tr>
<tr>
<td>{{'label.interestonsavings' | translate}}({{'label.expenses' | translate}})</td>
<td colspan="3">{{savingproduct.accountingMappings.savingsReferenceAccountId}}</td>
</tr>
<tr>
<td>{{'label.incomefromfee' | translate}}({{'label.income' | translate}})</td>
<td colspan="3">{{savingproduct.accountingMappings.incomeFromFeeAccountId}}</td>
</tr>
<tr><td colspan="4"><br/></td></tr>
<tr>
<td>
{{'label.advancedaccountingrules' | translate}}
</td>
</tr>
<tr class="toppadding bottomborder"><td colspan="4">{{'label.heading.configurefundsourcesforpaymentchannels' | translate}}</td></tr>
<tr class="bottomborder graybg">
<td>{{'label.heading.paymenttype' | translate}}</td>
<td colspan="3">{{'label.heading.fundsource' | translate}}</td>
</tr>
<tr ng-repeat="paymentChannel in savingproduct.paymentChannelToFundSourceMappings">
<td>{{paymentChannel.paymentTypeId}}</td>
<td colspan="3">{{paymentChannel.fundSourceAccountId}}</td>
</tr>
</table>
</td>
</tr>
<tr>
<td colspan="3">
</td>
<td class="pull-right">
<a ng-click="scrollto('viewlptop')"><i class="icon-upload"></i> Top</a>
</td>
</tr>
</table>
</div>

View File

@ -0,0 +1,19 @@
(function(module) {
mifosX.controllers = _.extend(module, {
ViewSavingProductController: function(scope, routeParams , location , anchorScroll , resourceFactory ) {
resourceFactory.savingProductResource.get({savingProductId: routeParams.id , template: 'true'} , function(data) {
scope.savingproduct = data;
scope.hasAccounting = data.accountingRule.id == 2 ? true : false;
});
scope.scrollto = function (link){
location.hash(link);
anchorScroll();
};
}
});
mifosX.ng.application.controller('ViewSavingProductController', ['$scope', '$routeParams', '$location', '$anchorScroll' , 'ResourceFactory', mifosX.controllers.ViewSavingProductController]).run(function($log) {
$log.info("ViewSavingProductController initialized");
});
}(mifosX.controllers || {}));

View File

@ -18,6 +18,7 @@ define(['underscore', 'mifosX'], function() {
'ChargeController',
'ViewChargeController',
'SavingProductController',
'ViewSavingProductController',
'OfficesController',
'ViewOfficeController',
'CreateOfficeController',

View File

@ -49,6 +49,9 @@
.when('/savingproducts', {
templateUrl: 'html/products/savingproducts.html'
})
.when('/viewsavingproduct/:id', {
templateUrl: 'html/products/viewsavingproduct.html'
})
.when('/offices', {
templateUrl: 'html/organization/offices.html'
})

View File

@ -44,7 +44,7 @@
chargeResource: defineResource(apiVer + "/charges/:chargeId", {chargeId:'@chargeId'}, {
getAllCharges: {method: 'GET', params: {}, isArray:true}
}),
savingProductResource: defineResource(apiVer + "/savingsproducts/:savingproductId", {}, {
savingProductResource: defineResource(apiVer + "/savingsproducts/:savingProductId", {savingProductId:'@savingProductId'}, {
getAllSavingProducts: {method: 'GET', params: {}, isArray:true}
}),
loanResource: defineResource(apiVer + "/loans/:loanId", {loanId:'@loanId'}, {