@@ -0,0 +1,44 @@
|
|||||||
|
/** Angular Imports */
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { Routes, RouterModule } from '@angular/router';
|
||||||
|
|
||||||
|
/** Translation Imports */
|
||||||
|
import { extract } from '../core/i18n/i18n.service';
|
||||||
|
|
||||||
|
/** Custom Components */
|
||||||
|
import { ViewStandingInstructionsComponent } from './view-standing-instructions/view-standing-instructions.component';
|
||||||
|
|
||||||
|
/** Custom Resolvers */
|
||||||
|
import { ViewStandingInstructionsResolver } from './common-resolvers/view-standing-instructions.resolver';
|
||||||
|
|
||||||
|
/** Loans Route. */
|
||||||
|
const routes: Routes = [
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: ':standingInstructionsId',
|
||||||
|
data: { title: extract('Standing Instructions'), routeParamBreadcrumb: 'standingInstructionsId' },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'view',
|
||||||
|
data: { title: extract('View Standing Instructions'), breadcrumb: 'view', routeParamBreadcrumb: false },
|
||||||
|
component: ViewStandingInstructionsComponent,
|
||||||
|
resolve: {
|
||||||
|
standingInstructionsData: ViewStandingInstructionsResolver,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}]
|
||||||
|
}
|
||||||
|
];
|
||||||
|
@NgModule({
|
||||||
|
imports: [RouterModule.forChild(routes)],
|
||||||
|
exports: [RouterModule],
|
||||||
|
declarations: [],
|
||||||
|
providers: [
|
||||||
|
ViewStandingInstructionsResolver,
|
||||||
|
]
|
||||||
|
})
|
||||||
|
|
||||||
|
export class AccountTransfersRoutingModule { }
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/** Angular Imports */
|
||||||
|
import { NgModule } from '@angular/core';
|
||||||
|
import { DatePipe } from '@angular/common';
|
||||||
|
|
||||||
|
/** Custom Modules */
|
||||||
|
import { AccountTransfersRoutingModule } from './account-transfers-routing.module';
|
||||||
|
import { SharedModule } from 'app/shared/shared.module';
|
||||||
|
import { PipesModule } from '../pipes/pipes.module';
|
||||||
|
import { DirectivesModule } from '../directives/directives.module';
|
||||||
|
|
||||||
|
/** Custom Components */
|
||||||
|
import { ViewStandingInstructionsComponent } from './view-standing-instructions/view-standing-instructions.component';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Account Transfers Module
|
||||||
|
*
|
||||||
|
* All components related to Account Transfers functions should be declared here.
|
||||||
|
*/
|
||||||
|
@NgModule({
|
||||||
|
imports: [SharedModule, PipesModule, DirectivesModule, AccountTransfersRoutingModule],
|
||||||
|
declarations: [
|
||||||
|
ViewStandingInstructionsComponent
|
||||||
|
],
|
||||||
|
providers: [DatePipe]
|
||||||
|
})
|
||||||
|
export class AccountTransfersModule { }
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/** Angular Imports */
|
||||||
|
import { Injectable } from '@angular/core';
|
||||||
|
import { HttpClient, HttpParams } from '@angular/common/http';
|
||||||
|
|
||||||
|
/** rxjs Imports */
|
||||||
|
import { Observable } from 'rxjs';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Account Transfers Service.
|
||||||
|
*/
|
||||||
|
@Injectable({
|
||||||
|
providedIn: 'root'
|
||||||
|
})
|
||||||
|
export class AccountTransfersService {
|
||||||
|
|
||||||
|
constructor(private http: HttpClient) { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @params standingInstructionsId
|
||||||
|
* Returns the details of a particular Standing Instruction
|
||||||
|
*/
|
||||||
|
getStandingInstructionsData(standingInstructionsId: any): Observable<any> {
|
||||||
|
return this.http.get(`/standinginstructions/${standingInstructionsId}`);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -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 { AccountTransfersService } from '../account-transfers.service';
|
||||||
|
|
||||||
|
/**
|
||||||
|
* View Standing Instructions resolver.
|
||||||
|
*/
|
||||||
|
@Injectable()
|
||||||
|
export class ViewStandingInstructionsResolver implements Resolve<Object> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param {accountTransfersService} AccountTransfersService Account Transfers service.
|
||||||
|
*/
|
||||||
|
constructor(private accountTransfersService: AccountTransfersService) { }
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the Standing Instructions Data.
|
||||||
|
* @param {ActivatedRouteSnapshot} route Route Snapshot
|
||||||
|
* @returns {Observable<any>}
|
||||||
|
*/
|
||||||
|
resolve(route: ActivatedRouteSnapshot): Observable<any> {
|
||||||
|
const standingInstructionsId = route.parent.paramMap.get('standingInstructionsId');
|
||||||
|
return this.accountTransfersService.getStandingInstructionsData(standingInstructionsId);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+122
@@ -0,0 +1,122 @@
|
|||||||
|
<div fxLayout="row" fxLayoutAlign="end" fxLayoutGap="2%" fxLayout.lt-md="column" class="container m-b-20">
|
||||||
|
<button mat-raised-button color="primary">
|
||||||
|
<fa-icon icon="edit"></fa-icon>
|
||||||
|
Edit
|
||||||
|
</button>
|
||||||
|
<button mat-raised-button color="primary">
|
||||||
|
View Transactions History
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="container">
|
||||||
|
|
||||||
|
<mat-card>
|
||||||
|
|
||||||
|
<mat-card-content>
|
||||||
|
|
||||||
|
<div fxLayout="row wrap" fxLayout.lt-md="column">
|
||||||
|
|
||||||
|
<h2 class="mat-h2" fxFlexFill>{{ standingInstructionsData.name }}</h2>
|
||||||
|
|
||||||
|
<mat-divider [inset]="true"></mat-divider>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Applicant:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.fromClient.displayName }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Type:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.transferType.value }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Priority:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.priority.value }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Status:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.status.value }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">From Account Type:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.fromAccountType.value }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">From Account:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.fromAccount.productName }} - {{ standingInstructionsData.fromAccount.accountNo }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Destination:</span>
|
||||||
|
<span fxFlex="60%">
|
||||||
|
<span *ngIf="allowclientedit"> Within Bank </span>
|
||||||
|
<span *ngIf="!allowclientedit"> Own Account </span>
|
||||||
|
</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">To Office:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.toOffice.name }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Beneficiary:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.toClient.displayName }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">To Account Type:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.toAccountType.value }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">To Account:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.toAccount.productName }} - {{standingInstructionsData.toAccount.accountNo}}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Standing Instruction Type:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.instructionType.value }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Amount:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.amount }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Validity:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.validFrom | date }} - {{ standingInstructionsData.validTill | date }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Recurrence type:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.recurrenceType.value }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Interval:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.recurrenceInterval }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">Recurrence Frequency:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.recurrenceFrequency.value }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div fxFlexFill>
|
||||||
|
<span fxFlex="40%">On Month Day:</span>
|
||||||
|
<span fxFlex="60%">{{ standingInstructionsData.recurrenceOnMonthDay | date }}</span>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</mat-card-content>
|
||||||
|
|
||||||
|
</mat-card>
|
||||||
|
|
||||||
|
</div>
|
||||||
+20
@@ -0,0 +1,20 @@
|
|||||||
|
.mat-elevation-z1 {
|
||||||
|
margin: 1em 0 1.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
h2, h3, h4 {
|
||||||
|
margin: 0;
|
||||||
|
font-weight: 500;
|
||||||
|
}
|
||||||
|
|
||||||
|
span {
|
||||||
|
margin: 0.5em 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
.margin-t {
|
||||||
|
margin-top: 1em;
|
||||||
|
}
|
||||||
|
|
||||||
|
mat-divider {
|
||||||
|
margin: 0 0 1em 0;
|
||||||
|
}
|
||||||
+25
@@ -0,0 +1,25 @@
|
|||||||
|
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||||
|
|
||||||
|
import { ViewStandingInstructionsComponent } from './view-standing-instructions.component';
|
||||||
|
|
||||||
|
describe('ViewStandingInstructionsComponent', () => {
|
||||||
|
let component: ViewStandingInstructionsComponent;
|
||||||
|
let fixture: ComponentFixture<ViewStandingInstructionsComponent>;
|
||||||
|
|
||||||
|
beforeEach(async(() => {
|
||||||
|
TestBed.configureTestingModule({
|
||||||
|
declarations: [ ViewStandingInstructionsComponent ]
|
||||||
|
})
|
||||||
|
.compileComponents();
|
||||||
|
}));
|
||||||
|
|
||||||
|
beforeEach(() => {
|
||||||
|
fixture = TestBed.createComponent(ViewStandingInstructionsComponent);
|
||||||
|
component = fixture.componentInstance;
|
||||||
|
fixture.detectChanges();
|
||||||
|
});
|
||||||
|
|
||||||
|
it('should create', () => {
|
||||||
|
expect(component).toBeTruthy();
|
||||||
|
});
|
||||||
|
});
|
||||||
+30
@@ -0,0 +1,30 @@
|
|||||||
|
/** Angular Imports */
|
||||||
|
import { Component } from '@angular/core';
|
||||||
|
import { ActivatedRoute } from '@angular/router';
|
||||||
|
|
||||||
|
@Component({
|
||||||
|
selector: 'mifosx-view-standing-instructions',
|
||||||
|
templateUrl: './view-standing-instructions.component.html',
|
||||||
|
styleUrls: ['./view-standing-instructions.component.scss']
|
||||||
|
})
|
||||||
|
export class ViewStandingInstructionsComponent {
|
||||||
|
|
||||||
|
/** Standing Instructions Data */
|
||||||
|
standingInstructionsData: any;
|
||||||
|
/** Allow Client Edit */
|
||||||
|
allowclientedit = false;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Retrieves the standing instructions data from `resolve`.
|
||||||
|
* @param {ActivatedRoute} route Activated Route.
|
||||||
|
*/
|
||||||
|
constructor(private route: ActivatedRoute) {
|
||||||
|
this.route.data.subscribe((data: { standingInstructionsData: any}) => {
|
||||||
|
this.standingInstructionsData = data.standingInstructionsData;
|
||||||
|
if (this.standingInstructionsData.fromClient.id === this.standingInstructionsData.toClient.id) {
|
||||||
|
this.allowclientedit = false;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
+1
-1
@@ -58,7 +58,7 @@
|
|||||||
</button>
|
</button>
|
||||||
</span>
|
</span>
|
||||||
<button class="account-action-button" mat-raised-button color="primary" matTooltip="View Standing Instruction"
|
<button class="account-action-button" mat-raised-button color="primary" matTooltip="View Standing Instruction"
|
||||||
*mifosxHasPermission="'READ_STANDINGINSTRUCTION'">
|
*mifosxHasPermission="'READ_STANDINGINSTRUCTION'" [routerLink]="['../', 'standing-instructions', instruction.id, 'view']">
|
||||||
<i class="fa fa-eye"></i>
|
<i class="fa fa-eye"></i>
|
||||||
</button>
|
</button>
|
||||||
</td>
|
</td>
|
||||||
|
|||||||
@@ -32,7 +32,7 @@ import { RecurringDepositsAccountTransactionTemplateResolver } from './common-re
|
|||||||
const routes: Routes = [
|
const routes: Routes = [
|
||||||
{
|
{
|
||||||
path: '',
|
path: '',
|
||||||
data: { title: extract('All Recurring Deposits'), breadcrumb: 'Recurring Deposits', routeParamBreadcrumb: false },
|
data: { title: extract('Recurring Deposits'), breadcrumb: 'Recurring Deposits', routeParamBreadcrumb: false },
|
||||||
children: [
|
children: [
|
||||||
{
|
{
|
||||||
path: 'create-recurring-deposits-account',
|
path: 'create-recurring-deposits-account',
|
||||||
@@ -147,6 +147,23 @@ const routes: Routes = [
|
|||||||
]
|
]
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
path: '',
|
||||||
|
data: { title: extract('All Recurring Deposits'), breadcrumb: 'Recurring Deposits', routeParamBreadcrumb: false },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: ':recurringDepositAccountId',
|
||||||
|
data: { title: extract('RecurringDeposit Account View'), routeParamBreadcrumb: 'recurringDepositAccountId' },
|
||||||
|
children: [
|
||||||
|
{
|
||||||
|
path: 'standing-instructions',
|
||||||
|
data: { title: extract('Standing Instructions'), breadcrumb: 'standing-instructions', routeParamBreadcrumb: false },
|
||||||
|
loadChildren: '../../account-transfers/account-transfers.module#AccountTransfersModule'
|
||||||
|
},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
}
|
}
|
||||||
];
|
];
|
||||||
@NgModule({
|
@NgModule({
|
||||||
|
|||||||
Reference in New Issue
Block a user