From 9a702bee6d874d81e8b938aea0af1bad990c1169 Mon Sep 17 00:00:00 2001 From: Muskan Khedia <36980003+muskankhedia@users.noreply.github.com> Date: Mon, 1 Jun 2020 15:55:53 +0530 Subject: [PATCH] feat: add loan view page (overdue charges tab) (#821) Fixes: #817 --- src/app/loans/loans-routing.module.ts | 13 ++++- .../charges-tab/charges-tab.component.ts | 10 ++-- .../loans-view/loans-view.component.html | 5 ++ .../overdue-charges-tab.component.html | 31 ++++++++++++ .../overdue-charges-tab.component.scss | 4 ++ .../overdue-charges-tab.component.spec.ts | 25 ++++++++++ .../overdue-charges-tab.component.ts | 48 +++++++++++++++++++ src/app/loans/loans.module.ts | 2 + 8 files changed, 131 insertions(+), 7 deletions(-) create mode 100644 src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.html create mode 100644 src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.scss create mode 100644 src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.spec.ts create mode 100644 src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.ts diff --git a/src/app/loans/loans-routing.module.ts b/src/app/loans/loans-routing.module.ts index 4d851544d..d68fa1563 100644 --- a/src/app/loans/loans-routing.module.ts +++ b/src/app/loans/loans-routing.module.ts @@ -19,6 +19,7 @@ import { LoanDetailsGeneralResolver } from './common-resolvers/loan-details-gene import { LoanNotesResolver } from './common-resolvers/loan-notes-resolver'; import { ChargesTabComponent } from './loans-view/charges-tab/charges-tab.component'; import { LoanDetailsChargesResolver } from './common-resolvers/loan-details-charges.resolver'; +import { OverdueChargesTabComponent } from './loans-view/overdue-charges-tab/overdue-charges-tab.component'; const routes: Routes = [ { @@ -49,6 +50,14 @@ const routes: Routes = [ loanDetailsData: LoanDetailsGeneralResolver } }, + { + path: 'overdue-charges', + component: OverdueChargesTabComponent, + data: { title: extract('Overdue Charges'), breadcrumb: 'Overdue Charges', routeParamBreadcrumb: false }, + resolve: { + loanDetailsData: LoanDetailsGeneralResolver + } + }, { path: 'charges', component: ChargesTabComponent, @@ -63,7 +72,7 @@ const routes: Routes = [ data: { title: extract('Notes'), breadcrumb: 'Notes', routeParamBreadcrumb: false }, resolve: { loanNotes: LoanNotesResolver - } + }, }, { path: 'add-loan-charge', @@ -72,7 +81,7 @@ const routes: Routes = [ resolve: { loanChargeTemplate: LoanChargeTemplateResolver } - } + }, ] }] } diff --git a/src/app/loans/loans-view/charges-tab/charges-tab.component.ts b/src/app/loans/loans-view/charges-tab/charges-tab.component.ts index f7dafad65..b1e77a783 100644 --- a/src/app/loans/loans-view/charges-tab/charges-tab.component.ts +++ b/src/app/loans/loans-view/charges-tab/charges-tab.component.ts @@ -16,18 +16,18 @@ export class ChargesTabComponent implements OnInit { chargesData: any; /** Status */ status: any; - /** Columns to be displayed in codes table. */ + /** Columns to be displayed in charges table. */ displayedColumns: string[] = ['name', 'feepenalty', 'paymentdueat', 'dueasof', 'calculationtype', 'due', 'paid', 'waived', 'outstanding', 'actions']; - /** Data source for codes table. */ + /** Data source for charges table. */ dataSource: MatTableDataSource; - /** Paginator for codes table. */ + /** Paginator for charges table. */ @ViewChild(MatPaginator) paginator: MatPaginator; - /** Sorter for codes table. */ + /** Sorter for charges table. */ @ViewChild(MatSort) sort: MatSort; /** - * Retrieves the codes data from `resolve`. + * Retrieves the loans data from `resolve`. * @param {ActivatedRoute} route Activated Route. */ constructor(private route: ActivatedRoute) { diff --git a/src/app/loans/loans-view/loans-view.component.html b/src/app/loans/loans-view/loans-view.component.html index aa60a661b..839330b25 100644 --- a/src/app/loans/loans-view/loans-view.component.html +++ b/src/app/loans/loans-view/loans-view.component.html @@ -58,6 +58,11 @@ Account Details + + + Overdue Charges + + Charges diff --git a/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.html b/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.html new file mode 100644 index 000000000..2157392bf --- /dev/null +++ b/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.html @@ -0,0 +1,31 @@ +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
Name {{ charge.name }},{{ charge.currency.displaySymbol }} Type {{ charge.chargeCalculationType.value }} Amount {{ charge.amount| number }} Collected On {{ charge.chargeTimeType.value }}
+ + + +
diff --git a/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.scss b/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.scss new file mode 100644 index 000000000..ca97dafbe --- /dev/null +++ b/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.scss @@ -0,0 +1,4 @@ +table { + width: 100%; + margin-top: 3%; +} diff --git a/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.spec.ts b/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.spec.ts new file mode 100644 index 000000000..039848ad7 --- /dev/null +++ b/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { OverdueChargesTabComponent } from './overdue-charges-tab.component'; + +describe('OverdueChargesTabComponent', () => { + let component: OverdueChargesTabComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ OverdueChargesTabComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(OverdueChargesTabComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.ts b/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.ts new file mode 100644 index 000000000..26bb4f217 --- /dev/null +++ b/src/app/loans/loans-view/overdue-charges-tab/overdue-charges-tab.component.ts @@ -0,0 +1,48 @@ +/** Angular Imports */ +import { Component, OnInit, ViewChild } from '@angular/core'; +import { MatTableDataSource, MatPaginator, MatSort } from '@angular/material'; +import { ActivatedRoute } from '@angular/router'; + +/** + * Overdue charges tab component + */ +@Component({ + selector: 'mifosx-overdue-charges-tab', + templateUrl: './overdue-charges-tab.component.html', + styleUrls: ['./overdue-charges-tab.component.scss'] +}) +export class OverdueChargesTabComponent implements OnInit { + + /** Stores the resolved loan data */ + loanDetails: any; + /** Stores the overdue data */ + overdueCharges: any; + + /** Columns to be displayed in overdue charges table. */ + displayedColumns: string[] = ['name', 'type', 'amount', 'collectedon']; + /** Data source for codes table. */ + dataSource: MatTableDataSource; + + /** Paginator for codes table. */ + @ViewChild(MatPaginator) paginator: MatPaginator; + /** Sorter for codes table. */ + @ViewChild(MatSort) sort: MatSort; + + /** + * Retrieves the loans data from `resolve`. + * @param {ActivatedRoute} route Activated Route. + */ + constructor(private route: ActivatedRoute) { + this.route.data.subscribe(( data: { loanDetailsData: any }) => { + this.loanDetails = data.loanDetailsData; + }); + } + + ngOnInit() { + this.overdueCharges = this.loanDetails.overdueCharges; + this.dataSource = new MatTableDataSource(this.overdueCharges); + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + } + +} diff --git a/src/app/loans/loans.module.ts b/src/app/loans/loans.module.ts index 2d45ef3aa..7391eb795 100644 --- a/src/app/loans/loans.module.ts +++ b/src/app/loans/loans.module.ts @@ -15,6 +15,7 @@ import { GeneralTabComponent } from './loans-view/general-tab/general-tab.compon import { AccountDetailsComponent } from './loans-view/account-details/account-details.component'; import { NotesTabComponent } from './loans-view/notes-tab/notes-tab.component'; import { ChargesTabComponent } from './loans-view/charges-tab/charges-tab.component'; +import { OverdueChargesTabComponent } from './loans-view/overdue-charges-tab/overdue-charges-tab.component'; /** * Loans Module @@ -30,6 +31,7 @@ import { ChargesTabComponent } from './loans-view/charges-tab/charges-tab.compon AccountDetailsComponent, NotesTabComponent, ChargesTabComponent, + OverdueChargesTabComponent, ], providers: [DatePipe], })