This commit is contained in:
dineshkumarkannan 2018-11-09 15:41:14 +05:30
commit b0eb053f40
16 changed files with 1834 additions and 1198 deletions

View File

@ -1,96 +1,167 @@
<div class="pad-wrap">
<!--<div fxLayout="row wrap">
<!-- doughnut -->
<!-- <div fxFlex.gt-sm="33.33" fxFlex.gt-xs="50" fxFlex="100"> -->
<div fxFlex.gt-sm="100" fxFlex.gt-xs="100" fxFlex="100">
<mat-card>
<mat-card-title>Today's Status</mat-card-title>
<mat-card-subtitle></mat-card-subtitle>
<hr>
<mat-card-content>
<mat-card>
<mat-card-title>{{dashboardTitle}}</mat-card-title>
<!-- Full Pd
{{doughnutChartDataForFullPD}} Length
{{doughnutChartDataForFullPD.length}}
Smart Pd
{{doughnutChartDataForSmartPD}} Length
{{doughnutChartDataForSmartPD.length}}
Tele Pd
{{doughnutChartDataForTelePD}} Length
{{doughnutChartDataForTelePD.length}} -->
<mat-card-content>
<div fxFlex.gt-sm="33.33" fxFlex.gt-xs="40" fxFlex="90">
<div *ngIf="doughnutChartDataForFullPD.length != 0" style="text-align: center"><strong>Full - {{total1}}</strong></div>
<!-- <div *ngIf="doughnutChartDataForFullPD" style="text-align: center"><strong>Full</strong></div> -->
<canvas baseChart class="chart"
[data]="doughnutChartDataForFullPD"
[labels]="doughnutChartLabels"
[options]="doughnutOptionsFullPD"
[colors]="doughnutChartColors"
[chartType]="doughnutChartType"></canvas>
</div>
<div fxFlex.gt-sm="33.33" fxFlex.gt-xs="40" fxFlex="90">
<div *ngIf="doughnutChartDataForSmartPD.length != 0" style="text-align: center"><strong>Smart - {{total2}}</strong></div>
<canvas baseChart class="chart"
[data]="doughnutChartDataForSmartPD"
[labels]="doughnutChartLabels"
[options]="doughnutOptionsSmartPD"
[colors]="doughnutChartColors"
[chartType]="doughnutChartType"></canvas>
</div>
<div fxFlex.gt-sm="33.33" fxFlex.gt-xs="40" fxFlex="90">
<div *ngIf="doughnutChartDataForTelePD.length != 0" style="text-align: center"> <strong>Tele - {{total3}}</strong></div>
<canvas baseChart class="chart"
[data]="doughnutChartDataForTelePD"
[labels]="doughnutChartLabels"
[options]="doughnutOptionsTelePD"
[colors]="doughnutChartColors"
[chartType]="doughnutChartType"></canvas>
</div>
</mat-card-content>
</mat-card>
</div>
<!--<div fxLayout="row wrap">
<div fxFlex.gt-sm="100" fxFlex.gt-xs="100" fxFlex="100">
<mat-card>
<mat-card-title>Today's Status</mat-card-title>
<mat-card-subtitle></mat-card-subtitle>
<hr>
<mat-card-content>
<div class="w-100 h-300px">
<ngx-charts-bar-horizontal-stacked [scheme]="colorScheme" [results]="multi" [gradient]="gradient" [xAxis]="showXAxis" [yAxis]="showYAxis" [legend]="showLegend" [showXAxisLabel]="showXAxisLabel" [showYAxisLabel]="showYAxisLabel" [xAxisLabel]="yAxisLabel" [yAxisLabel]="xAxisLabel" width="832" height="200">
</ngx-charts-bar-horizontal-stacked>
</div>
</mat-card-content>
</mat-card>
</div>
</div>
<div fxLayout="row">
<div fxFlex="77%">
<mat-card>
<mat-card-title>Today's Details</mat-card-title>
<mat-card-content>
<div class="w-100 h-300px">
<ngx-charts-bar-horizontal-stacked [scheme]="colorScheme" [results]="multi" [gradient]="gradient" [xAxis]="showXAxis" [yAxis]="showYAxis" [legend]="showLegend" [showXAxisLabel]="showXAxisLabel" [showYAxisLabel]="showYAxisLabel" [xAxisLabel]="yAxisLabel" [yAxisLabel]="xAxisLabel" width="832" height="200">
</ngx-charts-bar-horizontal-stacked>
</div>
</mat-card-content>
</mat-card>
</div>
</div> -->
<div fxLayout="row">
<div fxFlex="77%">
<mat-card>
<mat-card-title>Today's Details</mat-card-title>
<mat-card-content>
<div class="w-100 h-300px">
<span>Full</span>
<ngx-charts-advanced-pie-chart [view]="view" [scheme]="colorScheme" [results]="full" [gradient]="gradient" >
</ngx-charts-advanced-pie-chart>
</div>
<div class="w-100 h-300px">
<span>Smart</span>
<ngx-charts-advanced-pie-chart [view]="view" [scheme]="colorScheme" [results]="smart" [gradient]="gradient" >
<span>Full</span>
<ngx-charts-advanced-pie-chart [view]="view" [scheme]="colorScheme" [results]="full" [gradient]="gradient" >
</ngx-charts-advanced-pie-chart>
</div>
<div class="w-100 h-300px">
<span>Tele</span>
<ngx-charts-advanced-pie-chart [view]="view" [scheme]="colorScheme" [results]="tele" [gradient]="gradient" >
<span>Smart</span>
<ngx-charts-advanced-pie-chart [view]="view" [scheme]="colorScheme" [results]="smart" [gradient]="gradient" >
</ngx-charts-advanced-pie-chart>
</div>
</mat-card-content>
</mat-card>
</div>
<div fxFlex="23%" fxLayout="row wrap">
<div fxFlex="100">
<mat-card>
<mat-card-title><span fxFlex="80">Alert</span> <span fxFlex="20"><mat-icon> warning</mat-icon></span></mat-card-title>
<mat-card-content>
<mat-list>
<ng-template let-item let-last="last" ngFor [ngForOf]="message">
<mat-list-item>
<!--<img mat-list-avatar src="{{item.photo}}" alt="">-->
<h3 mat-line> {{item.applicantname}} </h3>
<p mat-line> {{item.applicantid}}</p>
<p mat-line> {{item.lendername}} - {{item.status}} </p>
</mat-list-item>
</ng-template>
</mat-list>
</mat-card-content>
</mat-card>
</div>
<div fxFlex="100">
<mat-card>
<mat-card-title>Lenderwise</mat-card-title>
<mat-card-content>
<mat-list>
<ng-template let-item let-last="last" ngFor [ngForOf]="lenderpd">
<mat-list-item>
<h3 mat-line> {{item.lendername}} / {{item.billingaddr}} </h3>
<p mat-line> Full -{{item.fullpd}} / Smart -{{item.smartpd}} / Tele - {{item.telepd}} </p>
</mat-list-item>
</ng-template>
</mat-list>
</mat-card-content>
</mat-card>
</div>
<div fxFlex="100">
<mat-card>
<mat-card-title>CityWise</mat-card-title>
<mat-card-content>
<mat-list>
<ng-template let-item let-last="last" ngFor [ngForOf]="citywisepd">
<mat-list-item>
<h3 mat-line> {{item.cityname}} </h3>
<p mat-line> Full -{{item.fullpd}} / Smart -{{item.smartpd}} / Tele - {{item.telepd}}</p>
</mat-list-item>
</ng-template>
</mat-list>
</mat-card-content>
</mat-card>
</div>
</div>
</div>
</div>
<div class="w-100 h-300px">
<span>Tele</span>
<ngx-charts-advanced-pie-chart [view]="view" [scheme]="colorScheme" [results]="tele" [gradient]="gradient" >
</ngx-charts-advanced-pie-chart>
</div>
</mat-card-content>
</mat-card>
</div>-->
</div>
<div fxLayout="row">
<div fxFlex="100">
<mat-card>
<mat-card-title><span fxFlex="80">Alert</span> <span fxFlex="20"><mat-icon> warning</mat-icon></span></mat-card-title>
<mat-card-content>
<mat-list>
<ng-template let-item let-last="last" ngFor [ngForOf]="message">
<!-- <ng-template *ngFor="let item of message" > -->
<mat-list-item>
<!--<img mat-list-avatar src="{{item.photo}}" alt="">-->
<!--<h3 mat-line> {{item.applicantname}} </h3>
<p mat-line> {{item.applicantid}}</p>
<p mat-line> {{item.lendername}} - {{item.status}} </p> -->
<h3 mat-line> {{item.applicant_name}} </h3>
<p mat-line> {{item.lender_applicant_id}}</p>
<p mat-line> {{item.entity_name}} - {{item.pd_status}} </p>
</mat-list-item>
</ng-template>
</mat-list>
</mat-card-content>
</mat-card>
</div>
<!-- <div fxFlex="100"> -->
<div fxFlex="100">
<mat-card>
<mat-card-title>Lenderwise</mat-card-title>
<mat-card-content>
<mat-list>
<!-- {{lenderpd}} -->
<ng-template let-item let-last="last" ngFor [ngForOf]="lenderpd">
<!-- <ng-template *ngFor="let item of lenderpd" > -->
<mat-list-item>
<h3 mat-line>{{item.full_name}} / {{item.city_name}} </h3>
<p mat-line> {{item.PDTYPE}} -{{item.count}} </p>
<!-- <p mat-line>
<div *ngIf="item.PDTYPE == FULL" > {{item.PDTYPE}} -{{item.count}} </div>
<div *ngIf="item.PDTYPE == SMART" > {{item.PDTYPE}} -{{item.count}} </div>
<div *ngIf="item.PDTYPE == TELE" > {{item.PDTYPE}} -{{item.count}} </div> -->
<!-- <h3 mat-line> {{item.lendername}} / {{item.billingaddr}} </h3>
<p mat-line> Full -{{item.fullpd}} / Smart -{{item.smartpd}} / Tele - {{item.telepd}} </p> -->
</mat-list-item>
</ng-template>
</mat-list>
</mat-card-content>
</mat-card>
</div>
<!-- <div fxFlex="100"> -->
<div fxFlex="100">
<mat-card>
<mat-card-title>CityWise</mat-card-title>
<mat-card-content>
<mat-list>
<ng-template let-item let-last="last" ngFor [ngForOf]="citywisepd">
<!-- <ng-template *ngFor="let item of citywisepd" > -->
<mat-list-item>
<h3 mat-line> {{item.city_name}} </h3>
<!-- <h3 mat-line> item </h3> -->
<p mat-line> {{item.PDTYPE}} -{{item.count}}
<!-- <div *ngIf="item.PDTYPE == FULL" >{{item.PDTYPE}} -{{item.count}} </div> -->
<!-- <div *ngIf="item.PDTYPE == SMART"> {{item.PDTYPE}} -{{item.count}} </div>
<div *ngIf="item.PDTYPE == TELE"> {{item.PDTYPE}} -{{item.count}} </div> -->
</p>
</mat-list-item>
</ng-template>
</mat-list>
</mat-card-content>
</mat-card>
</div>
</div>

File diff suppressed because it is too large Load Diff

View File

@ -1,4 +1,10 @@
import { Component } from '@angular/core';
//import { Component } from '@angular/core';
import {Component, NgModule, ElementRef, Inject, ViewChild} from '@angular/core'
import {BrowserModule} from '@angular/platform-browser'
import {ChartsModule, Color} from 'ng2-charts';
//import { MastersService } from './../service/masters/masters.service'
import { DashboardService } from './dashboard.service';
import { BaseChartDirective } from 'ng2-charts/ng2-charts';
@Component({
selector: 'app-dashboard',
@ -8,195 +14,564 @@ import { Component } from '@angular/core';
export class DashboardComponent {
public showXAxis = true;
public showYAxis = true;
public gradient = true;
public showLegend = false;
public showXAxisLabel = true;
public xAxisLabel = 'Status';
public showYAxisLabel = true;
public yAxisLabel = 'PD';
view: any[];
width =900;
height= 250;
public colorScheme = {
domain: ['#673ab7', '#f44336', '#009688 ', '#2196f3', '#234278 ', '#2a1653']
};
public autoScale = true;
constructor() {
}
ngOnInit(){
this.view = [this.width, this.height];
dashboardTitle = 'Monthly Status';
@ViewChild('mycanvas')
doughnutChartDataForFullPD:any[]=[];
doughnutChartDataForSmartPD:any[]=[];
doughnutChartDataForTelePD:any[]=[];
TempDataFullPD :number[]=[];
TempDataSmartPD :number[]=[];
TempDataTelePD :number[]=[];
total1: number = 0;
total2: number = 0;
total3: number = 0;
doughnutChartName:any;
citywisepd : any[];
lenderpd :any[];
message : any[];
Status = false;
// globalChartOptionsFullPD: any = {
// responsive: false,
// legend: {
// display: false,
// position: 'bottom'
// }
// };
// globalChartOptionsSmartPD: any = {
// responsive: false,
// legend: {
// display: false,
// position: 'bottom'
// }
// };
globalChartOptions: any = {
responsive: false,
legend: {
display: false,
position: 'bottom'
}
};
TodayFullPD:any = [];
MonthlyFullPD:any = [];
constructor(private _dashboardService: DashboardService) {
}
//pie chart
single: Object[] = [
{
name: 'Germany',
value: 40632
},
{
name: 'USA',
value: 49737
},
{
name: 'France',
value: 36745
},
{
name: 'UK',
value: 36240
},
{
name: 'Spain',
value: 33000
},
{
name: 'Italy',
value: 35800
}
];
//Full Pd Data
full: Object[] = [
{
name: 'Triggered',
value: 45
},
{
name: 'Allocated',
value: 50
},
{
name: 'Scheduled',
value: 36
},
{
name: 'InProgress',
value: 90
},
{
name: 'Completed',
value: 56
},
{
name: 'QC Completed',
value: 81
}
];
//smart PD data
smart: Object[] = [
{
name: 'Triggered',
value: 65
},
{
name: 'Allocated',
value: 20
},
{
name: 'Scheduled',
value: 80
},
{
name: 'InProgress',
value: 60
},
{
name: 'Completed',
value: 26
},
{
name: 'QC Completed',
value: 51
}
];
//Tele PD Data
tele: Object[] = [
{
name: 'Triggered',
value: 95
},
{
name: 'Allocated',
value: 59
},
{
name: 'Scheduled',
value: 45
},
{
name: 'InProgress',
value: 25
},
{
name: 'Completed',
value: 36
},
{
name: 'QC Completed',
value: 49
}
];
// //Lender wise PD Triggered
lenderpd: Object[] = [{
lendername:'ICICI',
billingaddr:'Bangalore',
fullpd:'19',
smartpd:'6',
telepd:'10',
}, {
lendername:'IOB',
billingaddr:'Chennai',
fullpd:'10',
smartpd:'5',
telepd:'7',
}, {
lendername:'SBI',
billingaddr:'Pune',
fullpd:'16',
smartpd:'3',
telepd:'33',
}, ];
// Doughnut
//name: "DoughnutTextInside"
ngOnInit(){
this.GetData();
this.getDoNUT();
}
GetData(){
this._dashboardService.getLenderDetail().subscribe(data => {
//console.log('Lender');console.log(data);
this.TodayFullPD = data.records;
//City Wise PD Triggered
citywisepd: Object[] = [{
cityname: 'Bangalore',
fullpd:'45',
smartpd:'17',
telepd:'10',
}, {
cityname: 'Chennai',
fullpd:'33',
smartpd:'16',
telepd:'8',
}, {
cityname: 'Salem',
fullpd:'22',
smartpd:'12',
telepd:'2',
} ];
// console.log(this.TodayFullPD);
// console.log(this.TodayFullPD.current_day);
// console.log(this.TodayFullPD.current_week);
// console.log(this.TodayFullPD.current_month);
if(this.TodayFullPD.current_day.length != '0'){
//console.log('If Condition day');
}
else{
//console.log('Else Condition day');
}
// //Same status
message: Object[] = [{
applicantname: 'Saravana',
applicantid:'ICICITN0118000354',
lendername:'ICICI',
status:'Allocated',
photo: 'assets/images/face3.jpg',
}, {
applicantname: 'Kumaran',
applicantid:'IOBKA0418000578',
lendername:'IOB',
status:'Allocated',
photo: 'assets/images/face6.jpg',
}, {
applicantname: 'Priya',
applicantid:'SBIGA0118000241',
lendername:'SBI',
status:'Triggered',
photo: 'assets/images/face4.jpg',
} ];
if(this.TodayFullPD.current_week.length != '0'){
//console.log('If Condition week');
}
else{
//console.log('Else Condition week');
}
if(this.TodayFullPD.current_month.length != '0'){
this.lenderpd = this.TodayFullPD.current_month;
console.log('******************** lender');
console.log(this.lenderpd);
// for(let contact of this.TodayFullPD.current_month) {
// let message = contact;
// }
}
else{
//console.log('Else Condition month');
}
});
this._dashboardService.getAlertDetail().subscribe(data => {
console.log('Alert*********************************');console.log(data);
this.message = data.records;
console.log(this.message);
});
this._dashboardService.getCityDetail().subscribe(data => {console.log('City');console.log(data);
this.TodayFullPD = data.records;
// console.log(this.TodayFullPD);
// console.log(this.TodayFullPD.current_day);
// console.log(this.TodayFullPD.current_week);
// console.log(this.TodayFullPD.current_month);
console.log('Whole',this.TodayFullPD);
console.log('Today only',this.TodayFullPD.current_day);
console.log('This week',this.TodayFullPD.current_week);
console.log('This month',this.TodayFullPD.current_month);
if(this.TodayFullPD.current_day.length != '0'){
//console.log('If Condition day');
}
else{
//console.log('Else Condition day');
}
if(this.TodayFullPD.current_week.length != '0'){
//console.log('If Condition week');
}
else{
//console.log('Else Condition week');
}
if(this.TodayFullPD.current_month.length != '0'){
this.citywisepd = this.TodayFullPD.current_month;
//console.log('citywisepd');
//console.log(this.citywisepd);
//for(let contact of this.TodayFullPD.current_month) {
// let message = contact;
//}
}
else{
//console.log('Else Condition month');
}
});
}
getDoNUT(){
this._dashboardService.getPDDetailForDoughnut().subscribe(data => {
this.MonthlyFullPD = data.records;
console.log('whole',this.MonthlyFullPD);
console.log('Today',this.MonthlyFullPD.current_day);
console.log('week',this.MonthlyFullPD.current_week);
console.log('month',this.MonthlyFullPD.current_month);
if(this.MonthlyFullPD.current_day.length != '0'){
//console.log('If Condition day');
}
else{
//console.log('Else Condition day');
}
if(this.MonthlyFullPD.current_week.length != '0'){
//console.log('If Condition week');
}
else{
//console.log('Else Condition week');
}
if(this.MonthlyFullPD.current_month.length != '0'){
//console.log('If Condition monthLY');
//this.citydatas = this.citydatas.filter(city=>city.isactive == 1 );
let Monthly = this.MonthlyFullPD.current_month;
let MonthlyFullPDArr = Monthly.filter(arr=>arr.PDTYPE == 'FULL' );
let MonthlySmartPDArr = Monthly.filter(arr=>arr.PDTYPE == 'SMART' );
let MonthlyTelePDArr = Monthly.filter(arr=>arr.PDTYPE == 'TELE' );
let TriggedIndexvalue = this.doughnutChartLabels.indexOf('Triggered');
let AllocatedIndexvalue = this.doughnutChartLabels.indexOf('Allocated');
let ScheduledIndexvalue = this.doughnutChartLabels.indexOf('Scheduled');
let InProgressIndexvalue = this.doughnutChartLabels.indexOf('InProgress');
let CompletedIndexvalue = this.doughnutChartLabels.indexOf('Completed');
let QCCompletedIndexvalue = this.doughnutChartLabels.indexOf('QC Completed');
let TriggerFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'TRIGGERED');
if(TriggerFullPDvalue.length != '0'){
//console.log('console triggered value',TriggerFullPDvalue);
for(let FPD of TriggerFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y;
this.TempDataFullPD[TriggedIndexvalue] = y;
}
}
else{
this.TempDataFullPD[TriggedIndexvalue] = 0;
}
let AllocatedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedFullPDvalue.length != '0'){
for(let FPD of AllocatedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y;
this.TempDataFullPD[AllocatedIndexvalue] = y;
}
}
else{
this.TempDataFullPD[AllocatedIndexvalue] = 0;
}
let ScheduledFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledFullPDvalue.length != '0'){
for(let FPD of ScheduledFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y;
this.TempDataFullPD[ScheduledIndexvalue] = y;
}
//let y = +ScheduledFullPDvalue.count;
}
else{
this.TempDataFullPD[ScheduledIndexvalue] = 0;
}
let InProgressFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressFullPDvalue.length != '0'){
for(let FPD of InProgressFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y;
this.TempDataFullPD[InProgressIndexvalue] = y;
}
//let y = +InProgressFullPDvalue.count;
}
else{
this.TempDataFullPD[InProgressIndexvalue] = 0;
}
let CompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedFullPDvalue.length != '0'){
for(let FPD of CompletedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y;
this.TempDataFullPD[CompletedIndexvalue] = y;
}
//let y = +CompletedFullPDvalue.count;
}
else{
this.TempDataFullPD[CompletedIndexvalue] = 0;
}
let QCCompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedFullPDvalue.length != '0'){
for(let FPD of QCCompletedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y;
this.TempDataFullPD[QCCompletedIndexvalue] = y;
}
//let y = +QCCompletedFullPDvalue.count;
}
else{
this.TempDataFullPD[QCCompletedIndexvalue] = 0;
}
let TriggerSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'TRIGGERED');
if(TriggerSmartPDvalue.length != '0'){
for(let FPD of TriggerSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y;
this.TempDataSmartPD[TriggedIndexvalue] = y;
}
}
else{
this.TempDataSmartPD[TriggedIndexvalue] = 0;
}
let AllocatedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedSmartPDvalue.length != '0'){
for(let FPD of AllocatedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y;
this.TempDataSmartPD[AllocatedIndexvalue] = y;
}
}
else{
this.TempDataSmartPD[AllocatedIndexvalue] = 0;
}
let ScheduledSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledSmartPDvalue.length != '0'){
for(let FPD of ScheduledSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y;
this.TempDataSmartPD[ScheduledIndexvalue] = y;
}
//let y = +ScheduledFullPDvalue.count;
}
else{
this.TempDataSmartPD[ScheduledIndexvalue] = 0;
}
let InProgressSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressSmartPDvalue.length != '0'){
for(let FPD of InProgressSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y;
this.TempDataSmartPD[InProgressIndexvalue] = y;
}
//let y = +InProgressFullPDvalue.count;
}
else{
this.TempDataSmartPD[InProgressIndexvalue] = 0;
}
let CompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedSmartPDvalue.length != '0'){
for(let FPD of CompletedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y;
this.TempDataSmartPD[CompletedIndexvalue] = y;
}
//let y = +CompletedFullPDvalue.count;
}
else{
this.TempDataSmartPD[CompletedIndexvalue] = 0;
}
let QCCompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedSmartPDvalue.length != '0'){
for(let FPD of QCCompletedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y;
this.TempDataSmartPD[QCCompletedIndexvalue] = y;
}
//let y = +QCCompletedFullPDvalue.count;
}
else{
this.TempDataSmartPD[QCCompletedIndexvalue] = 0;
}
let TriggerTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'TRIGGERED');
if(TriggerTelePDvalue.length != '0'){
//console.log('console triggered value',TriggerTelePDvalue);
for(let FPD of TriggerTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y;
this.TempDataTelePD[TriggedIndexvalue] = y;
}
}
else{
this.TempDataTelePD[TriggedIndexvalue] = 0;
}
let AllocatedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedTelePDvalue.length != '0'){
for(let FPD of AllocatedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y;
this.TempDataTelePD[AllocatedIndexvalue] = y;
}
}
else{
this.TempDataTelePD[AllocatedIndexvalue] = 0;
}
let ScheduledTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledTelePDvalue.length != '0'){
for(let FPD of ScheduledTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y;
this.TempDataTelePD[ScheduledIndexvalue] = y;
}
//let y = +ScheduledFullPDvalue.count;
}
else{
this.TempDataTelePD[ScheduledIndexvalue] = 0;
}
let InProgressTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressTelePDvalue.length != '0'){
for(let FPD of InProgressTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y;
this.TempDataTelePD[InProgressIndexvalue] = y;
}
//let y = +InProgressFullPDvalue.count;
}
else{
this.TempDataTelePD[InProgressIndexvalue] = 0;
}
let CompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedTelePDvalue.length != '0'){
for(let FPD of CompletedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y;
this.TempDataTelePD[CompletedIndexvalue] = y;
}
//let y = +CompletedFullPDvalue.count;
}
else{
this.TempDataTelePD[CompletedIndexvalue] = 0;
}
let QCCompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedTelePDvalue.length != '0'){
for(let FPD of QCCompletedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y;
this.TempDataTelePD[QCCompletedIndexvalue] = y;
}
//let y = +QCCompletedFullPDvalue.count;
}
else{
this.TempDataTelePD[QCCompletedIndexvalue] = 0;
}
// y: number
//console.log(MonthlyFullPDArr.pd_status);
// for(let FPD of MonthlyFullPDArr){
// if(FPD.pd_status == 'TRIGGERED'){
// console.log('PD Status');
// let Indexvalue = this.doughnutChartLabels.indexOf('Triggered');
// let y = +FPD.count; // y: number
// console.log('Initial',this.TempDataFullPD);
// this.TempDataFullPD[Indexvalue] = y;
// console.log(this.TempDataFullPD);
// }
// else{
// let Indexvalue = this.doughnutChartLabels.indexOf('Triggered');
// this.TempDataFullPD[Indexvalue] = 0;
// }
// // if(contact.pd_status == 'TRIGGERED' && contact.PDTYPE == 'FULL'){
// // let Indexvalue = this.doughnutChartLabels.indexOf('Triggered');
// // var y = +contact.count; // y: number
// // console.log('Initial',this.TempDataFullPD);
// // this.TempDataFullPD[Indexvalue] = y;
// // console.log(this.TempDataFullPD);
// // }
// // else{
// // let Indexvalue = this.doughnutChartLabels.indexOf('Triggered');
// // this.TempDataFullPD[Indexvalue] = 0;
// // }
// if(FPD.pd_status == 'ALLOCATED'){
// let Indexvalue = this.doughnutChartLabels.indexOf('Allocated');
// var y = +FPD.count; // y: number
// // console.log(this.TempDataFullPD);
// this.TempDataFullPD[Indexvalue] = y;
// //console.log('allocated b4',TempDataFullPD);
// }
// else{
// let Indexvalue = this.doughnutChartLabels.indexOf('Allocated');
// this.TempDataFullPD[Indexvalue] = 0;
// }
// if(FPD.pd_status == 'INPROGRESS'){
// let Indexvalue = this.doughnutChartLabels.indexOf('InProgress');
// var y = +FPD.count; // y: number
// this.TempDataFullPD[Indexvalue] = y;
// //console.log('b4',TempDataFullPD);
// }
// else{
// let Indexvalue = this.doughnutChartLabels.indexOf('InProgress');
// this.TempDataFullPD[Indexvalue] = 0;
// }
// if(FPD.pd_status == 'SCHEDULED'){
// let Indexvalue = this.doughnutChartLabels.indexOf('Scheduled');
// var y = +FPD.count; // y: number
// this.TempDataFullPD[Indexvalue] = y;
// //console.log('b4',TempDataFullPD);
// }
// else{
// let Indexvalue = this.doughnutChartLabels.indexOf('Scheduled');
// this.TempDataFullPD[Indexvalue] = 0;
// //console.log('d',TempDataFullPD);
// }
// if(FPD.pd_status == 'COMPLETED'){
// let Indexvalue = this.doughnutChartLabels.indexOf('Completed');
// var y = +FPD.count; // y: number
// this.TempDataFullPD[Indexvalue] = y;
// //console.log('allocated',TempDataFullPD);
// }
// else{
// let Indexvalue = this.doughnutChartLabels.indexOf('Completed');
// this.TempDataFullPD[Indexvalue] = 0;
// }
// //return TempDataFullPD;
// if(FPD.pd_status == 'QC COMPLETED'){
// let Indexvalue = this.doughnutChartLabels.indexOf('QC Completed');
// var y = +FPD.count; // y: number
// this.TempDataFullPD[Indexvalue] = y;
// //console.log('allocated',TempDataFullPD);
// }
// else{
// let Indexvalue = this.doughnutChartLabels.indexOf('QC Completed');
// this.TempDataFullPD[Indexvalue] = 0;
// //console.log('Final Data',TempDataFullPD);
// }
// //console.log('inside',this.TempDataFullPD);
// }
//this.doughnutChartDataForFullPD = [3,4,5,6,7,8];
}
else{
//console.log('Else Condition month');
}
this.doughnutChartDataForFullPD = this.TempDataFullPD;
this.doughnutChartDataForSmartPD = this.TempDataSmartPD;
this.doughnutChartDataForTelePD = this.TempDataTelePD;
console.log('Final full Data Completed',this.doughnutChartDataForFullPD);
console.log('Temp full Data',this.TempDataFullPD);
console.log('Final Smart Data Completed',this.doughnutChartDataForSmartPD);
console.log('Temp Smart Data',this.TempDataSmartPD);
console.log('Final Tele Data Completed',this.doughnutChartDataForTelePD);
console.log('Temp Tele Data',this.TempDataTelePD);
})
}
// setTimeout(() => {
// this.datasets = [{
// data: [12, 19, 3, 5, 2, 3]
// }];
// }, 100);
doughnutChartColors: any[] = [{
backgroundColor: ['#f44336', '#3f51b5', '#ffeb3b', '#4caf50', '#2196f3','#673ab7']
}];
doughnutChartType = 'doughnut';
doughnutChartLabels: string[] = ['Triggered', 'Allocated','Scheduled','InProgress','Completed','QC Completed'];
doughnutOptionsFullPD: any = Object.assign({
elements: {
arc: {
borderWidth: 0.2
}
}
}, this.globalChartOptions);
doughnutOptionsSmartPD: any = Object.assign({
elements: {
arc: {
borderWidth: 0.2
}
}
}, this.globalChartOptions);
doughnutOptionsTelePD: any = Object.assign({
elements: {
arc: {
borderWidth: 0.2
}
}
}, this.globalChartOptions);
chartfunction(){ this.Status = true; }
}

View File

@ -11,6 +11,9 @@ import { NgxDatatableModule } from '@swimlane/ngx-datatable';
import { DashboardComponent } from './dashboard.component';
import { DashboardRoutes } from './dashboard.routing';
/** Dashboard Service */
import { DashboardService } from './dashboard.service';
@NgModule({
imports: [
CommonModule,
@ -27,6 +30,7 @@ import { DashboardRoutes } from './dashboard.routing';
NgxDatatableModule,
FlexLayoutModule
],
providers: [ DashboardService ],
declarations: [ DashboardComponent ]
})

View File

@ -0,0 +1,12 @@
import { TestBed } from '@angular/core/testing';
import { DashboardService } from './dashboard.service';
describe('DashboardService', () => {
beforeEach(() => TestBed.configureTestingModule({}));
it('should be created', () => {
const service: DashboardService = TestBed.get(DashboardService);
expect(service).toBeTruthy();
});
});

View File

@ -0,0 +1,87 @@
/** Common Import Section */
import { Injectable } from '@angular/core';
import { Observable } from 'rxjs';//for Datatables
import { HttpClient } from '@angular/common/http';
import { catchError } from 'rxjs/operators';
import { of } from 'rxjs';
/** Imported Service Files Are., */
import { AwsService } from '../AwsService/aws.service';
/** Environment */
import { environment } from 'environments/environment';
/** Consant Value For Created Date And Updated Date */
const currentdate = new Date().toJSON().slice(0,19).replace('T',' ');
@Injectable()
export class DashboardService {
private apiUrl = environment.apiEndpoint;
constructor(private _http: HttpClient,
private _aws:AwsService) { }
// $route['getDashBoardMaster']
// $route['getDashBoardLenderCity']
// $route['getDashBoardDetailsOfCity']
/**
* TO Get the M Datas using API Call
* 1st argument is "TableName" :string - Table Name
*/
// getAllMasterData(TableName:string): Observable<any> {
// return this._http.post<any>(this.apiUrl+"getListOfMaster", { "master_name":TableName })
// .pipe(
// catchError(this.handleError('role', []))
// )
// }
/**
* TO get PD Datas For Dashboard Screen
*/
getPDDetailForDoughnut(): Observable<any> {
return this._http.get(this.apiUrl+'getDashBoardMaster')
.pipe(
catchError(this.handleError('role', []))
)
}
getLenderDetail(): Observable<any> {
return this._http.get(this.apiUrl+'getDashBoardLenderCity')
.pipe(
catchError(this.handleError('role', []))
)
}
getCityDetail(): Observable<any> {
return this._http.get(this.apiUrl+'getDashBoardDetailsOfCity')
.pipe(
catchError(this.handleError('role', []))
)
}
getAlertDetail(): Observable<any> {
return this._http.get(this.apiUrl+'getDashBoardAlertDetails')
.pipe(
catchError(this.handleError('role', []))
)
}
/**
* TO Handle The Error
*/
private handleError<T>(operation = 'operation', result?: T) {
return (error: any): Observable<T> => {
return of(result as T);
};
}
}

View File

@ -54,9 +54,9 @@ export class AdminLayoutComponent implements OnInit, OnDestroy {
this.currentUser = this.currentUser.records[0];
this.fullName = this.currentUser.user_first_name +' '+this.currentUser.user_last_name;
//console.log(this.currentUser);
if(this.currentUser.fk_entity_id == 1 ){
if(this.currentUser.fk_entity_type_id == 1 ){
this.userDep = "SineEdge";
}else if(this.currentUser.fk_entity_id ==2){
}else if(this.currentUser.fk_entity_type_id ==2){
this.userDep = "Lender";
}else{

View File

@ -1,4 +1,6 @@
<p>Address</p>
<mat-card style="min-height: 550px;">
<mat-card-content>
<p>Address Details</p>
<form class="address" [formGroup]="addressForm">
<mat-form-field>
<input matInput placeholder="Address" formControlName="address">
@ -16,7 +18,7 @@
<mat-option value="Other">Other (PD officer to fill)</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Locality" formControlName="locality">
<mat-option value="CommercialOffice">Commercial (Office type) Area
@ -57,7 +59,7 @@
</mat-form-field>
<mat-card>
<mat-card-header>
<p>Neighbour hood
<p>Neighbourhood
<p>
</mat-card-header>
<div formArrayName="neighbourhood">
@ -86,21 +88,29 @@
<mat-option value="dont_know">Dont Know</mat-option>
</mat-select>
</mat-form-field>
<button type="button" mat-raised-button mat-icon-button *ngIf="i==0"
<button type="button" matTooltip="Add More Neighbour Details" matTooltipPosition="above" mat-raised-button mat-icon-button *ngIf="i==0"
(click)="addNeighbour($event)"
style="float: right;">
<mat-icon>add</mat-icon>
</button>
<button type="button" mat-raised-button mat-icon-button *ngIf="i>0"
(click)="removeNeighbour(i)"
<button type="button" matTooltip="Delete" matTooltipPosition="above" mat-raised-button mat-icon-button *ngIf="i>0"
(click)="removeNeighbour(i)"
style="float: right;">
<mat-icon>close</mat-icon>
<mat-icon>delete</mat-icon>
</button>
</mat-card-content>
</div>
</div>
</mat-card>
<div style="text-align: right;">
<button mat-raised-button mat-icon-button type="submit" matTooltip="Submit" matTooltipPosition="above" (click)="onSubmit()"><mat-icon>save</mat-icon>
</button>
</div>
<div fxLayout="row">
<div fxFlex="60" class="pb-0 text-sm-left">
@ -110,7 +120,13 @@
</mat-form-field>
</div>
</div>
<button mat-raised-button type="submit" class="button" (click)="onSubmit()">Submit
</button>
<div class="row" style="text-align:right;">
<button mat-raised-button mat-icon-button class="mr-1 mb-1" matTooltip="Save" matTooltipPosition="above" type="submit" (click)="onSubmit()"><mat-icon>save</mat-icon></button>
</div>
</form>
<notifier-container></notifier-container>
</mat-card-content>
</mat-card>

View File

@ -1,232 +1,252 @@
<!--<pre> {{ m_group | json}}</pre>-->
<mat-card style="padding: 12px;">
<form *ngIf="apiLoadFinish && loadDetails" [formGroup]="_assetsQuesFrom" (submit)="onSubmit()" novalidate>
<div fxLayout="row" fxLayoutAlign="start none">
<div formArrayName="assets_details" fxFill>
<div *ngFor="let sup of _assetsQuesFrom.controls.assets_details['controls']; let i=index">
<mat-card>
<div [formGroupName]="i">
<div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none">
<div>
<mat-form-field>
<mat-select (selectionChange)="selectedAssetsType($event, i)" placeholder="Select Assets Type" formControlName="assets_mode">
<mat-option *ngFor="let asset of m_assets_type" [value]="asset.id">{{ asset.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
<!--Desction Dynamic details: START-->
<div formArrayName="details" class="example-full-width">
<!--Property-->
<div *ngIf="sup.get('assets_mode').value == 1 ">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field>
<mat-select placeholder="Select Property" formControlName="property_type">
<mat-option *ngFor="let prop of m_propertyType" [value]="prop.id">{{ prop.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--Four Wheeler-->
<div *ngIf="sup.get('assets_mode').value == 2">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Manufacturer, Model" formControlName="manufacturer_model">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--Two Wheeler-->
<div *ngIf="sup.get('assets_mode').value == 3">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Manufacturer, Model" formControlName="manufacturer_model">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--jwell details-->
<div *ngIf="sup.get('assets_mode').value == 4">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Description" formControlName="jwell_description">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--Consumer Durable-->
<div *ngIf="sup.get('assets_mode').value == 5">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Description" formControlName="consumer_durable_description">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--Insurance-->
<div *ngIf="sup.get('assets_mode').value == 6">
<div fxFill>
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-form-field>
<mat-select placeholder="Type" formControlName="insurance_type">
<mat-option *ngFor="let ins_type of m_insuranceType" [value]="ins_type.id">{{ ins_type.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Premium Paid" formControlName="premium_paid">
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field>
<mat-select placeholder="Frequency" formControlName="frequency_mode">
<mat-option *ngFor="let freqn of m_freqOfPurchase" [value]="freqn.id">{{ freqn.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Sum Assured" formControlName="sum_assured">
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Members Covered" formControlName="members_coverd">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
</div>
<!--Investments-->
<div *ngIf="sup.get('assets_mode').value == 7">
<div>
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-form-field>
<mat-select placeholder="Type" formControlName="investments_type">
<mat-option *ngFor="let ins_type of m_investmentType" [value]="ins_type.id">{{ ins_type.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Amount of Investment" formControlName="amount_of_invest">
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Bank Name" formControlName="bank_name">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
</div>
<!--other assets-->
<div *ngIf="sup.get('assets_mode').value == 8">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Description of the Assets" formControlName="any_other_assets">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
</div>
<!--Desction Dynamic details : END -->
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Approximate Market Value" formControlName="approximate_market_value">
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Name of the Owner" formControlName="name_of_the_owner">
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Year of Purchase and Approximate month" formControlName="year_of_purchase">
</mat-form-field>
</div>
</div>
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-checkbox formControlName="emi" [ngModel]="sup.get('emi').value === '1' ? true : false" (ngModelChange)="sup.get('emi').value = $event ? '1' : '0'">EMI</mat-checkbox>
</div>
<div *ngIf="sup.get('emi').value === '1'" fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="EMI Paid" formControlName="emi_paid">
</mat-form-field>
</div>
<div *ngIf="sup.get('emi').value === '1'" fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Elapsed Tenure" formControlName="elapsed_tenure">
</mat-form-field>
</div>
<div *ngIf="sup.get('emi').value === '1'" fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Balance Tenure" formControlName="balance_tenure">
</mat-form-field>
</div>
</div>
<div fxLayout="row" fxLayoutGap="12px" fxLayoutAlign="start none">
<div fxFlex="20">
<span *ngIf="_assetsQuesFrom.controls.assets_details.controls.length > 1" (click)="removeLanguage(i)">
<button mat-button mat-icon-button class="mr-1 mb-1 hover-icon" matTooltip="Delete" matTooltipPosition="above"><mat-icon>delete</mat-icon></button>
</span>
</div>
<mat-card style="min-height: 550px;" >
<mat-card-content>
<p>Assets Details</p>
<form *ngIf="apiLoadFinish && loadDetails" [formGroup]="_assetsQuesFrom" (submit)="onSubmit()" novalidate>
<div fxLayout="row" fxLayoutAlign="start none">
<div formArrayName="assets_details" fxFill>
<div *ngFor="let sup of _assetsQuesFrom.controls.assets_details['controls']; let i=index">
<mat-card>
<mat-card-content>
<div [formGroupName]="i">
<div fxLayout="row wrap" fxLayoutGap="5px" fxLayoutAlign="start none">
<div>
<mat-form-field>
<mat-select (selectionChange)="selectedAssetsType($event, i)" placeholder="Assets Type" formControlName="assets_mode">
<mat-option *ngFor="let asset of m_assets_type" [value]="asset.id">{{ asset.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
<!--Desction Dynamic details: START-->
<div formArrayName="details" class="example-full-width">
<!--Property-->
<div *ngIf="sup.get('assets_mode').value == 1 ">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field>
<mat-select placeholder="Select Property" formControlName="property_type">
<mat-option *ngFor="let prop of m_propertyType" [value]="prop.id">{{ prop.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--Four Wheeler-->
<div *ngIf="sup.get('assets_mode').value == 2">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Manufacturer, Model" formControlName="manufacturer_model">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--Two Wheeler-->
<div *ngIf="sup.get('assets_mode').value == 3">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Manufacturer, Model" formControlName="manufacturer_model">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--jwell details
<div *ngIf="sup.get('assets_mode').value == 4">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Description" formControlName="jwell_description">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>-->
<!--Consumer Durable-->
<div *ngIf="sup.get('assets_mode').value == 5">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Description" formControlName="consumer_durable_description">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
<!--Insurance-->
<div *ngIf="sup.get('assets_mode').value == 6">
<div fxFill>
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-form-field>
<mat-select placeholder="Type" formControlName="insurance_type">
<mat-option *ngFor="let ins_type of m_insuranceType" [value]="ins_type.id">{{ ins_type.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Premium Paid" formControlName="premium_paid">
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field>
<mat-select placeholder="Frequency" formControlName="frequency_mode">
<mat-option *ngFor="let freqn of m_freqOfPurchase" [value]="freqn.id">{{ freqn.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
</div>
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Sum Assured" formControlName="sum_assured">
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Members Covered" formControlName="members_coverd">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
</div>
<!--Investments-->
<div *ngIf="sup.get('assets_mode').value == 7">
<div>
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-form-field>
<mat-select placeholder="Type" formControlName="investments_type">
<mat-option *ngFor="let ins_type of m_investmentType" [value]="ins_type.id">{{ ins_type.name }}</mat-option>
</mat-select>
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Amount of Investment" formControlName="amount_of_invest">
</mat-form-field>
</div>
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Bank Name" formControlName="bank_name">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
</div>
<!--other assets-->
<div *ngIf="sup.get('assets_mode').value == 8">
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngFor="let detail of sup['controls'].details['controls']; let s = index">
<div [formGroupName]="s">
<div>
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Description of the Assets" formControlName="any_other_assets">
</mat-form-field>
</div>
</div>
</div>
</div>
</div>
</div>
<!--Desction Dynamic details : END -->
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div *ngIf="sup.get('assets_mode').value == 1 || sup.get('assets_mode').value == 4">
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Approximate Market Value" formControlName="approximate_market_value">
</mat-form-field>
</div>
</div>
<div *ngIf="sup.get('assets_mode').value == 1 || sup.get('assets_mode').value == 2 || sup.get('assets_mode').value == 3 || sup.get('assets_mode').value == 4 || sup.get('assets_mode').value == 5">
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Name of the Owner" formControlName="name_of_the_owner">
</mat-form-field>
</div>
</div>
<div *ngIf="sup.get('assets_mode').value == 1 || sup.get('assets_mode').value == 2 || sup.get('assets_mode').value == 3 || sup.get('assets_mode').value == 5">
<div fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Year and month of purchase" formControlName="year_of_purchase">
</mat-form-field>
</div>
</div>
</div>
<div *ngIf="sup.get('assets_mode').value == 1 || sup.get('assets_mode').value == 2 || sup.get('assets_mode').value == 3 || sup.get('assets_mode').value == 4 || sup.get('assets_mode').value == 5">
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33">
<mat-checkbox formControlName="emi" [ngModel]="sup.get('emi').value === '1' ? true : false" (ngModelChange)="sup.get('emi').value = $event ? '1' : '0'">Is there a loan?</mat-checkbox>
</div>
<div *ngIf="sup.get('emi').value === '1'" fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="EMI Paid" formControlName="emi_paid">
</mat-form-field>
</div>
<div *ngIf="sup.get('emi').value === '1'" fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Elapsed Tenure in months" formControlName="elapsed_tenure">
</mat-form-field>
</div>
<div *ngIf="sup.get('emi').value === '1'" fxFlex="33">
<mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Balance Tenure in months" formControlName="balance_tenure">
</mat-form-field>
</div>
</div>
</div>
<div fxLayout="row" fxLayoutGap="12px" fxLayoutAlign="start none">
<div fxFlex="20">
<span *ngIf="_assetsQuesFrom.controls.assets_details.controls.length > 1" (click)="removeLanguage(i)">
<button mat-button mat-icon-button class="mr-1 mb-1 hover-icon" matTooltip="Delete" matTooltipPosition="above"><mat-icon>delete</mat-icon></button>
</span>
</div>
</div>
</div>
</mat-card-content>
</mat-card>
</div>
<button mat-raised-button mat-icon-button mat-button color="primary" matTooltip="Add More Answer" matTooltipPosition="above"
class="mr-1 mb-1 hover-icon" (click)="addSupplierDetails($event); false"><mat-icon>add</mat-icon></button>
</div>
</mat-card>
</div>
<button mat-raised-button mat-icon-button mat-button color="primary" matTooltip="Add More Answer" matTooltipPosition="above"
class="mr-1 mb-1 hover-icon" (click)="addSupplierDetails($event); false"><mat-icon>add</mat-icon></button>
</div>
</div>
<!--<div fxLayout="row">
</div>
<!--<div fxLayout="row">
<div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label>
@ -234,9 +254,13 @@
</mat-form-field>
</div>
</div>-->
<div class="row" style="text-align:right;">
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" matTooltip="Reset" matTooltipPosition="above" (click)="onReset(); false"><mat-icon>settings_backup_restore</mat-icon></button>
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" matTooltip="Save" matTooltipPosition="above" type="submit"><mat-icon>save</mat-icon></button>
</div>
</form>
<div class="row" style="text-align:right;">
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" matTooltip="Reset" matTooltipPosition="above" (click)="onReset(); false"><mat-icon>settings_backup_restore</mat-icon></button>
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" matTooltip="Save" matTooltipPosition="above" type="submit"><mat-icon>save</mat-icon></button>
</div>
</form>
</mat-card-content>
</mat-card>

View File

@ -1,74 +1,85 @@
<form [formGroup]="bankingForm" class="bankForm">
<div formArrayName="itemRows">
<mat-accordion
*ngFor="let itemrow of bankingForm.controls.itemRows['controls']; let i=index"
[formGroupName]="i">
<mat-expansion-panel class="banlFields" [expanded]="step == i">
<mat-expansion-panel-header>
<mat-panel-title>
<h4>{{i+1}} Banking details<span *ngIf="i==0" style="float: right;">
<mat-icon (click)="addBankdetails(i)">add</mat-icon>
</span>
<span *ngIf="i > 0">
<mat-icon (click)="deleteBankdetails(i)">delete</mat-icon>
</span></h4>
</mat-panel-title>
</mat-expansion-panel-header>
<mat-form-field>
<input matInput placeholder="Applicant Name"
formControlName="applicant_name">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Bank Name" formControlName="bank_name">
</mat-form-field>
<mat-card style="min-height: 550px;">
<mat-card-content>
<p>Banking Information</p>
<form [formGroup]="bankingForm" class="bankForm">
<div formArrayName="itemRows">
<mat-accordion
*ngFor="let itemrow of bankingForm.controls.itemRows['controls']; let i=index"
[formGroupName]="i">
<mat-expansion-panel class="banlFields" [expanded]="step == i">
<mat-expansion-panel-header>
<mat-panel-title>
<p>{{i+1}} , Banking Details
</p>
</mat-panel-title>
</mat-expansion-panel-header>
<mat-form-field>
<input matInput placeholder="Applicant Name"
formControlName="applicant_name">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Bank Name" formControlName="bank_name">
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Account Type"
formControlName="account_type">
<mat-option value="Savings">Savings</mat-option>
<mat-option value="Current">Current</mat-option>
<mat-option value="OD">OD</mat-option>
<mat-option value="CC">CC</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Salary Credited in this account"
formControlName="salary">
<mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option>
<mat-option value="NA">NA</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Limit in case of OD / CC account"
formControlName="limit">
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Is this the main business account"
formControlName="is_main">
<mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Approximate Vintage"
formControlName="vintage">
</mat-form-field>
<button *ngIf="i > 0" mat-raised-button mat-icon-button matTooltip="Delete" matTooltipPosition="above" (click)="deleteBankdetails(i)">
<mat-icon >delete</mat-icon>
</button>
</mat-expansion-panel>
</mat-accordion>
</div>
<div fxLayout="row" class="pt-1">
<div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label>
<textarea matInput placeholder="Remarks" formControlName="banking_form_remark"></textarea>
</mat-form-field>
</div>
</div>
<div style="text-align: right;" class="pt-1">
<button class="mr-1 mb-1" color="primary" mat-raised-button mat-icon-button matTooltip="Add More Banking Details" matTooltipPosition="above" (click)="addBankdetails(i)">
<mat-icon >add</mat-icon>
</button>
<button class="mr-1 mb-1" type="submit" mat-raised-button mat-icon-button type="submit" matTooltip="Submit" matTooltipPosition="above" (click)="bankSubmit()"><mat-icon>save</mat-icon>
</button>
</div>
</form>
<notifier-container></notifier-container>
</mat-card-content>
</mat-card>
<mat-form-field>
<mat-select placeholder="Account Type"
formControlName="account_type">
<mat-option value="Savings">Savings</mat-option>
<mat-option value="Current">Current</mat-option>
<mat-option value="OD">OD</mat-option>
<mat-option value="CC">CC</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Salary Credited in this account"
formControlName="salary">
<mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option>
<mat-option value="NA">NA</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Limit in case of OD / CC account"
formControlName="limit">
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Is this the main business account"
formControlName="is_main">
<mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Approximate Vintage"
formControlName="vintage">
</mat-form-field>
</mat-expansion-panel>
</mat-accordion>
</div>
<div fxLayout="row">
<div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label>
<textarea matInput placeholder="Remarks" formControlName="banking_form_remark"></textarea>
</mat-form-field>
</div>
</div>
<button mat-raised-button class="button" (click)="bankSubmit()">Submit
</button>
</form>
<notifier-container></notifier-container>

View File

@ -1,5 +1,5 @@
.banlFields mat-form-field {
width: 100%;
//width: 100%;
margin: 0 2%;
}
.bankForm .button {

View File

@ -1,49 +1,58 @@
<p>Current Loan Details</p>
<form [formGroup]="currentLoanForm" class="address">
<mat-form-field>
<mat-select placeholder="Do you have any other existing Loan"
formControlName="existing_loan">
<mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option>
</mat-select>
</mat-form-field>
<mat-card *ngIf="currentLoanForm.controls.existing_loan.value == 'Yes'">
<mat-card-header>
<p>Loan Details<p>
</mat-card-header>
<div formArrayName="loan_details">
<div *ngFor="let details of currentLoanForm.get('loan_details').controls; let i=index"
[formGroupName]="i">
<mat-card-content class="matcard">
<mat-form-field>
<input matInput placeholder="Loan Amount" formControlName="loan_amount">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="EMI" formControlName="emi">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Loan Type" formControlName="loan_type">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Lender" formControlName="lender">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Original Tenure" formControlName="original_tenure">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Current Balance Tenure" formControlName="current_balance_tenure">
</mat-form-field>
<button type="button" mat-raised-button mat-icon-button (click)="addLoanDetails()"
*ngIf="i==0">
<mat-icon>add</mat-icon>
</button>
<button type="button" mat-raised-button mat-icon-button (click)="deleteLoanDetails(i)"
*ngIf="i>0">
<mat-icon>close</mat-icon>
</button>
</mat-card-content>
</div>
</div>
</mat-card>
<button mat-raised-button type="submit" class="button" (click)="submitCurrentloan()"></button>
</form>
<mat-card style="min-height: 550px;">
<mat-card-content>
<p>Current Loan Details</p>
<form [formGroup]="currentLoanForm" class="address">
<mat-form-field>
<mat-select placeholder="Do you have any other existing loan"
formControlName="existing_loan">
<mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option>
</mat-select>
</mat-form-field>
<mat-card *ngIf="currentLoanForm.controls.existing_loan.value == 'Yes'">
<mat-card-header>
<p>Loan Details<p>
</mat-card-header>
<div formArrayName="loan_details">
<div *ngFor="let details of currentLoanForm.get('loan_details').controls; let i=index"
[formGroupName]="i">
<mat-card-content class="matcard">
<mat-form-field>
<input matInput placeholder="Loan Amount" formControlName="loan_amount">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="EMI" formControlName="emi">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Loan Type" formControlName="loan_type">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Lender" formControlName="lender">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Original Tenure" formControlName="original_tenure">
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Current Balance Tenure" formControlName="current_balance_tenure">
</mat-form-field>
<button type="button" mat-raised-button mat-icon-button matTooltip="Add More Loan Details" matTooltipPosition="above" (click)="addLoanDetails()"
*ngIf="i==0">
<mat-icon>add</mat-icon>
</button>
<button type="button" mat-raised-button mat-icon-button matTooltip="Delete" matTooltipPosition="above" (click)="deleteLoanDetails(i)"
*ngIf="i>0">
<mat-icon>delete</mat-icon>
</button>
</mat-card-content>
</div>
</div>
</mat-card>
<div style="text-align: right;">
<button type="submit" mat-raised-button mat-icon-button type="submit" matTooltip="Submit" matTooltipPosition="above" (click)="submitCurrentloan()"><mat-icon>save</mat-icon>
</button>
</div>
</form>
</mat-card-content>
</mat-card>

View File

@ -1,4 +1,6 @@
<p>Family</p>
<mat-card style="min-height: 550px;">
<mat-card-content>
<p>Family Details</p>
<form class="address" [formGroup]="familyForm">
<mat-form-field>
<mat-select placeholder="Person Met" formControlName="person">
@ -52,7 +54,7 @@
</button>
<button type="button" mat-raised-button mat-icon-button
(click)="deleteEarningMembers(i)" *ngIf="i>0">
<mat-icon>close</mat-icon>
<mat-icon>delete</mat-icon>
</button>
</mat-card-content>
</div>
@ -94,7 +96,7 @@
</button>
<button type="button" mat-raised-button mat-icon-button (click)="deleteMembers(i)"
*ngIf="i>0">
<mat-icon>close</mat-icon>
<mat-icon>delete</mat-icon>
</button>
</mat-card-content>
</div>
@ -102,8 +104,7 @@
</mat-card>
<mat-card>
<mat-card-header>
<p>Residence
<p>
<p>Residence <p>
</mat-card-header>
<mat-card-content class="matcard">
<mat-form-field>
@ -125,19 +126,26 @@
<input matInput placeholder="Please specify" formControlName="ownershipOther">
</mat-form-field>
<mat-form-field *ngIf="ownership.value =='Rented'">
<input matInput placeholder="what rent"
<input matInput placeholder="Rent Amount"
formControlName="rent">
</mat-form-field>
</mat-card-content>
</mat-card>
<div fxLayout="row">
<div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label>
<textarea matInput placeholder="Remarks" formControlName="family_details_form_remark"></textarea>
</mat-form-field>
</div>
<div fxLayout="row">
<div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label>
<textarea matInput placeholder="Remarks" formControlName="family_details_form_remark"></textarea>
</mat-form-field>
</div>
</div>
<div style="text-align: right;">
<button type="submit" mat-raised-button mat-icon-button type="submit" matTooltip="Submit" matTooltipPosition="above" (click)="submitFamily()"><mat-icon>save</mat-icon>
</button>
</div>
<button mat-raised-button class="button" (click)="submitFamily()">Submit</button>
</form>
</form>
<notifier-container></notifier-container>
</mat-card-content>
</mat-card>

View File

@ -43,7 +43,8 @@ export class FamilyDetailsComponent implements OnInit {
public ownershipOther: AbstractControl;
public rent: AbstractControl;
filteredStates: any = [
'Co-Applicant 1 to x',
'Main Applicant',
'Co-Applicant ',
'Accountant',
'Manager',
'Relative of the applicant',

View File

@ -1,47 +1,56 @@
<form [formGroup]="otherIncomeForm" class="address">
<mat-form-field>
<mat-select placeholder="Other Income"
formControlName="other_income">
<mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option>
</mat-select>
</mat-form-field>
<mat-card *ngIf="otherIncomeForm.controls.other_income.value == 'Yes'">
<mat-card-header>
<p>Loan Details<p>
</mat-card-header>
<div formArrayName="income_details">
<div *ngFor="let details of otherIncomeForm.get('income_details').controls; let i=index"
[formGroupName]="i">
<mat-card-content class="matcard">
<mat-card style="min-height: 550px;">
<mat-card-content>
<p>Other Income Details</p>
<form [formGroup]="otherIncomeForm" class="address">
<mat-form-field>
<mat-select placeholder="Source"
formControlName="source">
<mat-option value="rental_income">Rental Income</mat-option>
<mat-option value="interest_income">Interest Income</mat-option>
<mat-option value="agricultural_income">Agricultural Income</mat-option>
<mat-option value="dividend_income">Dividend Income and Others</mat-option>
<mat-select placeholder="Other Income"
formControlName="other_income">
<mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Amount" formControlName="amount">
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Frequency" formControlName="frequency">
<mat-option value="{{frq.frequency_id}}" *ngFor="let frq of frequencyData">{{frq.name}}</mat-option>
</mat-select>
</mat-form-field>
<button type="button" mat-raised-button mat-icon-button (click)="addIncomeDetails()"
*ngIf="i==0">
<mat-icon>add</mat-icon>
</button>
<button type="button" mat-raised-button mat-icon-button (click)="deleteIncomeDetails(i)"
*ngIf="i>0">
<mat-icon>close</mat-icon>
</button>
</mat-card-content>
</div>
</div>
</mat-card>
<button mat-raised-button type="submit" class="button" (click)="submitCurrentDetails()"></button>
</form>
<mat-card *ngIf="otherIncomeForm.controls.other_income.value == 'Yes'">
<mat-card-header>
<p>Income Details<p>
</mat-card-header>
<div formArrayName="income_details">
<div *ngFor="let details of otherIncomeForm.get('income_details').controls; let i=index"
[formGroupName]="i">
<mat-card-content class="matcard">
<mat-form-field>
<mat-select placeholder="Source"
formControlName="source">
<mat-option value="rental_income">Rental Income</mat-option>
<mat-option value="interest_income">Interest Income</mat-option>
<mat-option value="agricultural_income">Agricultural Income</mat-option>
<mat-option value="dividend_income">Dividend Income</mat-option>
</mat-select>
</mat-form-field>
<mat-form-field>
<input matInput placeholder="Amount" formControlName="amount">
</mat-form-field>
<mat-form-field>
<mat-select placeholder="Frequency" formControlName="frequency">
<mat-option value="{{frq.frequency_id}}" *ngFor="let frq of frequencyData">{{frq.name}}</mat-option>
</mat-select>
</mat-form-field>
<button type="button" matTooltip="Add More Income Details" matTooltipPosition="above" mat-raised-button mat-icon-button (click)="addIncomeDetails()"
*ngIf="i==0">
<mat-icon>add</mat-icon>
</button>
<button type="button" matTooltip="Delete" matTooltipPosition="above" mat-raised-button mat-icon-button (click)="deleteIncomeDetails(i)"
*ngIf="i>0">
<mat-icon>delete</mat-icon>
</button>
</mat-card-content>
</div>
</div>
</mat-card>
<div style="text-align: right;">
<button type="submit" mat-raised-button mat-icon-button type="submit" matTooltip="Submit" matTooltipPosition="above" (click)="submitCurrentDetails()"><mat-icon>save</mat-icon>
</button>
</div>
</form>
</mat-card-content>
</mat-card>

View File

@ -72,7 +72,7 @@
<mat-form-field style="width: 100%">
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
<input matInput placeholder="Entity" formControlName="entity_ans" type="text" required>
<input matInput placeholder="Entity" formControlName="entity_ans" type="text" required>
</mat-form-field>
<mat-form-field style="width: 100%">
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->