merge:kms
This commit is contained in:
parent
d38de2243e
commit
0a8685f13d
28
ng6-seed/package-lock.json
generated
28
ng6-seed/package-lock.json
generated
@ -4294,12 +4294,14 @@
|
||||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
@ -4314,17 +4316,20 @@
|
||||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
@ -4441,7 +4446,8 @@
|
||||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
@ -4453,6 +4459,7 @@
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
@ -4467,6 +4474,7 @@
|
||||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
@ -4474,12 +4482,14 @@
|
||||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.2.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.1",
|
||||
"yallist": "^3.0.0"
|
||||
@ -4498,6 +4508,7 @@
|
||||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
@ -4578,7 +4589,8 @@
|
||||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
@ -4590,6 +4602,7 @@
|
||||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
@ -4711,6 +4724,7 @@
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
|
||||
@ -1,108 +1,101 @@
|
||||
<div class="pad-wrap">
|
||||
<div class="pad-wrap">
|
||||
<div fxFlex.gt-sm="100" fxFlex.gt-xs="100" fxFlex="100">
|
||||
<mat-card style="min-height: 110%;">
|
||||
<mat-card-title>
|
||||
<div fxFlex.gt-sm="25" fxFlex="100">
|
||||
{{dashboardTitle}}
|
||||
|
||||
<!-- doughnut -->
|
||||
<div fxFlex.gt-sm="100" fxFlex.gt-xs="100" fxFlex="100">
|
||||
<mat-card>
|
||||
<mat-card-title>
|
||||
<div fxFlex.gt-sm="25" fxFlex="100">
|
||||
{{dashboardTitle}}
|
||||
</div>
|
||||
<div fxFlex.gt-sm="25" fxFlex="100">
|
||||
<ngx-mat-drp (selectedDateRangeChanged)="updateRange($event)" (change)="onChange($event,'One')" [options]="options" #dateRangePicker></ngx-mat-drp>
|
||||
|
||||
</div>
|
||||
<div fxFlex.gt-sm="25" fxFlex="100">
|
||||
<ngx-mat-drp (selectedDateRangeChanged)="updateRange($event)" (change)="onChange($event,'One')" [options]="options" #dateRangePicker></ngx-mat-drp>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="25" fxFlex="100">
|
||||
<mat-form-field class="example-full-width">
|
||||
<mat-select placeholder="City" [formControl]="myControl" multiple>
|
||||
<mat-select-trigger style="color:#fff;">
|
||||
{{myControl.value != null && myControl.value != '' ? myControl.value[0].name : ''}}
|
||||
<span *ngIf="myControl.value?.length > 1" >
|
||||
(+{{myControl.value.length - 1}} {{myControl.value?.length === 2 ? 'other' : 'others'}})
|
||||
</span>
|
||||
</mat-select-trigger>
|
||||
<mat-option *ngFor="let cd of cityData" (onSelectionChange)="onChange($event,2)" [value]="cd">{{ cd.name }} / {{cd.state_name}} </mat-option>
|
||||
</mat-select>
|
||||
|
||||
</div>
|
||||
<div fxFlex.gt-sm="25" fxFlex="100">
|
||||
<mat-form-field class="example-full-width">
|
||||
<mat-select placeholder="City" [formControl]="myControl" multiple>
|
||||
<mat-select-trigger style="color:#fff;">
|
||||
{{myControl.value ? myControl.value[0].name : ''}}
|
||||
<span *ngIf="myControl.value?.length > 1" >
|
||||
(+{{myControl.value.length - 1}} {{myControl.value?.length === 2 ? 'other' : 'others'}})
|
||||
</span>
|
||||
</mat-select-trigger>
|
||||
<mat-option *ngFor="let cd of cityData" (onSelectionChange)="onChange($event,2)" [value]="cd">{{ cd.name }} / {{cd.state_name}} </mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="25" fxFlex="100">
|
||||
|
||||
</div>
|
||||
<div fxFlex.gt-sm="25" fxFlex="100">
|
||||
<mat-form-field class="example-full-width">
|
||||
<mat-select placeholder="Lender" [formControl]="myControl2" multiple>
|
||||
<mat-select-trigger style="color:#fff;">
|
||||
{{myControl2.value != null && myControl2.value != '' ? myControl2.value[0].short_name : ''}}
|
||||
<span *ngIf="myControl2.value?.length > 1" >
|
||||
(+{{myControl2.value.length - 1}} {{myControl2.value?.length === 2 ? 'other' : 'others'}})
|
||||
</span>
|
||||
</mat-select-trigger>
|
||||
<!-- <mat-option #allSelected (click)="toggleAllSelection()" [value]="0">All</mat-option> -->
|
||||
<mat-option *ngFor="let ld of lenderData" (onSelectionChange)="onChange($event,3)" [value]="ld">{{ ld.full_name }} ({{ ld.short_name }})</mat-option>
|
||||
</mat-select>
|
||||
|
||||
<mat-form-field class="example-full-width">
|
||||
<mat-select placeholder="Lender" [formControl]="myControl2" multiple>
|
||||
<mat-select-trigger style="color:#fff;">
|
||||
{{myControl2.value ? myControl2.value[0].short_name : ''}}
|
||||
<span *ngIf="myControl2.value?.length > 1" >
|
||||
(+{{myControl2.value.length - 1}} {{myControl2.value?.length === 2 ? 'other' : 'others'}})
|
||||
</span>
|
||||
</mat-select-trigger>
|
||||
<!-- <mat-option #allSelected (click)="toggleAllSelection()" [value]="0">All</mat-option> -->
|
||||
<mat-option *ngFor="let ld of lenderData" (onSelectionChange)="onChange($event,3)" [value]="ld">{{ ld.full_name }} ({{ ld.short_name }})</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</mat-card-title>
|
||||
</mat-card-title>
|
||||
<!-- <pre> Full - {{doughnutChartDataForFullPD}} Smart -{{doughnutChartDataForSmartPD}} TELE -{{doughnutChartDataForTelePD}} </pre> -->
|
||||
<mat-card-content>
|
||||
<div fxLayout="row" style="min-height:280px;">
|
||||
<div fxFlex.gt-sm="30" fxFlex="100" >
|
||||
<canvas baseChart class="chart" id="FullCanvas" name="FullCanvas"
|
||||
height="280px" width="280px"
|
||||
[data]="doughnutChartDataForFullPD"
|
||||
[labels]="doughnutChartLabels"
|
||||
[options]="doughnutOptions"
|
||||
[colors]="doughnutChartColors"
|
||||
[legend]="false"
|
||||
[chartType]="doughnutChartType"></canvas>
|
||||
<div *ngIf="total1 != 0" class="donut-inner"><span>Full - {{total1}}</span></div>
|
||||
</div>
|
||||
|
||||
<mat-card-content>
|
||||
<div fxLayout="row">
|
||||
<div fxFlex.gt-sm="30" fxFlex="100">
|
||||
<canvas baseChart class="chart"
|
||||
height="280px" width="280px"
|
||||
[data]="doughnutChartDataForFullPD"
|
||||
[labels]="doughnutChartLabels"
|
||||
[options]="doughnutOptions"
|
||||
[colors]="doughnutChartColors"
|
||||
[legend]="false"
|
||||
[chartType]="doughnutChartType"></canvas>
|
||||
<div *ngIf="total1 != 0" class="donut-inner"><span>Full - {{total1}}</span></div>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="5" fxFlex="100">
|
||||
</div>
|
||||
<div fxFlex.gt-sm="30" fxFlex="100">
|
||||
<canvas baseChart class="chart"
|
||||
height="280px" width="280px"
|
||||
[data]="doughnutChartDataForSmartPD"
|
||||
[labels]="doughnutChartLabels"
|
||||
[options]="doughnutOptions"
|
||||
[colors]="doughnutChartColors"
|
||||
[legend]="false"
|
||||
[chartType]="doughnutChartType"></canvas>
|
||||
<div *ngIf="total2 != 0" class="donut-inner"><span>Smart - {{total2}}</span></div>
|
||||
</div>
|
||||
<div fxFlex.gt-sm="5" fxFlex="100">
|
||||
</div>
|
||||
<div fxFlex.gt-sm="30" fxFlex="100">
|
||||
<canvas baseChart class="chart"
|
||||
height="280px" width="280px"
|
||||
[data]="doughnutChartDataForTelePD"
|
||||
[labels]="doughnutChartLabels"
|
||||
[options]="doughnutOptions"
|
||||
[colors]="doughnutChartColors"
|
||||
[legend]="false"
|
||||
[chartType]="doughnutChartType"></canvas>
|
||||
<div *ngIf="total3 != 0" class="donut-inner"><span>Tele - {{total3}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div fxLayout="row">
|
||||
<div fxFlex.gt-sm="100" fxFlex="100" >
|
||||
<br><br><br><br><br><br>
|
||||
|
||||
<ul class="lengend-list">
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#c1c1c1"> </span> Draft</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#f44336"> </span> Triggered</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#ffa500"> </span> Allocated</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#ffeb3b"> </span> Scheduled</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#3f51b5"> </span> InProgress</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#00ff00"> </span> Completed</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#4caf50"> </span> QC Completed</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</div>
|
||||
<div fxFlexOffset.gt-sm="5" fxFlex.gt-sm="30" fxFlex="100">
|
||||
<canvas baseChart class="chart" id="SmartCanvas" name="SmartCanvas"
|
||||
height="280px" width="280px"
|
||||
[data]="doughnutChartDataForSmartPD"
|
||||
[labels]="doughnutChartLabels"
|
||||
[options]="doughnutOptions"
|
||||
[colors]="doughnutChartColors"
|
||||
[legend]="false"
|
||||
[chartType]="doughnutChartType"></canvas>
|
||||
<div *ngIf="total2 != 0" class="donut-inner"><span>Smart - {{total2}}</span></div>
|
||||
</div>
|
||||
<div fxFlexOffset.gt-sm="5" fxFlex.gt-sm="30" fxFlex="100">
|
||||
<canvas baseChart class="chart" id="TeleCanvas" name="TeleCanvas"
|
||||
height="280px" width="280px"
|
||||
[data]="doughnutChartDataForTelePD"
|
||||
[labels]="doughnutChartLabels"
|
||||
[options]="doughnutOptions"
|
||||
[colors]="doughnutChartColors"
|
||||
[legend]="false"
|
||||
[chartType]="doughnutChartType"></canvas>
|
||||
<div *ngIf="total3 != 0" class="donut-inner"><span>Tele - {{total3}}</span></div>
|
||||
</div>
|
||||
</div>
|
||||
<div fxLayout="row" class="pt-3">
|
||||
<div fxFlex.gt-sm="100" fxFlex="100" style="text-align:center">
|
||||
<ul class="lengend-list">
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#c1c1c1"> </span> Draft</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#f44336"> </span> Triggered</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#ffa500"> </span> Allocated</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#ffeb3b"> </span> Scheduled</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#3f51b5"> </span> InProgress</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#00ff00"> </span> Completed</li>
|
||||
<li class="lengend-element"><span class="oval" style="background-color:#4caf50"> </span> QC Completed</li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
@ -5,34 +5,17 @@ $p: 12px;
|
||||
mat-card-title{
|
||||
background-color:#E00201 !important;
|
||||
color:#fff;
|
||||
//padding-bottom: 1rem;
|
||||
//margin-bottom: 0px;
|
||||
}
|
||||
.mat-input-wrapper {
|
||||
background: #fff;
|
||||
}
|
||||
// .example-form {
|
||||
// min-width: 150px;
|
||||
// max-width: 500px;
|
||||
// width: 95%;
|
||||
// }
|
||||
|
||||
li
|
||||
{
|
||||
display:block;
|
||||
float:left;
|
||||
display:inline-block;
|
||||
//float:left;
|
||||
}
|
||||
|
||||
//::ng-deep {
|
||||
// .mat-form-field-appearance-outline .mat-form-field-outline {
|
||||
// color: white;
|
||||
//}
|
||||
//mat-form-field {
|
||||
// .mat-hint, input, ::placeholder, .mat-form-field-label {
|
||||
// color: white;
|
||||
//}
|
||||
//}
|
||||
//}
|
||||
|
||||
.example-full-width {
|
||||
width: 95%;
|
||||
}
|
||||
@ -47,25 +30,23 @@ li
|
||||
color: #fff;
|
||||
}
|
||||
|
||||
.lengend-list {
|
||||
list-style-type: none;
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
overflow: hidden;
|
||||
text-align:justify;
|
||||
}
|
||||
//.lengend-list {
|
||||
// list-style-type: none;
|
||||
//margin: 0;
|
||||
// padding: 0;
|
||||
// overflow: hidden;
|
||||
// text-align:justify;
|
||||
//}
|
||||
|
||||
.lengend-element {
|
||||
font-size: 1rem;
|
||||
font-size: 1rem !important;
|
||||
padding-right: 3%;
|
||||
}
|
||||
|
||||
.donut-inner{
|
||||
margin-top: -171px;
|
||||
margin-left: 120px;
|
||||
//margin-bottom: 154px;
|
||||
//margin-top: -221px;
|
||||
//margin-left: 145px;
|
||||
|
||||
}
|
||||
|
||||
.donut-inner h5 {
|
||||
@ -77,545 +58,10 @@ li
|
||||
font-size:1rems;
|
||||
}
|
||||
|
||||
// .profile {
|
||||
// position: relative;
|
||||
// width: 100%;
|
||||
// height: 100%;
|
||||
// background: rgba(white, .25);
|
||||
// border-radius: 2px;
|
||||
// overflow: hidden;
|
||||
// box-shadow: 0 0 20px rgba(darken($red, 40%), .2);
|
||||
// &.pre-enter {
|
||||
// transform-origin: center center;
|
||||
// transform: scaleY(0);
|
||||
// .avatar {
|
||||
// transform-origin: center top;
|
||||
// transform: scaleY(0);
|
||||
// }
|
||||
// h1,
|
||||
// h2,
|
||||
// a.follow,
|
||||
// a.link {
|
||||
// opacity: 0;
|
||||
// transform: translateY(300px);
|
||||
// }
|
||||
// }
|
||||
// &.on-enter {
|
||||
// animation: scaleYIn 1000ms ease-out forwards;
|
||||
// .avatar {
|
||||
// animation: scaleYIn-small 750ms ease-out forwards 1000ms;
|
||||
// }
|
||||
// h1,
|
||||
// h2,
|
||||
// a.follow,
|
||||
// a.link {
|
||||
// opacity: 1;
|
||||
// animation: slideInUp 1000ms ease-out forwards;
|
||||
// }
|
||||
// h1 {
|
||||
// animation-delay: 1050ms;
|
||||
// }
|
||||
// h2 {
|
||||
// animation-delay: 1100ms;
|
||||
// }
|
||||
// a.follow {
|
||||
// animation-delay: 1250ms;
|
||||
// }
|
||||
// li {
|
||||
// &:nth-child(1) {
|
||||
// a.link {
|
||||
// animation-delay: 1300ms;
|
||||
// }
|
||||
// }
|
||||
// &:nth-child(2) {
|
||||
// a.link {
|
||||
// animation-delay: 1350ms;
|
||||
// }
|
||||
// }
|
||||
// &:nth-child(3) {
|
||||
// a.link {
|
||||
// animation-delay: 1400ms;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// .background {
|
||||
// position: absolute;
|
||||
// top: 0;
|
||||
// left: 0;
|
||||
// width: 100%;
|
||||
// height: 100%;
|
||||
// background: white;
|
||||
// border-radius: 2px;
|
||||
// }
|
||||
|
||||
// .avatar,
|
||||
// .info {
|
||||
// width: 100%;
|
||||
// height: 50%;
|
||||
// }
|
||||
|
||||
// .avatar {
|
||||
// background: url('../../assets/images/1.jpg') no-repeat center center / cover;
|
||||
// clip-path: polygon(0 0, 100% 0, 100% 75%, 0% 100%);
|
||||
// }
|
||||
|
||||
// .prof-list {
|
||||
// li {
|
||||
// display: inline-block;
|
||||
// list-style: none;
|
||||
// }
|
||||
// }
|
||||
|
||||
// .info {
|
||||
// display: flex;
|
||||
// flex-flow: row wrap;
|
||||
// align-items: center;
|
||||
// align-content: center;
|
||||
// justify-content: center;
|
||||
// position: relative;
|
||||
// text-align: center;
|
||||
// h1 {
|
||||
// padding: $p $p 0;
|
||||
// width: 100%;
|
||||
// font-size: 24px;
|
||||
// font-weight: 800;
|
||||
// letter-spacing: 2px;
|
||||
// text-transform: uppercase;
|
||||
// }
|
||||
// h2,
|
||||
// a.follow {
|
||||
// display: block;
|
||||
|
||||
// border-radius: 2px;
|
||||
// padding: $p/2;
|
||||
// color: white;
|
||||
// font-size: 12px;
|
||||
// font-weight: 500;
|
||||
// letter-spacing: 1px;
|
||||
// text-transform: uppercase;
|
||||
// }
|
||||
// h2 {
|
||||
// background: $red;
|
||||
// background: linear-gradient(135deg, rgba(#f5825f, 1) 0%, rgba(#f5005f, 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5825f', endColorstr='#f5005f', GradientType=1);
|
||||
// }
|
||||
// a.follow {
|
||||
// margin-left: $p;
|
||||
// background: $blue;
|
||||
// background: linear-gradient(135deg, rgba(#05c8e0, 1) 0%, rgba(#057fe0, 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#05c8e0', endColorstr='#057fe0', GradientType=1);
|
||||
// &:hover,
|
||||
// &:focus {
|
||||
// background: #05c8e0;
|
||||
// background: linear-gradient(135deg, rgba(lighten(#05c8e0, 10%), 1) 0%, rgba(lighten(#057fe0, 10%), 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='lighten(#05c8e0, 10%)', endColorstr='lighten(#057fe0, 10%)', GradientType=1);
|
||||
// }
|
||||
// &:active {
|
||||
// background: #057fe0;
|
||||
// background: linear-gradient(135deg, rgba(darken(#05c8e0, 5%), 1) 0%, rgba(darken(#057fe0, 5%), 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='darken(#05c8e0, 5%)', endColorstr='darken(#057fe0, 5%)', GradientType=1);
|
||||
// }
|
||||
// }
|
||||
// ul {
|
||||
// display: flex;
|
||||
// justify-content: center;
|
||||
// padding: $p/2;
|
||||
// width: 100%;
|
||||
// li {
|
||||
// padding: $p/2;
|
||||
// }
|
||||
// }
|
||||
// a.link {
|
||||
// display: block;
|
||||
// border-radius: 100%;
|
||||
// background: $blue;
|
||||
// width: 30px;
|
||||
// height: 30px;
|
||||
// line-height: 30px;
|
||||
// display: block;
|
||||
// }
|
||||
// }
|
||||
|
||||
// a.link {
|
||||
// &.portfolio {
|
||||
// background: #f5c8bf;
|
||||
// background: linear-gradient(135deg, rgba(#f5c8bf, 1) 0%, rgba(#f58dbf, 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f5c8bf', endColorstr='#f58dbf', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(#f58dbf, .5);
|
||||
// &:hover,
|
||||
// &:focus {
|
||||
// background: lighten(#f5c8bf, 5%);
|
||||
// background: linear-gradient(135deg, rgba(lighten(#f5c8bf, 5%), 1) 0%, rgba(lighten(#f58dbf, 5%), 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='lighten(#f5c8bf, 5%)', endColorstr='lighten(#f58dbf, 5%)', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(lighten(#f58dbf, 5%), .5);
|
||||
// }
|
||||
// &:active {
|
||||
// background: darken(#f5c8bf, 5%);
|
||||
// background: linear-gradient(135deg, rgba(darken(#f5c8bf, 5%), 1) 0%, rgba(darken(#f58dbf, 5%), 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='darken(#f5c8bf, 5%)', endColorstr='darken(#f58dbf, 5%)', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(darken(#f58dbf, 5%), .5);
|
||||
// }
|
||||
// }
|
||||
// &.codepen {
|
||||
// background: #fcd000;
|
||||
// background: linear-gradient(135deg, rgba(#fcd000, 1) 0%, rgba(#fc9a00, 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#fcd000', endColorstr='#fc9a00', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(#fc9a00, .5);
|
||||
// &:hover,
|
||||
// &:focus {
|
||||
// background: lighten(#fcd000, 5%);
|
||||
// background: linear-gradient(135deg, rgba(lighten(#fcd000, 5%), 1) 0%, rgba(lighten(#fc9a00, 5%), 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='lighten(#fcd000, 5%)', endColorstr='lighten(#fc9a00, 5%)', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(lighten(#fc9a00, 5%), .5);
|
||||
// }
|
||||
// &:active {
|
||||
// background: darken(#fcd000, 5%);
|
||||
// background: linear-gradient(135deg, rgba(darken(#fcd000, 5%), 1) 0%, rgba(darken(#fc9a00, 5%), 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='darken(#fcd000, 5%)', endColorstr='darken(#fc9a00, 5%)', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(darken(#fc9a00, 5%), .5);
|
||||
// }
|
||||
// }
|
||||
// &.github {
|
||||
// background: #41adc4;
|
||||
// background: linear-gradient(135deg, rgba(#41adc4, 1) 0%, rgba(#4183c4, 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#41adc4', endColorstr='#4183c4', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(#4183c4, .5);
|
||||
// &:hover,
|
||||
// &:focus {
|
||||
// background: lighten(#41adc4, 5%);
|
||||
// background: linear-gradient(135deg, rgba(lighten(#41adc4, 5%), 1) 0%, rgba(lighten(#4183c4, 5%), 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='lighten(#41adc4, 5%)', endColorstr='lighten(#4183c4, 5%)', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(lighten(#4183c4, 5%), .5);
|
||||
// }
|
||||
// &:active {
|
||||
// background: darken(#41adc4, 5%);
|
||||
// background: linear-gradient(135deg, rgba(darken(#41adc4, 5%), 1) 0%, rgba(darken(#4183c4, 5%), 1) 100%);
|
||||
// filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='darken(#41adc4, 5%)', endColorstr='darken(#4183c4, 5%)', GradientType=1);
|
||||
// box-shadow: inset 0 0 10px rgba(darken(#4183c4, 5%), .5);
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// @media only screen and (min-width: 470px) {
|
||||
// .profile {
|
||||
// display: flex;
|
||||
// &.pre-enter {
|
||||
// transform: scaleX(0);
|
||||
// .avatar {
|
||||
// transform-origin: left center;
|
||||
// transform: scaleX(0);
|
||||
// }
|
||||
// h1,
|
||||
// h2,
|
||||
// a.follow,
|
||||
// a.link {
|
||||
// transform: translateX(300px);
|
||||
// }
|
||||
// }
|
||||
// &.on-enter {
|
||||
// animation-name: scaleXIn;
|
||||
// .avatar {
|
||||
// animation-name: scaleXIn-small;
|
||||
// }
|
||||
// h1,
|
||||
// h2,
|
||||
// a.follow,
|
||||
// a.link {
|
||||
// animation-name: slideInLeft;
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
// .background {
|
||||
// mix-blend-mode: overlay;
|
||||
// }
|
||||
// .avatar,
|
||||
// .info {
|
||||
// width: 50%;
|
||||
// height: 100%;
|
||||
// }
|
||||
// .avatar {
|
||||
// clip-path: polygon(0 0, 100% 0, 75% 100%, 0% 100%);
|
||||
// }
|
||||
// }
|
||||
|
||||
// @media only screen and (min-width: 470px) and (min-height: 600px) {
|
||||
// .profile {
|
||||
// max-height: 400px;
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// /* https://goo.gl/jIUq3E */
|
||||
|
||||
// @keyframes scaleXIn {
|
||||
// 0% {
|
||||
// transform: matrix3d(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 4.7% {
|
||||
// transform: matrix3d(0.45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 9.41% {
|
||||
// transform: matrix3d(0.883, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 14.11% {
|
||||
// transform: matrix3d(1.141, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 18.72% {
|
||||
// transform: matrix3d(1.212, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 24.32% {
|
||||
// transform: matrix3d(1.151, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 29.93% {
|
||||
// transform: matrix3d(1.048, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 35.54% {
|
||||
// transform: matrix3d(0.979, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 41.04% {
|
||||
// transform: matrix3d(0.961, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 52.15% {
|
||||
// transform: matrix3d(0.991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 63.26% {
|
||||
// transform: matrix3d(1.007, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 85.49% {
|
||||
// transform: matrix3d(0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 100% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// /* https://goo.gl/auuhcg */
|
||||
|
||||
// @keyframes scaleYIn {
|
||||
// 0% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 4.7% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.45, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 9.41% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.883, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 14.11% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1.141, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 18.72% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1.212, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 24.32% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1.151, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 29.93% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1.048, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 35.54% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.979, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 41.04% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.961, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 52.15% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.991, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 63.26% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1.007, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 85.49% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 100% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// /* https://goo.gl/dNBqrt */
|
||||
|
||||
// @keyframes scaleXIn-small {
|
||||
// 0% {
|
||||
// transform: matrix3d(0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 6.31% {
|
||||
// transform: matrix3d(0.384, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 12.51% {
|
||||
// transform: matrix3d(0.621, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 18.82% {
|
||||
// transform: matrix3d(0.771, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 25.03% {
|
||||
// transform: matrix3d(0.862, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 37.54% {
|
||||
// transform: matrix3d(0.952, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 50.05% {
|
||||
// transform: matrix3d(0.984, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 75.08% {
|
||||
// transform: matrix3d(0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 100% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// /* https://goo.gl/jZL0uj */
|
||||
|
||||
// @keyframes scaleYIn-small {
|
||||
// 0% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 6.31% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.384, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 12.51% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.621, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 18.82% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.771, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 25.03% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.862, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 37.54% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.952, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 50.05% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.984, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 75.08% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 0.999, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// 100% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// /* https://goo.gl/Ne0Mkr */
|
||||
|
||||
// @keyframes slideInLeft {
|
||||
// 0% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 300, 0, 0, 1);
|
||||
// }
|
||||
// 6.31% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 184.858, 0, 0, 1);
|
||||
// }
|
||||
// 12.51% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 113.68, 0, 0, 1);
|
||||
// }
|
||||
// 18.82% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 68.663, 0, 0, 1);
|
||||
// }
|
||||
// 25.03% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 41.37, 0, 0, 1);
|
||||
// }
|
||||
// 37.54% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 14.382, 0, 0, 1);
|
||||
// }
|
||||
// 50.05% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 4.724, 0, 0, 1);
|
||||
// }
|
||||
// 75.08% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0.381, 0, 0, 1);
|
||||
// }
|
||||
// 100% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// }
|
||||
|
||||
|
||||
// /* https://goo.gl/MSqtd5 */
|
||||
|
||||
// @keyframes slideInUp {
|
||||
// 0% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 300, 0, 1);
|
||||
// }
|
||||
// 6.31% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 184.858, 0, 1);
|
||||
// }
|
||||
// 12.51% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 113.68, 0, 1);
|
||||
// }
|
||||
// 18.82% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 68.663, 0, 1);
|
||||
// }
|
||||
// 25.03% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 41.37, 0, 1);
|
||||
// }
|
||||
// 37.54% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 14.382, 0, 1);
|
||||
// }
|
||||
// 50.05% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 4.724, 0, 1);
|
||||
// }
|
||||
// 75.08% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0.381, 0, 1);
|
||||
// }
|
||||
// 100% {
|
||||
// transform: matrix3d(1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1);
|
||||
// }
|
||||
// }
|
||||
|
||||
// //wheather
|
||||
// .card-wheather {
|
||||
// height: 220px;
|
||||
// color: #fff;
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// .city {
|
||||
|
||||
// font-size: 26px;
|
||||
// }
|
||||
|
||||
// .date {
|
||||
// font-size: 20px;
|
||||
// line-height: 40px;
|
||||
// }
|
||||
|
||||
// .sun {
|
||||
// height: 70px;
|
||||
// }
|
||||
|
||||
// .grad-blue {
|
||||
// background: linear-gradient(58deg, #f44336, #673ab7);
|
||||
// color: #fff;
|
||||
// }
|
||||
|
||||
// .grad-green {
|
||||
// background: linear-gradient(58deg, #009688, #673ab7);
|
||||
// color: #fff;
|
||||
// }
|
||||
|
||||
// .grad-red {
|
||||
// background: linear-gradient(58deg, #f44336, #673ab7);
|
||||
// color: #fff;
|
||||
// }
|
||||
// .card-wheather{
|
||||
// padding: 2rem;
|
||||
// }
|
||||
// .temp {
|
||||
// font-size: 50px;
|
||||
// display: inline-block;
|
||||
// }
|
||||
mat-card-content{
|
||||
min-height: 400px;
|
||||
}
|
||||
.chart{
|
||||
|
||||
padding: 0.8rem;
|
||||
padding: 0.8rem;
|
||||
}
|
||||
@ -1,16 +1,11 @@
|
||||
//import { Component } from '@angular/core';
|
||||
import {Component, NgModule, ElementRef, Inject, Injectable, ViewChild} from '@angular/core'
|
||||
import { FormBuilder, FormGroup, Validators , ValidatorFn, AbstractControl, FormControl} from '@angular/forms'
|
||||
import { HttpClient } from '@angular/common/http';
|
||||
import {BrowserModule} from '@angular/platform-browser'
|
||||
import {ChartsModule, Color} from 'ng2-charts';
|
||||
import {Observable} from 'rxjs';
|
||||
import {map, startWith, debounceTime, distinctUntilChanged, switchMap} from 'rxjs/operators';
|
||||
import { MastersService } from '../settings/service/masters/masters.service';
|
||||
import { DashboardService } from './dashboard.service';
|
||||
import { NgxDrpOptions, PresetItem, Range } from 'ngx-mat-daterange-picker';
|
||||
import { BaseChartDirective } from 'ng2-charts/ng2-charts';
|
||||
//import { DatePipe } from '@angular/common';
|
||||
|
||||
@Component({
|
||||
selector: 'app-dashboard',
|
||||
@ -32,10 +27,12 @@ export class DashboardComponent {
|
||||
dashboardTitle = 'PD Status';
|
||||
|
||||
/** Declaration Part Of Doughnut Chart */
|
||||
@ViewChild('mycanvas') canvas:ElementRef;
|
||||
//@ViewChild('BaseChartDirective') canvas ;
|
||||
@ViewChild(BaseChartDirective) FullCanvas: BaseChartDirective;
|
||||
@ViewChild(BaseChartDirective) TeleCanvas: BaseChartDirective;
|
||||
@ViewChild(BaseChartDirective) SmartCanvas: BaseChartDirective;
|
||||
//myChart: BaseChartDirective;
|
||||
|
||||
|
||||
doughnutChartType = 'doughnut';
|
||||
doughnutChartLabels: string[] = ['Draft','Triggered','Allocated','Scheduled','InProgress','Completed','QC Completed'];
|
||||
|
||||
@ -50,9 +47,6 @@ export class DashboardComponent {
|
||||
total1: number = 0;
|
||||
total2: number = 0;
|
||||
total3: number = 0;
|
||||
total4: number = 0;
|
||||
total5: number = 0;
|
||||
total6: number = 0;
|
||||
flag : number = 0;
|
||||
|
||||
// doughnutChartColors: any[] = [{
|
||||
@ -72,14 +66,8 @@ export class DashboardComponent {
|
||||
}
|
||||
};
|
||||
|
||||
/** Declaration Part Of SubCard Section */
|
||||
/** Declaration Part Of Title Section */
|
||||
|
||||
cityWisePD : any=[];
|
||||
lenderWisePD :any=[];
|
||||
alertMessage : any=[];
|
||||
|
||||
selectedCity : any=[];
|
||||
selectedLender : any=[];
|
||||
|
||||
/** Declaration Part Of Title Form Section */
|
||||
myControl = new FormControl();
|
||||
@ -89,6 +77,8 @@ export class DashboardComponent {
|
||||
lenderData : any[];
|
||||
cityData : any[];
|
||||
|
||||
selectedCity : any=[];
|
||||
selectedLender : any=[];
|
||||
|
||||
constructor(private _dashboardService: DashboardService,
|
||||
private _masterService: MastersService) {
|
||||
@ -117,8 +107,8 @@ export class DashboardComponent {
|
||||
|
||||
ngOnInit(){
|
||||
|
||||
this.getDoughnutChartData();
|
||||
|
||||
this.getDoughnutChartData();
|
||||
|
||||
const today = new Date();
|
||||
const fromMin = new Date(today.getFullYear(), today.getMonth()-2, 1);
|
||||
@ -129,12 +119,12 @@ export class DashboardComponent {
|
||||
const LastDateForPreMonth = new Date(today.getFullYear(), today.getMonth(), 0);
|
||||
const FirstDateForPreMonth = new Date(today.getFullYear(), today.getMonth()-1, 1);
|
||||
|
||||
console.log('FromDateMin:',fromMin);
|
||||
console.log('FromDateMax:',fromMax);
|
||||
console.log('ToDateMin',toMin);
|
||||
console.log('ToDateMax',toMax);
|
||||
console.log('LastDateForPreMonth',LastDateForPreMonth);
|
||||
console.log('FirstDateForPreMonth',FirstDateForPreMonth);
|
||||
// console.log('FromDateMin:',fromMin);
|
||||
// console.log('FromDateMax:',fromMax);
|
||||
// console.log('ToDateMin',toMin);
|
||||
// console.log('ToDateMax',toMax);
|
||||
// console.log('LastDateForPreMonth',LastDateForPreMonth);
|
||||
// console.log('FirstDateForPreMonth',FirstDateForPreMonth);
|
||||
|
||||
// const resetRange = {fromDate: today, toDate: today};
|
||||
// this.dateRangePicker.resetDates(resetRange); // will trigger selectedDateRangeChanged
|
||||
@ -144,7 +134,7 @@ export class DashboardComponent {
|
||||
this.options = {
|
||||
presets: this.presets,
|
||||
format: 'mediumDate',
|
||||
range: {fromDate:toMin, toDate: fromMax},
|
||||
range: {fromDate:FirstDateForPreMonth, toDate: fromMax},
|
||||
applyLabel: "Submit",
|
||||
calendarOverlayConfig: {
|
||||
shouldCloseOnBackdropClick: false,
|
||||
@ -159,7 +149,6 @@ export class DashboardComponent {
|
||||
}
|
||||
|
||||
updateRange(range: Range){
|
||||
|
||||
this.range = range;
|
||||
this.onChange(this.range,1);
|
||||
}
|
||||
@ -202,10 +191,7 @@ getDoughnutChartData(){
|
||||
|
||||
this._dashboardService.getPDDetailForDoughnut(fromdate,todate,cityarr,lenderarr).subscribe(data => {
|
||||
this.flag = 1;
|
||||
console.log(' ***** Doughnut Chart Data *****');
|
||||
console.log('Whole Data',data);
|
||||
console.log('Monthly Status',data.records.current_month);
|
||||
|
||||
console.log(' ***** Doughnut Chart Data *****',data);
|
||||
|
||||
let DraftIndexvalue = this.doughnutChartLabels.indexOf('Draft');
|
||||
let TriggedIndexvalue = this.doughnutChartLabels.indexOf('Triggered');
|
||||
@ -227,9 +213,8 @@ getDoughnutChartData(){
|
||||
if(DraftFullPDvalue.length != '0'){
|
||||
//console.log('console triggered value',TriggerFullPDvalue);
|
||||
for(let FPD of DraftFullPDvalue){
|
||||
let y = +FPD.count;
|
||||
this.total1 = this.total1+y;
|
||||
this.tempDataFullPD[DraftIndexvalue] = y;
|
||||
|
||||
this.tempDataFullPD[DraftIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -238,11 +223,10 @@ getDoughnutChartData(){
|
||||
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[TriggedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -252,9 +236,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[AllocatedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -264,11 +247,10 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[ScheduledIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +ScheduledFullPDvalue.count;
|
||||
|
||||
|
||||
}
|
||||
else{
|
||||
@ -278,9 +260,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[InProgressIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +InProgressFullPDvalue.count;
|
||||
|
||||
@ -292,9 +273,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[CompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +CompletedFullPDvalue.count;
|
||||
|
||||
@ -306,9 +286,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[QCCompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +QCCompletedFullPDvalue.count;
|
||||
|
||||
@ -321,9 +300,8 @@ getDoughnutChartData(){
|
||||
if(DraftSmartPDvalue.length != '0'){
|
||||
//console.log('console triggered value',TriggerFullPDvalue);
|
||||
for(let FPD of DraftSmartPDvalue){
|
||||
let y = +FPD.count;
|
||||
this.total2 = this.total2+y;
|
||||
this.tempDataSmartPD[DraftIndexvalue] = y;
|
||||
|
||||
this.tempDataSmartPD[DraftIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -334,9 +312,7 @@ getDoughnutChartData(){
|
||||
if(TriggerSmartPDvalue.length != '0'){
|
||||
|
||||
for(let FPD of TriggerSmartPDvalue){
|
||||
let y = +FPD.count;
|
||||
this.total2 = this.total2+y;
|
||||
this.tempDataSmartPD[TriggedIndexvalue] = y;
|
||||
this.tempDataSmartPD[TriggedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -346,9 +322,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[AllocatedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -358,9 +333,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[ScheduledIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +ScheduledFullPDvalue.count;
|
||||
|
||||
@ -372,9 +346,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[InProgressIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +InProgressFullPDvalue.count;
|
||||
|
||||
@ -386,9 +359,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[CompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +CompletedFullPDvalue.count;
|
||||
|
||||
@ -400,9 +372,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[QCCompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +QCCompletedFullPDvalue.count;
|
||||
|
||||
@ -416,9 +387,8 @@ getDoughnutChartData(){
|
||||
if(DraftTelePDvalue.length != '0'){
|
||||
|
||||
for(let FPD of DraftTelePDvalue){
|
||||
let y = +FPD.count;
|
||||
this.total1 = this.total3+y;
|
||||
this.tempDataTelePD[DraftIndexvalue] = y;
|
||||
|
||||
this.tempDataTelePD[DraftIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -429,9 +399,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[TriggedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -441,9 +410,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[AllocatedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -453,9 +421,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[ScheduledIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +ScheduledFullPDvalue.count;
|
||||
|
||||
@ -467,9 +434,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[InProgressIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +InProgressFullPDvalue.count;
|
||||
|
||||
@ -481,9 +447,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[CompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +CompletedFullPDvalue.count;
|
||||
|
||||
@ -495,9 +460,8 @@ getDoughnutChartData(){
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[QCCompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +QCCompletedFullPDvalue.count;
|
||||
|
||||
@ -508,22 +472,21 @@ getDoughnutChartData(){
|
||||
}
|
||||
|
||||
else{
|
||||
//console.log('Else Condition month');
|
||||
this.tempDataFullPD = [0,0,0,0,0,0,0];
|
||||
this.tempDataSmartPD = [0,0,0,0,0,0,0];
|
||||
this.tempDataTelePD = [0,0,0,0,0,0,0];
|
||||
}
|
||||
|
||||
this.doughnutChartDataForFullPD = this.tempDataFullPD;
|
||||
this.doughnutChartDataForSmartPD = this.tempDataSmartPD;
|
||||
this.doughnutChartDataForTelePD = this.tempDataTelePD;
|
||||
this.total1 = this.tempDataFullPD.reduce((a, b) => a + b, 0);
|
||||
this.total2 = this.tempDataSmartPD.reduce((a, b) => a + b, 0);
|
||||
this.total3 = this.tempDataTelePD.reduce((a, b) => a + b, 0);
|
||||
|
||||
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);
|
||||
console.log('total3',this.total3);
|
||||
console.log('total2',this.total2);
|
||||
console.log('total1',this.total1);
|
||||
|
||||
console.log('Final Full Data '+ this.doughnutChartDataForFullPD+'Temp Data'+this.tempDataFullPD+'Full Total '+this.total1);
|
||||
console.log('Final Smart Data '+ this.doughnutChartDataForSmartPD+' Temp Data '+this.tempDataSmartPD+'Smart Total '+this.total2);
|
||||
console.log('Final Tele Data '+ this.doughnutChartDataForTelePD+' Temp Data'+this.tempDataTelePD+'Tele Total '+this.total3);
|
||||
|
||||
})
|
||||
}
|
||||
@ -538,10 +501,17 @@ doughnutOptions: any = Object.assign({
|
||||
centertext:'One'
|
||||
},this.globalChartOptions);
|
||||
|
||||
// ngOnChanges(){
|
||||
// // this.barChartData=this.chartData;
|
||||
// this.barChartLabel=this.chartLabel;
|
||||
// }
|
||||
|
||||
|
||||
onChange(e :any,flag: any) {
|
||||
|
||||
let fromdate;
|
||||
let todate;
|
||||
console.log('flag',flag);
|
||||
|
||||
if(flag == 1){
|
||||
|
||||
fromdate = new Date(e.fromDate);
|
||||
@ -553,7 +523,7 @@ onChange(e :any,flag: any) {
|
||||
let data = e.source.value.city_id;
|
||||
e.source._selected == true ? this.selectedCity.push(data)
|
||||
: this.selectedCity.splice(this.selectedCity.indexOf(data),1);
|
||||
console.log(this.selectedCity);
|
||||
|
||||
}
|
||||
|
||||
if(flag == 3){
|
||||
@ -561,24 +531,29 @@ onChange(e :any,flag: any) {
|
||||
e.source._selected == true ? this.selectedLender.push(data)
|
||||
: this.selectedLender.splice(this.selectedLender.indexOf(data),1);
|
||||
|
||||
console.log(this.selectedLender);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
this._dashboardService.getPDDetailForDoughnut(fromdate,todate,this.selectedLender,this.selectedCity).subscribe(data => {
|
||||
|
||||
console.log(' *****Updated Date Doughnut Chart Data *****');
|
||||
console.log('Whole Data',data);
|
||||
this._dashboardService.getPDDetailForDoughnut(fromdate,todate,this.selectedCity,this.selectedLender).subscribe(data => {
|
||||
|
||||
console.log(' *****Updated Date Doughnut Chart Data *****',data);
|
||||
|
||||
if(data.records.current_month.length != 0){
|
||||
this.total1 = 0;
|
||||
this.total2 = 0;
|
||||
this.total3 = 0;
|
||||
}
|
||||
|
||||
this.doughnutChartDataForFullPD = [];
|
||||
this.doughnutChartDataForSmartPD = [];
|
||||
this.doughnutChartDataForTelePD = [];
|
||||
this.tempDataFullPD = [];
|
||||
this.tempDataSmartPD =[];
|
||||
this.tempDataTelePD = [];
|
||||
|
||||
|
||||
let DraftIndexvalue = this.doughnutChartLabels.indexOf('Draft');
|
||||
@ -614,9 +589,8 @@ onChange(e :any,flag: any) {
|
||||
if(TriggerFullPDvalue.length != '0'){
|
||||
|
||||
for(let FPD of TriggerFullPDvalue){
|
||||
let y = +FPD.count;
|
||||
this.total1 = this.total1+y;
|
||||
this.tempDataFullPD[TriggedIndexvalue] = y;
|
||||
|
||||
this.tempDataFullPD[TriggedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -626,9 +600,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[AllocatedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -638,9 +611,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[ScheduledIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +ScheduledFullPDvalue.count;
|
||||
|
||||
@ -652,9 +624,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[InProgressIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +InProgressFullPDvalue.count;
|
||||
|
||||
@ -666,9 +637,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[CompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +CompletedFullPDvalue.count;
|
||||
|
||||
@ -680,9 +650,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataFullPD[QCCompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +QCCompletedFullPDvalue.count;
|
||||
|
||||
@ -695,9 +664,8 @@ onChange(e :any,flag: any) {
|
||||
if(DraftSmartPDvalue.length != '0'){
|
||||
//console.log('console triggered value',TriggerFullPDvalue);
|
||||
for(let FPD of DraftSmartPDvalue){
|
||||
let y = +FPD.count;
|
||||
this.total2 = this.total2+y;
|
||||
this.tempDataSmartPD[DraftIndexvalue] = y;
|
||||
|
||||
this.tempDataSmartPD[DraftIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -708,9 +676,8 @@ onChange(e :any,flag: any) {
|
||||
if(TriggerSmartPDvalue.length != '0'){
|
||||
|
||||
for(let FPD of TriggerSmartPDvalue){
|
||||
let y = +FPD.count;
|
||||
this.total2 = this.total2+y;
|
||||
this.tempDataSmartPD[TriggedIndexvalue] = y;
|
||||
|
||||
this.tempDataSmartPD[TriggedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -720,9 +687,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[AllocatedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -732,9 +698,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[ScheduledIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +ScheduledFullPDvalue.count;
|
||||
|
||||
@ -746,9 +711,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[InProgressIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +InProgressFullPDvalue.count;
|
||||
|
||||
@ -760,9 +724,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[CompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +CompletedFullPDvalue.count;
|
||||
|
||||
@ -774,9 +737,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataSmartPD[QCCompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +QCCompletedFullPDvalue.count;
|
||||
|
||||
@ -790,9 +752,8 @@ onChange(e :any,flag: any) {
|
||||
if(DraftTelePDvalue.length != '0'){
|
||||
|
||||
for(let FPD of DraftTelePDvalue){
|
||||
let y = +FPD.count;
|
||||
this.total1 = this.total3+y;
|
||||
this.tempDataTelePD[DraftIndexvalue] = y;
|
||||
|
||||
this.tempDataTelePD[DraftIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -803,9 +764,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[TriggedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -815,9 +775,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[AllocatedIndexvalue] = +FPD.count;
|
||||
}
|
||||
}
|
||||
else{
|
||||
@ -827,9 +786,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[ScheduledIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +ScheduledFullPDvalue.count;
|
||||
|
||||
@ -841,9 +799,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[InProgressIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +InProgressFullPDvalue.count;
|
||||
|
||||
@ -855,9 +812,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[CompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +CompletedFullPDvalue.count;
|
||||
|
||||
@ -869,9 +825,8 @@ onChange(e :any,flag: any) {
|
||||
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;
|
||||
|
||||
this.tempDataTelePD[QCCompletedIndexvalue] = +FPD.count;
|
||||
}
|
||||
//let y = +QCCompletedFullPDvalue.count;
|
||||
|
||||
@ -882,22 +837,26 @@ onChange(e :any,flag: any) {
|
||||
}
|
||||
|
||||
else{
|
||||
//console.log('Else Condition month');
|
||||
this.tempDataFullPD = [0,0,0,0,0,0,0];
|
||||
this.tempDataSmartPD = [0,0,0,0,0,0,0];
|
||||
this.tempDataTelePD = [0,0,0,0,0,0,0];
|
||||
}
|
||||
this.doughnutChartDataForFullPD = this.tempDataFullPD;
|
||||
|
||||
this.doughnutChartDataForFullPD= this.tempDataFullPD;
|
||||
this.doughnutChartDataForSmartPD = this.tempDataSmartPD;
|
||||
this.doughnutChartDataForTelePD = this.tempDataTelePD;
|
||||
this.doughnutChartLabels = this.doughnutChartLabels;
|
||||
this.total1 = this.tempDataFullPD.reduce((a, b) => a + b, 0);
|
||||
this.total2 = this.tempDataSmartPD.reduce((a, b) => a + b, 0);
|
||||
this.total3 = this.tempDataTelePD.reduce((a, b) => a + b, 0);
|
||||
|
||||
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);
|
||||
console.log('total3',this.total3);
|
||||
console.log('total2',this.total2);
|
||||
console.log('total1',this.total1);
|
||||
this.FullCanvas.chart.update();
|
||||
this.SmartCanvas.chart.update();
|
||||
this.TeleCanvas.chart.update();
|
||||
|
||||
console.log('Final Full Data '+ this.doughnutChartDataForFullPD+'Temp Data'+this.tempDataFullPD+'Full Total '+this.total1);
|
||||
console.log('Final Smart Data '+ this.doughnutChartDataForSmartPD+' Temp Data '+this.tempDataSmartPD+'Smart Total '+this.total2);
|
||||
console.log('Final Tele Data '+ this.doughnutChartDataForTelePD+' Temp Data'+this.tempDataTelePD+'Tele Total '+this.total3);
|
||||
|
||||
})
|
||||
|
||||
|
||||
@ -21,7 +21,6 @@ const currentdate = new Date().toJSON().slice(0,19).replace('T',' ');
|
||||
export class DashboardService {
|
||||
|
||||
private apiUrl = environment.apiEndpoint;
|
||||
//private apiUrl = 'http://localhost/sparqapi/api/';
|
||||
|
||||
constructor(private _http: HttpClient,
|
||||
private _aws:AwsService) { }
|
||||
@ -53,17 +52,13 @@ export class DashboardService {
|
||||
// }
|
||||
|
||||
getPDDetailForDoughnut(fromdate,todate,cityarr,lenderarr): Observable<any> {
|
||||
console.log(')))))');
|
||||
console.log(fromdate);
|
||||
console.log(todate);
|
||||
console.log(cityarr);
|
||||
console.log(lenderarr);
|
||||
console.log('(((');
|
||||
|
||||
console.log(' From : ' + fromdate + ' To : ' + todate + ' Lender Array : ' + lenderarr + ' City Array : ' + cityarr);
|
||||
|
||||
return this._http.post(this.apiUrl+'getDashBoardMaster', {
|
||||
"fromdate":fromdate,
|
||||
"todate": todate,
|
||||
"cityarr":cityarr,
|
||||
"lenderarr": lenderarr})
|
||||
"fromdate":fromdate != '' && fromdate != null && fromdate != undefined ? fromdate : '',
|
||||
"todate": todate != '' && todate != null && todate != undefined ? todate : '',
|
||||
"cityarr":cityarr,"lenderarr": lenderarr})
|
||||
.pipe(catchError(this.handleError('role', []))
|
||||
)
|
||||
|
||||
|
||||
@ -312,7 +312,7 @@
|
||||
<div class="body-container">
|
||||
<router-outlet></router-outlet>
|
||||
</div>
|
||||
<mat-sidenav #end position="end" class="chat-panel" mode="over" opened="false">
|
||||
<mat-sidenav #end position="end" mode="over" opened="false">
|
||||
<div style="text-align: center;">Not Yet Scheduled</div>
|
||||
<mat-tab-group [selectedIndex]="1" mat-stretch-tabs>
|
||||
<mat-tab>
|
||||
|
||||
@ -87,7 +87,7 @@
|
||||
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 100%">
|
||||
<input matInput placeholder="Loan Amount" formControlName="loan_amount">
|
||||
<input matInput placeholder="Loan Amount" formControlName="loan_amount" (keypress)="keyPress($event)">
|
||||
<!-- <mat-error *ngIf="pdMain.loan_amount.hasError('required')">Amount Required.</mat-error> -->
|
||||
<mat-error *ngIf="pdMain.loan_amount.hasError('pattern')">Enter valid amount. </mat-error>
|
||||
|
||||
@ -126,9 +126,9 @@
|
||||
|
||||
|
||||
<mat-form-field style="width: 100%;">
|
||||
<input matInput placeholder="Pincode" formControlName="pincode">
|
||||
<input matInput placeholder="Pincode" formControlName="pincode" (keypress)="keyPress($event)">
|
||||
<!-- <mat-error *ngIf="pdMain.pincode.hasError('required')">Pincode Required.</mat-error> -->
|
||||
<mat-error *ngIf="pdMain.pincode.hasError('pattern') || pdMain.pincode.hasError('maxlength') || pdMain.pincode.hasError('minlength')">Enter Valid Pincode. </mat-error>
|
||||
<mat-error *ngIf="pdMain.pincode.hasError('maxlength') || pdMain.pincode.hasError('minlength')">Enter Valid Pincode. </mat-error>
|
||||
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 100%;">
|
||||
@ -158,19 +158,25 @@
|
||||
<div class="column" fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="100" fxFlex.lg="100" fxFlex.xl="100">
|
||||
<mat-card class="p-2">
|
||||
<h5>Main Applicant</h5>
|
||||
|
||||
|
||||
<mat-form-field style="width: 100%">
|
||||
<input matInput placeholder="Name" formControlName="applicant_name">
|
||||
<mat-error *ngIf="pdMain.applicant_name.hasError('required')">Name is Required.</mat-error>
|
||||
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 100%">
|
||||
<input matInput placeholder="Phone" formControlName="mobile_no" type="text">
|
||||
<!-- <mat-error *ngIf="pdMain.mobile_no.hasError('required')">Mobile Required.</mat-error> -->
|
||||
<mat-error *ngIf="pdMain.mobile_no.hasError('pattern') || pdMain.mobile_no.hasError('maxlength') || pdMain.mobile_no.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||
|
||||
</mat-form-field>
|
||||
<div fxLayout="row" fxLayoutGap="5%" fxLayoutAlign="start none">
|
||||
<mat-form-field style="width: 50%">
|
||||
<input matInput placeholder="Mobile" formControlName="mobile_no" type="text" (keypress)="keyPress($event)" required>
|
||||
<mat-error *ngIf="pdMain.mobile_no.hasError('maxlength') || pdMain.mobile_no.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field style="width: 50%">
|
||||
<input matInput placeholder="LandLine" formControlName="landline" type="text" (keypress)="keyPress($event)">
|
||||
<mat-error *ngIf="pdMain.landline.hasError('maxlength') || pdMain.landline.hasError('minlength')">Enter Valid Phone Number. </mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<!-- Phone field to be split into 2 parts. Mobile Number mandatory and optional land line number with std code. -->
|
||||
|
||||
<mat-form-field style="width: 100%">
|
||||
<input matInput placeholder="Email" formControlName="email" type="email">
|
||||
@ -190,24 +196,31 @@
|
||||
<h5>{{coDetails.controls.label.value}} {{i+1}}</h5>
|
||||
|
||||
<div [formGroupName]="i">
|
||||
<mat-form-field style="width: 100%">
|
||||
<mat-form-field style="width: 100%">
|
||||
<input matInput placeholder="Name" formControlName="coapplicantName" type="text" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 100%">
|
||||
<input matInput placeholder="Phone" formControlName="coapplicant_mobile_no" type="text">
|
||||
<mat-error *ngIf="coDetails['controls'].coapplicant_mobile_no.hasError('pattern') || coDetails['controls'].coapplicant_mobile_no.hasError('maxlength') || coDetails['controls'].coapplicant_mobile_no.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||
|
||||
<div fxLayout="row" fxLayoutGap="5%" fxLayoutAlign="start none">
|
||||
<mat-form-field style="width: 50%">
|
||||
<input matInput placeholder="Mobile" formControlName="coapplicant_mobile_no" type="text" (keypress)="keyPress($event)" required>
|
||||
<mat-error *ngIf="coDetails['controls'].coapplicant_mobile_no.hasError('maxlength') || coDetails['controls'].coapplicant_mobile_no.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field style="width: 50%">
|
||||
<input matInput placeholder="LandLine" formControlName="coapplicant_landline" type="text" (keypress)="keyPress($event)">
|
||||
<mat-error *ngIf="coDetails['controls'].coapplicant_landline.hasError('maxlength') || coDetails['controls'].coapplicant_landline.hasError('minlength')">Enter Valid Phone Number. </mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field style="width: 100%">
|
||||
<mat-form-field style="width: 100%">
|
||||
|
||||
<mat-select placeholder="Relationship" formControlName="relationship">
|
||||
<mat-option *ngFor="let rel of relationShipList" [value]="rel.relationship_id" >
|
||||
{{rel.name}}
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<div style="width:20%">
|
||||
<span (click)="removeCoApplicant(i)">
|
||||
|
||||
@ -77,14 +77,15 @@ export class AddPdComponent implements OnInit, OnDestroy {
|
||||
fk_customer_segment: [null],
|
||||
loan_amount: [null,Validators.compose([Validators.pattern('^[0-9]*$')])],
|
||||
applicant_name: [null],
|
||||
mobile_no: [null,Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
|
||||
mobile_no: [null,Validators.compose([Validators.minLength(10),Validators.maxLength(10),Validators.required])],
|
||||
landline : [null,Validators.compose([Validators.minLength(12),Validators.maxLength(13)])],
|
||||
email: [null],
|
||||
addressline1: [null],
|
||||
addressline2: [null],
|
||||
addressline3: [null],
|
||||
fk_city: [null],
|
||||
fk_state: [null],
|
||||
pincode : [null,Validators.compose([Validators.minLength(6),Validators.maxLength(6),Validators.pattern('^[0-9]*$')])],
|
||||
pincode : [null,Validators.compose([Validators.minLength(6),Validators.maxLength(6)])],
|
||||
remarks:[null],
|
||||
// allocation_type: [null],
|
||||
// sub_allocation_type: [null],
|
||||
@ -206,7 +207,8 @@ export class AddPdComponent implements OnInit, OnDestroy {
|
||||
return this._fb.group({
|
||||
label: ['Co Applicant'],
|
||||
coapplicantName: [null, Validators.compose([Validators.required])],
|
||||
coapplicant_mobile_no: [null, Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
|
||||
coapplicant_mobile_no: [null,Validators.compose([Validators.minLength(10),Validators.maxLength(10),Validators.required])],
|
||||
coapplicant_landline : [null,Validators.compose([Validators.minLength(12),Validators.maxLength(13)])],
|
||||
relationship: [null],
|
||||
});
|
||||
};
|
||||
@ -315,6 +317,7 @@ export class AddPdComponent implements OnInit, OnDestroy {
|
||||
"applicant_name":formValue.applicant_name,
|
||||
"email":formValue.email,
|
||||
"mobile_no":formValue.mobile_no,
|
||||
"landline":formValue.landline,
|
||||
"applicant_type":1,
|
||||
"relation":"",
|
||||
}];
|
||||
@ -324,6 +327,7 @@ export class AddPdComponent implements OnInit, OnDestroy {
|
||||
"relation":itemElement.relationship,
|
||||
"email":"",
|
||||
"mobile_no":itemElement.coapplicant_mobile_no,
|
||||
"landline":itemElement.coapplicant_landline,
|
||||
"applicant_type":0,
|
||||
}
|
||||
pd_applicant_details.push(obj1)
|
||||
@ -410,4 +414,13 @@ export class AddPdComponent implements OnInit, OnDestroy {
|
||||
onReset() {
|
||||
this.loadFormData();
|
||||
}
|
||||
/** On Key Press Event For Mobile Number */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9/ /./-]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -3,6 +3,7 @@
|
||||
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above"
|
||||
(click)="closeEditComponent()"><mat-icon>close</mat-icon></button>
|
||||
</div>
|
||||
|
||||
<form [formGroup]="_EditApplicantForm" (submit)="updatePdApplicant(_EditApplicantForm.value)">
|
||||
|
||||
<div fxLayout="row" fxLayoutWrap="wrap">
|
||||
@ -22,14 +23,19 @@
|
||||
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field style="width: 100%">
|
||||
<input matInput placeholder="Phone" formControlName="mobile_no" type="text" required>
|
||||
<div fxLayout="row" fxLayoutGap="5%" fxLayoutAlign="start none">
|
||||
<mat-form-field style="width: 50%">
|
||||
<input matInput placeholder="Mobile" formControlName="mobile_no" type="text" (keypress)="keyPress($event)" required>
|
||||
<mat-error *ngIf="pdMainApplicant.mobile_no.hasError('required')">Mobile number is required.</mat-error>
|
||||
<mat-error *ngIf="pdMainApplicant.mobile_no.hasError('pattern') || pdMainApplicant.mobile_no.hasError('maxlength') || pdMainApplicant.mobile_no.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||
<mat-error *ngIf="pdMainApplicant.mobile_no.hasError('maxlength') || pdMainApplicant.mobile_no.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 50%">
|
||||
<input matInput placeholder="LandLine" formControlName="landline" type="text" (keypress)="keyPress($event)">
|
||||
<mat-error *ngIf="pdMainApplicant.landline.hasError('maxlength') || pdMainApplicant.landline.hasError('minlength')">Enter Valid Phone Number. </mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
|
||||
</mat-form-field>
|
||||
|
||||
</mat-card>
|
||||
</div>
|
||||
</div>
|
||||
@ -45,11 +51,18 @@
|
||||
<mat-error *ngIf="coDetails['controls'].coapplicantName.hasError('required')">Name is Required.</mat-error>
|
||||
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 100%">
|
||||
<input matInput placeholder="Phone" formControlName="coapplicant_mobile_no" type="text">
|
||||
<mat-error *ngIf="coDetails['controls'].coapplicant_mobile_no.hasError('pattern') || coDetails['controls'].coapplicant_mobile_no.hasError('maxlength') || coDetails['controls'].coapplicant_mobile_no.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||
|
||||
</mat-form-field>
|
||||
<div fxLayout="row" fxLayoutGap="5%" fxLayoutAlign="start none">
|
||||
<mat-form-field style="width: 50%">
|
||||
<input matInput placeholder="Mobile" formControlName="coapplicant_mobile_no" type="text" (keypress)="keyPress($event)">
|
||||
<mat-error *ngIf="coDetails['controls'].coapplicant_mobile_no.hasError('pattern') || coDetails['controls'].coapplicant_mobile_no.hasError('maxlength') || coDetails['controls'].coapplicant_mobile_no.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 50%" >
|
||||
<input matInput placeholder="LandLine" formControlName="coapplicant_landline" type="text" (keypress)="keyPress($event)">
|
||||
<mat-error *ngIf=" coDetails['controls'].coapplicant_landline.hasError('maxlength') || coDetails['controls'].coapplicant_landline.hasError('minlength')">Enter Valid Phone Number. </mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
<mat-form-field style="width: 100%">
|
||||
|
||||
<mat-select placeholder="Relationship With Main Applicant" formControlName="relationship">
|
||||
|
||||
@ -42,7 +42,8 @@ export class EditPdApplicantComponent implements OnInit {
|
||||
this._EditApplicantForm = this._fb.group({
|
||||
fk_applicant_primary_id: [null],
|
||||
applicant_name: [null, Validators.compose([Validators.required])],
|
||||
mobile_no: [null, Validators.compose([Validators.required,Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
|
||||
mobile_no: [null, Validators.compose([Validators.required,Validators.minLength(10),Validators.maxLength(12)])],
|
||||
landline: [null, Validators.compose([Validators.required,Validators.minLength(12),Validators.maxLength(13)])],
|
||||
email: [null, Validators.compose([Validators.required, CustomValidators.email])],
|
||||
applicant_type: [1],
|
||||
coApplicantItems: this._fb.array([]),
|
||||
@ -54,7 +55,8 @@ export class EditPdApplicantComponent implements OnInit {
|
||||
this._EditApplicantForm = this._fb.group({
|
||||
fk_applicant_primary_id: [this.mainApplicantData[0].pd_co_applicant_id],
|
||||
applicant_name: [this.mainApplicantData[0].applicant_name, Validators.compose([Validators.required])],
|
||||
mobile_no: [this.mainApplicantData[0].mobile_no, Validators.compose([Validators.required,Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
|
||||
mobile_no: [this.mainApplicantData[0].mobile_no, Validators.compose([Validators.required,Validators.minLength(10),Validators.maxLength(12)])],
|
||||
landline: [this.mainApplicantData[0].landline, Validators.compose([Validators.required,Validators.minLength(12),Validators.maxLength(13)])],
|
||||
email: [this.mainApplicantData[0].email, Validators.compose([Validators.required, CustomValidators.email])],
|
||||
applicant_type: [this.mainApplicantData[0].applicant_type, Validators.compose([Validators.required])],
|
||||
coApplicantItems: this._fb.array([]),
|
||||
@ -74,6 +76,7 @@ export class EditPdApplicantComponent implements OnInit {
|
||||
fk_applicant_primary_id: [listData.pd_co_applicant_id],
|
||||
coapplicantName: [listData.applicant_name, Validators.compose([Validators.required])],
|
||||
coapplicant_mobile_no: [listData.mobile_no,Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
|
||||
coapplicant_landline: [listData.landline,Validators.compose([Validators.minLength(12),Validators.maxLength(13)])],
|
||||
relationship: [listData.relation],
|
||||
applicant_type: [listData.applicant_type, Validators.compose([Validators.required])],
|
||||
});
|
||||
@ -84,6 +87,7 @@ export class EditPdApplicantComponent implements OnInit {
|
||||
fk_applicant_primary_id: [null],
|
||||
coapplicantName: [null, Validators.compose([Validators.required])],
|
||||
coapplicant_mobile_no: [null, Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
|
||||
coapplicant_landline: [null, Validators.compose([Validators.minLength(12),Validators.maxLength(13)])],
|
||||
relationship: [null],
|
||||
applicant_type: [0],
|
||||
});
|
||||
@ -108,6 +112,7 @@ export class EditPdApplicantComponent implements OnInit {
|
||||
"applicant_name":formValue.applicant_name,
|
||||
"email":formValue.email,
|
||||
"mobile_no":formValue.mobile_no,
|
||||
"landline":formValue.landline,
|
||||
"applicant_type":formValue.applicant_type,
|
||||
"relation":formValue.relationship,
|
||||
"isactive":1
|
||||
@ -120,6 +125,7 @@ export class EditPdApplicantComponent implements OnInit {
|
||||
"relation":itemElement.relationship,
|
||||
"email":"",
|
||||
"mobile_no":itemElement.coapplicant_mobile_no,
|
||||
"landline":itemElement.coapplicant_landline,
|
||||
"applicant_type":itemElement.applicant_type,
|
||||
"isactive":1
|
||||
}
|
||||
@ -164,4 +170,13 @@ export class EditPdApplicantComponent implements OnInit {
|
||||
closeEditComponent(): void {
|
||||
this.dialogRef.close();
|
||||
}
|
||||
/** On Key Press Event For Mobile Number */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9/ /./-]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -119,10 +119,8 @@
|
||||
|
||||
|
||||
<mat-form-field style="width: 100%;">
|
||||
<input matInput placeholder="Pincode" formControlName="pincode">
|
||||
<input matInput placeholder="Pincode" formControlName="pincode" (keypress)="keyPress($event)">
|
||||
<mat-error *ngIf="pdMain.pincode.hasError('pattern') || pdMain.pincode.hasError('maxlength') || pdMain.pincode.hasError('minlength')">Enter Valid Pincode. </mat-error>
|
||||
|
||||
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 100%;">
|
||||
<textarea matInput placeholder="Remarks" formControlName="remarks"></textarea>
|
||||
|
||||
@ -199,6 +199,15 @@ export class EditPdMasterComponent implements OnInit {
|
||||
closeEditMasterComponent(): void {
|
||||
this.dialogRef.close();
|
||||
}
|
||||
/** On Key Press Event For Mobile Number */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9/ /./-]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -13,11 +13,11 @@
|
||||
|
||||
<div *ngIf="pdOfficerList.length > 0" >
|
||||
<div fxLayout="row wrap" fxFlex="100%">
|
||||
<div fxLayout="row wrap" fxFlex="33.33%" *ngFor="let officer of pdOfficerList; ">
|
||||
<div fxLayout="row wrap" fxFlex="22%" *ngFor="let officer of pdOfficerList; ">
|
||||
<mat-card fxFlex="100%">
|
||||
<mat-card-content style="text-align:center">
|
||||
<mat-radio-button [value]="officer" (change)="selectPdOfficer(officer)"></mat-radio-button>
|
||||
<img [src]="officer.profile_url ||'https://image.ibb.co/mGjZB9/usernew.png'" alt="No Image" style="border-radius:50%;width:50%"><br>
|
||||
<img [src]="officer.profile_url ||'https://image.ibb.co/mGjZB9/usernew.png'" alt="No Image" style="border-radius:50%;width:100px;height:100px;"><br>
|
||||
<span>{{officer.first_name}}</span>
|
||||
<br>
|
||||
<span>{{officer.mobile_no}}</span><br>
|
||||
|
||||
@ -0,0 +1,45 @@
|
||||
<mat-card style="min-height:540px;">
|
||||
<mat-card-content>
|
||||
<div style="text-align: right;" class="mb-1">
|
||||
<button mat-raised-button mat-icon-button class="hover-icon " type="button" matTooltip="Close" matTooltipPosition="above"
|
||||
(click)="loadPdViewCompoent()"><mat-icon>close</mat-icon></button>
|
||||
</div>
|
||||
<div style="text-align: right;" class="mb-1">
|
||||
|
||||
</div>
|
||||
<div>
|
||||
<div>
|
||||
<label>Billing Name : </label> {{pdReportRecords.billing_name}}
|
||||
</div>
|
||||
<div>
|
||||
<label>Product Name : </label> {{pdReportRecords.product_name}}
|
||||
</div>
|
||||
<div>
|
||||
<label>Customer Segment Name: </label> {{pdReportRecords.customer_segment_name}}
|
||||
</div>
|
||||
<div>
|
||||
<label>PD Type: </label> {{pdReportRecords.pd_type_name}}
|
||||
</div>
|
||||
<div>
|
||||
<label>Status: </label> {{pdReportRecords.pd_status}}
|
||||
</div>
|
||||
<div>
|
||||
<label>Applicant Details : </label> <span *ngFor="let applicants of pdReportRecords?.pd_applicant_details; let last = last"> {{applicants.applicant_name}} <span *ngIf="!last"> , </span></span>
|
||||
</div>
|
||||
<!--{{pdReportRecords.question_answers | json}}-->
|
||||
<div *ngFor="let data of pdReportRecords?.question_answers.form_details">
|
||||
<h4><b>{{data.Name}}</b></h4>
|
||||
<div *ngFor="let dataQA of data?.Details">
|
||||
<div><b>{{dataQA.question}}</b></div>
|
||||
<div>{{dataQA.answer}}</div>
|
||||
</div>
|
||||
<hr>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card-content>
|
||||
|
||||
</mat-card>
|
||||
|
||||
<notifier-container></notifier-container>
|
||||
|
||||
|
||||
@ -0,0 +1,25 @@
|
||||
import { async, ComponentFixture, TestBed } from '@angular/core/testing';
|
||||
|
||||
import { PdReportComponent } from './pd-report.component';
|
||||
|
||||
describe('PdReportComponent', () => {
|
||||
let component: PdReportComponent;
|
||||
let fixture: ComponentFixture<PdReportComponent>;
|
||||
|
||||
beforeEach(async(() => {
|
||||
TestBed.configureTestingModule({
|
||||
declarations: [ PdReportComponent ]
|
||||
})
|
||||
.compileComponents();
|
||||
}));
|
||||
|
||||
beforeEach(() => {
|
||||
fixture = TestBed.createComponent(PdReportComponent);
|
||||
component = fixture.componentInstance;
|
||||
fixture.detectChanges();
|
||||
});
|
||||
|
||||
it('should create', () => {
|
||||
expect(component).toBeTruthy();
|
||||
});
|
||||
});
|
||||
@ -0,0 +1,266 @@
|
||||
import {Component, ViewChild, OnInit, ViewEncapsulation, OnDestroy} from '@angular/core';
|
||||
import {FormBuilder, FormGroup, Validators, FormControl, FormArray, AbstractControl} from '@angular/forms';
|
||||
import {ActivatedRoute, Router} from '@angular/router';
|
||||
import {NotifierService} from 'angular-notifier';
|
||||
import {ListPdComponent} from './../list-pd.component';
|
||||
|
||||
import {PdTrigerService} from '../../../pd-service/pd-triger.service';
|
||||
|
||||
@Component({
|
||||
selector: 'app-pd-report',
|
||||
templateUrl: './pd-report.component.html',
|
||||
styleUrls: ['./pd-report.component.scss']
|
||||
})
|
||||
export class PdReportComponent implements OnInit {
|
||||
startPD: any;
|
||||
|
||||
pdReportRecords:any;
|
||||
|
||||
private notifier: NotifierService;
|
||||
constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
|
||||
private router: Router, public pdTrigerService: PdTrigerService, private listPDComponent: ListPdComponent) {
|
||||
this.startPD = this.route.snapshot.params['pdid'];
|
||||
this.notifier = notifier;
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.listPDComponent.showListView(false);
|
||||
this.getPdReportDetails();
|
||||
}
|
||||
|
||||
getPdReportDetails() {
|
||||
this.pdTrigerService.getPdFinalReportDetails(this.startPD).subscribe(data => {
|
||||
if (data.status == 200) {
|
||||
// this.pdReportRecords = data.records.question_answers;
|
||||
|
||||
let Records = {
|
||||
"dataStatus": true,
|
||||
"status": 200,
|
||||
"records": {
|
||||
"pd_id": "1",
|
||||
"fk_lender_id": "7",
|
||||
"lender_full_name": "check",
|
||||
"lender_short_name": "check",
|
||||
"fk_entity_billing_id": "1",
|
||||
"billing_name": "ICICI- CHENNAI",
|
||||
"lender_applicant_id": "Le123",
|
||||
"pd_date_of_initiation": "06\/10\/2018",
|
||||
"fk_product_id": "8",
|
||||
"product_name": "Land Loan",
|
||||
"product_abbr": "LL",
|
||||
"fk_subproduct_id": "1",
|
||||
"subproduct_name": "Purchase (Resale) Loan. ",
|
||||
"subproduct_abbr": "HL PUR-RESALE",
|
||||
"fk_pd_type": "1",
|
||||
"pd_type_name": "Full PD ",
|
||||
"pd_status": "COMPLETED",
|
||||
"pd_status_name": null,
|
||||
"pd_specific_clarification": null,
|
||||
"createdon": "06\/10\/2018 05:43:58",
|
||||
"fk_createdby": "1",
|
||||
"updatedon": "16\/11\/2018 11:11:00",
|
||||
"fk_updatedby": "1",
|
||||
"createdby": "Krishna kumar",
|
||||
"updatedby": "Krishna kumar",
|
||||
"fk_pd_allocation_type": "1",
|
||||
"pd_allocation_type_name": "AUTO",
|
||||
"fk_pd_allocated_to": "128",
|
||||
"pd_allocated_to": "VinothKumar S",
|
||||
"executive_id": null,
|
||||
"executive_name": null,
|
||||
"central_pd_officer_id": null,
|
||||
"centralofficer": null,
|
||||
"fk_pd_template_id": "11",
|
||||
"template_name": "TMB",
|
||||
"fk_customer_segment": "2",
|
||||
"customer_segment_name": "Salary Cheque",
|
||||
"customer_segment_abbr": "SAL-CHQ",
|
||||
"pd_officier_final_judgement": null,
|
||||
"pd_agency_id": null,
|
||||
"agency_name": null,
|
||||
"loan_amount": "60000",
|
||||
"addressline1": "MGR Street,Vengaivasal Main Road",
|
||||
"addressline2": "Santhoshpuram",
|
||||
"addressline3": "chennai",
|
||||
"fk_city": "2",
|
||||
"city_name": "Chennai",
|
||||
"fk_state": "2",
|
||||
"state_name": "Tamil Nadu",
|
||||
"pincode": "600100",
|
||||
"pd_contact_person": "Ram",
|
||||
"pd_contact_mobileno": "32131233",
|
||||
"scheduled_on": "31\/12\/2018 12:59 PM",
|
||||
"completed_on": null,
|
||||
"remarks": null,
|
||||
"pd_applicant_details": [
|
||||
{
|
||||
"pd_co_applicant_id": "1",
|
||||
"fk_pd_id": "1",
|
||||
"applicant_name": "Karthi Raj",
|
||||
"applicant_type": "1",
|
||||
"mobile_no": "4234234155",
|
||||
"email": "sivak@gmail.com",
|
||||
"addressline1": null,
|
||||
"addressline2": null,
|
||||
"addressline3": null,
|
||||
"fk_city": null,
|
||||
"fk_state": null,
|
||||
"pincode": null,
|
||||
"relation": "brother",
|
||||
"relation_name": null,
|
||||
"landline": null
|
||||
},
|
||||
{
|
||||
"pd_co_applicant_id": "2",
|
||||
"fk_pd_id": "1",
|
||||
"applicant_name": "ramesh",
|
||||
"applicant_type": "0",
|
||||
"mobile_no": "3123123213",
|
||||
"email": "",
|
||||
"addressline1": null,
|
||||
"addressline2": null,
|
||||
"addressline3": null,
|
||||
"fk_city": null,
|
||||
"fk_state": null,
|
||||
"pincode": null,
|
||||
"relation": "brother",
|
||||
"relation_name": null,
|
||||
"landline": null
|
||||
}
|
||||
],
|
||||
"question_answers": {
|
||||
"form_details": [
|
||||
{
|
||||
"Name": "Supplied Details",
|
||||
"Details": [
|
||||
{
|
||||
"question": "What are the main raw materials?(MEG Only)",
|
||||
"answer": "check checkcheck"
|
||||
},
|
||||
{
|
||||
"question": "Supplier Name",
|
||||
"answer": "Resico"
|
||||
},
|
||||
{
|
||||
"question": "Contact Person Name",
|
||||
"answer": "Karthick"
|
||||
},
|
||||
{
|
||||
"question": "Contact Mobile Number",
|
||||
"answer": "9874115221"
|
||||
},
|
||||
{
|
||||
"question": "Payment Mode",
|
||||
"answer": "Immediate Or Advanced Payment"
|
||||
},
|
||||
{
|
||||
"question": "% of immediate \/ Advance Payment Purchase to Total Purchase?",
|
||||
"answer": "212"
|
||||
},
|
||||
{
|
||||
"question": "Credit Period",
|
||||
"answer": ""
|
||||
},
|
||||
{
|
||||
"question": "Frequency of Purchase",
|
||||
"answer": "Monthly"
|
||||
},
|
||||
{
|
||||
"question": "Others Details",
|
||||
"answer": ""
|
||||
}
|
||||
]},
|
||||
{
|
||||
"Name": "Client Details",
|
||||
"Details": [
|
||||
{
|
||||
"question": "Client Name",
|
||||
"answer": "Venba"
|
||||
},
|
||||
{
|
||||
"question": "Contact Person Name",
|
||||
"answer": "test"
|
||||
},
|
||||
{
|
||||
"question": "Contact Mobile Number",
|
||||
"answer": "9685471122"
|
||||
},
|
||||
{
|
||||
"question": "Payment Mode",
|
||||
"answer": "Combination of Both"
|
||||
},
|
||||
{
|
||||
"question": "% of immediate \/ Advance Payment Purchase to Total Purchase?",
|
||||
"answer": "12"
|
||||
},
|
||||
{
|
||||
"question": "Credit Period",
|
||||
"answer": "10"
|
||||
},
|
||||
{
|
||||
"question": "Frequency of Purchase",
|
||||
"answer": "Weekly"
|
||||
},
|
||||
{
|
||||
"question": "Others Details",
|
||||
"answer": ""
|
||||
}
|
||||
]},
|
||||
{ "Name": "Personal Details",
|
||||
"Details": [
|
||||
{
|
||||
"question": "Name",
|
||||
"answer": "Karthi Raj"
|
||||
},
|
||||
{
|
||||
"question": "Age",
|
||||
"answer": "50"
|
||||
},
|
||||
{
|
||||
"question": "Entity",
|
||||
"answer": "Individual"
|
||||
},
|
||||
{
|
||||
"question": "Name",
|
||||
"answer": "ramesh"
|
||||
},
|
||||
{
|
||||
"question": "Age",
|
||||
"answer": "45"
|
||||
},
|
||||
{
|
||||
"question": "Entity",
|
||||
"answer": "Individual"
|
||||
},
|
||||
{
|
||||
"question": "Relationship With Main Applicant",
|
||||
"answer": "Brother"
|
||||
},
|
||||
{
|
||||
"question": "Remarks",
|
||||
"answer": "good"
|
||||
}
|
||||
]}
|
||||
],
|
||||
"general_questions": [
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
this.pdReportRecords = Records.records;
|
||||
|
||||
// this.pdReportRecords = data.records.qu;
|
||||
}
|
||||
}, err=> {
|
||||
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
// load pd view component
|
||||
loadPdViewCompoent() {
|
||||
this.router.navigate(['../../viewpd', this.startPD], {relativeTo: this.route});
|
||||
}
|
||||
|
||||
}
|
||||
@ -13,7 +13,7 @@
|
||||
<!-- <form [formGroup]="_pdAllocationForm" (submit)="onSubmit()"> -->
|
||||
<div *ngIf="pdCentralOfficerList.length > 0" >
|
||||
<div fxLayout="row wrap" fxFlex="100%">
|
||||
<div fxLayout="row wrap" fxFlex="33.33%" *ngFor="let officer of pdCentralOfficerList; ">
|
||||
<div fxLayout="row wrap" fxFlex="22%" *ngFor="let officer of pdCentralOfficerList; ">
|
||||
<!-- <p><mat-radio-button [value]="officer" (change)="selectPdOfficer(officer)"></mat-radio-button>
|
||||
{{officer.first_name}}
|
||||
</p>
|
||||
@ -31,10 +31,10 @@
|
||||
<mat-card fxFlex="100%">
|
||||
<mat-card-content style="text-align:center">
|
||||
<mat-radio-button [value]="officer" (change)="selectPdOfficer(officer)"></mat-radio-button>
|
||||
<img [src]="officer.profile_url ||'https://image.ibb.co/mGjZB9/usernew.png'" alt="No Image" style="border-radius:50%;width:50%"><br>
|
||||
<img [src]="officer.profile_url ||'https://image.ibb.co/mGjZB9/usernew.png'" alt="No Image" style="border-radius:50%;width:100px;height:100px;"><br>
|
||||
<span>{{officer.first_name}}</span>
|
||||
<br>
|
||||
<span>{{officer.mobile_no}}</span>
|
||||
<span>{{officer.mobile_no}}</span> <br>
|
||||
<span>PD in hand - {{officer.count}}</span>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
@ -64,11 +64,11 @@
|
||||
|
||||
<div *ngIf="pdExcutiveList.length > 0" >
|
||||
<div fxLayout="row wrap" fxFlex="100%">
|
||||
<div fxLayout="row wrap" fxFlex="33.33%" *ngFor="let excutive of pdExcutiveList">
|
||||
<div fxLayout="row wrap" fxFlex="22%" *ngFor="let excutive of pdExcutiveList">
|
||||
<mat-card fxFlex="100%">
|
||||
<mat-card-content style="text-align:center">
|
||||
<mat-radio-button [value]="excutive" (change)="selectExcutiveOfficer(excutive)"></mat-radio-button>
|
||||
<img [src]="excutive.profile_url ||'https://image.ibb.co/mGjZB9/usernew.png'" alt="No Image" style="border-radius:50%;width:50%"><br>
|
||||
<img [src]="excutive.profile_url ||'https://image.ibb.co/mGjZB9/usernew.png'" alt="No Image" style="border-radius:50%;width:100px;height:100px;"><br>
|
||||
<span>{{excutive.first_name}}</span>
|
||||
<br>
|
||||
<span>{{excutive.mobile_no}}</span> <br>
|
||||
|
||||
@ -54,7 +54,7 @@
|
||||
<p>Neighbourhood</p>
|
||||
</mat-card-header>
|
||||
<div formArrayName="neighbourhood">
|
||||
<div *ngFor="let item of addressForm.controls.neighbourhood['controls']; let i=index">
|
||||
<div *ngFor="let item of addressForm.controls.neighbourhood['controls']; let i=index" >
|
||||
<mat-card-content class="matcard" [formGroup]="item">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Neighbour Name"
|
||||
@ -65,7 +65,7 @@
|
||||
formControlName="do_you_know">
|
||||
<mat-option value="{{m_neighbourStatus}}"
|
||||
*ngFor="let m_neighbourStatus of neighbourStatusData">{{m_neighbourStatus}}
|
||||
</mat-option>
|
||||
</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
|
||||
@ -12,7 +12,7 @@
|
||||
<div [formGroupName]="i">
|
||||
<div fxLayout="row wrap" fxLayoutGap="5px" fxLayoutAlign="start none">
|
||||
<mat-form-field style="width:100%">
|
||||
<mat-select (selectionChange)="selectedAssetsType($event, i)" placeholder="Assets Type" formControlName="assets_mode">
|
||||
<mat-select (selectionChange)="selectedAssetsType($event, i)" placeholder="Assets Type" formControlName="assets_mode" requried>
|
||||
<mat-option *ngFor="let asset of m_assets_type" [value]="asset.id">{{ asset.name }}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
@ -26,7 +26,7 @@
|
||||
<div [formGroupName]="s">
|
||||
<div>
|
||||
<mat-form-field style="width:100%">
|
||||
<mat-select placeholder="Property" formControlName="property_type">
|
||||
<mat-select placeholder="Property" formControlName="property_type" required>
|
||||
<mat-option *ngFor="let prop of m_propertyType" [value]="prop.id">{{ prop.name }}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
@ -42,7 +42,7 @@
|
||||
<div [formGroupName]="s">
|
||||
<div>
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Manufacturer, Model" formControlName="manufacturer_model_four_weeler">
|
||||
<input matInput placeholder="Manufacturer, Model" formControlName="manufacturer_model_four_weeler" required>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@ -56,7 +56,7 @@
|
||||
<div [formGroupName]="s">
|
||||
<div>
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Manufacturer, Model" formControlName="manufacturer_model_two_weeler">
|
||||
<input matInput placeholder="Manufacturer, Model" formControlName="manufacturer_model_two_weeler" required>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@ -84,7 +84,7 @@
|
||||
<div [formGroupName]="s">
|
||||
<div>
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Description" formControlName="consumer_durable_description">
|
||||
<input matInput placeholder="Description" formControlName="consumer_durable_description" required>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@ -99,19 +99,19 @@
|
||||
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
|
||||
<div fxFlex="33">
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Type" formControlName="insurance_type">
|
||||
<mat-select placeholder="Type" formControlName="insurance_type" required>
|
||||
<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">
|
||||
<input matInput placeholder="Premium Paid" formControlName="premium_paid" required (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="33">
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Frequency" formControlName="frequency_mode">
|
||||
<mat-select placeholder="Frequency" formControlName="frequency_mode" required>
|
||||
<mat-option *ngFor="let freqn of m_freqOfPurchase" [value]="freqn.frequency_id">{{ freqn.name }}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
@ -120,12 +120,12 @@
|
||||
<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">
|
||||
<input matInput placeholder="Sum Assured" formControlName="sum_assured" required (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="33">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Members Covered" formControlName="members_coverd">
|
||||
<input matInput placeholder="Members Covered" formControlName="members_coverd" required>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@ -141,19 +141,19 @@
|
||||
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
|
||||
<div fxFlex="33">
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Type" formControlName="investments_type">
|
||||
<mat-select placeholder="Type" formControlName="investments_type" required>
|
||||
<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">
|
||||
<input matInput placeholder="Amount of Investment" formControlName="amount_of_invest" required (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="33">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Bank Name" formControlName="bank_name">
|
||||
<input matInput placeholder="Bank Name" formControlName="bank_name" required>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@ -168,7 +168,7 @@
|
||||
<div [formGroupName]="s">
|
||||
<div>
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Description of the Assets" formControlName="any_other_assets">
|
||||
<input matInput placeholder="Description of the Assets" formControlName="any_other_assets" required>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@ -181,7 +181,7 @@
|
||||
<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">
|
||||
<input matInput placeholder="Approximate Market Value" formControlName="approximate_market_value" (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
@ -217,7 +217,7 @@
|
||||
</div>
|
||||
<div *ngIf="sup.get('emi').value === 'yes'" fxFlex="33">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="EMI Paid" formControlName="emi_paid">
|
||||
<input matInput placeholder="EMI Paid" formControlName="emi_paid" (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="sup.get('emi').value === 'yes'" fxFlex="33">
|
||||
|
||||
@ -333,7 +333,7 @@ public m_investmentType = [];
|
||||
}
|
||||
case '4': {
|
||||
const control = (<FormArray>this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
|
||||
control.push(this.loadJwellDescription());
|
||||
//control.push(this.loadJwellDescription());
|
||||
break;
|
||||
}
|
||||
case '5': {
|
||||
@ -542,7 +542,7 @@ public m_investmentType = [];
|
||||
}
|
||||
case '4': {
|
||||
const control = (<FormArray>this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
|
||||
control.push(this.loadJwellDescriptionWithData(data));
|
||||
//control.push(this.loadJwellDescriptionWithData(data));
|
||||
break;
|
||||
}
|
||||
case '5': {
|
||||
@ -640,6 +640,15 @@ public m_investmentType = [];
|
||||
arr.controls.splice(0);
|
||||
this.getPdSupplierFormDetails();
|
||||
}
|
||||
/** On Key Press Event For Mobile Number */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9\-\.\ ]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
// {
|
||||
// 'main_raw_materials': 'sdkjfal',
|
||||
// 'supplier_details' ; [
|
||||
|
||||
@ -85,14 +85,14 @@
|
||||
</mat-expansion-panel-header>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Applicant Name"
|
||||
formControlName="applicant_name">
|
||||
formControlName="applicant_name" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Bank Name" formControlName="bank_name">
|
||||
<input matInput placeholder="Bank Name" formControlName="bank_name" required>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Account Type" formControlName="account_type">
|
||||
<mat-select placeholder="Account Type" formControlName="account_type" required>
|
||||
<mat-option *ngFor="let prop of m_accountType" [value]="prop.id">{{ prop.name }}</mat-option>
|
||||
</mat-select>
|
||||
<!--<mat-select placeholder="Account Type"
|
||||
@ -107,7 +107,7 @@
|
||||
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Salary Credited in this account"
|
||||
formControlName="salary">
|
||||
formControlName="salary" required>
|
||||
<mat-option value="Yes">Yes</mat-option>
|
||||
<mat-option value="No">No</mat-option>
|
||||
<mat-option value="NA">NA</mat-option>
|
||||
@ -115,19 +115,31 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Limit in case of OD / CC account"
|
||||
formControlName="limit">
|
||||
formControlName="limit" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-form-field *ngIf="pd_cus_segment!='SAL'">
|
||||
<mat-select placeholder="Is this the main business account"
|
||||
formControlName="is_main">
|
||||
formControlName="is_main" required>
|
||||
<mat-option value="Yes">Yes</mat-option>
|
||||
<mat-option value="No">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<!-- <mat-form-field>
|
||||
<input matInput placeholder="Approximate Vintage"
|
||||
formControlName="vintage">
|
||||
</mat-form-field>
|
||||
formControlName="vintage" required>
|
||||
</mat-form-field> -->
|
||||
<div>
|
||||
<label>Approximate Vintage?</label>
|
||||
<br>
|
||||
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
|
||||
<mat-form-field>
|
||||
<input matInput type="number" placeholder="Year" formControlName="vintage_year" required min='0'>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput type="number" placeholder="Month" formControlName="vintage_month" required min='0' max='12'>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
<button *ngIf="i > 0" mat-raised-button mat-icon-button matTooltip="Delete" matTooltipPosition="above" (click)="deleteBankdetails(i)">
|
||||
<mat-icon >delete</mat-icon>
|
||||
</button>
|
||||
@ -142,7 +154,7 @@
|
||||
<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>
|
||||
<textarea matInput placeholder="Remarks" formControlName="banking_form_remark" required></textarea>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -29,9 +29,11 @@ import {ActivatedRoute, Router} from "@angular/router";
|
||||
})
|
||||
export class BankingDetailsComponent implements OnInit {
|
||||
@Input() pdid: number;
|
||||
@Input() pd_all_details:any;
|
||||
public bankingForm: FormGroup;
|
||||
step: number;
|
||||
private notifier: NotifierService;
|
||||
public pd_cus_segment:string;
|
||||
m_accountType= [];
|
||||
|
||||
constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
|
||||
@ -45,6 +47,11 @@ export class BankingDetailsComponent implements OnInit {
|
||||
this.step = 0;
|
||||
this.initBankingForm();
|
||||
this.getM_AccountType();
|
||||
this.pd_cus_segment = this.pd_all_details.pdmaster_details.customer_segment_abbr.toUpperCase();
|
||||
// console.log("(0,3): " + this.pd_cus_segment.substring(0,3));
|
||||
// console.log(this.pd_all_details.pdmaster_details);
|
||||
// console.log(this.pd_cus_segment);
|
||||
this.pd_cus_segment = this.pd_cus_segment.substring(0,3);
|
||||
let params: any = {};
|
||||
params.pd_id = this.pdid;
|
||||
params.pd_form_id = '7';
|
||||
@ -98,9 +105,14 @@ export class BankingDetailsComponent implements OnInit {
|
||||
account_type: ['', Validators.compose([Validators.required])],
|
||||
salary: ['', Validators.compose([Validators.required])],
|
||||
limit: ['', Validators.compose([Validators.required])],
|
||||
is_main: ['', Validators.compose([Validators.required])],
|
||||
vintage: ['', Validators.compose([Validators.required])],
|
||||
//is_main: ['', Validators.compose([Validators.required])],
|
||||
//is_main: [this.pd_cus_segment == 'SAL' ? '' : '', Validators.compose([Validators.required])],
|
||||
//is_main:[''],
|
||||
is_main: this.pd_cus_segment == 'SAL' ? [''] : ['', Validators.compose([Validators.required])],
|
||||
vintage_year: ['', Validators.compose([Validators.required])],
|
||||
vintage_month: ['', Validators.compose([Validators.required])],
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
addBankdetails(index, event) {
|
||||
@ -109,6 +121,10 @@ export class BankingDetailsComponent implements OnInit {
|
||||
let length = control.length;
|
||||
this.step = length;
|
||||
control.push(this.createBankarray());
|
||||
// if(this.pd_cus_segment != 'SAL') {
|
||||
// this.bankingForm.controls.is_main.setValidators([Validators.required]);
|
||||
// this.bankingForm.controls.is_main.updateValueAndValidity();
|
||||
// }
|
||||
}
|
||||
|
||||
deleteBankdetails(index: number) {
|
||||
@ -150,4 +166,13 @@ export class BankingDetailsComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
/** On Key Press Event For Numbers */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,25 +2,25 @@
|
||||
<p>Business Details</p>
|
||||
<form [formGroup]="businessForm" class="address">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Name of Business / Profession" formControlName="profession_name">
|
||||
<input matInput placeholder="Name of Business / Profession" formControlName="profession_name" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="How many years in business" formControlName="business_years">
|
||||
<input matInput placeholder="How many years in business" formControlName="business_years" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Industry"
|
||||
formControlName="industry">
|
||||
formControlName="industry" required>
|
||||
<mat-option value="{{list.industry_classification_id}}" *ngFor="let list of industryData">{{list.name}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Type of Activity"
|
||||
formControlName="type_of_activity">
|
||||
formControlName="type_of_activity" requried>
|
||||
<mat-option value="{{type.type_of_activity_id}}" *ngFor="let type of activityData">{{type.name}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Seasonality" formControlName="seasonality">
|
||||
<input matInput placeholder="Seasonality" formControlName="seasonality" required>
|
||||
</mat-form-field>
|
||||
<mat-card>
|
||||
<mat-card-header>
|
||||
@ -32,10 +32,10 @@
|
||||
[formGroupName]="i">
|
||||
<mat-card-content class="card">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Name" formControlName="sec_name">
|
||||
<input matInput placeholder="Name" formControlName="sec_name" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Designation" formControlName="sec_designation">
|
||||
<input matInput placeholder="Designation" formControlName="sec_designation" required>
|
||||
</mat-form-field>
|
||||
<button type="button" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button (click)="addDesignation()"
|
||||
matTooltip="Add More Designation" matTooltipPosition="above" color="primary" *ngIf="i==0">
|
||||
@ -51,14 +51,14 @@
|
||||
</mat-card>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Who started the business / professions"
|
||||
formControlName="who_started">
|
||||
formControlName="who_started" required>
|
||||
<mat-option value="applicant">Started by Applicant</mat-option>
|
||||
<mat-option value="family_business">Family Business</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Main person running the businesss"
|
||||
formControlName="main_person">
|
||||
formControlName="main_person" required>
|
||||
<mat-option value="applicants">One of the applicants</mat-option>
|
||||
<mat-option value="Relative">Relative of an applicant</mat-option>
|
||||
<mat-option value="Others">Others</mat-option>
|
||||
@ -70,17 +70,17 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select multiple placeholder="Other family members invovled"
|
||||
formControlName="family_members_involved" (selectionChange)="relationChanged($event)">
|
||||
formControlName="family_members_involved" (selectionChange)="relationChanged($event)" required>
|
||||
<mat-option value="{{member.relationship_id}}" *ngFor="let member of relationData">{{member.name}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Any other business before"
|
||||
formControlName="before_business">
|
||||
formControlName="before_business" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Any delays"
|
||||
formControlName="any_delays">
|
||||
formControlName="any_delays" required>
|
||||
</mat-form-field>
|
||||
<mat-card>
|
||||
<mat-card-header>
|
||||
@ -93,19 +93,19 @@
|
||||
<mat-card-content class="card">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Name"
|
||||
formControlName="partner_name">
|
||||
formControlName="partner_name" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Share of Profit / Shareholding"
|
||||
formControlName="shareholding">
|
||||
formControlName="shareholding" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="No. of yrs in this business"
|
||||
formControlName="current_business_experiance">
|
||||
formControlName="current_business_experiance" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Total Business Experience"
|
||||
formControlName="total_business_experiance">
|
||||
formControlName="total_business_experiance" required>
|
||||
</mat-form-field>
|
||||
<button type="button" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button (click)="addPartnerDetails()"
|
||||
matTooltip="Add More Partners / Directors / Shareholders" matTooltipPosition="above" color="primary" *ngIf="i==0">
|
||||
@ -127,15 +127,15 @@
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Total"
|
||||
formControlName="employees_total">
|
||||
formControlName="employees_total" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Permanent"
|
||||
formControlName="employees_permanent">
|
||||
formControlName="employees_permanent" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Temporary"
|
||||
formControlName="employees_temporary">
|
||||
formControlName="employees_temporary" required>
|
||||
</mat-form-field>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
@ -147,15 +147,15 @@
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Total"
|
||||
formControlName="officer_total">
|
||||
formControlName="officer_total" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Permanent"
|
||||
formControlName="officer_permanent">
|
||||
formControlName="officer_permanent" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Temporary"
|
||||
formControlName="officer_temporary">
|
||||
formControlName="officer_temporary" required>
|
||||
</mat-form-field>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
@ -167,11 +167,11 @@
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Amount Invested by Applicant"
|
||||
formControlName="invested_amount">
|
||||
formControlName="invested_amount" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Monthly Working Capital Needed"
|
||||
formControlName="working_capital">
|
||||
formControlName="working_capital" required>
|
||||
</mat-form-field>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
@ -184,7 +184,7 @@
|
||||
<mat-form-field>
|
||||
<mat-select
|
||||
placeholder="Is the location of the business / profession suited to the nature of business / service provided? "
|
||||
formControlName="is_service_provided">
|
||||
formControlName="is_service_provided" required>
|
||||
<mat-option value="well_suited.">Well Suited.</mat-option>
|
||||
<mat-option value="fairly_suited">Fairly Suited</mat-option>
|
||||
<mat-option value="not_suited">Not Suited</mat-option>
|
||||
@ -200,7 +200,7 @@
|
||||
<mat-card-content class="matcards">
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="What is the ownership of the setup ?"
|
||||
formControlName="ownership_setup">
|
||||
formControlName="ownership_setup" required>
|
||||
<mat-option value="self_owned">self owned</mat-option>
|
||||
<mat-option value="rented">Rented</mat-option>
|
||||
<mat-option value="family_owned">Family Owned</mat-option>
|
||||
@ -213,7 +213,7 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="businessForm.controls['ownership_setup'].value == 'rented'">
|
||||
<input matInput placeholder="Provide Rent Paid?"
|
||||
formControlName="rent_paid">
|
||||
formControlName="rent_paid" (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
@ -225,56 +225,56 @@
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Shop and Eat Act Cert"
|
||||
formControlName="shop_eat_act_cert">
|
||||
formControlName="shop_eat_act_cert" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="GST Regn Cert"
|
||||
formControlName="gst_Regn_cert">
|
||||
formControlName="gst_Regn_cert" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Export / Import cert"
|
||||
formControlName="export_import_cert">
|
||||
formControlName="export_import_cert" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Factory Cert"
|
||||
formControlName="factory_cert">
|
||||
formControlName="factory_cert" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Cert of Practice"
|
||||
formControlName="practice_cert">
|
||||
formControlName="practice_cert" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="PF Regn"
|
||||
formControlName="pf_regn">
|
||||
formControlName="pf_regn" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="ESIC Regn"
|
||||
formControlName="esic_regn">
|
||||
formControlName="esic_regn" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Do you want to add other documents?"
|
||||
formControlName="other_documents">
|
||||
formControlName="other_documents" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
@ -302,7 +302,7 @@
|
||||
<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="business_remarks"></textarea>
|
||||
<textarea matInput placeholder="Remarks" formControlName="business_remarks" required></textarea>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -293,4 +293,15 @@ export class BusinessInfoComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** On Key Press Event For Mobile Number */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -9,34 +9,36 @@
|
||||
<div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none">
|
||||
<div>
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Client Name" formControlName="client_name">
|
||||
<input matInput placeholder="Client Name" formControlName="client_name" required>
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Contact Person Name" formControlName="contact_person">
|
||||
<input matInput placeholder="Contact Person Name" formControlName="contact_person" required>
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div>
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Contact Mobile Number" formControlName="mobile_number">
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
<input matInput placeholder="Contact Mobile Number" formControlName="mobile_number" (keypress)="keyPress($event)" minlength=10 maxlength=10 required>
|
||||
<!-- <mat-error *ngIf="sup.controls['mobile_number'].hasError('requried') && sup.controls['mobile_number'].touched" class="mat-text-warn">Mobile Number Requried</mat-error> -->
|
||||
<mat-error *ngIf="sup.controls['mobile_number'].hasError('minlength') && sup.controls['mobile_number'].touched" class="mat-text-warn">Valid Mobile Number Requried</mat-error>
|
||||
<mat-error *ngIf="sup.controls['mobile_number'].hasError('maxlength') && sup.controls['mobile_number'].touched" class="mat-text-warn">Valid Mobile Number Requried</mat-error>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
<div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none">
|
||||
<div>
|
||||
<mat-form-field>
|
||||
<mat-select (selectionChange)="selectedPM($event)" placeholder="Payment Mode" formControlName="payment_mode">
|
||||
<mat-select (selectionChange)="selectedPM($event)" placeholder="Payment Mode" formControlName="payment_mode" required>
|
||||
<mat-option *ngFor="let pm of m_paymentModeType" [value]="pm.id">{{ pm.name }}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="sup.get('payment_mode').value == 1 || sup.get('payment_mode').value == 3">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="% of immediate / Advance Payment Purchase to Total Purchase?" formControlName="per_of_immediate_advance_payment">
|
||||
<input matInput placeholder="% of immediate / Advance Payment Purchase to Total Purchase?" formControlName="per_of_immediate_advance_payment" type="number" min="0">
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
</mat-form-field>
|
||||
</div>
|
||||
@ -50,7 +52,7 @@
|
||||
<div fxLayout="row" fxLayoutGap="12px" fxLayoutAlign="start none">
|
||||
<div>
|
||||
<mat-form-field>
|
||||
<mat-select (selectionChange)="selectedFreqPurchase($event)" placeholder="Frequency of Purchase" formControlName="frequency_of_purchase">
|
||||
<mat-select (selectionChange)="selectedFreqPurchase($event)" placeholder="Frequency of Purchase" formControlName="frequency_of_purchase" required>
|
||||
<mat-option *ngFor="let feq of m_freqOfPurchase" [value]="feq.frequency_id">{{ feq.name }}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
@ -177,7 +177,7 @@ apiLoadFinish: boolean = false;
|
||||
return this._formBuilder.group({
|
||||
client_name: ['', Validators.compose([Validators.required])],
|
||||
contact_person: ['', Validators.compose([Validators.required])],
|
||||
mobile_number: ['', Validators.compose([Validators.required])],
|
||||
mobile_number: ['', Validators.compose([Validators.required, Validators.minLength(10), Validators.maxLength(10)])],
|
||||
payment_mode: ['', Validators.compose([Validators.required])],
|
||||
per_of_immediate_advance_payment:[''],
|
||||
credit_period:[''],
|
||||
@ -190,7 +190,7 @@ apiLoadFinish: boolean = false;
|
||||
return this._formBuilder.group({
|
||||
client_name: [data.client_name, Validators.compose([Validators.required])],
|
||||
contact_person: [data.contact_person, Validators.compose([Validators.required])],
|
||||
mobile_number: [data.mobile_number, Validators.compose([Validators.required])],
|
||||
mobile_number: [data.mobile_number, Validators.compose([Validators.required, Validators.minLength(10), Validators.maxLength(10)])],
|
||||
payment_mode: [data.payment_mode, Validators.compose([Validators.required])],
|
||||
per_of_immediate_advance_payment:[data.per_of_immediate_advance_payment || ''],
|
||||
credit_period:[data.credit_period || ''],
|
||||
@ -280,6 +280,15 @@ var result = Object.keys(supp_data).map(function(key) {
|
||||
onReset() {
|
||||
// this._addQuesFrom.reset();
|
||||
}
|
||||
/** On Key Press Event For Mobile Number */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
// {
|
||||
// 'main_raw_materials': 'sdkjfal',
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<form [formGroup]="currentLoanForm" class="address">
|
||||
<mat-form-field>
|
||||
<mat-select (selectionChange)="selectedLoanChanges($event)" placeholder="Do you have any other existing loan"
|
||||
formControlName="existing_loan">
|
||||
formControlName="existing_loan" required>
|
||||
<mat-option value="Yes">Yes</mat-option>
|
||||
<mat-option value="No">No</mat-option>
|
||||
</mat-select>
|
||||
@ -18,22 +18,22 @@
|
||||
[formGroupName]="i">
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Loan Amount" formControlName="loan_amount">
|
||||
<input matInput placeholder="Loan Amount" formControlName="loan_amount" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="EMI" formControlName="emi">
|
||||
<input matInput placeholder="EMI" formControlName="emi" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Loan Type" formControlName="loan_type">
|
||||
<input matInput placeholder="Loan Type" formControlName="loan_type" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Lender" formControlName="lender">
|
||||
<input matInput placeholder="Lender" formControlName="lender" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Original Tenure in Months" formControlName="original_tenure">
|
||||
<input matInput placeholder="Original Tenure in Months" formControlName="original_tenure" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Current Balance Tenure in Months" formControlName="current_balance_tenure">
|
||||
<input matInput placeholder="Current Balance Tenure in Months" formControlName="current_balance_tenure" required>
|
||||
</mat-form-field>
|
||||
<button type="button" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button matTooltip="Add More Loan Details" matTooltipPosition="above" color="primary" (click)="addLoanDetails()"
|
||||
*ngIf="i==0">
|
||||
@ -51,7 +51,7 @@
|
||||
<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="currentloan_remarks"></textarea>
|
||||
<textarea matInput placeholder="Remarks" formControlName="currentloan_remarks" required></textarea>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -138,4 +138,13 @@ export class CurrentLoanComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
/** On Key Press Event For Amount */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,55 +2,55 @@
|
||||
<p>Employement Information</p>
|
||||
<form [formGroup]="employmentForm" class="address">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Name of Employer" formControlName="employer_name">
|
||||
<input matInput placeholder="Name of Employer" formControlName="employer_name" required>
|
||||
</mat-form-field>
|
||||
<div>
|
||||
<label>Since how long working with this employer?</label>
|
||||
<br>
|
||||
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
|
||||
<mat-form-field>
|
||||
<input matInput type="number" placeholder="Year" formControlName="how_long_year">
|
||||
<input matInput type="number" placeholder="Year" formControlName="how_long_year" required min='0'>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput type="number" placeholder="Month" formControlName="how_long_month">
|
||||
<input matInput type="number" placeholder="Month" formControlName="how_long_month" required min='0' max='12'>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
<mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'">
|
||||
<mat-select placeholder="Was the employer met?"
|
||||
formControlName="was_met">
|
||||
formControlName="was_met" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none" *ngIf="employmentForm.controls['was_met'].value == 'yes'">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Name of person met" formControlName="name_person_met">
|
||||
<mat-form-field fxFlex="50">
|
||||
<input matInput placeholder="Name of Person Met" formControlName="name_person_met" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Designation of person met" formControlName="designation_person_met">
|
||||
<mat-form-field fxFlex="50">
|
||||
<input matInput placeholder="Designation of Person Met" formControlName="designation_person_met" required>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'">
|
||||
<mat-select placeholder="Salary amount confirmed ?"
|
||||
formControlName="confirm_salary">
|
||||
formControlName="confirm_salary" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="employmentForm.controls['confirm_salary'].value == 'yes'">
|
||||
<input matInput placeholder="What is the salary amount confirmed?" formControlName="confirm_salary_amount">
|
||||
<input matInput placeholder="What is the salary amount confirmed?" formControlName="confirm_salary_amount" (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'">
|
||||
<mat-select placeholder="Attendance register seen ?"
|
||||
formControlName="attendance_seen">
|
||||
formControlName="attendance_seen" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'">
|
||||
<mat-select placeholder="Salary register seen ?"
|
||||
formControlName="sal_reg_seen">
|
||||
formControlName="sal_reg_seen" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
@ -60,23 +60,49 @@
|
||||
<p>Salary Details<p>
|
||||
</mat-card-header>
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Date of Salary" formControlName="which_date_the_salary_is_rcv" type="number" min='1' max='31'>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Gross Monthly Salary" formControlName="gross_monthly_salary">
|
||||
<input matInput placeholder="Gross Monthly Salary" formControlName="gross_monthly_salary" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Net Monthly Salary"
|
||||
formControlName="net_monthly_salary">
|
||||
formControlName="net_monthly_salary" (keypress)="keyPress($event)" required>
|
||||
<!-- <input matInput placeholder="Net Take Home"
|
||||
formControlName="net_take_home"> -->
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Bonus or Incentive"
|
||||
formControlName="bonus_incentive">
|
||||
formControlName="bonus_incentive" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="employmentForm.controls['bonus_incentive'].value != '' && employmentForm.controls['bonus_incentive'].value != '0' ">
|
||||
<mat-select placeholder="Bonus Frequency" formControlName="bonus_frequency">
|
||||
<mat-option *ngFor="let fd of frequency_data" [value]="fd.frequency_id">{{ fd.name }}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="employmentForm.controls['bonus_incentive'].value != '' && employmentForm.controls['bonus_incentive'].value != '0' ">
|
||||
<mat-select placeholder="Type of Bonus"
|
||||
formControlName="bonus_type">
|
||||
<mat-option value="fixed">Fixed</mat-option>
|
||||
<mat-option value="variable depending on performance">Variable depending on performance</mat-option>
|
||||
<mat-option value="others">Others</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="employmentForm.controls['bonus_type'].value == 'others'">
|
||||
<input matInput placeholder="Bonus Type Others" formControlName="bonus_type_other">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Any Delays"
|
||||
formControlName="any_delays">
|
||||
<mat-select placeholder="Any Delays"
|
||||
formControlName="any_delays">
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
<!-- <input matInput placeholder="Any Delays"
|
||||
formControlName="any_delays"> -->
|
||||
</mat-form-field>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
@ -84,7 +110,7 @@
|
||||
<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="employment_remarks"></textarea>
|
||||
<textarea matInput placeholder="Remarks" formControlName="employment_remarks" required></textarea>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -36,10 +36,13 @@ export class EmploymentInfoComponent implements OnInit {
|
||||
public employmentForm: FormGroup;
|
||||
private notifier: NotifierService;
|
||||
public pd_cus_segment:string;
|
||||
public frequency_data:any[];
|
||||
|
||||
constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
|
||||
private router: Router,
|
||||
private _pd: PdTrigerService) {
|
||||
this.notifier = notifier;
|
||||
//getAllMasterDatas();
|
||||
|
||||
}
|
||||
ngOnInit() {
|
||||
@ -66,13 +69,25 @@ export class EmploymentInfoComponent implements OnInit {
|
||||
}
|
||||
this.employmentForm.controls['attendance_seen'].setValue(value.records.attendance_seen);
|
||||
this.employmentForm.controls['sal_reg_seen'].setValue(value.records.sal_reg_seen);
|
||||
this.employmentForm.controls['which_date_the_salary_is_rcv'].setValue(value.records.which_date_the_salary_is_rcv);
|
||||
this.employmentForm.controls['gross_monthly_salary'].setValue(value.records.gross_monthly_salary);
|
||||
this.employmentForm.controls['net_monthly_salary'].setValue(value.records.net_monthly_salary);
|
||||
this.employmentForm.controls['bonus_incentive'].setValue(value.records.bonus_incentive);
|
||||
this.employmentForm.controls['bonus_frequency'].setValue(value.records.bonus_frequency);
|
||||
this.employmentForm.controls['bonus_type'].setValue(value.records.bonus_type);
|
||||
this.employmentForm.controls['bonus_type_other'].setValue(value.records.bonus_type_other);
|
||||
this.employmentForm.controls['any_delays'].setValue(value.records.any_delays);
|
||||
this.employmentForm.controls['employment_remarks'].setValue(value.records.employment_remarks);
|
||||
}
|
||||
})
|
||||
/** For Bonus Frequency Dropdown */
|
||||
this._pd.getAllMasterDatas('FREQUENCY').subscribe(
|
||||
data => {
|
||||
if (data.status == 200) {
|
||||
this.frequency_data = data.records;
|
||||
this.frequency_data = this.frequency_data.filter(freq=>freq.isactive == 1 );
|
||||
}
|
||||
});
|
||||
}
|
||||
public initemploymentForm(): void {
|
||||
this.employmentForm = this.fb.group({
|
||||
@ -86,9 +101,13 @@ export class EmploymentInfoComponent implements OnInit {
|
||||
confirm_salary_amount: [''],
|
||||
attendance_seen: [this.pd_cus_segment=='SAL-CHQ' ? 'No' : '', Validators.compose([Validators.required])],
|
||||
sal_reg_seen: [this.pd_cus_segment=='SAL-CHQ' ? 'No' : '', Validators.compose([Validators.required])],
|
||||
which_date_the_salary_is_rcv:[''],
|
||||
gross_monthly_salary: ['', Validators.compose([Validators.required])],
|
||||
net_monthly_salary: ['', Validators.compose([Validators.required])],
|
||||
bonus_incentive: ['', Validators.compose([Validators.required])],
|
||||
bonus_frequency: [''],
|
||||
bonus_type: [''],
|
||||
bonus_type_other: [''],
|
||||
any_delays: ['', Validators.compose([Validators.required])],
|
||||
employment_remarks: ['', Validators.compose([Validators.required])],
|
||||
});
|
||||
@ -115,9 +134,13 @@ export class EmploymentInfoComponent implements OnInit {
|
||||
}
|
||||
records.attendance_seen = this.employmentForm.controls['attendance_seen'].value;
|
||||
records.sal_reg_seen = this.employmentForm.controls['sal_reg_seen'].value;
|
||||
records.which_date_the_salary_is_rcv = this.employmentForm.controls['which_date_the_salary_is_rcv'].value;
|
||||
records.gross_monthly_salary = this.employmentForm.controls['gross_monthly_salary'].value;
|
||||
records.net_monthly_salary = this.employmentForm.controls['net_monthly_salary'].value;
|
||||
records.bonus_incentive = this.employmentForm.controls['bonus_incentive'].value;
|
||||
records.bonus_frequency = this.employmentForm.controls['bonus_frequency'].value;
|
||||
records.bonus_type = this.employmentForm.controls['bonus_type'].value;
|
||||
records.bonus_type_other = this.employmentForm.controls['bonus_type_other'].value;
|
||||
records.any_delays = this.employmentForm.controls['any_delays'].value;
|
||||
records.employment_remarks = this.employmentForm.controls['employment_remarks'].value;
|
||||
console.log('data', records);
|
||||
@ -128,5 +151,14 @@ export class EmploymentInfoComponent implements OnInit {
|
||||
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
|
||||
})
|
||||
}
|
||||
/** On Key Press Event For Numbers */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -4,7 +4,7 @@
|
||||
<p>Family Details</p>
|
||||
<form class="address" [formGroup]="familyForm">
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Person Met" formControlName="person">
|
||||
<mat-select placeholder="Person Met" formControlName="person" required>
|
||||
<mat-option *ngFor="let personMet of personMetData" [value]="personMet.person_met_id">
|
||||
{{personMet.person_met_name}}
|
||||
</mat-option>
|
||||
@ -14,7 +14,7 @@
|
||||
<input matInput placeholder="Enter the relationship" formControlName="personOther">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="No. Of Family Members" formControlName="members">
|
||||
<input matInput placeholder="No. Of Family Members" formControlName="members" required>
|
||||
</mat-form-field>
|
||||
<mat-card>
|
||||
<mat-card-header>
|
||||
@ -111,13 +111,13 @@
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Residence Address"
|
||||
formControlName="residence">
|
||||
formControlName="residence" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="No.of yrs" formControlName="years">
|
||||
<input matInput placeholder="No.of yrs" formControlName="years" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Ownership" formControlName="ownership">
|
||||
<mat-select placeholder="Ownership" formControlName="ownership" required>
|
||||
<mat-option value="{{ownerShip.id}}"
|
||||
*ngFor="let ownerShip of ownerShipData">
|
||||
{{ownerShip.name}}
|
||||
|
||||
@ -10,22 +10,22 @@
|
||||
[formGroupName]="i">
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Year (format: 2015-16)" formControlName="financial_year">
|
||||
<input matInput placeholder="Year (format: 2015-16)" formControlName="financial_year" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Annual Sale" formControlName="financial_annual_sale" (change)="calMargin(i, details)" type="number">
|
||||
<input matInput placeholder="Annual Sale" formControlName="financial_annual_sale" (change)="calMargin(i, details)" type="number" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Net Profit / Loss" formControlName="financial_net_profit" (change)="calMargin( i, details); calYearVariation( i, details)" type="number">
|
||||
<input matInput placeholder="Net Profit / Loss" formControlName="financial_net_profit" (change)="calMargin( i, details); calYearVariation( i, details)" type="number" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Margin" formControlName="financial_margin">
|
||||
<input matInput placeholder="Margin" formControlName="financial_margin" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="i != 0">
|
||||
<input matInput [ngClass]="{'highlight': (details.controls['financial_variation'].value > 40) || (details.controls['financial_variation'].value < -40)}" placeholder="Variation from Previous Year" formControlName="financial_variation">
|
||||
<input matInput [ngClass]="{'highlight': (details.controls['financial_variation'].value > 40) || (details.controls['financial_variation'].value < -40)}" placeholder="Variation from Previous Year" formControlName="financial_variation" (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Reason For Major Difference" formControlName="financial_reason">
|
||||
<input matInput placeholder="Reason For Major Difference" formControlName="financial_reason" required>
|
||||
</mat-form-field>
|
||||
|
||||
<button type="button" mat-raised-button mat-icon-button (click)="addDate()"
|
||||
@ -49,22 +49,22 @@
|
||||
[formGroupName]="i">
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Year (format: 2015-16)" formControlName="estimate_year">
|
||||
<input matInput placeholder="Year (format: 2015-16)" formControlName="estimate_year" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Annual Sale" formControlName="estimate_annual_sale" (change)="calMarginVal( i, details)" type="number">
|
||||
<input matInput placeholder="Annual Sale" formControlName="estimate_annual_sale" (change)="calMarginVal( i, details)" type="number" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Net Profit / Loss" formControlName="estimate_net_profit" (change)="calMarginVal( i, details); calVariation( i, details)" type="number">
|
||||
<input matInput placeholder="Net Profit / Loss" formControlName="estimate_net_profit" (change)="calMarginVal( i, details); calVariation( i, details)" type="number" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput disabled placeholder="Margin" formControlName="estimate_margin">
|
||||
<input matInput disabled placeholder="Margin" formControlName="estimate_margin" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="i != 0">
|
||||
<input matInput [ngClass]="{'highlight': details.controls['estimate_variation'].value >= 40 || details.controls['estimate_variation'].value >= -40}" placeholder="Variation from Previous Year" formControlName="estimate_variation">
|
||||
<input matInput [ngClass]="{'highlight': details.controls['estimate_variation'].value >= 40 || details.controls['estimate_variation'].value >= -40}" placeholder="Variation from Previous Year" formControlName="estimate_variation" (keypress)="keyPress($event)">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Reason For Major Difference" formControlName="estimate_reason">
|
||||
<input matInput placeholder="Reason For Major Difference" formControlName="estimate_reason" required>
|
||||
</mat-form-field>
|
||||
<button type="button" mat-raised-button mat-icon-button (click)="addGoods()"
|
||||
matTooltip="Add More Estimated Value" matTooltipPosition="above" class="mr-1 mb-1 hover-icon" color="primary" *ngIf="i==0">
|
||||
@ -82,7 +82,7 @@
|
||||
<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="financial_remarks"></textarea>
|
||||
<textarea matInput placeholder="Remarks" formControlName="financial_remarks" required></textarea>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -191,4 +191,14 @@ export class FinancialInfoComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** On Key Press Event For Input Field */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9\-\.\ ]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -2,10 +2,10 @@
|
||||
<p>Loan Details</p>
|
||||
<form [formGroup]="loanDetailsForm" class="address">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Loan Amount Applied" formControlName="loan_amount">
|
||||
<input matInput placeholder="Loan Amount Applied" formControlName="loan_amount" (keypress)="keyPress($event)" required >
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select multiple (selectionChange)="endUserChange($event)" placeholder="What is the end use" formControlName="end_use">
|
||||
<mat-select multiple (selectionChange)="endUserChange($event)" placeholder="What is the end use" formControlName="end_use" required>
|
||||
<mat-option *ngFor="let enduse of m_endUseofLoad" [value]="enduse.id">{{ enduse.name }}</mat-option>
|
||||
</mat-select>
|
||||
<!--<mat-select multiple placeholder="What is the end use"
|
||||
@ -24,35 +24,35 @@
|
||||
<input matInput placeholder="Specify End Use" formControlName="end_use_other">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Is there a balance transfer"
|
||||
formControlName="is_transfer">
|
||||
<mat-select placeholder="Is there a balance transfer" (selectionChange)="selectedBalancesTransferChanges($event)"
|
||||
formControlName="is_transfer" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes'">
|
||||
<input matInput placeholder="Balance Transfer Amount" formControlName="balance_transfer_amount">
|
||||
<input matInput placeholder="Balance Transfer Amount" (keypress)="keyPress($event)" formControlName="balance_transfer_amount">
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes'">
|
||||
<mat-select placeholder="Is there a Top Up"
|
||||
formControlName="is_topup">
|
||||
formControlName="is_topup" required>
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes' && loanDetailsForm.controls['is_topup'].value == 'yes'">
|
||||
<input matInput placeholder="Top Up Amt" formControlName="topup_amount">
|
||||
<input matInput placeholder="Top Up Amt" (keypress)="keyPress($event)" formControlName="topup_amount">
|
||||
</mat-form-field>
|
||||
<mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes'">
|
||||
<input matInput placeholder="Lender from where balance transfer done" formControlName="lender">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Amount of Own Contribution" formControlName="own_contribution">
|
||||
<input matInput placeholder="Amount of Own Contribution" formControlName="own_contribution" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Source" formControlName="source">
|
||||
<mat-select placeholder="Source" formControlName="source" required>
|
||||
<mat-option *ngFor="let sour of m_sourceofamount" [value]="sour.id">{{ sour.name }}</mat-option>
|
||||
</mat-select>
|
||||
|
||||
@ -67,7 +67,7 @@
|
||||
<input matInput placeholder="Specify Lender Name and Type" formControlName="lender_name_type">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="EMI Comfort Level" formControlName="emi_level">
|
||||
<input matInput placeholder="EMI Comfort Level" formControlName="emi_level" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-card>
|
||||
<mat-card-header>
|
||||
@ -76,7 +76,7 @@
|
||||
</mat-card-header>
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Type of Property" formControlName="property_type">
|
||||
<mat-select placeholder="Type of Property" formControlName="property_type" required>
|
||||
<mat-option *ngFor="let typeprop of m_mortageTypeProperty" [value]="typeprop.id">{{ typeprop.name }}</mat-option>
|
||||
</mat-select>
|
||||
|
||||
@ -102,13 +102,13 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select multiple placeholder="Name of Owner"
|
||||
formControlName="owner_name" (selectionChange)="ownerNameChange($event)">
|
||||
formControlName="owner_name" (selectionChange)="ownerNameChange($event)" required>
|
||||
<mat-option value="{{owner.pd_co_applicant_id}}" *ngFor="let owner of applicants">{{owner.applicant_name}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
|
||||
<mat-select placeholder="Status of Construction" formControlName="construction_status">
|
||||
<mat-select placeholder="Status of Construction" formControlName="construction_status" required>
|
||||
<mat-option *ngFor="let status of m_statusofCunstruction" [value]="status.id">{{ status.name }}</mat-option>
|
||||
</mat-select>
|
||||
|
||||
@ -122,11 +122,11 @@
|
||||
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="EMV as Per Customer"
|
||||
formControlName="emv_per_customer">
|
||||
formControlName="emv_per_customer" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Value as Per Agreement"
|
||||
formControlName="value_per_agreement">
|
||||
formControlName="value_per_agreement" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
@ -134,7 +134,7 @@
|
||||
<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="loandetails_remarks"></textarea>
|
||||
<textarea matInput placeholder="Remarks" formControlName="loandetails_remarks" required></textarea>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -170,7 +170,8 @@ getM_sourceofamount() {
|
||||
end_use: ['', Validators.compose([Validators.required])],
|
||||
end_use_other: [''],
|
||||
is_transfer: ['', Validators.compose([Validators.required])],
|
||||
is_topup: ['', Validators.compose([Validators.required])],
|
||||
//is_topup: ['', Validators.compose([Validators.required])],
|
||||
is_topup: [''],
|
||||
balance_transfer_amount: [''],
|
||||
topup_amount: [''],
|
||||
lender: [''],
|
||||
@ -204,6 +205,7 @@ getM_sourceofamount() {
|
||||
submitLoanDetails() {
|
||||
console.log('formData', this.loanDetailsForm.value);
|
||||
if (!this.loanDetailsForm.valid) {
|
||||
//this.notifier.notify('warning', 'Form Invaild Check all requried Field .!');
|
||||
return;
|
||||
}
|
||||
let records: any = {};
|
||||
@ -269,4 +271,30 @@ getM_sourceofamount() {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
selectedBalancesTransferChanges(event: any){
|
||||
// console.log('First Time',event);
|
||||
// console.log('First Time Value',event.value);
|
||||
if(event.value == 'no') {
|
||||
this.loanDetailsForm.controls['is_topup'].clearValidators();
|
||||
this.loanDetailsForm.controls['is_topup'].updateValueAndValidity();
|
||||
// console.log('no',event.value);
|
||||
}
|
||||
else if(event.value == 'yes'){
|
||||
this.loanDetailsForm.controls['is_topup'].setValidators([Validators.required]);
|
||||
this.loanDetailsForm.controls['is_topup'].updateValueAndValidity();
|
||||
// console.log('yes',event.value);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/** On Key Press Event For Amount */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -65,7 +65,7 @@
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Source"
|
||||
formControlName="source">
|
||||
formControlName="source" required>
|
||||
<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>
|
||||
@ -73,10 +73,10 @@
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Amount" formControlName="amount">
|
||||
<input matInput placeholder="Amount" formControlName="amount" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Frequency" formControlName="frequency">
|
||||
<mat-select placeholder="Frequency" formControlName="frequency" required>
|
||||
<mat-option value="{{frq.frequency_id}}" *ngFor="let frq of frequencyData">{{frq.name}}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
@ -96,7 +96,7 @@
|
||||
<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="otherincome_remarks"></textarea>
|
||||
<textarea matInput placeholder="Remarks" formControlName="otherincome_remarks" required></textarea>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@ -148,4 +148,14 @@ export class OtherIncomeComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/** On Key Press Event For Amount */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,7 +21,7 @@
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width: 100%">
|
||||
|
||||
<input matInput placeholder="Age" formControlName="age_ans" type="text" required>
|
||||
<input matInput placeholder="Age" formControlName="age_ans" type="text" required (keypress)="keyPress($event)">
|
||||
<mat-error *ngIf="mainDetails['controls'].age_ans.hasError('pattern') || mainDetails['controls'].age_ans.hasError('maxlength') || mainDetails['controls'].age_ans.hasError('minlength')">Enter Valid Age. </mat-error>
|
||||
|
||||
</mat-form-field>
|
||||
|
||||
@ -292,5 +292,14 @@ validateAllFormFields(formGroup: any) {
|
||||
});
|
||||
}
|
||||
|
||||
/** On Key Press Event For Mobile Number */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
@ -0,0 +1,190 @@
|
||||
<mat-card style="min-height: 550px;">
|
||||
<mat-card-content>
|
||||
<p>Rental Information Form</p>
|
||||
<form class="address" [formGroup]="rentalForm">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Person met / Shown the Property(if he is not applicant or co-applicant)" formControlName="person_met">
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Property Owner" formControlName="property_own">
|
||||
<mat-option value="applicant">Applicant</mat-option>
|
||||
<mat-option value="co_applicant">co-applicant</mat-option>
|
||||
<mat-option value="parental">Parental</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Nature of the let out property" formControlName="nature_property">
|
||||
<mat-option value="residentail/commercial">Residential/commercial</mat-option>
|
||||
<mat-option value="other">other</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
|
||||
|
||||
<div formArrayName="rental_home">
|
||||
<mat-accordion
|
||||
*ngFor="let item of rentalForm.controls.rental_home['controls']; let i=index"
|
||||
[formGroupName]="i">
|
||||
<mat-expansion-panel class="fields" [expanded]="step == i">
|
||||
<mat-expansion-panel-header>
|
||||
<mat-panel-title>
|
||||
<h5>{{i+1}} Rental Home Details</h5>
|
||||
</mat-panel-title>
|
||||
<button type="button" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button *ngIf="i==0"
|
||||
color="primary" style="float: right;" (click)="addProperty($event)">
|
||||
<mat-icon>add</mat-icon>
|
||||
</button>
|
||||
<button type="button" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button *ngIf="i>0"
|
||||
style="float: right;" (click)="deleteProperty(i)">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
</mat-expansion-panel-header>
|
||||
|
||||
<mat-form-field appearance="outline" style="width: 100%">
|
||||
<mat-label>Complete address of the property</mat-label>
|
||||
<textarea matInput placeholder="Address" formControlName="complete_add"></textarea>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Area of the Property(in sq yd or Sq ft)"
|
||||
formControlName="area_of_property">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Structure of the let out property (eg. No of floors in total,G,FF,SF etc, let out floors from them)"
|
||||
formControlName="structure_property">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input type="number" matInput placeholder="Total rooms let out (eg single room,2 BHK, let out rooms on each floor)"
|
||||
formControlName="total_room">
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Is Rent agreement available"
|
||||
formControlName="is_rent">
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
<div *ngIf="item.controls['is_rent'].value == 'yes'">
|
||||
<mat-form-field>
|
||||
<input matInput [matDatepicker]="picker" formControlName="date_agreement"
|
||||
placeholder="Date of Agreement">
|
||||
<mat-datepicker-toggle matSuffix
|
||||
[for]="picker"></mat-datepicker-toggle>
|
||||
<mat-datepicker #picker></mat-datepicker>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Validity"
|
||||
formControlName="date_validity">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input type="number" matInput placeholder="Rent as per Agreement"
|
||||
formControlName="rent_agreement">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input type="number" matInput placeholder="Actual Rent"
|
||||
formControlName="actual_rent">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Photo of agreement taken ?"
|
||||
formControlName="photo_areegment">
|
||||
<mat-option value="yes">Yes</mat-option>
|
||||
<mat-option value="no">No</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<mat-card>
|
||||
<mat-card-header>
|
||||
<p>How is rent received? (Is it in bank or cash, how much in which mode)</p>
|
||||
</mat-card-header>
|
||||
<mat-card-content>
|
||||
<mat-form-field>
|
||||
<input type="number" matInput placeholder="bank"
|
||||
formControlName="bank">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input type="number" matInput placeholder="Cash"
|
||||
formControlName="cash">
|
||||
</mat-form-field>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Rent received from each floor and or Rooms (eg FF has 4 rooms, rent per room are Rs 2500, Rs 4000 and Rs 3200 respectively)"
|
||||
formControlName="rent_each_floor">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Total rent received (Total montly rental from property/ies, with break up)"
|
||||
formControlName="total_rent">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Property Paper or other related document to prove ownership (eg. Property registry etc)"
|
||||
formControlName="related_doc_owner">
|
||||
</mat-form-field>
|
||||
|
||||
<mat-card>
|
||||
<mat-card-header>
|
||||
<p>Details of the tenants (eg Name and Mobile No and other details)</p>
|
||||
</mat-card-header>
|
||||
<div formArrayName="details_tenants">
|
||||
<div *ngFor="let deatil of item.controls.details_tenants['controls']; let idx=index" [formGroupName]="idx">
|
||||
<mat-card-content>
|
||||
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Name"
|
||||
formControlName="name">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Mobile No"
|
||||
formControlName="mobile_no">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Tenant Seen"
|
||||
formControlName="tenants_seen">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Tenant confirmed owner"
|
||||
formControlName="tenants_con_owner">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Rent Paid"
|
||||
formControlName="rent_paid">
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Staying since"
|
||||
formControlName="staying_since">
|
||||
</mat-form-field>
|
||||
<button type="button" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button *ngIf="idx==0"
|
||||
color="primary" style="float: right;" (click)="addTenant(i)">
|
||||
<mat-icon>add</mat-icon>
|
||||
</button>
|
||||
<button type="button" (click)="deleteTenant(idx, i)" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button *ngIf="idx>0"
|
||||
|
||||
style="float: right;">
|
||||
<mat-icon>delete</mat-icon>
|
||||
</button>
|
||||
</mat-card-content>
|
||||
</div>
|
||||
</div>
|
||||
</mat-card>
|
||||
<mat-form-field>
|
||||
<mat-select placeholder="Photogaraphs of the property"
|
||||
formControlName="property_photographs">
|
||||
<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="Third party check of prevailing rent in the neighbour hood (TPC with whom, how much rent quoted)"
|
||||
formControlName="third_party_check">
|
||||
</mat-form-field>
|
||||
</mat-expansion-panel>
|
||||
|
||||
</mat-accordion>
|
||||
</div>
|
||||
<div style="text-align: right;" class="pt-1">
|
||||
<button class="mr-1 mb-1 hover-icon" type="submit" mat-raised-button mat-icon-button type="submit" matTooltip="Submit" matTooltipPosition="above" (click)="rentalSubmit()"><mat-icon>save</mat-icon>
|
||||
</button>
|
||||
</div>
|
||||
</form>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
|
||||
@ -0,0 +1,27 @@
|
||||
.address {
|
||||
display: flex;
|
||||
padding: 0 2%;
|
||||
flex-direction: column;
|
||||
}
|
||||
|
||||
.address > * {
|
||||
width: 100%;
|
||||
}
|
||||
.matcard mat-form-field {
|
||||
margin: 0 2%;
|
||||
width:40%;
|
||||
}
|
||||
.address .button {
|
||||
float: right;
|
||||
width: 10px;
|
||||
background: #62B013;
|
||||
color: white;
|
||||
}
|
||||
mat-form-field {
|
||||
width: 27%;
|
||||
margin: 0 2%;
|
||||
}
|
||||
.fields mat-form-field {
|
||||
width: 45%;
|
||||
margin: 0 2%;
|
||||
}
|
||||
@ -0,0 +1,167 @@
|
||||
import {Component, OnInit, Input, Output} from '@angular/core';
|
||||
import {FormBuilder, FormGroup, Validators, FormControl, FormArray} from '@angular/forms';
|
||||
import {NotifierService} from 'angular-notifier';
|
||||
import {PdTrigerService} from './../../../../../pd-service/pd-triger.service';
|
||||
import {Key} from 'protractor';
|
||||
|
||||
@Component({
|
||||
selector: 'app-rental-info',
|
||||
templateUrl: './rental-info.component.html',
|
||||
styleUrls: ['./rental-info.component.scss']
|
||||
})
|
||||
export class RentalInfoComponent implements OnInit {
|
||||
|
||||
// @Input() pdid: string;
|
||||
// @Input() pd_all_details: any;
|
||||
// form_id: number;
|
||||
@Input() pdid: number;
|
||||
@Input() form_id: number;
|
||||
step: number;
|
||||
|
||||
public rentalForm: FormGroup;
|
||||
tenantsList: FormArray;
|
||||
propertyList: FormGroup;
|
||||
private notifier: NotifierService;
|
||||
|
||||
constructor(notifier: NotifierService, private _fb: FormBuilder, private _pd: PdTrigerService) {
|
||||
this.notifier = notifier;
|
||||
// this.form_id = 3;
|
||||
}
|
||||
|
||||
ngOnInit() {
|
||||
this.step = 0;
|
||||
this.inintRentalForm();
|
||||
this.createpropertyArray();
|
||||
let params: any = {};
|
||||
params.pd_id = this.pdid;
|
||||
params.pd_form_id = this.form_id;
|
||||
this._pd.retriveForm(params).subscribe(value => {
|
||||
let subArray: any;
|
||||
const control = <FormArray>this.rentalForm.controls['rental_home'];
|
||||
if (value.status == 200) {
|
||||
let rentalinfo = value.records;
|
||||
var result = Object.keys(value.records.rental_home).map(function (key) {
|
||||
return value.records.rental_home[key];
|
||||
});
|
||||
if (result.length == 0) {
|
||||
const control = <FormArray>this.rentalForm.controls['rental_home'];
|
||||
control.push(this.createpropertyArray());
|
||||
} else {
|
||||
result.forEach((datas, index) => {
|
||||
control.push(this.createpropertyArray());
|
||||
const parentControl = <FormGroup>this.rentalForm.controls['rental_home']['controls'][index];
|
||||
const sub = <FormArray>parentControl.controls['details_tenants'];
|
||||
console.log('control', parentControl);
|
||||
subArray = Object.keys(datas.details_tenants).map(function (key) {
|
||||
return datas.details_tenants[key];
|
||||
});
|
||||
if (subArray.length > 0) {
|
||||
subArray.forEach((val) => {
|
||||
console.log('val', val);
|
||||
sub.push(this.createTenatsArray());
|
||||
})
|
||||
sub.removeAt(0);
|
||||
}
|
||||
datas.details_tenants = subArray;
|
||||
});
|
||||
}
|
||||
rentalinfo.rental_home = result;
|
||||
rentalinfo.pdid = this.pdid;
|
||||
rentalinfo.formid = this.form_id;
|
||||
rentalinfo.fk_createdby = this.pdid;
|
||||
this.rentalForm.setValue(rentalinfo);
|
||||
} else {
|
||||
control.push(this.createpropertyArray());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
inintRentalForm() {
|
||||
this.rentalForm = this._fb.group({
|
||||
pdid: this.pdid,
|
||||
formid: this.form_id,
|
||||
fk_createdby: this.pdid,
|
||||
person_met: ['', Validators.compose([Validators.required])],
|
||||
property_own: ['', Validators.compose([Validators.required])],
|
||||
nature_property: ['', Validators.compose([Validators.required])],
|
||||
rental_home: this._fb.array([])
|
||||
});
|
||||
}
|
||||
|
||||
createpropertyArray() {
|
||||
this.propertyList = this._fb.group({
|
||||
complete_add: ['', Validators.compose([Validators.required])],
|
||||
area_of_property: ['', Validators.compose([Validators.required])],
|
||||
structure_property: ['', Validators.compose([Validators.required])],
|
||||
total_room: ['', Validators.compose([Validators.required])],
|
||||
is_rent: ['', Validators.compose([Validators.required])],
|
||||
date_agreement: [''],
|
||||
date_validity: [''],
|
||||
rent_agreement: [''],
|
||||
actual_rent: [''],
|
||||
photo_areegment: [''],
|
||||
bank: ['', Validators.compose([Validators.required])],
|
||||
cash: ['', Validators.compose([Validators.required])],
|
||||
rent_each_floor: ['', Validators.compose([Validators.required])],
|
||||
total_rent: ['', Validators.compose([Validators.required])],
|
||||
related_doc_owner: ['', Validators.compose([Validators.required])],
|
||||
property_photographs: ['', Validators.compose([Validators.required])],
|
||||
third_party_check: ['', Validators.compose([Validators.required])],
|
||||
details_tenants: this._fb.array([this.createTenatsArray()]),
|
||||
});
|
||||
return this.propertyList;
|
||||
}
|
||||
|
||||
createTenatsArray() {
|
||||
return this._fb.group({
|
||||
name: ['', Validators.compose([Validators.required])],
|
||||
mobile_no: ['', Validators.compose([Validators.required])],
|
||||
tenants_seen: ['', Validators.compose([Validators.required])],
|
||||
tenants_con_owner: ['', Validators.compose([Validators.required])],
|
||||
staying_since: ['', Validators.compose([Validators.required])],
|
||||
rent_paid: ['', Validators.compose([Validators.required])],
|
||||
});
|
||||
}
|
||||
|
||||
addProperty(event) {
|
||||
event.stopPropagation();
|
||||
|
||||
const control = <FormArray>this.rentalForm.controls['rental_home'];
|
||||
control.push(this.createpropertyArray());
|
||||
let length = control.length;
|
||||
this.step = length - 1;
|
||||
}
|
||||
|
||||
deleteProperty(index) {
|
||||
const control = <FormArray>this.rentalForm.controls['rental_home'];
|
||||
control.removeAt(index);
|
||||
}
|
||||
|
||||
addTenant(parentIndex:number) {
|
||||
const parentControl = <FormGroup>this.rentalForm.controls['rental_home']['controls'][parentIndex];
|
||||
const control = <FormArray>parentControl.controls['details_tenants'];
|
||||
console.log(parentControl);
|
||||
console.log(control);
|
||||
control.push(this.createTenatsArray());
|
||||
}
|
||||
|
||||
deleteTenant(idx, parentIndex) {
|
||||
const parentControl = <FormGroup>this.rentalForm.controls['rental_home']['controls'][parentIndex];
|
||||
const control = <FormArray>parentControl.controls['details_tenants'];
|
||||
control.removeAt(idx);
|
||||
}
|
||||
|
||||
rentalSubmit() {
|
||||
if (!this.rentalForm.valid) {
|
||||
return;
|
||||
}
|
||||
console.log('form', this.rentalForm.value);
|
||||
let records = this.rentalForm.value;
|
||||
this._pd.saveForm(records).subscribe(data => {
|
||||
console.log('data', data);
|
||||
this.notifier.notify('success', 'Saved Successfully.');
|
||||
}, error => {
|
||||
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -11,19 +11,19 @@
|
||||
[formGroupName]="i">
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Name" formControlName="raw_name">
|
||||
<input matInput placeholder="Name" formControlName="raw_name" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Quantity" formControlName="raw_quantity">
|
||||
<input matInput placeholder="Quantity" formControlName="raw_quantity" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Value" formControlName="raw_value">
|
||||
<input matInput placeholder="Value" formControlName="raw_value" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width:76%">
|
||||
<input matInput placeholder="Value of raw materials as per financial Statements" formControlName="rawmaterial_value">
|
||||
<input matInput placeholder="Value of raw materials as per financial Statements" formControlName="rawmaterial_value" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width:76%">
|
||||
<input matInput placeholder="Is the stock of raw materials sufficient ?" formControlName="is_sufficiant_raw">
|
||||
<input matInput placeholder="Is the stock of raw materials sufficient ?" formControlName="is_sufficiant_raw" required>
|
||||
</mat-form-field>
|
||||
|
||||
<button type="button" mat-raised-button mat-icon-button (click)="addRawMaterials()"
|
||||
@ -47,19 +47,19 @@
|
||||
[formGroupName]="i">
|
||||
<mat-card-content class="matcard">
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Name" formControlName="goods_name">
|
||||
<input matInput placeholder="Name" formControlName="goods_name" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Quantity" formControlName="goods_quantity">
|
||||
<input matInput placeholder="Quantity" formControlName="goods_quantity" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field>
|
||||
<input matInput placeholder="Value" formControlName="goods_value">
|
||||
<input matInput placeholder="Value" formControlName="goods_value" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width:76%">
|
||||
<input matInput placeholder="Value of finished goods as per financial statements" formControlName="finished_goods_value">
|
||||
<input matInput placeholder="Value of finished goods as per financial statements" formControlName="finished_goods_value" (keypress)="keyPress($event)" required>
|
||||
</mat-form-field>
|
||||
<mat-form-field style="width:76%">
|
||||
<input matInput placeholder="Is the stock of finished goods sufficient ?" formControlName="is_sufficiant_goods">
|
||||
<input matInput placeholder="Is the stock of finished goods sufficient ?" formControlName="is_sufficiant_goods" required>
|
||||
</mat-form-field>
|
||||
|
||||
<button type="button" mat-raised-button mat-icon-button (click)="addGoods()"
|
||||
|
||||
@ -148,4 +148,13 @@ export class StockComponent implements OnInit {
|
||||
}
|
||||
});
|
||||
}
|
||||
/** On Key Press Event For Numbers */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,56 +19,57 @@
|
||||
<div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none">
|
||||
<div fxFlex="30">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Supplier Name" formControlName="supplier_name">
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
<input matInput placeholder="Supplier Name" formControlName="supplier_name" required>
|
||||
<!-- <mat-error *ngIf="sup.controls['supplier_name'].hasError('required') && sup.controls['supplier_name'].touched" class="mat-text-warn">Supplier Name Required.</mat-error> -->
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="30">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Contact Person Name" formControlName="contact_person">
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
<input matInput placeholder="Contact Person Name" formControlName="contact_person" required>
|
||||
<!-- <mat-error *ngIf="sup.controls['contact_person'].hasError('required') && sup.controls['contact_person'].touched" class="mat-text-warn">Contact Person Name Required.</mat-error> -->
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div fxFlex="30">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Contact Mobile Number" formControlName="mobile_number">
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
<input matInput placeholder="Contact Mobile Number" formControlName="mobile_number" (keypress)="keyPress($event)" minlength=10 maxlength=10 required>
|
||||
<!-- <mat-error *ngIf="sup.controls['mobile_number'].hasError('requried') && sup.controls['mobile_number'].touched" class="mat-text-warn">Mobile Number Requried</mat-error> -->
|
||||
<mat-error *ngIf="sup.controls['mobile_number'].hasError('minlength') && sup.controls['mobile_number'].touched" class="mat-text-warn">Valid Mobile Number Requried</mat-error>
|
||||
<mat-error *ngIf="sup.controls['mobile_number'].hasError('maxlength') && sup.controls['mobile_number'].touched" class="mat-text-warn">Vaild Mobile Number Requried</mat-error>
|
||||
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
<div fxLayout="row wrap" fxLayoutGap="14px" fxLayoutAlign="start none">
|
||||
<div fxFlex="30">
|
||||
<mat-form-field style="width:100%">
|
||||
<mat-select (selectionChange)="selectedPM($event)" placeholder="Payment Mode" formControlName="payment_mode">
|
||||
<mat-select (selectionChange)="selectedPM($event)" placeholder="Payment Mode" formControlName="payment_mode" required>
|
||||
<mat-option *ngFor="let pm of m_paymentModeType" [value]="pm.id">{{ pm.name }}</mat-option>
|
||||
</mat-select>
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="sup.get('payment_mode').value == 1 || sup.get('payment_mode').value == 3" fxFlex="30">
|
||||
<mat-form-field class="ml-xs example-full-width" >
|
||||
<input matInput placeholder="% of immediate / Advance Payment Purchase to Total Purchase?" formControlName="per_of_immediate_advance_payment">
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
<input matInput placeholder="% of immediate / Advance Payment Purchase to Total Purchase?" formControlName="per_of_immediate_advance_payment" type="number" min="0">
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="sup.get('payment_mode').value == 2 || sup.get('payment_mode').value == 3" fxFlex="30">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Credit Period" formControlName="credit_period">
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
</mat-form-field>
|
||||
</div>
|
||||
</div>
|
||||
<div fxLayout="row" fxLayoutGap="14px" fxLayoutAlign="start none">
|
||||
<div fxFlex="30">
|
||||
<mat-form-field style="width:100%">
|
||||
<mat-select (selectionChange)="selectedFreqPurchase($event)" placeholder="Frequency of Purchase" formControlName="frequency_of_purchase">
|
||||
<mat-select (selectionChange)="selectedFreqPurchase($event)" placeholder="Frequency of Purchase" formControlName="frequency_of_purchase" required>
|
||||
<mat-option *ngFor="let feq of m_freqOfPurchase" [value]="feq.frequency_id">{{ feq.name }}</mat-option>
|
||||
</mat-select>
|
||||
<!-- <mat-error *ngIf="sup.controls['frequency_of_purchase'].hasError('required') && sup.controls['frequency_of_purchase'].touched" class="mat-text-warn">PaymentMode Type Required.</mat-error> -->
|
||||
</mat-form-field>
|
||||
</div>
|
||||
<div *ngIf="sup.get('frequency_of_purchase').value == 8" fxFlex="30">
|
||||
<mat-form-field class="ml-xs example-full-width">
|
||||
<input matInput placeholder="Others Details" formControlName="freq_purchase_others_text_value">
|
||||
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
|
||||
</mat-form-field>
|
||||
</div>
|
||||
|
||||
|
||||
@ -179,7 +179,7 @@ apiLoadFinish: boolean = false;
|
||||
return this._formBuilder.group({
|
||||
supplier_name: ['', Validators.compose([Validators.required])],
|
||||
contact_person: ['', Validators.compose([Validators.required])],
|
||||
mobile_number: ['', Validators.compose([Validators.required])],
|
||||
mobile_number: ['', Validators.compose([Validators.required, Validators.minLength(10), Validators.maxLength(10)])],
|
||||
payment_mode: ['', Validators.compose([Validators.required])],
|
||||
per_of_immediate_advance_payment:[''],
|
||||
credit_period:[''],
|
||||
@ -192,7 +192,7 @@ apiLoadFinish: boolean = false;
|
||||
return this._formBuilder.group({
|
||||
supplier_name: [data.supplier_name, Validators.compose([Validators.required])],
|
||||
contact_person: [data.contact_person, Validators.compose([Validators.required])],
|
||||
mobile_number: [data.mobile_number, Validators.compose([Validators.required])],
|
||||
mobile_number: [data.mobile_number, Validators.compose([Validators.required, Validators.minLength(10), Validators.maxLength(10)])],
|
||||
payment_mode: [data.payment_mode, Validators.compose([Validators.required])],
|
||||
per_of_immediate_advance_payment:[data.per_of_immediate_advance_payment || ''],
|
||||
credit_period:[data.credit_period || ''],
|
||||
@ -284,6 +284,16 @@ apiLoadFinish: boolean = false;
|
||||
// this._addQuesFrom.reset();
|
||||
}
|
||||
|
||||
/** On Key Press Event For Mobile Number */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
|
||||
// {
|
||||
// 'main_raw_materials': 'sdkjfal',
|
||||
// 'supplier_details' ; [
|
||||
|
||||
@ -31,9 +31,12 @@
|
||||
<mat-list-item class="custm-list-item" (click)="OnSelectDirectForms(formButton)" style="background-color:#e0e0e0">
|
||||
<span class="mt-0">{{ (formButton.form_name.length>17)? (formButton.form_name | slice:0:17)+'..':(formButton.form_name) }}</span>
|
||||
</mat-list-item>
|
||||
|
||||
|
||||
</mat-list>
|
||||
<!--<mat-list>-->
|
||||
<!--<mat-list-item (click)="OnSelectDirectForms(rentalDetail)" style="background-color:#e0e0e0">-->
|
||||
<!--<span class="mt-0">{{rentalDetail.form_name}}</span>-->
|
||||
<!--</mat-list-item>-->
|
||||
<!--</mat-list>-->
|
||||
|
||||
</mat-sidenav>
|
||||
<mat-toolbar color="primary" fxHide="false" fxHide.gt-sm>
|
||||
@ -407,7 +410,7 @@
|
||||
</ng-container>
|
||||
<ng-container *ngSwitchCase="7">
|
||||
<!--<p>Banking details</p>-->
|
||||
<app-banking-details [pdid]="startPD" ></app-banking-details>
|
||||
<app-banking-details [pdid]="startPD" [pd_all_details]="pdFullDetails" ></app-banking-details>
|
||||
</ng-container>
|
||||
<ng-container *ngSwitchCase="8">
|
||||
<app-current-loan [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-current-loan>
|
||||
@ -433,9 +436,12 @@
|
||||
<ng-container *ngSwitchCase="15">
|
||||
<app-lender-representative [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-lender-representative>
|
||||
</ng-container>
|
||||
|
||||
<ng-container *ngSwitchCase="17">
|
||||
<app-rental-info [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-rental-info>
|
||||
</ng-container>
|
||||
</ng-container>
|
||||
</div>
|
||||
|
||||
<!-- end form based questions -->
|
||||
|
||||
</figure>
|
||||
|
||||
@ -29,6 +29,7 @@ export class StartPdComponent implements OnInit, OnDestroy {
|
||||
answerList: any = [];
|
||||
ansPDList: any = [];
|
||||
relationDetails: any = [1];
|
||||
rentalDetail: any = { form_id: "16", form_name: "Rental Information", isAnswered: true}
|
||||
// errorMessage:any;
|
||||
// selectedCategory:any=[];
|
||||
// categoryList: any=[];
|
||||
@ -294,6 +295,7 @@ pdFullDetails:any=[];
|
||||
this.pdMasterList=data.records.pdmaster_details;
|
||||
this.categoryList=data.records.question_answers;
|
||||
this.categoryFormButtons = data.records.template_forms;
|
||||
console.log('formButtons', this.categoryFormButtons);
|
||||
let filterApplicantName= data.records.pdapplicants_detials.filter(item => item.applicant_type == 1);
|
||||
this.mainApplicantName = filterApplicantName[0].applicant_name;
|
||||
this.currentPDStatus = data.records.pdmaster_details.pd_status;
|
||||
@ -625,6 +627,7 @@ pdFullDetails:any=[];
|
||||
OnSelectDirectForms(details: any) {
|
||||
this.formsCategoryEnable = true;
|
||||
this.selectedFormsCategory = details;
|
||||
console.log('select..', this.selectedFormsCategory);
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -13,11 +13,11 @@
|
||||
|
||||
<div *ngIf="pdCentralOfficerList.length > 0" >
|
||||
<div fxLayout="row wrap" fxFlex="100%">
|
||||
<div fxLayout="row wrap" fxFlex="33.33%" *ngFor="let officer of pdCentralOfficerList; ">
|
||||
<div fxLayout="row wrap" fxFlex="22%" *ngFor="let officer of pdCentralOfficerList; ">
|
||||
<mat-card fxFlex="100%">
|
||||
<mat-card-content style="text-align:center">
|
||||
<mat-radio-button [value]="officer" (change)="selectPdOfficer(officer)"></mat-radio-button>
|
||||
<img [src]="officer.profile_url ||'https://image.ibb.co/mGjZB9/usernew.png'" alt="No Image" style="border-radius:50%;width:50%"><br>
|
||||
<img [src]="officer.profile_url ||'https://image.ibb.co/mGjZB9/usernew.png'" alt="No Image" style="border-radius:50%;width:100px;height:100px;"><br>
|
||||
<span>{{officer.first_name}}</span>
|
||||
<br>
|
||||
<span>{{officer.mobile_no}}</span><br>
|
||||
|
||||
@ -12,6 +12,9 @@
|
||||
<button *ngIf="master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.COMPLETED && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master)"><mat-icon>verified_user</mat-icon></button>
|
||||
<button *ngIf="master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.COMPLETED && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master)"><mat-icon>schedule</mat-icon></button>
|
||||
<button *ngIf="master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.TRIGGERED && currentPDStatus!=pdStatusCheck.DRAFT" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(viewID)"><mat-icon>question_answer</mat-icon></button>
|
||||
|
||||
<button *ngIf="master.pd_type_name && currentPDStatus===pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="PD Report" matTooltipPosition="above" (click)="getPDIDReport(viewID)"><mat-icon>ballot</mat-icon></button>
|
||||
|
||||
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" (click)="loadPdListCompoent()"><mat-icon>close</mat-icon></button>
|
||||
<br>
|
||||
<!-- <span *ngIf="master.pd_allocated_to" style="color:red;text-align:left" class="fa-1x fa fa-user-secret" matTooltip="PD Officer"
|
||||
|
||||
@ -170,6 +170,11 @@ export class ViewPdComponent implements OnInit, OnDestroy {
|
||||
this.router.navigate([ '../../startpd',pdID], { relativeTo: this.route });
|
||||
}
|
||||
|
||||
getPDIDReport(pdID:any) {
|
||||
this.destroyType=3;
|
||||
this.router.navigate([ '../../pdRecord',pdID], { relativeTo: this.route });
|
||||
}
|
||||
|
||||
// updateViewComponent(editBack:string) {
|
||||
|
||||
// if(editBack=='1'){
|
||||
|
||||
@ -9,7 +9,7 @@ import {
|
||||
MatProgressBarModule, MatDialogModule, MatSortModule,
|
||||
MatToolbarModule, MatSelectModule, MatListModule, MatGridListModule, MatTabsModule, MatCheckboxModule,
|
||||
MatBadgeModule, MatExpansionModule, MatStepperModule, MatSidenavModule, MatMenuModule, MatButtonToggleModule,
|
||||
MatAutocompleteModule
|
||||
MatAutocompleteModule, MatDatepickerModule
|
||||
} from '@angular/material';
|
||||
import {MatSlideToggleModule} from '@angular/material/slide-toggle';
|
||||
import {FormsModule, ReactiveFormsModule} from '@angular/forms';
|
||||
@ -63,6 +63,11 @@ import { LenderRepresentativeComponent } from './list-pd/start-pd/forms/lender-r
|
||||
|
||||
import { TelePdAllocationComponent } from './list-pd/tele-pd-allocation/tele-pd-allocation.component';
|
||||
|
||||
import { PdReportComponent } from './list-pd/pd-report/pd-report.component';
|
||||
|
||||
import {RentalInfoComponent} from "./list-pd/start-pd/forms/rental-info/rental-info.component";
|
||||
|
||||
|
||||
/**
|
||||
* Custom angular notifier options
|
||||
*/
|
||||
@ -135,7 +140,7 @@ const pdCustomNotifierOptions: NotifierOptions = {
|
||||
// AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}), OwlDateTimeModule,
|
||||
// OwlNativeDateTimeModule,
|
||||
// ],
|
||||
declarations: [TelePdAllocationComponent, FinancialInfoComponent, BusinessInfoComponent, EmploymentInfoComponent, StockComponent, BankingDetailsComponent, ListPdComponent, FamilyDetailsComponent, AddressComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, CurrentLoanComponent, AssetsInfoComponent, LoanDetailsComponent, OtherIncomeComponent, SupplierInfoComponent, PersonalInfoComponent, LenderRepresentativeComponent],
|
||||
declarations: [RentalInfoComponent, TelePdAllocationComponent, FinancialInfoComponent, BusinessInfoComponent, EmploymentInfoComponent, StockComponent, BankingDetailsComponent, ListPdComponent, FamilyDetailsComponent, AddressComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, CurrentLoanComponent, AssetsInfoComponent, LoanDetailsComponent, OtherIncomeComponent, SupplierInfoComponent, PersonalInfoComponent, LenderRepresentativeComponent, PdReportComponent],
|
||||
|
||||
// exports: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, CompletedPdComponent, QcCompletedPdComponent],
|
||||
// providers: [PdTrigerService, GetGeometricLocationService],
|
||||
@ -160,7 +165,8 @@ const pdCustomNotifierOptions: NotifierOptions = {
|
||||
ReactiveFormsModule,
|
||||
FileUploadModule,
|
||||
TreeModule,
|
||||
MatDialogModule,MatSortModule,
|
||||
MatDatepickerModule,
|
||||
MatDialogModule,MatSortModule,
|
||||
NgxMatSelectSearchModule,MatTooltipModule, MatExpansionModule,
|
||||
AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}),OwlDateTimeModule,
|
||||
OwlNativeDateTimeModule,
|
||||
|
||||
@ -6,6 +6,7 @@ import { MapPdViewComponent } from './list-pd/map-pd-view/map-pd-view.component'
|
||||
import { AddPdComponent } from '../manage-pd/list-pd/add-pd/add-pd.component';
|
||||
import { ViewPdComponent } from '../manage-pd/list-pd/view-pd/view-pd.component';
|
||||
import { StartPdComponent } from './list-pd/start-pd/start-pd.component';
|
||||
import { PdReportComponent } from './list-pd/pd-report/pd-report.component';
|
||||
/*
|
||||
* manage pd router
|
||||
*/
|
||||
@ -14,33 +15,37 @@ const routes: Routes = [
|
||||
path: '',
|
||||
component: ManagePdComponent,
|
||||
children: [
|
||||
{
|
||||
path: '',
|
||||
pathMatch: 'full',
|
||||
redirectTo: 'pdlist'
|
||||
},{
|
||||
path: 'pdlist',
|
||||
component: ListPdComponent,
|
||||
children: [
|
||||
{
|
||||
path: 'pdmaplist',
|
||||
component: MapPdViewComponent,
|
||||
},
|
||||
{
|
||||
{
|
||||
path: '',
|
||||
pathMatch: 'full',
|
||||
redirectTo: 'pdlist'
|
||||
}, {
|
||||
path: 'pdlist',
|
||||
component: ListPdComponent,
|
||||
children: [
|
||||
{
|
||||
path: 'pdmaplist',
|
||||
component: MapPdViewComponent,
|
||||
},
|
||||
{
|
||||
path: 'addpd',
|
||||
component: AddPdComponent,
|
||||
},
|
||||
{
|
||||
path: 'viewpd/:pdid',
|
||||
component: ViewPdComponent,
|
||||
},
|
||||
{
|
||||
path: 'startpd/:pdid',
|
||||
component: StartPdComponent,
|
||||
},
|
||||
{
|
||||
path: 'viewpd/:pdid',
|
||||
component: ViewPdComponent,
|
||||
},
|
||||
{
|
||||
path: 'startpd/:pdid',
|
||||
component: StartPdComponent,
|
||||
},
|
||||
{
|
||||
path: 'pdRecord/:pdid',
|
||||
component: PdReportComponent,
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
]
|
||||
}
|
||||
];
|
||||
|
||||
|
||||
@ -272,6 +272,16 @@ getPDFormDetailsWithID(pdID, formID ):Observable<any> {
|
||||
)
|
||||
}
|
||||
|
||||
|
||||
// get Pd Final report Question Answer
|
||||
|
||||
getPdFinalReportDetails(pdId: number) {
|
||||
return this._http.post<any>(this.apiUrl+"getFinalPDReportQuestions",{"pd_id":pdId})
|
||||
.pipe(
|
||||
catchError(this.handleError('operation', []))
|
||||
)
|
||||
}
|
||||
|
||||
// private handleError<T>(operation = 'operation', result?: T) {
|
||||
// return (error: any): Observable<T> => {
|
||||
// return of(result as T);
|
||||
|
||||
@ -1,14 +1,4 @@
|
||||
<mat-card-content>
|
||||
<!-- <div style="text-align: right;">
|
||||
<button mat-raised-button color="primary" (click)="addPDAllocationType()" > + Add PDAllocationType</button> -->
|
||||
<!-- displayedColumns = ['','fk_pd_status_id',
|
||||
'sms_lender','sms_pdofficer','sms_pdincharge',
|
||||
'mail_lender', 'mail_pdincharge','mail_pdofficer'];
|
||||
</div>
|
||||
<br> -->
|
||||
<!-- <div *ngIf="loader">
|
||||
<mat-progress-bar mode="indeterminate" color="accent" class="mb-1"></mat-progress-bar>
|
||||
</div> <br> -->
|
||||
<div *ngIf="!noRecordFound" class="filter-container mat-elevation-z8">
|
||||
<!-- <div class="filter-header">
|
||||
<mat-form-field>
|
||||
@ -37,7 +27,7 @@
|
||||
|
||||
<ng-container matColumnDef="pd_status_name">
|
||||
<mat-header-cell *matHeaderCellDef mat-sort-header>Status </mat-header-cell>
|
||||
<mat-cell *matCellDef="let row"> {{row.pd_status_name}} </mat-cell>
|
||||
<mat-cell *matCellDef="let row"> {{row.pd_status}} </mat-cell>
|
||||
<!-- <mat-checkbox [checked]="row.isPublish"></mat-checkbox> -->
|
||||
</ng-container>
|
||||
|
||||
|
||||
@ -79,7 +79,8 @@ export class PdNotificationListComponent implements OnInit {
|
||||
|
||||
//To get data for listing
|
||||
getPdNotification() {
|
||||
this._MastersService.getAllPDNotification().subscribe(
|
||||
//this._MastersService.getAllPDNotification().subscribe(
|
||||
this._MastersService.getAllMasterData('PDNOTIFICATION').subscribe(
|
||||
data => {
|
||||
// console.log(data);
|
||||
// console.log(data.status);
|
||||
|
||||
@ -6,24 +6,26 @@ import { FormBuilder,
|
||||
import { MatDialog,
|
||||
MatDialogRef,
|
||||
MAT_DIALOG_DATA } from '@angular/material';
|
||||
|
||||
/** Service */
|
||||
import { MastersService } from '../../service/masters/masters.service';
|
||||
import { PdTeamService } from '../../service/masters/pd-team.service';
|
||||
import { NotifierService } from 'angular-notifier';
|
||||
import { Router } from '@angular/router';
|
||||
import { empty } from 'rxjs';
|
||||
|
||||
import { Router } from '@angular/router';
|
||||
import { empty } from 'rxjs';
|
||||
/**sweet alert */
|
||||
import Swal from 'sweetalert2';
|
||||
|
||||
@Component({
|
||||
selector: 'app-pd-team-add',
|
||||
templateUrl: './pd-team-add.component.html',
|
||||
styleUrls: ['./pd-team-add.component.scss']
|
||||
})
|
||||
|
||||
export class PdTeamAddComponent implements OnInit {
|
||||
|
||||
public _pdTeamForm: FormGroup;
|
||||
private notifier: NotifierService;
|
||||
|
||||
color = 'primary';
|
||||
errorMessage:string;
|
||||
|
||||
@ -42,17 +44,16 @@ selectedProductDatas : any=[];
|
||||
selectedSegmentDatas : any=[];
|
||||
|
||||
constructor(private _formBuilder: FormBuilder,
|
||||
private _notifier: NotifierService,
|
||||
private _pdTeamService: PdTeamService,
|
||||
private _router: Router,
|
||||
private _masterService: MastersService)
|
||||
{
|
||||
this.notifier = _notifier;
|
||||
|
||||
}
|
||||
|
||||
|
||||
ngOnInit() {
|
||||
//console.log(this.notifier);
|
||||
|
||||
this.PdTeamFormDatas();
|
||||
|
||||
/** For Checking City Validation datas - checking purpose - Already exists are not */
|
||||
@ -143,15 +144,16 @@ onSubmit() {
|
||||
this._pdTeamService.addPdTeamDetail(this._pdTeamForm.value).subscribe(
|
||||
dataresult => {
|
||||
if(dataresult.dataStatus == true) {
|
||||
this.notifier.notify('success', 'Record Saved Successfully.!');
|
||||
|
||||
Swal('Record Saved Successfully.!','success');
|
||||
this._router.navigate(['/setting/pdteam/pdteamlist']);
|
||||
|
||||
|
||||
}
|
||||
else {
|
||||
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
|
||||
Swal('Wrong.!');
|
||||
//alert('Some Thing Wents Wrong Try Again !');
|
||||
|
||||
//Swal('Wrong.!');
|
||||
Swal('Some Thing Wents Wrong Try Again !');
|
||||
//this.errorMessage = "Some Thing Wents Wrong Try Again !";
|
||||
}
|
||||
});
|
||||
@ -225,13 +227,12 @@ onChangeEntityId($event){
|
||||
}
|
||||
|
||||
if($event.isUserInput != false){
|
||||
//console.log(this.CityValidation,lenderId);
|
||||
//console.log(this.CityValidation,lenderId);
|
||||
this._pdTeamService.getLenderData(lenderId).subscribe(
|
||||
dataresult => {
|
||||
|
||||
if(dataresult.dataStatus == true) {
|
||||
this.CityValidation = dataresult.records;
|
||||
console.log(this.CityValidation);
|
||||
//console.log(this.CityValidation);
|
||||
}
|
||||
}, error => this.errorMessage = <any> error);
|
||||
}
|
||||
@ -263,7 +264,7 @@ onChangeCityDatas($event){
|
||||
mycheck = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if(mycheck == 0){
|
||||
this.selectedCityDatas.push(cityName.name);
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<div style="max-height: 580px;">
|
||||
<div style="max-height: 580px;" *ngIf="apiFinishLoad">
|
||||
<form [formGroup]="_pdTeamForm" (submit)="onSubmit()">
|
||||
<mat-card style="padding: 6px;">
|
||||
<div class="ml-xs mr-xs" style="width: 100%;" fxLayout="row" fxLayoutAlign="center">
|
||||
|
||||
@ -6,9 +6,9 @@ import { FormBuilder,
|
||||
/** Service */
|
||||
import { MastersService } from '../../service/masters/masters.service';
|
||||
import { PdTeamService } from '../../service/masters/pd-team.service';
|
||||
import { NotifierService } from 'angular-notifier';
|
||||
/** Here this component is like as a partent component */
|
||||
import { PdTeamListComponent } from './../pd-team-list/pd-team-list.component';
|
||||
import { Router,ActivatedRoute } from '@angular/router';
|
||||
|
||||
/**sweet alert */
|
||||
import Swal from 'sweetalert2';
|
||||
@Component({
|
||||
@ -22,14 +22,15 @@ export class PdTeamEditComponent implements OnInit {
|
||||
public _pdTeamForm: FormGroup;
|
||||
public submitted = false;
|
||||
public listView: any = true;
|
||||
private notifier: NotifierService;
|
||||
color = 'primary';
|
||||
errorMessage:string;
|
||||
lenderId:any;
|
||||
teamID: any;
|
||||
apiFinishLoad: boolean;
|
||||
|
||||
//This "childMessage" to get the function or data from partent component
|
||||
@Input() public childMessage: any;
|
||||
|
||||
//@Input() public childMessage: any;
|
||||
public childMessage: any[];
|
||||
//This Type Of Array Declaration for select dropdown to list the datas
|
||||
citydatas: any[];
|
||||
lenderdatas: any[];
|
||||
@ -51,27 +52,33 @@ export class PdTeamEditComponent implements OnInit {
|
||||
selectedCityDatas : any=[];
|
||||
selectedProductDatas : any=[];
|
||||
selectedSegmentDatas : any=[];
|
||||
|
||||
//EditDatasforFormGroup: any;
|
||||
|
||||
constructor(private _formBuilder: FormBuilder,
|
||||
private _notifier: NotifierService,
|
||||
private _router: Router,private route: ActivatedRoute,
|
||||
private _pdTeamService: PdTeamService,
|
||||
private _PdTeamListComponent: PdTeamListComponent,
|
||||
private _masterService: MastersService) {
|
||||
this.notifier = _notifier;
|
||||
|
||||
}
|
||||
|
||||
/** Onready function */
|
||||
ngOnInit() {
|
||||
//console.log(atob(this.route.snapshot.params['id']));
|
||||
this.teamID = atob(this.route.snapshot.params['id']);
|
||||
//console.log(this.teamID);
|
||||
|
||||
this._pdTeamForm = this._formBuilder.group({
|
||||
pdteam_id: ['', Validators.compose([Validators.required])],
|
||||
team_name: ['', Validators.compose([Validators.required])],
|
||||
fk_lender: ['', Validators.compose([Validators.required])],
|
||||
fk_city: ['', Validators.compose([Validators.required])],
|
||||
fk_customer_segment: ['', Validators.compose([Validators.required])],
|
||||
fk_product:['', Validators.compose([Validators.required])],
|
||||
});
|
||||
|
||||
this.PdTeamFormDatas();
|
||||
//console.log('hai I am Child This onready function',this.childMessage);
|
||||
// this._pdTeamService.getAllPDTeamWithPDTeamID(this.childMessage).subscribe(
|
||||
// dataresult => {
|
||||
// console.log(dataresult);
|
||||
// this.EditDatasforFormGroup = dataresult.records;
|
||||
// console.log(this.EditDatasforFormGroup);
|
||||
// });
|
||||
|
||||
/** For Checking City Validation datas - checking purpose - Already exists are not */
|
||||
this._pdTeamService.getAllPdTeamCityMapping().subscribe(
|
||||
dataresult => {
|
||||
@ -117,18 +124,30 @@ export class PdTeamEditComponent implements OnInit {
|
||||
this.customerSegmentdatas = this.customerSegmentdatas.filter(segment=>segment.isactive == 1 );
|
||||
}
|
||||
}, error => this.errorMessage = <any> error);
|
||||
this.lenderId = this._pdTeamForm.value['fk_lender'];
|
||||
this._pdTeamService.getLenderData(this.lenderId).subscribe(
|
||||
dataresult => {
|
||||
if(dataresult.dataStatus == true){
|
||||
this.CityValidation = dataresult.records;
|
||||
}
|
||||
}, error => this.errorMessage = <any> error);
|
||||
|
||||
// this.lenderId = this._pdTeamForm.value.fk_lender;
|
||||
// console.log('form data',this._pdTeamForm);
|
||||
// console.log('form data Particular Value',this._pdTeamForm.value.fk_lender);
|
||||
// this._pdTeamService.getLenderData(this.lenderId).subscribe(
|
||||
// dataresult => {
|
||||
// if(dataresult.dataStatus == true){
|
||||
// this.CityValidation = dataresult.records;
|
||||
// }
|
||||
// });
|
||||
|
||||
}
|
||||
|
||||
/** Pd Team Form Datas */
|
||||
PdTeamFormDatas(){
|
||||
this._pdTeamService.getAllPDTeamWithPDTeamID(this.teamID).subscribe(
|
||||
dataresult => {
|
||||
//console.log('Response Data',dataresult);
|
||||
if(dataresult.status == 200)
|
||||
this.childMessage = dataresult.records;
|
||||
|
||||
// console.log('Record Data',dataresult.records);
|
||||
// console.log('sdafd',this.childMessage[0].team_name);
|
||||
|
||||
//console.log('Patricular pdteam_id Datas',this.childMessage);
|
||||
|
||||
// let PdTeamcity:any = [];
|
||||
@ -142,7 +161,7 @@ export class PdTeamEditComponent implements OnInit {
|
||||
let PdTeamCity:any = [];
|
||||
for(let ptc of this.childMessage[0].CITYMAP){
|
||||
PdTeamCity.push(ptc.city_id);
|
||||
}
|
||||
}
|
||||
|
||||
let PdTeamProduct:any = [];
|
||||
// for(let ptp of this.childMessage[0].PRODUCTS){
|
||||
@ -174,16 +193,36 @@ export class PdTeamEditComponent implements OnInit {
|
||||
}
|
||||
}, error => this.errorMessage = <any> error);
|
||||
|
||||
this._pdTeamForm = this._formBuilder.group({
|
||||
pdteam_id: [this.childMessage[0].pdteam_id, Validators.compose([Validators.required])],
|
||||
team_name: [this.childMessage[0].team_name, Validators.compose([Validators.required])],
|
||||
fk_lender: [this.childMessage[0].fk_lender_id, Validators.compose([Validators.required])],
|
||||
fk_city: [PdTeamCity, Validators.compose([Validators.required])],
|
||||
fk_customer_segment: [this.DBCustomerSegmentDatas, Validators.compose([Validators.required])],
|
||||
fk_product:[this.DBProductDatas, Validators.compose([Validators.required])],
|
||||
this._pdTeamForm.controls['pdteam_id'].setValue(this.childMessage[0].pdteam_id);
|
||||
this._pdTeamForm.controls['team_name'].setValue(this.childMessage[0].team_name);
|
||||
this._pdTeamForm.controls['fk_lender'].setValue(this.childMessage[0].fk_lender_id);
|
||||
this._pdTeamForm.controls['fk_city'].setValue(PdTeamCity);
|
||||
this._pdTeamForm.controls['fk_customer_segment'].setValue(this.DBCustomerSegmentDatas);
|
||||
this._pdTeamForm.controls['fk_product'].setValue(this.DBProductDatas);
|
||||
this.apiFinishLoad = true;
|
||||
|
||||
|
||||
// this.lenderId = this._pdTeamForm.get('fk_customer_segment').value;
|
||||
// console.log('asf',this.lenderId);
|
||||
// console.log('form data',this._pdTeamForm);
|
||||
|
||||
this._pdTeamService.getLenderData(this.childMessage[0].fk_lender_id).subscribe(
|
||||
dataresult => {
|
||||
if(dataresult.dataStatus == true){
|
||||
this.CityValidation = dataresult.records;
|
||||
}
|
||||
});
|
||||
|
||||
// this._pdTeamForm = this._formBuilder.group({
|
||||
// pdteam_id: [this.childMessage[0].pdteam_id, Validators.compose([Validators.required])],
|
||||
// team_name: [this.childMessage[0].team_name, Validators.compose([Validators.required])],
|
||||
// fk_lender: [this.childMessage[0].fk_lender_id, Validators.compose([Validators.required])],
|
||||
// fk_city: [PdTeamCity, Validators.compose([Validators.required])],
|
||||
// fk_customer_segment: [this.DBCustomerSegmentDatas, Validators.compose([Validators.required])],
|
||||
// fk_product:[this.DBProductDatas, Validators.compose([Validators.required])],
|
||||
// });
|
||||
|
||||
});
|
||||
|
||||
|
||||
}
|
||||
|
||||
/** convenience getter for easy access to form fields */
|
||||
@ -191,7 +230,7 @@ export class PdTeamEditComponent implements OnInit {
|
||||
|
||||
/** For Popup Close Button */
|
||||
onNoClick(): void {
|
||||
this._PdTeamListComponent.changeListView();
|
||||
this._router.navigate(['/setting/pdteam/pdteamlist']);
|
||||
}
|
||||
|
||||
/** To Reset Popup Data For Add*/
|
||||
@ -225,9 +264,9 @@ export class PdTeamEditComponent implements OnInit {
|
||||
this._pdTeamService.editPdTeamchildDetails(ActiveDatas,'PDTEAMCUSTOMERSEGMENT')
|
||||
.subscribe(dataresult=>{
|
||||
if (dataresult.dataStatus == true){
|
||||
//alert('InActive Changes Done in cs');
|
||||
let index = this.selectedSegmentDatas.indexOf(CustomerSegmentName.name);
|
||||
this.selectedSegmentDatas.splice(index,1);
|
||||
// alert('InActive Changes Done in cs');
|
||||
// let index = this.selectedSegmentDatas.indexOf(CustomerSegmentName.name);
|
||||
// this.selectedSegmentDatas.splice(index,1);
|
||||
|
||||
}else{}
|
||||
});
|
||||
@ -326,6 +365,7 @@ export class PdTeamEditComponent implements OnInit {
|
||||
else if($event.source._selected == false ){
|
||||
|
||||
console.log('Return False for city Selection Data');
|
||||
|
||||
let index = this.selectedCityDatas.indexOf(cityName.name);
|
||||
this.selectedCityDatas.splice(index,1);
|
||||
|
||||
@ -336,16 +376,20 @@ export class PdTeamEditComponent implements OnInit {
|
||||
dataresult => {
|
||||
if (dataresult.dataStatus == true) {
|
||||
data = dataresult.records;
|
||||
|
||||
//console.log('data',data);
|
||||
data = data.filter(pdteamcity=>pdteamcity.fk_city_id == $event.source.value);
|
||||
data = data.filter(pdteamcity=>pdteamcity.fk_pdteam_id == this._pdTeamForm.value.pdteam_id)[0];
|
||||
//console.log(data.pdteam_city_id);
|
||||
// console.log('cityID',data.pdteam_city_id);
|
||||
// console.log('Event value',$event.source.value);
|
||||
|
||||
this._pdTeamService.deletePDteamCity($event.source.value).subscribe(data=>{
|
||||
if (dataresult.dataStatus == true) {//alert('Deleted');
|
||||
let index = this.selectedCityDatas.indexOf(cityName.name);
|
||||
this.selectedCityDatas.splice(index,1);
|
||||
//this._PdTeamListComponent.changeListView();
|
||||
}
|
||||
// console.log('Response Data',data);
|
||||
// if (dataresult.dataStatus == true) {
|
||||
// alert('Deleted');
|
||||
// // let index = this.selectedCityDatas.indexOf(cityName.name);
|
||||
// // this.selectedCityDatas.splice(index,1);
|
||||
// }
|
||||
});
|
||||
}
|
||||
}, error => this.errorMessage = <any> error);
|
||||
@ -378,17 +422,17 @@ export class PdTeamEditComponent implements OnInit {
|
||||
dataresult => {
|
||||
if (dataresult.dataStatus == true) {
|
||||
data = dataresult.records;
|
||||
console.log('data',data);
|
||||
//console.log('data',data);
|
||||
data = data.filter(pdteamproduct=>pdteamproduct.fk_product_id == $event.source.value && pdteamproduct.isactive == 1);
|
||||
data = data.filter(pdteamcity=>pdteamcity.fk_pdteam_id == this._pdTeamForm.value.pdteam_id)[0];
|
||||
console.log(data.pdteam_city_id);
|
||||
//console.log(data.pdteam_city_id);
|
||||
let ActiveDatas = { 'pdteam_product_id':data.pdteam_product_id,'isactive': '0'} ;
|
||||
this._pdTeamService.editPdTeamchildDetails(ActiveDatas,'PDTEAMPRODUCT')
|
||||
.subscribe(dataresult=>{
|
||||
if (dataresult.dataStatus == true){
|
||||
//alert('InActive Changes Done in product');
|
||||
let index = this.selectedProductDatas.indexOf(productName.name);
|
||||
this.selectedProductDatas.splice(index,1);
|
||||
// alert('InActive Changes Done in product');
|
||||
// let index = this.selectedProductDatas.indexOf(productName.name);
|
||||
// this.selectedProductDatas.splice(index,1);
|
||||
}
|
||||
else{
|
||||
//alert("Sorry Try Again !");
|
||||
@ -411,11 +455,13 @@ export class PdTeamEditComponent implements OnInit {
|
||||
dataresult=>{
|
||||
if (dataresult.dataStatus == true){
|
||||
Swal("Data Edited Successfully");
|
||||
// this.notifier.notify('success', 'Record Edited Successfully.!');
|
||||
|
||||
this._router.navigate(['/setting/pdteam/pdteamlist']);
|
||||
|
||||
}
|
||||
else{
|
||||
Swal("SomeThing Wents Wrong Try Again !");
|
||||
// this.notifier.notify('warning', 'SomeThing Wents Wrong Try Again !');
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
@ -1,4 +1,4 @@
|
||||
<div *ngIf="listView">
|
||||
<!-- <div *ngIf="listView"> -->
|
||||
<mat-card>
|
||||
<div fxLayout="row" fxLayoutAlign="start center" class="mb-1">
|
||||
<div class="ml-xs mr-xs" style="width: 30%;">
|
||||
@ -57,7 +57,7 @@
|
||||
<mat-header-cell *matHeaderCellDef> Action </mat-header-cell>
|
||||
<mat-cell *matCellDef="let row">
|
||||
|
||||
<button mat-icon-button [color]="color" class="hover-icon" matTooltip="Edit" matTooltipPosition="above" (click)="editPdTeam(row.pdteam_id)"><mat-icon>edit</mat-icon></button>
|
||||
<button mat-icon-button [color]="color" class="hover-icon" matTooltip="Edit" matTooltipPosition="above" (click)="toEditPdTeam(row.pdteam_id)"><mat-icon>edit</mat-icon></button>
|
||||
|
||||
</mat-cell>
|
||||
</ng-container>
|
||||
@ -71,8 +71,7 @@
|
||||
</div>
|
||||
</mat-card-content>
|
||||
</mat-card>
|
||||
</div>
|
||||
<!-- </div> -->
|
||||
<!--<div *ngIf="!listView">
|
||||
<app-pd-team-edit [childMessage]="parentMessage"></app-pd-team-edit>
|
||||
</div>-->
|
||||
<notifier-container></notifier-container>
|
||||
@ -9,8 +9,7 @@ MatTableDataSource } from '@angular/material';
|
||||
import { MastersService } from '../../service/masters/masters.service';
|
||||
import { PdTeamService } from '../../service/masters/pd-team.service';
|
||||
|
||||
import { NotifierService } from 'angular-notifier';
|
||||
import { Router } from '@angular/router';
|
||||
import { Router,ActivatedRoute } from '@angular/router';
|
||||
/**sweet alert */
|
||||
import Swal from 'sweetalert2';
|
||||
|
||||
@ -38,11 +37,9 @@ export class PdTeamListComponent implements OnInit {
|
||||
userData = null;
|
||||
noRecordFound: boolean = false;
|
||||
|
||||
private notifier: NotifierService;
|
||||
public listView: any = true;
|
||||
|
||||
public dataLength: number;
|
||||
public dataSource = new MatTableDataSource();
|
||||
public parentMessage: any = [];
|
||||
|
||||
displayedColumns = ['serialno','team_name','lender_name','actions','isactive'];
|
||||
|
||||
@ -50,36 +47,27 @@ export class PdTeamListComponent implements OnInit {
|
||||
@ViewChild(MatSort) sort: MatSort;
|
||||
|
||||
|
||||
constructor(notifier: NotifierService,
|
||||
private router: Router,
|
||||
constructor(
|
||||
private router: Router,private route: ActivatedRoute,
|
||||
private _MasterService: MastersService,
|
||||
private _PdTeamService: PdTeamService) {
|
||||
this.getPdTeam();
|
||||
this.notifier = notifier;
|
||||
}
|
||||
|
||||
ngOnInit() { this.getPdTeam(); }
|
||||
|
||||
/** To edit data */
|
||||
editPdTeam(detail){
|
||||
|
||||
this._PdTeamService.getAllPDTeamWithPDTeamID(detail).subscribe(
|
||||
dataresult => {
|
||||
this.parentMessage = dataresult;
|
||||
this.parentMessage = this.parentMessage.records;
|
||||
this.listView = false;
|
||||
|
||||
});
|
||||
}
|
||||
/**To Manage Team */
|
||||
managepdteam(){
|
||||
this.router.navigate(['/setting/pdteam/pdteammanage']);
|
||||
}
|
||||
changeListView(){
|
||||
this.getPdTeam();
|
||||
this.listView = true;
|
||||
toEditPdTeam(pdteam_id){
|
||||
//this.router.navigate(['/setting/pdteam/editpdteam',pdteam_id]);
|
||||
console.log(btoa(pdteam_id));
|
||||
this.router.navigate(['/setting/pdteam/editpdteam',btoa(pdteam_id)]);
|
||||
}
|
||||
|
||||
/**To Manage Team */
|
||||
managepdteam(){
|
||||
this.router.navigate(['/setting/pdteam/pdteammanage']);
|
||||
}
|
||||
|
||||
/** To get data for listing */
|
||||
getPdTeam() {
|
||||
|
||||
|
||||
@ -15,7 +15,7 @@ export const PdTeamRoutes: Routes = [{
|
||||
path: 'addpdteam',
|
||||
component: PdTeamAddComponent
|
||||
},{
|
||||
path:'editpdteam',
|
||||
path:'editpdteam/:id',
|
||||
component:PdTeamEditComponent
|
||||
},{
|
||||
path:'pdteammanage',
|
||||
|
||||
@ -29,6 +29,7 @@ export class MastersService {
|
||||
|
||||
|
||||
// private apiUrl = "http://ssa.sineedge.com/sparqapi/api/";
|
||||
private apiUrll = 'http://localhost/sparqapi/api/';
|
||||
private apiUrl = environment.apiEndpoint;
|
||||
|
||||
|
||||
@ -260,18 +261,18 @@ editPDAllocationType(Records: any,MasterName:string): Observable<any> {
|
||||
}
|
||||
|
||||
|
||||
getAllPDNotification(): Observable<any> {
|
||||
// getAllPDNotification(): Observable<any> {
|
||||
|
||||
return this._http.get(this.apiUrl+'getPDNotificationsList')
|
||||
.pipe(
|
||||
catchError(this.handleError('role', []))
|
||||
)
|
||||
// return this._http.get(this.apiUrl+'getListOfCompany')
|
||||
// .pipe(
|
||||
// catchError(this.handleError('role', []))
|
||||
// )
|
||||
// return this._http.get(this.apiUrl+'getPDNotificationsList')
|
||||
// .pipe(
|
||||
// catchError(this.handleError('role', []))
|
||||
// )
|
||||
// // return this._http.get(this.apiUrl+'getListOfCompany')
|
||||
// // .pipe(
|
||||
// // catchError(this.handleError('role', []))
|
||||
// // )
|
||||
|
||||
}
|
||||
// }
|
||||
|
||||
|
||||
/**
|
||||
@ -302,7 +303,7 @@ editPDAllocationType(Records: any,MasterName:string): Observable<any> {
|
||||
|
||||
item.fk_updatedby = this._aws.getlocale();//to get user id for who is update the record
|
||||
item.updatedon = currentdate;//to get Current date and Time for when the Record is updated
|
||||
delete item.pd_status_name; // to delete the pd_status_name
|
||||
//delete item.pd_status_name; // to delete the pd_status_name
|
||||
delete item.serialno;
|
||||
});
|
||||
|
||||
|
||||
@ -55,12 +55,12 @@
|
||||
<div fxLayout="row" fxLayoutAlign="start center" class="mb-2">
|
||||
<mat-form-field dividerColor="primary" class="ml-xs mr-xs">
|
||||
<input matInput placeholder="Email Address" [formControl]="regForm.controls['email']" type="email" required>
|
||||
<mat-error *ngIf="regForm.controls['email'].hasError('required') && regForm.controls['email'].touched" class="mat-text-warn">email Address Required.</mat-error>
|
||||
<mat-error *ngIf="regForm.controls['email'].hasError('required') && regForm.controls['email'].touched" class="mat-text-warn">Email Address Required.</mat-error>
|
||||
<mat-error *ngIf="regForm.controls['email'].errors?.email && regForm.controls['email'].touched" class="mat-text-warn">Invalid Email Address.</mat-error>
|
||||
</mat-form-field>
|
||||
|
||||
<mat-form-field dividerColor="primary" class="ml-xs mr-xs">
|
||||
<input matInput placeholder="Phone Number" [formControl]="regForm.controls['phone']" type="number" required>
|
||||
<input matInput placeholder="Phone Number" [formControl]="regForm.controls['phone']" required (keypress)="keyPress($event)">
|
||||
<mat-error *ngIf="regForm.controls['phone'].hasError('required') && regForm.controls['phone'].touched" class="mat-text-warn">Phone Number Required.</mat-error>
|
||||
<mat-error *ngIf="regForm.controls['phone'].errors?.phone && regForm.controls['phone'].touched" class="mat-text-warn">Invalid Phone Number.</mat-error>
|
||||
|
||||
|
||||
@ -430,5 +430,14 @@ this.loader = true;
|
||||
delete this.users.localUserId;
|
||||
this.router.navigate(['setting/users/userlist']);
|
||||
}
|
||||
/** On Key Press Event For Numbers */
|
||||
keyPress(event: any) {
|
||||
const pattern = /[0-9]/;
|
||||
|
||||
let inputChar = String.fromCharCode(event.charCode);
|
||||
if (event.keyCode != 8 && !pattern.test(inputChar)) {
|
||||
event.preventDefault();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user