From b9d72f2d2cdb7ed9985e09ab9f66d09787e6d7a4 Mon Sep 17 00:00:00 2001 From: Muskan Khedia <36980003+muskankhedia@users.noreply.github.com> Date: Fri, 3 Jul 2020 23:58:39 +0530 Subject: [PATCH] feat: add recurring deposit account tab (interest rate chart) (#979) Fixes: #978 --- src/app/clients/clients-routing.module.ts | 2 +- .../general-tab/general-tab.component.html | 4 +- ...ecurring-deposits-account-data.resolver.ts | 32 +++++++++++++ ...ecurring-deposits-account-view.resolver.ts | 0 .../interest-rate-chart-tab.component.html | 45 +++++++++++++++++++ .../interest-rate-chart-tab.component.scss | 10 +++++ .../interest-rate-chart-tab.component.spec.ts | 25 +++++++++++ .../interest-rate-chart-tab.component.ts | 36 +++++++++++++++ ...deposits-account-view.component-theme.scss | 0 ...rring-deposits-account-view.component.html | 8 ++++ ...rring-deposits-account-view.component.scss | 0 ...ng-deposits-account-view.component.spec.ts | 0 ...curring-deposits-account-view.component.ts | 0 .../recurring-deposits-buttons.config.ts | 0 .../recurring-deposits-routing.module.ts | 17 ++++++- .../recurring-deposits.module.spec.ts | 0 .../recurring-deposits.module.ts | 8 ++-- .../recurring-deposits.service.spec.ts | 0 .../recurring-deposits.service.ts | 0 src/app/products/products.module.ts | 5 ++- src/theme/custom/denim-yellowgreen.scss | 2 +- src/theme/custom/pictonblue-yellowgreen.scss | 2 +- 22 files changed, 184 insertions(+), 12 deletions(-) create mode 100644 src/app/deposits/recurring-deposits/common-resolvers/recurring-deposits-account-data.resolver.ts rename src/app/{ => deposits}/recurring-deposits/common-resolvers/recurring-deposits-account-view.resolver.ts (100%) create mode 100644 src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.html create mode 100644 src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.scss create mode 100644 src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.spec.ts create mode 100644 src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.ts rename src/app/{ => deposits}/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component-theme.scss (100%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.html (97%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.scss (100%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.spec.ts (100%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.ts (100%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits-account-view/recurring-deposits-buttons.config.ts (100%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits-routing.module.ts (58%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits.module.spec.ts (100%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits.module.ts (69%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits.service.spec.ts (100%) rename src/app/{ => deposits}/recurring-deposits/recurring-deposits.service.ts (100%) diff --git a/src/app/clients/clients-routing.module.ts b/src/app/clients/clients-routing.module.ts index 3a98e5198..91edd5104 100644 --- a/src/app/clients/clients-routing.module.ts +++ b/src/app/clients/clients-routing.module.ts @@ -183,7 +183,7 @@ const routes: Routes = [ }, { path: 'recurringdeposits', - loadChildren: '../recurring-deposits/recurring-deposits.module#RecurringDepositsModule' + loadChildren: '../deposits/recurring-deposits/recurring-deposits.module#RecurringDepositsModule' }, { path: 'sharesaccounts', diff --git a/src/app/clients/clients-view/general-tab/general-tab.component.html b/src/app/clients/clients-view/general-tab/general-tab.component.html index 8b62ab1aa..46400070f 100644 --- a/src/app/clients/clients-view/general-tab/general-tab.component.html +++ b/src/app/clients/clients-view/general-tab/general-tab.component.html @@ -469,7 +469,7 @@ + [routerLink]="['../', 'recurringdeposits', row.id, 'interest-rate-chart']" class="select-row"> @@ -495,7 +495,7 @@ + [routerLink]="['../', 'recurringdeposits', row.id, 'interest-rate-chart']" class="select-row"> diff --git a/src/app/deposits/recurring-deposits/common-resolvers/recurring-deposits-account-data.resolver.ts b/src/app/deposits/recurring-deposits/common-resolvers/recurring-deposits-account-data.resolver.ts new file mode 100644 index 000000000..95d3290fc --- /dev/null +++ b/src/app/deposits/recurring-deposits/common-resolvers/recurring-deposits-account-data.resolver.ts @@ -0,0 +1,32 @@ +/** Angular Imports */ +import { Injectable } from '@angular/core'; +import { Resolve, ActivatedRouteSnapshot } from '@angular/router'; + +/** rxjs Imports */ +import { Observable } from 'rxjs'; + +/** Custom Services */ +import { RecurringDepositsService } from '../recurring-deposits.service'; + +/** + * RecurringDeposits Account data resolver. + */ +@Injectable() +export class RecurringDepositsAccountDataResolver implements Resolve { + + /** + * @param {RecurringDepositsService} RecurringDepositsService RecurringDeposits service. + */ + constructor(private recurringDepositsService: RecurringDepositsService) { } + + /** + * Returns the RecurringDeposits Account data. + * @param {ActivatedRouteSnapshot} route Route Snapshot + * @returns {Observable} + */ + resolve(route: ActivatedRouteSnapshot): Observable { + const recurringDepositAccountId = route.parent.paramMap.get('recurringDepositAccountId'); + return this.recurringDepositsService.getRecurringDepositsAccountData(recurringDepositAccountId); + } + +} diff --git a/src/app/recurring-deposits/common-resolvers/recurring-deposits-account-view.resolver.ts b/src/app/deposits/recurring-deposits/common-resolvers/recurring-deposits-account-view.resolver.ts similarity index 100% rename from src/app/recurring-deposits/common-resolvers/recurring-deposits-account-view.resolver.ts rename to src/app/deposits/recurring-deposits/common-resolvers/recurring-deposits-account-view.resolver.ts diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.html b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.html new file mode 100644 index 000000000..4ee13c170 --- /dev/null +++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.html @@ -0,0 +1,45 @@ +
+ +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Period + {{rateChart.fromPeriod}}-{{rateChart.toPeriod}} {{rateChart.periodType.value}} Amount Range {{rateChart.amountRangeFrom}}-{{rateChart.amountRangeTo}} Interest {{ rateChart.annualInterestRate }} Description {{ rateChart.description }} Incentives + +
+ +
+ +
diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.scss b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.scss new file mode 100644 index 000000000..be9328c80 --- /dev/null +++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.scss @@ -0,0 +1,10 @@ +.tab-container { + padding: 1%; + margin: 1%; + h3 { + margin:1% auto; + } + table { + width: 100%; + } +} diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.spec.ts b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.spec.ts new file mode 100644 index 000000000..26675582a --- /dev/null +++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { InterestRateChartTabComponent } from './interest-rate-chart-tab.component'; + +describe('InterestRateChartTabComponent', () => { + let component: InterestRateChartTabComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ InterestRateChartTabComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(InterestRateChartTabComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.ts b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.ts new file mode 100644 index 000000000..cac0d811e --- /dev/null +++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/interest-rate-chart-tab/interest-rate-chart-tab.component.ts @@ -0,0 +1,36 @@ +/** Angular Imports */ +import { Component, OnInit } from '@angular/core'; +import { MatTableDataSource } from '@angular/material'; +import { ActivatedRoute } from '@angular/router'; + +/** + * Interest Rate Chart Tab Component. + */ +@Component({ + selector: 'mifosx-interest-rate-chart-tab', + templateUrl: './interest-rate-chart-tab.component.html', + styleUrls: ['./interest-rate-chart-tab.component.scss'] +}) +export class InterestRateChartTabComponent implements OnInit { + + /** Interest Rate Chart Data */ + interestRateChartData: any; + /** Columns to be displayed in interest rate chart table. */ + displayedColumns: string[] = ['period', 'amountRange', 'interest', 'description', 'incentives']; + /** Data source for interest rate chart table. */ + dataSource: MatTableDataSource; + + /** + * Retrieves recurring deposits account data from `resolve`. + * @param {ActivatedRoute} route Activated Route. + */ + constructor(private route: ActivatedRoute) { + this.route.parent.data.subscribe((data: { recurringDepositsAccountData: any }) => { + this.interestRateChartData = data.recurringDepositsAccountData.accountChart.chartSlabs; + }); + } + + ngOnInit() { + } + +} diff --git a/src/app/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component-theme.scss b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component-theme.scss similarity index 100% rename from src/app/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component-theme.scss rename to src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component-theme.scss diff --git a/src/app/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.html b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.html similarity index 97% rename from src/app/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.html rename to src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.html index e32d72f1a..e0aadd883 100644 --- a/src/app/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.html +++ b/src/app/deposits/recurring-deposits/recurring-deposits-account-view/recurring-deposits-account-view.component.html @@ -158,6 +158,7 @@ +