merge:kms

This commit is contained in:
gandhimathi 2018-11-26 16:02:32 +05:30
parent d38de2243e
commit 0a8685f13d
66 changed files with 1733 additions and 1260 deletions

View File

@ -4294,12 +4294,14 @@
"balanced-match": { "balanced-match": {
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"brace-expansion": { "brace-expansion": {
"version": "1.1.11", "version": "1.1.11",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"balanced-match": "^1.0.0", "balanced-match": "^1.0.0",
"concat-map": "0.0.1" "concat-map": "0.0.1"
@ -4314,17 +4316,20 @@
"code-point-at": { "code-point-at": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"concat-map": { "concat-map": {
"version": "0.0.1", "version": "0.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"console-control-strings": { "console-control-strings": {
"version": "1.1.0", "version": "1.1.0",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"core-util-is": { "core-util-is": {
"version": "1.0.2", "version": "1.0.2",
@ -4441,7 +4446,8 @@
"inherits": { "inherits": {
"version": "2.0.3", "version": "2.0.3",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"ini": { "ini": {
"version": "1.3.5", "version": "1.3.5",
@ -4453,6 +4459,7 @@
"version": "1.0.0", "version": "1.0.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"number-is-nan": "^1.0.0" "number-is-nan": "^1.0.0"
} }
@ -4467,6 +4474,7 @@
"version": "3.0.4", "version": "3.0.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"brace-expansion": "^1.1.7" "brace-expansion": "^1.1.7"
} }
@ -4474,12 +4482,14 @@
"minimist": { "minimist": {
"version": "0.0.8", "version": "0.0.8",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"minipass": { "minipass": {
"version": "2.2.4", "version": "2.2.4",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"safe-buffer": "^5.1.1", "safe-buffer": "^5.1.1",
"yallist": "^3.0.0" "yallist": "^3.0.0"
@ -4498,6 +4508,7 @@
"version": "0.5.1", "version": "0.5.1",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"minimist": "0.0.8" "minimist": "0.0.8"
} }
@ -4578,7 +4589,8 @@
"number-is-nan": { "number-is-nan": {
"version": "1.0.1", "version": "1.0.1",
"bundled": true, "bundled": true,
"dev": true "dev": true,
"optional": true
}, },
"object-assign": { "object-assign": {
"version": "4.1.1", "version": "4.1.1",
@ -4590,6 +4602,7 @@
"version": "1.4.0", "version": "1.4.0",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"wrappy": "1" "wrappy": "1"
} }
@ -4711,6 +4724,7 @@
"version": "1.0.2", "version": "1.0.2",
"bundled": true, "bundled": true,
"dev": true, "dev": true,
"optional": true,
"requires": { "requires": {
"code-point-at": "^1.0.0", "code-point-at": "^1.0.0",
"is-fullwidth-code-point": "^1.0.0", "is-fullwidth-code-point": "^1.0.0",

View File

@ -1,8 +1,6 @@
<div class="pad-wrap"> <div class="pad-wrap">
<!-- doughnut -->
<div fxFlex.gt-sm="100" fxFlex.gt-xs="100" fxFlex="100"> <div fxFlex.gt-sm="100" fxFlex.gt-xs="100" fxFlex="100">
<mat-card> <mat-card style="min-height: 110%;">
<mat-card-title> <mat-card-title>
<div fxFlex.gt-sm="25" fxFlex="100"> <div fxFlex.gt-sm="25" fxFlex="100">
{{dashboardTitle}} {{dashboardTitle}}
@ -16,7 +14,7 @@
<mat-form-field class="example-full-width"> <mat-form-field class="example-full-width">
<mat-select placeholder="City" [formControl]="myControl" multiple> <mat-select placeholder="City" [formControl]="myControl" multiple>
<mat-select-trigger style="color:#fff;"> <mat-select-trigger style="color:#fff;">
{{myControl.value ? myControl.value[0].name : ''}} {{myControl.value != null && myControl.value != '' ? myControl.value[0].name : ''}}
<span *ngIf="myControl.value?.length > 1" > <span *ngIf="myControl.value?.length > 1" >
(+{{myControl.value.length - 1}} {{myControl.value?.length === 2 ? 'other' : 'others'}}) (+{{myControl.value.length - 1}} {{myControl.value?.length === 2 ? 'other' : 'others'}})
</span> </span>
@ -32,7 +30,7 @@
<mat-form-field class="example-full-width"> <mat-form-field class="example-full-width">
<mat-select placeholder="Lender" [formControl]="myControl2" multiple> <mat-select placeholder="Lender" [formControl]="myControl2" multiple>
<mat-select-trigger style="color:#fff;"> <mat-select-trigger style="color:#fff;">
{{myControl2.value ? myControl2.value[0].short_name : ''}} {{myControl2.value != null && myControl2.value != '' ? myControl2.value[0].short_name : ''}}
<span *ngIf="myControl2.value?.length > 1" > <span *ngIf="myControl2.value?.length > 1" >
(+{{myControl2.value.length - 1}} {{myControl2.value?.length === 2 ? 'other' : 'others'}}) (+{{myControl2.value.length - 1}} {{myControl2.value?.length === 2 ? 'other' : 'others'}})
</span> </span>
@ -43,12 +41,13 @@
</mat-form-field> </mat-form-field>
</div> </div>
</mat-card-title>
</mat-card-title>
<!-- <pre> Full - {{doughnutChartDataForFullPD}} Smart -{{doughnutChartDataForSmartPD}} TELE -{{doughnutChartDataForTelePD}} </pre> -->
<mat-card-content> <mat-card-content>
<div fxLayout="row"> <div fxLayout="row" style="min-height:280px;">
<div fxFlex.gt-sm="30" fxFlex="100"> <div fxFlex.gt-sm="30" fxFlex="100" >
<canvas baseChart class="chart" <canvas baseChart class="chart" id="FullCanvas" name="FullCanvas"
height="280px" width="280px" height="280px" width="280px"
[data]="doughnutChartDataForFullPD" [data]="doughnutChartDataForFullPD"
[labels]="doughnutChartLabels" [labels]="doughnutChartLabels"
@ -58,10 +57,9 @@
[chartType]="doughnutChartType"></canvas> [chartType]="doughnutChartType"></canvas>
<div *ngIf="total1 != 0" class="donut-inner"><span>Full - {{total1}}</span></div> <div *ngIf="total1 != 0" class="donut-inner"><span>Full - {{total1}}</span></div>
</div> </div>
<div fxFlex.gt-sm="5" fxFlex="100">
</div> <div fxFlexOffset.gt-sm="5" fxFlex.gt-sm="30" fxFlex="100">
<div fxFlex.gt-sm="30" fxFlex="100"> <canvas baseChart class="chart" id="SmartCanvas" name="SmartCanvas"
<canvas baseChart class="chart"
height="280px" width="280px" height="280px" width="280px"
[data]="doughnutChartDataForSmartPD" [data]="doughnutChartDataForSmartPD"
[labels]="doughnutChartLabels" [labels]="doughnutChartLabels"
@ -71,10 +69,8 @@
[chartType]="doughnutChartType"></canvas> [chartType]="doughnutChartType"></canvas>
<div *ngIf="total2 != 0" class="donut-inner"><span>Smart - {{total2}}</span></div> <div *ngIf="total2 != 0" class="donut-inner"><span>Smart - {{total2}}</span></div>
</div> </div>
<div fxFlex.gt-sm="5" fxFlex="100"> <div fxFlexOffset.gt-sm="5" fxFlex.gt-sm="30" fxFlex="100">
</div> <canvas baseChart class="chart" id="TeleCanvas" name="TeleCanvas"
<div fxFlex.gt-sm="30" fxFlex="100">
<canvas baseChart class="chart"
height="280px" width="280px" height="280px" width="280px"
[data]="doughnutChartDataForTelePD" [data]="doughnutChartDataForTelePD"
[labels]="doughnutChartLabels" [labels]="doughnutChartLabels"
@ -85,11 +81,8 @@
<div *ngIf="total3 != 0" class="donut-inner"><span>Tele - {{total3}}</span></div> <div *ngIf="total3 != 0" class="donut-inner"><span>Tele - {{total3}}</span></div>
</div> </div>
</div> </div>
<div fxLayout="row" class="pt-3">
<div fxLayout="row"> <div fxFlex.gt-sm="100" fxFlex="100" style="text-align:center">
<div fxFlex.gt-sm="100" fxFlex="100" >
<br><br><br><br><br><br>
<ul class="lengend-list"> <ul class="lengend-list">
<li class="lengend-element"><span class="oval" style="background-color:#c1c1c1"> &nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp; Draft</li> <li class="lengend-element"><span class="oval" style="background-color:#c1c1c1"> &nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp; Draft</li>
<li class="lengend-element"><span class="oval" style="background-color:#f44336"> &nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp; Triggered</li> <li class="lengend-element"><span class="oval" style="background-color:#f44336"> &nbsp;&nbsp;&nbsp;&nbsp; </span>&nbsp; Triggered</li>

View File

@ -5,34 +5,17 @@ $p: 12px;
mat-card-title{ mat-card-title{
background-color:#E00201 !important; background-color:#E00201 !important;
color:#fff; color:#fff;
//padding-bottom: 1rem;
//margin-bottom: 0px;
} }
.mat-input-wrapper { .mat-input-wrapper {
background: #fff; background: #fff;
} }
// .example-form {
// min-width: 150px;
// max-width: 500px;
// width: 95%;
// }
li li
{ {
display:block; display:inline-block;
float:left; //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 { .example-full-width {
width: 95%; width: 95%;
} }
@ -47,25 +30,23 @@ li
color: #fff; color: #fff;
} }
.lengend-list { //.lengend-list {
list-style-type: none; // list-style-type: none;
margin: 0; //margin: 0;
padding: 0; // padding: 0;
overflow: hidden; // overflow: hidden;
text-align:justify; // text-align:justify;
} //}
.lengend-element { .lengend-element {
font-size: 1rem; font-size: 1rem !important;
padding-right: 3%; padding-right: 3%;
} }
.donut-inner{ .donut-inner{
margin-top: -171px; margin-top: -171px;
margin-left: 120px; margin-left: 120px;
//margin-bottom: 154px;
//margin-top: -221px;
//margin-left: 145px;
} }
.donut-inner h5 { .donut-inner h5 {
@ -77,545 +58,10 @@ li
font-size:1rems; 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{ mat-card-content{
min-height: 400px; min-height: 400px;
} }
.chart{ .chart{
padding: 0.8rem; padding: 0.8rem;
} }

View File

@ -1,16 +1,11 @@
//import { Component } from '@angular/core'; //import { Component } from '@angular/core';
import {Component, NgModule, ElementRef, Inject, Injectable, ViewChild} from '@angular/core' import {Component, NgModule, ElementRef, Inject, Injectable, ViewChild} from '@angular/core'
import { FormBuilder, FormGroup, Validators , ValidatorFn, AbstractControl, FormControl} from '@angular/forms' 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 {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 { MastersService } from '../settings/service/masters/masters.service';
import { DashboardService } from './dashboard.service'; import { DashboardService } from './dashboard.service';
import { NgxDrpOptions, PresetItem, Range } from 'ngx-mat-daterange-picker'; import { NgxDrpOptions, PresetItem, Range } from 'ngx-mat-daterange-picker';
import { BaseChartDirective } from 'ng2-charts/ng2-charts'; import { BaseChartDirective } from 'ng2-charts/ng2-charts';
//import { DatePipe } from '@angular/common';
@Component({ @Component({
selector: 'app-dashboard', selector: 'app-dashboard',
@ -32,10 +27,12 @@ export class DashboardComponent {
dashboardTitle = 'PD Status'; dashboardTitle = 'PD Status';
/** Declaration Part Of Doughnut Chart */ /** 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; //myChart: BaseChartDirective;
doughnutChartType = 'doughnut'; doughnutChartType = 'doughnut';
doughnutChartLabels: string[] = ['Draft','Triggered','Allocated','Scheduled','InProgress','Completed','QC Completed']; doughnutChartLabels: string[] = ['Draft','Triggered','Allocated','Scheduled','InProgress','Completed','QC Completed'];
@ -50,9 +47,6 @@ export class DashboardComponent {
total1: number = 0; total1: number = 0;
total2: number = 0; total2: number = 0;
total3: number = 0; total3: number = 0;
total4: number = 0;
total5: number = 0;
total6: number = 0;
flag : number = 0; flag : number = 0;
// doughnutChartColors: any[] = [{ // 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 */ /** Declaration Part Of Title Form Section */
myControl = new FormControl(); myControl = new FormControl();
@ -89,6 +77,8 @@ export class DashboardComponent {
lenderData : any[]; lenderData : any[];
cityData : any[]; cityData : any[];
selectedCity : any=[];
selectedLender : any=[];
constructor(private _dashboardService: DashboardService, constructor(private _dashboardService: DashboardService,
private _masterService: MastersService) { private _masterService: MastersService) {
@ -117,9 +107,9 @@ export class DashboardComponent {
ngOnInit(){ ngOnInit(){
this.getDoughnutChartData(); this.getDoughnutChartData();
const today = new Date(); const today = new Date();
const fromMin = new Date(today.getFullYear(), today.getMonth()-2, 1); const fromMin = new Date(today.getFullYear(), today.getMonth()-2, 1);
const fromMax = new Date(today.getFullYear(), today.getMonth()+1, 0); const fromMax = new Date(today.getFullYear(), today.getMonth()+1, 0);
@ -129,12 +119,12 @@ export class DashboardComponent {
const LastDateForPreMonth = new Date(today.getFullYear(), today.getMonth(), 0); const LastDateForPreMonth = new Date(today.getFullYear(), today.getMonth(), 0);
const FirstDateForPreMonth = new Date(today.getFullYear(), today.getMonth()-1, 1); const FirstDateForPreMonth = new Date(today.getFullYear(), today.getMonth()-1, 1);
console.log('FromDateMin:',fromMin); // console.log('FromDateMin:',fromMin);
console.log('FromDateMax:',fromMax); // console.log('FromDateMax:',fromMax);
console.log('ToDateMin',toMin); // console.log('ToDateMin',toMin);
console.log('ToDateMax',toMax); // console.log('ToDateMax',toMax);
console.log('LastDateForPreMonth',LastDateForPreMonth); // console.log('LastDateForPreMonth',LastDateForPreMonth);
console.log('FirstDateForPreMonth',FirstDateForPreMonth); // console.log('FirstDateForPreMonth',FirstDateForPreMonth);
// const resetRange = {fromDate: today, toDate: today}; // const resetRange = {fromDate: today, toDate: today};
// this.dateRangePicker.resetDates(resetRange); // will trigger selectedDateRangeChanged // this.dateRangePicker.resetDates(resetRange); // will trigger selectedDateRangeChanged
@ -144,7 +134,7 @@ export class DashboardComponent {
this.options = { this.options = {
presets: this.presets, presets: this.presets,
format: 'mediumDate', format: 'mediumDate',
range: {fromDate:toMin, toDate: fromMax}, range: {fromDate:FirstDateForPreMonth, toDate: fromMax},
applyLabel: "Submit", applyLabel: "Submit",
calendarOverlayConfig: { calendarOverlayConfig: {
shouldCloseOnBackdropClick: false, shouldCloseOnBackdropClick: false,
@ -159,7 +149,6 @@ export class DashboardComponent {
} }
updateRange(range: Range){ updateRange(range: Range){
this.range = range; this.range = range;
this.onChange(this.range,1); this.onChange(this.range,1);
} }
@ -202,10 +191,7 @@ getDoughnutChartData(){
this._dashboardService.getPDDetailForDoughnut(fromdate,todate,cityarr,lenderarr).subscribe(data => { this._dashboardService.getPDDetailForDoughnut(fromdate,todate,cityarr,lenderarr).subscribe(data => {
this.flag = 1; this.flag = 1;
console.log(' ***** Doughnut Chart Data *****'); console.log(' ***** Doughnut Chart Data *****',data);
console.log('Whole Data',data);
console.log('Monthly Status',data.records.current_month);
let DraftIndexvalue = this.doughnutChartLabels.indexOf('Draft'); let DraftIndexvalue = this.doughnutChartLabels.indexOf('Draft');
let TriggedIndexvalue = this.doughnutChartLabels.indexOf('Triggered'); let TriggedIndexvalue = this.doughnutChartLabels.indexOf('Triggered');
@ -227,9 +213,8 @@ getDoughnutChartData(){
if(DraftFullPDvalue.length != '0'){ if(DraftFullPDvalue.length != '0'){
//console.log('console triggered value',TriggerFullPDvalue); //console.log('console triggered value',TriggerFullPDvalue);
for(let FPD of DraftFullPDvalue){ for(let FPD of DraftFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[DraftIndexvalue] = +FPD.count;
this.tempDataFullPD[DraftIndexvalue] = y;
} }
} }
else{ else{
@ -238,11 +223,10 @@ getDoughnutChartData(){
let TriggerFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'TRIGGERED'); let TriggerFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'TRIGGERED');
if(TriggerFullPDvalue.length != '0'){ if(TriggerFullPDvalue.length != '0'){
//console.log('console triggered value',TriggerFullPDvalue);
for(let FPD of TriggerFullPDvalue){ for(let FPD of TriggerFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[TriggedIndexvalue] = +FPD.count;
this.tempDataFullPD[TriggedIndexvalue] = y;
} }
} }
else{ else{
@ -252,9 +236,8 @@ getDoughnutChartData(){
let AllocatedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'ALLOCATED'); let AllocatedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedFullPDvalue.length != '0'){ if(AllocatedFullPDvalue.length != '0'){
for(let FPD of AllocatedFullPDvalue){ for(let FPD of AllocatedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[AllocatedIndexvalue] = +FPD.count;
this.tempDataFullPD[AllocatedIndexvalue] = y;
} }
} }
else{ else{
@ -264,11 +247,10 @@ getDoughnutChartData(){
let ScheduledFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'SCHEDULED'); let ScheduledFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledFullPDvalue.length != '0'){ if(ScheduledFullPDvalue.length != '0'){
for(let FPD of ScheduledFullPDvalue){ for(let FPD of ScheduledFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[ScheduledIndexvalue] = +FPD.count;
this.tempDataFullPD[ScheduledIndexvalue] = y;
} }
//let y = +ScheduledFullPDvalue.count;
} }
else{ else{
@ -278,9 +260,8 @@ getDoughnutChartData(){
let InProgressFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'INPROGRESS'); let InProgressFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressFullPDvalue.length != '0'){ if(InProgressFullPDvalue.length != '0'){
for(let FPD of InProgressFullPDvalue){ for(let FPD of InProgressFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[InProgressIndexvalue] = +FPD.count;
this.tempDataFullPD[InProgressIndexvalue] = y;
} }
//let y = +InProgressFullPDvalue.count; //let y = +InProgressFullPDvalue.count;
@ -292,9 +273,8 @@ getDoughnutChartData(){
let CompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'COMPLETED'); let CompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedFullPDvalue.length != '0'){ if(CompletedFullPDvalue.length != '0'){
for(let FPD of CompletedFullPDvalue){ for(let FPD of CompletedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[CompletedIndexvalue] = +FPD.count;
this.tempDataFullPD[CompletedIndexvalue] = y;
} }
//let y = +CompletedFullPDvalue.count; //let y = +CompletedFullPDvalue.count;
@ -306,9 +286,8 @@ getDoughnutChartData(){
let QCCompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED"); let QCCompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedFullPDvalue.length != '0'){ if(QCCompletedFullPDvalue.length != '0'){
for(let FPD of QCCompletedFullPDvalue){ for(let FPD of QCCompletedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[QCCompletedIndexvalue] = +FPD.count;
this.tempDataFullPD[QCCompletedIndexvalue] = y;
} }
//let y = +QCCompletedFullPDvalue.count; //let y = +QCCompletedFullPDvalue.count;
@ -321,9 +300,8 @@ getDoughnutChartData(){
if(DraftSmartPDvalue.length != '0'){ if(DraftSmartPDvalue.length != '0'){
//console.log('console triggered value',TriggerFullPDvalue); //console.log('console triggered value',TriggerFullPDvalue);
for(let FPD of DraftSmartPDvalue){ for(let FPD of DraftSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[DraftIndexvalue] = +FPD.count;
this.tempDataSmartPD[DraftIndexvalue] = y;
} }
} }
else{ else{
@ -334,9 +312,7 @@ getDoughnutChartData(){
if(TriggerSmartPDvalue.length != '0'){ if(TriggerSmartPDvalue.length != '0'){
for(let FPD of TriggerSmartPDvalue){ for(let FPD of TriggerSmartPDvalue){
let y = +FPD.count; this.tempDataSmartPD[TriggedIndexvalue] = +FPD.count;
this.total2 = this.total2+y;
this.tempDataSmartPD[TriggedIndexvalue] = y;
} }
} }
else{ else{
@ -346,9 +322,8 @@ getDoughnutChartData(){
let AllocatedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'ALLOCATED'); let AllocatedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedSmartPDvalue.length != '0'){ if(AllocatedSmartPDvalue.length != '0'){
for(let FPD of AllocatedSmartPDvalue){ for(let FPD of AllocatedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[AllocatedIndexvalue] = +FPD.count;
this.tempDataSmartPD[AllocatedIndexvalue] = y;
} }
} }
else{ else{
@ -358,9 +333,8 @@ getDoughnutChartData(){
let ScheduledSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'SCHEDULED'); let ScheduledSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledSmartPDvalue.length != '0'){ if(ScheduledSmartPDvalue.length != '0'){
for(let FPD of ScheduledSmartPDvalue){ for(let FPD of ScheduledSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[ScheduledIndexvalue] = +FPD.count;
this.tempDataSmartPD[ScheduledIndexvalue] = y;
} }
//let y = +ScheduledFullPDvalue.count; //let y = +ScheduledFullPDvalue.count;
@ -372,9 +346,8 @@ getDoughnutChartData(){
let InProgressSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'INPROGRESS'); let InProgressSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressSmartPDvalue.length != '0'){ if(InProgressSmartPDvalue.length != '0'){
for(let FPD of InProgressSmartPDvalue){ for(let FPD of InProgressSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[InProgressIndexvalue] = +FPD.count;
this.tempDataSmartPD[InProgressIndexvalue] = y;
} }
//let y = +InProgressFullPDvalue.count; //let y = +InProgressFullPDvalue.count;
@ -386,9 +359,8 @@ getDoughnutChartData(){
let CompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'COMPLETED'); let CompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedSmartPDvalue.length != '0'){ if(CompletedSmartPDvalue.length != '0'){
for(let FPD of CompletedSmartPDvalue){ for(let FPD of CompletedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[CompletedIndexvalue] = +FPD.count;
this.tempDataSmartPD[CompletedIndexvalue] = y;
} }
//let y = +CompletedFullPDvalue.count; //let y = +CompletedFullPDvalue.count;
@ -400,9 +372,8 @@ getDoughnutChartData(){
let QCCompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED"); let QCCompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedSmartPDvalue.length != '0'){ if(QCCompletedSmartPDvalue.length != '0'){
for(let FPD of QCCompletedSmartPDvalue){ for(let FPD of QCCompletedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[QCCompletedIndexvalue] = +FPD.count;
this.tempDataSmartPD[QCCompletedIndexvalue] = y;
} }
//let y = +QCCompletedFullPDvalue.count; //let y = +QCCompletedFullPDvalue.count;
@ -416,9 +387,8 @@ getDoughnutChartData(){
if(DraftTelePDvalue.length != '0'){ if(DraftTelePDvalue.length != '0'){
for(let FPD of DraftTelePDvalue){ for(let FPD of DraftTelePDvalue){
let y = +FPD.count;
this.total1 = this.total3+y; this.tempDataTelePD[DraftIndexvalue] = +FPD.count;
this.tempDataTelePD[DraftIndexvalue] = y;
} }
} }
else{ else{
@ -429,9 +399,8 @@ getDoughnutChartData(){
if(TriggerTelePDvalue.length != '0'){ if(TriggerTelePDvalue.length != '0'){
//console.log('console triggered value',TriggerTelePDvalue); //console.log('console triggered value',TriggerTelePDvalue);
for(let FPD of TriggerTelePDvalue){ for(let FPD of TriggerTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[TriggedIndexvalue] = +FPD.count;
this.tempDataTelePD[TriggedIndexvalue] = y;
} }
} }
else{ else{
@ -441,9 +410,8 @@ getDoughnutChartData(){
let AllocatedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'ALLOCATED'); let AllocatedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedTelePDvalue.length != '0'){ if(AllocatedTelePDvalue.length != '0'){
for(let FPD of AllocatedTelePDvalue){ for(let FPD of AllocatedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[AllocatedIndexvalue] = +FPD.count;
this.tempDataTelePD[AllocatedIndexvalue] = y;
} }
} }
else{ else{
@ -453,9 +421,8 @@ getDoughnutChartData(){
let ScheduledTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'SCHEDULED'); let ScheduledTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledTelePDvalue.length != '0'){ if(ScheduledTelePDvalue.length != '0'){
for(let FPD of ScheduledTelePDvalue){ for(let FPD of ScheduledTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[ScheduledIndexvalue] = +FPD.count;
this.tempDataTelePD[ScheduledIndexvalue] = y;
} }
//let y = +ScheduledFullPDvalue.count; //let y = +ScheduledFullPDvalue.count;
@ -467,9 +434,8 @@ getDoughnutChartData(){
let InProgressTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'INPROGRESS'); let InProgressTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressTelePDvalue.length != '0'){ if(InProgressTelePDvalue.length != '0'){
for(let FPD of InProgressTelePDvalue){ for(let FPD of InProgressTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[InProgressIndexvalue] = +FPD.count;
this.tempDataTelePD[InProgressIndexvalue] = y;
} }
//let y = +InProgressFullPDvalue.count; //let y = +InProgressFullPDvalue.count;
@ -481,9 +447,8 @@ getDoughnutChartData(){
let CompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'COMPLETED'); let CompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedTelePDvalue.length != '0'){ if(CompletedTelePDvalue.length != '0'){
for(let FPD of CompletedTelePDvalue){ for(let FPD of CompletedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[CompletedIndexvalue] = +FPD.count;
this.tempDataTelePD[CompletedIndexvalue] = y;
} }
//let y = +CompletedFullPDvalue.count; //let y = +CompletedFullPDvalue.count;
@ -495,9 +460,8 @@ getDoughnutChartData(){
let QCCompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == "QC_COMPLETED"); let QCCompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedTelePDvalue.length != '0'){ if(QCCompletedTelePDvalue.length != '0'){
for(let FPD of QCCompletedTelePDvalue){ for(let FPD of QCCompletedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[QCCompletedIndexvalue] = +FPD.count;
this.tempDataTelePD[QCCompletedIndexvalue] = y;
} }
//let y = +QCCompletedFullPDvalue.count; //let y = +QCCompletedFullPDvalue.count;
@ -508,22 +472,21 @@ getDoughnutChartData(){
} }
else{ 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.doughnutChartDataForSmartPD = this.tempDataSmartPD;
this.doughnutChartDataForTelePD = this.tempDataTelePD; 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('Final Full Data '+ this.doughnutChartDataForFullPD+'Temp Data'+this.tempDataFullPD+'Full Total '+this.total1);
console.log('temp full Data',this.tempDataFullPD); console.log('Final Smart Data '+ this.doughnutChartDataForSmartPD+' Temp Data '+this.tempDataSmartPD+'Smart Total '+this.total2);
console.log('Final Smart Data Completed',this.doughnutChartDataForSmartPD); console.log('Final Tele Data '+ this.doughnutChartDataForTelePD+' Temp Data'+this.tempDataTelePD+'Tele Total '+this.total3);
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);
}) })
} }
@ -538,10 +501,17 @@ doughnutOptions: any = Object.assign({
centertext:'One' centertext:'One'
},this.globalChartOptions); },this.globalChartOptions);
// ngOnChanges(){
// // this.barChartData=this.chartData;
// this.barChartLabel=this.chartLabel;
// }
onChange(e :any,flag: any) { onChange(e :any,flag: any) {
let fromdate; let fromdate;
let todate; let todate;
console.log('flag',flag);
if(flag == 1){ if(flag == 1){
fromdate = new Date(e.fromDate); fromdate = new Date(e.fromDate);
@ -553,7 +523,7 @@ onChange(e :any,flag: any) {
let data = e.source.value.city_id; let data = e.source.value.city_id;
e.source._selected == true ? this.selectedCity.push(data) e.source._selected == true ? this.selectedCity.push(data)
: this.selectedCity.splice(this.selectedCity.indexOf(data),1); : this.selectedCity.splice(this.selectedCity.indexOf(data),1);
console.log(this.selectedCity);
} }
if(flag == 3){ if(flag == 3){
@ -561,24 +531,29 @@ onChange(e :any,flag: any) {
e.source._selected == true ? this.selectedLender.push(data) e.source._selected == true ? this.selectedLender.push(data)
: this.selectedLender.splice(this.selectedLender.indexOf(data),1); : 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 *****'); this._dashboardService.getPDDetailForDoughnut(fromdate,todate,this.selectedCity,this.selectedLender).subscribe(data => {
console.log('Whole Data',data);
console.log(' *****Updated Date Doughnut Chart Data *****',data);
if(data.records.current_month.length != 0){ if(data.records.current_month.length != 0){
this.total1 = 0; this.total1 = 0;
this.total2 = 0; this.total2 = 0;
this.total3 = 0; this.total3 = 0;
} }
this.doughnutChartDataForFullPD = []; this.doughnutChartDataForFullPD = [];
this.doughnutChartDataForSmartPD = []; this.doughnutChartDataForSmartPD = [];
this.doughnutChartDataForTelePD = []; this.doughnutChartDataForTelePD = [];
this.tempDataFullPD = [];
this.tempDataSmartPD =[];
this.tempDataTelePD = [];
let DraftIndexvalue = this.doughnutChartLabels.indexOf('Draft'); let DraftIndexvalue = this.doughnutChartLabels.indexOf('Draft');
@ -614,9 +589,8 @@ onChange(e :any,flag: any) {
if(TriggerFullPDvalue.length != '0'){ if(TriggerFullPDvalue.length != '0'){
for(let FPD of TriggerFullPDvalue){ for(let FPD of TriggerFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[TriggedIndexvalue] = +FPD.count;
this.tempDataFullPD[TriggedIndexvalue] = y;
} }
} }
else{ else{
@ -626,9 +600,8 @@ onChange(e :any,flag: any) {
let AllocatedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'ALLOCATED'); let AllocatedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedFullPDvalue.length != '0'){ if(AllocatedFullPDvalue.length != '0'){
for(let FPD of AllocatedFullPDvalue){ for(let FPD of AllocatedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[AllocatedIndexvalue] = +FPD.count;
this.tempDataFullPD[AllocatedIndexvalue] = y;
} }
} }
else{ else{
@ -638,9 +611,8 @@ onChange(e :any,flag: any) {
let ScheduledFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'SCHEDULED'); let ScheduledFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledFullPDvalue.length != '0'){ if(ScheduledFullPDvalue.length != '0'){
for(let FPD of ScheduledFullPDvalue){ for(let FPD of ScheduledFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[ScheduledIndexvalue] = +FPD.count;
this.tempDataFullPD[ScheduledIndexvalue] = y;
} }
//let y = +ScheduledFullPDvalue.count; //let y = +ScheduledFullPDvalue.count;
@ -652,9 +624,8 @@ onChange(e :any,flag: any) {
let InProgressFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'INPROGRESS'); let InProgressFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressFullPDvalue.length != '0'){ if(InProgressFullPDvalue.length != '0'){
for(let FPD of InProgressFullPDvalue){ for(let FPD of InProgressFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[InProgressIndexvalue] = +FPD.count;
this.tempDataFullPD[InProgressIndexvalue] = y;
} }
//let y = +InProgressFullPDvalue.count; //let y = +InProgressFullPDvalue.count;
@ -666,9 +637,8 @@ onChange(e :any,flag: any) {
let CompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'COMPLETED'); let CompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedFullPDvalue.length != '0'){ if(CompletedFullPDvalue.length != '0'){
for(let FPD of CompletedFullPDvalue){ for(let FPD of CompletedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[CompletedIndexvalue] = +FPD.count;
this.tempDataFullPD[CompletedIndexvalue] = y;
} }
//let y = +CompletedFullPDvalue.count; //let y = +CompletedFullPDvalue.count;
@ -680,9 +650,8 @@ onChange(e :any,flag: any) {
let QCCompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED"); let QCCompletedFullPDvalue = MonthlyFullPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedFullPDvalue.length != '0'){ if(QCCompletedFullPDvalue.length != '0'){
for(let FPD of QCCompletedFullPDvalue){ for(let FPD of QCCompletedFullPDvalue){
let y = +FPD.count;
this.total1 = this.total1+y; this.tempDataFullPD[QCCompletedIndexvalue] = +FPD.count;
this.tempDataFullPD[QCCompletedIndexvalue] = y;
} }
//let y = +QCCompletedFullPDvalue.count; //let y = +QCCompletedFullPDvalue.count;
@ -695,9 +664,8 @@ onChange(e :any,flag: any) {
if(DraftSmartPDvalue.length != '0'){ if(DraftSmartPDvalue.length != '0'){
//console.log('console triggered value',TriggerFullPDvalue); //console.log('console triggered value',TriggerFullPDvalue);
for(let FPD of DraftSmartPDvalue){ for(let FPD of DraftSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[DraftIndexvalue] = +FPD.count;
this.tempDataSmartPD[DraftIndexvalue] = y;
} }
} }
else{ else{
@ -708,9 +676,8 @@ onChange(e :any,flag: any) {
if(TriggerSmartPDvalue.length != '0'){ if(TriggerSmartPDvalue.length != '0'){
for(let FPD of TriggerSmartPDvalue){ for(let FPD of TriggerSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[TriggedIndexvalue] = +FPD.count;
this.tempDataSmartPD[TriggedIndexvalue] = y;
} }
} }
else{ else{
@ -720,9 +687,8 @@ onChange(e :any,flag: any) {
let AllocatedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'ALLOCATED'); let AllocatedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedSmartPDvalue.length != '0'){ if(AllocatedSmartPDvalue.length != '0'){
for(let FPD of AllocatedSmartPDvalue){ for(let FPD of AllocatedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[AllocatedIndexvalue] = +FPD.count;
this.tempDataSmartPD[AllocatedIndexvalue] = y;
} }
} }
else{ else{
@ -732,9 +698,8 @@ onChange(e :any,flag: any) {
let ScheduledSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'SCHEDULED'); let ScheduledSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledSmartPDvalue.length != '0'){ if(ScheduledSmartPDvalue.length != '0'){
for(let FPD of ScheduledSmartPDvalue){ for(let FPD of ScheduledSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[ScheduledIndexvalue] = +FPD.count;
this.tempDataSmartPD[ScheduledIndexvalue] = y;
} }
//let y = +ScheduledFullPDvalue.count; //let y = +ScheduledFullPDvalue.count;
@ -746,9 +711,8 @@ onChange(e :any,flag: any) {
let InProgressSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'INPROGRESS'); let InProgressSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressSmartPDvalue.length != '0'){ if(InProgressSmartPDvalue.length != '0'){
for(let FPD of InProgressSmartPDvalue){ for(let FPD of InProgressSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[InProgressIndexvalue] = +FPD.count;
this.tempDataSmartPD[InProgressIndexvalue] = y;
} }
//let y = +InProgressFullPDvalue.count; //let y = +InProgressFullPDvalue.count;
@ -760,9 +724,8 @@ onChange(e :any,flag: any) {
let CompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'COMPLETED'); let CompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedSmartPDvalue.length != '0'){ if(CompletedSmartPDvalue.length != '0'){
for(let FPD of CompletedSmartPDvalue){ for(let FPD of CompletedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[CompletedIndexvalue] = +FPD.count;
this.tempDataSmartPD[CompletedIndexvalue] = y;
} }
//let y = +CompletedFullPDvalue.count; //let y = +CompletedFullPDvalue.count;
@ -774,9 +737,8 @@ onChange(e :any,flag: any) {
let QCCompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED"); let QCCompletedSmartPDvalue = MonthlySmartPDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedSmartPDvalue.length != '0'){ if(QCCompletedSmartPDvalue.length != '0'){
for(let FPD of QCCompletedSmartPDvalue){ for(let FPD of QCCompletedSmartPDvalue){
let y = +FPD.count;
this.total2 = this.total2+y; this.tempDataSmartPD[QCCompletedIndexvalue] = +FPD.count;
this.tempDataSmartPD[QCCompletedIndexvalue] = y;
} }
//let y = +QCCompletedFullPDvalue.count; //let y = +QCCompletedFullPDvalue.count;
@ -790,9 +752,8 @@ onChange(e :any,flag: any) {
if(DraftTelePDvalue.length != '0'){ if(DraftTelePDvalue.length != '0'){
for(let FPD of DraftTelePDvalue){ for(let FPD of DraftTelePDvalue){
let y = +FPD.count;
this.total1 = this.total3+y; this.tempDataTelePD[DraftIndexvalue] = +FPD.count;
this.tempDataTelePD[DraftIndexvalue] = y;
} }
} }
else{ else{
@ -803,9 +764,8 @@ onChange(e :any,flag: any) {
if(TriggerTelePDvalue.length != '0'){ if(TriggerTelePDvalue.length != '0'){
//console.log('console triggered value',TriggerTelePDvalue); //console.log('console triggered value',TriggerTelePDvalue);
for(let FPD of TriggerTelePDvalue){ for(let FPD of TriggerTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[TriggedIndexvalue] = +FPD.count;
this.tempDataTelePD[TriggedIndexvalue] = y;
} }
} }
else{ else{
@ -815,9 +775,8 @@ onChange(e :any,flag: any) {
let AllocatedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'ALLOCATED'); let AllocatedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'ALLOCATED');
if(AllocatedTelePDvalue.length != '0'){ if(AllocatedTelePDvalue.length != '0'){
for(let FPD of AllocatedTelePDvalue){ for(let FPD of AllocatedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[AllocatedIndexvalue] = +FPD.count;
this.tempDataTelePD[AllocatedIndexvalue] = y;
} }
} }
else{ else{
@ -827,9 +786,8 @@ onChange(e :any,flag: any) {
let ScheduledTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'SCHEDULED'); let ScheduledTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'SCHEDULED');
if(ScheduledTelePDvalue.length != '0'){ if(ScheduledTelePDvalue.length != '0'){
for(let FPD of ScheduledTelePDvalue){ for(let FPD of ScheduledTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[ScheduledIndexvalue] = +FPD.count;
this.tempDataTelePD[ScheduledIndexvalue] = y;
} }
//let y = +ScheduledFullPDvalue.count; //let y = +ScheduledFullPDvalue.count;
@ -841,9 +799,8 @@ onChange(e :any,flag: any) {
let InProgressTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'INPROGRESS'); let InProgressTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'INPROGRESS');
if(InProgressTelePDvalue.length != '0'){ if(InProgressTelePDvalue.length != '0'){
for(let FPD of InProgressTelePDvalue){ for(let FPD of InProgressTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[InProgressIndexvalue] = +FPD.count;
this.tempDataTelePD[InProgressIndexvalue] = y;
} }
//let y = +InProgressFullPDvalue.count; //let y = +InProgressFullPDvalue.count;
@ -855,9 +812,8 @@ onChange(e :any,flag: any) {
let CompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'COMPLETED'); let CompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == 'COMPLETED');
if(CompletedTelePDvalue.length != '0'){ if(CompletedTelePDvalue.length != '0'){
for(let FPD of CompletedTelePDvalue){ for(let FPD of CompletedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[CompletedIndexvalue] = +FPD.count;
this.tempDataTelePD[CompletedIndexvalue] = y;
} }
//let y = +CompletedFullPDvalue.count; //let y = +CompletedFullPDvalue.count;
@ -869,9 +825,8 @@ onChange(e :any,flag: any) {
let QCCompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == "QC_COMPLETED"); let QCCompletedTelePDvalue = MonthlyTelePDArr.filter(arr=>arr.pd_status == "QC_COMPLETED");
if(QCCompletedTelePDvalue.length != '0'){ if(QCCompletedTelePDvalue.length != '0'){
for(let FPD of QCCompletedTelePDvalue){ for(let FPD of QCCompletedTelePDvalue){
let y = +FPD.count;
this.total3 = this.total3+y; this.tempDataTelePD[QCCompletedIndexvalue] = +FPD.count;
this.tempDataTelePD[QCCompletedIndexvalue] = y;
} }
//let y = +QCCompletedFullPDvalue.count; //let y = +QCCompletedFullPDvalue.count;
@ -882,22 +837,26 @@ onChange(e :any,flag: any) {
} }
else{ 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.doughnutChartDataForSmartPD = this.tempDataSmartPD;
this.doughnutChartDataForTelePD = this.tempDataTelePD; 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); this.FullCanvas.chart.update();
console.log('temp full Data',this.tempDataFullPD); this.SmartCanvas.chart.update();
console.log('Final Smart Data Completed',this.doughnutChartDataForSmartPD); this.TeleCanvas.chart.update();
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);
}) })

View File

@ -21,7 +21,6 @@ const currentdate = new Date().toJSON().slice(0,19).replace('T',' ');
export class DashboardService { export class DashboardService {
private apiUrl = environment.apiEndpoint; private apiUrl = environment.apiEndpoint;
//private apiUrl = 'http://localhost/sparqapi/api/';
constructor(private _http: HttpClient, constructor(private _http: HttpClient,
private _aws:AwsService) { } private _aws:AwsService) { }
@ -53,17 +52,13 @@ export class DashboardService {
// } // }
getPDDetailForDoughnut(fromdate,todate,cityarr,lenderarr): Observable<any> { getPDDetailForDoughnut(fromdate,todate,cityarr,lenderarr): Observable<any> {
console.log(')))))');
console.log(fromdate); console.log(' From : ' + fromdate + ' To : ' + todate + ' Lender Array : ' + lenderarr + ' City Array : ' + cityarr);
console.log(todate);
console.log(cityarr);
console.log(lenderarr);
console.log('(((');
return this._http.post(this.apiUrl+'getDashBoardMaster', { return this._http.post(this.apiUrl+'getDashBoardMaster', {
"fromdate":fromdate, "fromdate":fromdate != '' && fromdate != null && fromdate != undefined ? fromdate : '',
"todate": todate, "todate": todate != '' && todate != null && todate != undefined ? todate : '',
"cityarr":cityarr, "cityarr":cityarr,"lenderarr": lenderarr})
"lenderarr": lenderarr})
.pipe(catchError(this.handleError('role', [])) .pipe(catchError(this.handleError('role', []))
) )

View File

@ -312,7 +312,7 @@
<div class="body-container"> <div class="body-container">
<router-outlet></router-outlet> <router-outlet></router-outlet>
</div> </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> <div style="text-align: center;">Not Yet Scheduled</div>
<mat-tab-group [selectedIndex]="1" mat-stretch-tabs> <mat-tab-group [selectedIndex]="1" mat-stretch-tabs>
<mat-tab> <mat-tab>

View File

@ -87,7 +87,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field style="width: 100%"> <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('required')">Amount Required.</mat-error> -->
<mat-error *ngIf="pdMain.loan_amount.hasError('pattern')">Enter valid amount. </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%;"> <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('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>
<mat-form-field style="width: 100%;"> <mat-form-field style="width: 100%;">
@ -158,20 +158,26 @@
<div class="column" fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="100" fxFlex.lg="100" fxFlex.xl="100"> <div class="column" fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="100" fxFlex.lg="100" fxFlex.xl="100">
<mat-card class="p-2"> <mat-card class="p-2">
<h5>Main Applicant</h5> <h5>Main Applicant</h5>
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
<input matInput placeholder="Name" formControlName="applicant_name"> <input matInput placeholder="Name" formControlName="applicant_name">
<mat-error *ngIf="pdMain.applicant_name.hasError('required')">Name is Required.</mat-error> <mat-error *ngIf="pdMain.applicant_name.hasError('required')">Name is Required.</mat-error>
</mat-form-field> </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>
<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>
<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%"> <mat-form-field style="width: 100%">
<input matInput placeholder="Email" formControlName="email" type="email"> <input matInput placeholder="Email" formControlName="email" type="email">
<!-- <mat-error *ngIf="pdMain.email.hasError('required')">Email Required.</mat-error> --> <!-- <mat-error *ngIf="pdMain.email.hasError('required')">Email Required.</mat-error> -->
@ -193,13 +199,20 @@
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
<input matInput placeholder="Name" formControlName="coapplicantName" type="text" required> <input matInput placeholder="Name" formControlName="coapplicantName" type="text" required>
</mat-form-field> </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>
<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-form-field style="width: 100%">
<mat-select placeholder="Relationship" formControlName="relationship"> <mat-select placeholder="Relationship" formControlName="relationship">

View File

@ -77,14 +77,15 @@ export class AddPdComponent implements OnInit, OnDestroy {
fk_customer_segment: [null], fk_customer_segment: [null],
loan_amount: [null,Validators.compose([Validators.pattern('^[0-9]*$')])], loan_amount: [null,Validators.compose([Validators.pattern('^[0-9]*$')])],
applicant_name: [null], 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], email: [null],
  addressline1: [null],   addressline1: [null],
addressline2: [null], addressline2: [null],
addressline3: [null], addressline3: [null],
fk_city: [null], fk_city: [null],
fk_state: [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], remarks:[null],
  // allocation_type: [null],   // allocation_type: [null],
  // sub_allocation_type: [null],   // sub_allocation_type: [null],
@ -206,7 +207,8 @@ export class AddPdComponent implements OnInit, OnDestroy {
return this._fb.group({ return this._fb.group({
label: ['Co Applicant'], label: ['Co Applicant'],
coapplicantName: [null, Validators.compose([Validators.required])], 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], relationship: [null],
}); });
}; };
@ -315,6 +317,7 @@ export class AddPdComponent implements OnInit, OnDestroy {
"applicant_name":formValue.applicant_name, "applicant_name":formValue.applicant_name,
"email":formValue.email, "email":formValue.email,
"mobile_no":formValue.mobile_no, "mobile_no":formValue.mobile_no,
"landline":formValue.landline,
"applicant_type":1, "applicant_type":1,
"relation":"", "relation":"",
}]; }];
@ -324,6 +327,7 @@ export class AddPdComponent implements OnInit, OnDestroy {
"relation":itemElement.relationship, "relation":itemElement.relationship,
"email":"", "email":"",
"mobile_no":itemElement.coapplicant_mobile_no, "mobile_no":itemElement.coapplicant_mobile_no,
"landline":itemElement.coapplicant_landline,
"applicant_type":0, "applicant_type":0,
} }
pd_applicant_details.push(obj1) pd_applicant_details.push(obj1)
@ -410,4 +414,13 @@ export class AddPdComponent implements OnInit, OnDestroy {
onReset() { onReset() {
this.loadFormData(); 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();
}
}
} }

View File

@ -3,6 +3,7 @@
<button mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Close" matTooltipPosition="above" <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> (click)="closeEditComponent()"><mat-icon>close</mat-icon></button>
</div> </div>
<form [formGroup]="_EditApplicantForm" (submit)="updatePdApplicant(_EditApplicantForm.value)"> <form [formGroup]="_EditApplicantForm" (submit)="updatePdApplicant(_EditApplicantForm.value)">
<div fxLayout="row" fxLayoutWrap="wrap"> <div fxLayout="row" fxLayoutWrap="wrap">
@ -22,13 +23,18 @@
</mat-form-field> </mat-form-field>
<mat-form-field style="width: 100%"> <div fxLayout="row" fxLayoutGap="5%" fxLayoutAlign="start none">
<input matInput placeholder="Phone" formControlName="mobile_no" type="text" required> <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('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>
<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-card> </mat-card>
</div> </div>
@ -45,11 +51,18 @@
<mat-error *ngIf="coDetails['controls'].coapplicantName.hasError('required')">Name is Required.</mat-error> <mat-error *ngIf="coDetails['controls'].coapplicantName.hasError('required')">Name is Required.</mat-error>
</mat-form-field> </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)">
<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>
<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-form-field style="width: 100%">
<mat-select placeholder="Relationship With Main Applicant" formControlName="relationship"> <mat-select placeholder="Relationship With Main Applicant" formControlName="relationship">

View File

@ -42,7 +42,8 @@ export class EditPdApplicantComponent implements OnInit {
this._EditApplicantForm = this._fb.group({ this._EditApplicantForm = this._fb.group({
fk_applicant_primary_id: [null], fk_applicant_primary_id: [null],
applicant_name: [null, Validators.compose([Validators.required])], 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])], email: [null, Validators.compose([Validators.required, CustomValidators.email])],
applicant_type: [1], applicant_type: [1],
coApplicantItems: this._fb.array([]), coApplicantItems: this._fb.array([]),
@ -54,7 +55,8 @@ export class EditPdApplicantComponent implements OnInit {
this._EditApplicantForm = this._fb.group({ this._EditApplicantForm = this._fb.group({
fk_applicant_primary_id: [this.mainApplicantData[0].pd_co_applicant_id], fk_applicant_primary_id: [this.mainApplicantData[0].pd_co_applicant_id],
applicant_name: [this.mainApplicantData[0].applicant_name, Validators.compose([Validators.required])], 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])], email: [this.mainApplicantData[0].email, Validators.compose([Validators.required, CustomValidators.email])],
applicant_type: [this.mainApplicantData[0].applicant_type, Validators.compose([Validators.required])], applicant_type: [this.mainApplicantData[0].applicant_type, Validators.compose([Validators.required])],
coApplicantItems: this._fb.array([]), coApplicantItems: this._fb.array([]),
@ -74,6 +76,7 @@ export class EditPdApplicantComponent implements OnInit {
fk_applicant_primary_id: [listData.pd_co_applicant_id], fk_applicant_primary_id: [listData.pd_co_applicant_id],
coapplicantName: [listData.applicant_name, Validators.compose([Validators.required])], 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_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], relationship: [listData.relation],
applicant_type: [listData.applicant_type, Validators.compose([Validators.required])], applicant_type: [listData.applicant_type, Validators.compose([Validators.required])],
}); });
@ -84,6 +87,7 @@ export class EditPdApplicantComponent implements OnInit {
fk_applicant_primary_id: [null], fk_applicant_primary_id: [null],
coapplicantName: [null, Validators.compose([Validators.required])], 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(12),Validators.pattern('^[0-9]*$')])],
coapplicant_landline: [null, Validators.compose([Validators.minLength(12),Validators.maxLength(13)])],
relationship: [null], relationship: [null],
applicant_type: [0], applicant_type: [0],
}); });
@ -108,6 +112,7 @@ export class EditPdApplicantComponent implements OnInit {
"applicant_name":formValue.applicant_name, "applicant_name":formValue.applicant_name,
"email":formValue.email, "email":formValue.email,
"mobile_no":formValue.mobile_no, "mobile_no":formValue.mobile_no,
"landline":formValue.landline,
"applicant_type":formValue.applicant_type, "applicant_type":formValue.applicant_type,
"relation":formValue.relationship, "relation":formValue.relationship,
"isactive":1 "isactive":1
@ -120,6 +125,7 @@ export class EditPdApplicantComponent implements OnInit {
"relation":itemElement.relationship, "relation":itemElement.relationship,
"email":"", "email":"",
"mobile_no":itemElement.coapplicant_mobile_no, "mobile_no":itemElement.coapplicant_mobile_no,
"landline":itemElement.coapplicant_landline,
"applicant_type":itemElement.applicant_type, "applicant_type":itemElement.applicant_type,
"isactive":1 "isactive":1
} }
@ -164,4 +170,13 @@ export class EditPdApplicantComponent implements OnInit {
closeEditComponent(): void { closeEditComponent(): void {
this.dialogRef.close(); 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();
}
}
} }

View File

@ -119,10 +119,8 @@
<mat-form-field style="width: 100%;"> <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-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>
<mat-form-field style="width: 100%;"> <mat-form-field style="width: 100%;">
<textarea matInput placeholder="Remarks" formControlName="remarks"></textarea> <textarea matInput placeholder="Remarks" formControlName="remarks"></textarea>

View File

@ -199,6 +199,15 @@ export class EditPdMasterComponent implements OnInit {
closeEditMasterComponent(): void { closeEditMasterComponent(): void {
this.dialogRef.close(); 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();
}
}
} }

View File

@ -13,11 +13,11 @@
<div *ngIf="pdOfficerList.length > 0" > <div *ngIf="pdOfficerList.length > 0" >
<div fxLayout="row wrap" fxFlex="100%"> <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 fxFlex="100%">
<mat-card-content style="text-align:center"> <mat-card-content style="text-align:center">
<mat-radio-button [value]="officer" (change)="selectPdOfficer(officer)"></mat-radio-button> <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> <span>{{officer.first_name}}</span>
<br> <br>
<span>{{officer.mobile_no}}</span><br> <span>{{officer.mobile_no}}</span><br>

View File

@ -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>

View File

@ -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();
});
});

View File

@ -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});
}
}

View File

@ -13,7 +13,7 @@
<!-- <form [formGroup]="_pdAllocationForm" (submit)="onSubmit()"> --> <!-- <form [formGroup]="_pdAllocationForm" (submit)="onSubmit()"> -->
<div *ngIf="pdCentralOfficerList.length > 0" > <div *ngIf="pdCentralOfficerList.length > 0" >
<div fxLayout="row wrap" fxFlex="100%"> <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> <!-- <p><mat-radio-button [value]="officer" (change)="selectPdOfficer(officer)"></mat-radio-button>
{{officer.first_name}} {{officer.first_name}}
</p> </p>
@ -31,10 +31,10 @@
<mat-card fxFlex="100%"> <mat-card fxFlex="100%">
<mat-card-content style="text-align:center"> <mat-card-content style="text-align:center">
<mat-radio-button [value]="officer" (change)="selectPdOfficer(officer)"></mat-radio-button> <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> <span>{{officer.first_name}}</span>
<br> <br>
<span>{{officer.mobile_no}}</span> <span>{{officer.mobile_no}}</span> <br>
<span>PD in hand - {{officer.count}}</span> <span>PD in hand - {{officer.count}}</span>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
@ -64,11 +64,11 @@
<div *ngIf="pdExcutiveList.length > 0" > <div *ngIf="pdExcutiveList.length > 0" >
<div fxLayout="row wrap" fxFlex="100%"> <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 fxFlex="100%">
<mat-card-content style="text-align:center"> <mat-card-content style="text-align:center">
<mat-radio-button [value]="excutive" (change)="selectExcutiveOfficer(excutive)"></mat-radio-button> <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> <span>{{excutive.first_name}}</span>
<br> <br>
<span>{{excutive.mobile_no}}</span> <br> <span>{{excutive.mobile_no}}</span> <br>

View File

@ -54,7 +54,7 @@
<p>Neighbourhood</p> <p>Neighbourhood</p>
</mat-card-header> </mat-card-header>
<div formArrayName="neighbourhood"> <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-card-content class="matcard" [formGroup]="item">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Neighbour Name" <input matInput placeholder="Neighbour Name"

View File

@ -12,7 +12,7 @@
<div [formGroupName]="i"> <div [formGroupName]="i">
<div fxLayout="row wrap" fxLayoutGap="5px" fxLayoutAlign="start none"> <div fxLayout="row wrap" fxLayoutGap="5px" fxLayoutAlign="start none">
<mat-form-field style="width:100%"> <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-option *ngFor="let asset of m_assets_type" [value]="asset.id">{{ asset.name }}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
@ -26,7 +26,7 @@
<div [formGroupName]="s"> <div [formGroupName]="s">
<div> <div>
<mat-form-field style="width:100%"> <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-option *ngFor="let prop of m_propertyType" [value]="prop.id">{{ prop.name }}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
@ -42,7 +42,7 @@
<div [formGroupName]="s"> <div [formGroupName]="s">
<div> <div>
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
</div> </div>
@ -56,7 +56,7 @@
<div [formGroupName]="s"> <div [formGroupName]="s">
<div> <div>
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
</div> </div>
@ -84,7 +84,7 @@
<div [formGroupName]="s"> <div [formGroupName]="s">
<div> <div>
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
</div> </div>
@ -99,19 +99,19 @@
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none"> <div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field> <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-option *ngFor="let ins_type of m_insuranceType" [value]="ins_type.id">{{ ins_type.name }}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
</div> </div>
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field> <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-option *ngFor="let freqn of m_freqOfPurchase" [value]="freqn.frequency_id">{{ freqn.name }}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
@ -120,12 +120,12 @@
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none"> <div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
</div> </div>
@ -141,19 +141,19 @@
<div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none"> <div fxLayout="row wrap" fxLayoutGap="2px" fxLayoutAlign="start none">
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field> <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-option *ngFor="let ins_type of m_investmentType" [value]="ins_type.id">{{ ins_type.name }}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
</div> </div>
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
</div> </div>
@ -168,7 +168,7 @@
<div [formGroupName]="s"> <div [formGroupName]="s">
<div> <div>
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
</div> </div>
@ -181,7 +181,7 @@
<div *ngIf="sup.get('assets_mode').value == 1 || sup.get('assets_mode').value == 4"> <div *ngIf="sup.get('assets_mode').value == 1 || sup.get('assets_mode').value == 4">
<div fxFlex="33"> <div fxFlex="33">
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
</div> </div>
@ -217,7 +217,7 @@
</div> </div>
<div *ngIf="sup.get('emi').value === 'yes'" fxFlex="33"> <div *ngIf="sup.get('emi').value === 'yes'" fxFlex="33">
<mat-form-field class="ml-xs example-full-width"> <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> </mat-form-field>
</div> </div>
<div *ngIf="sup.get('emi').value === 'yes'" fxFlex="33"> <div *ngIf="sup.get('emi').value === 'yes'" fxFlex="33">

View File

@ -333,7 +333,7 @@ public m_investmentType = [];
} }
case '4': { case '4': {
const control = (<FormArray>this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray; const control = (<FormArray>this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray;
control.push(this.loadJwellDescription()); //control.push(this.loadJwellDescription());
break; break;
} }
case '5': { case '5': {
@ -542,7 +542,7 @@ public m_investmentType = [];
} }
case '4': { case '4': {
const control = (<FormArray>this._assetsQuesFrom.controls['assets_details']).at(val).get('details') as FormArray; 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; break;
} }
case '5': { case '5': {
@ -640,6 +640,15 @@ public m_investmentType = [];
arr.controls.splice(0); arr.controls.splice(0);
this.getPdSupplierFormDetails(); 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', // 'main_raw_materials': 'sdkjfal',
// 'supplier_details' ; [ // 'supplier_details' ; [

View File

@ -85,14 +85,14 @@
</mat-expansion-panel-header> </mat-expansion-panel-header>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Applicant Name" <input matInput placeholder="Applicant Name"
formControlName="applicant_name"> formControlName="applicant_name" required>
</mat-form-field> </mat-form-field>
<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-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-option *ngFor="let prop of m_accountType" [value]="prop.id">{{ prop.name }}</mat-option>
</mat-select> </mat-select>
<!--<mat-select placeholder="Account Type" <!--<mat-select placeholder="Account Type"
@ -107,7 +107,7 @@
<mat-form-field> <mat-form-field>
<mat-select placeholder="Salary Credited in this account" <mat-select placeholder="Salary Credited in this account"
formControlName="salary"> formControlName="salary" required>
<mat-option value="Yes">Yes</mat-option> <mat-option value="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option> <mat-option value="No">No</mat-option>
<mat-option value="NA">NA</mat-option> <mat-option value="NA">NA</mat-option>
@ -115,19 +115,31 @@
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Limit in case of OD / CC account" <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> <mat-form-field *ngIf="pd_cus_segment!='SAL'">
<mat-select placeholder="Is this the main business account" <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="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option> <mat-option value="No">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <!-- <mat-form-field>
<input matInput placeholder="Approximate Vintage" <input matInput placeholder="Approximate Vintage"
formControlName="vintage"> 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>
<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)"> <button *ngIf="i > 0" mat-raised-button mat-icon-button matTooltip="Delete" matTooltipPosition="above" (click)="deleteBankdetails(i)">
<mat-icon >delete</mat-icon> <mat-icon >delete</mat-icon>
</button> </button>
@ -142,7 +154,7 @@
<div fxFlex="60" class="pb-0 text-sm-left"> <div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%"> <mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label> <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> </mat-form-field>
</div> </div>
</div> </div>

View File

@ -29,9 +29,11 @@ import {ActivatedRoute, Router} from "@angular/router";
}) })
export class BankingDetailsComponent implements OnInit { export class BankingDetailsComponent implements OnInit {
@Input() pdid: number; @Input() pdid: number;
@Input() pd_all_details:any;
public bankingForm: FormGroup; public bankingForm: FormGroup;
step: number; step: number;
private notifier: NotifierService; private notifier: NotifierService;
public pd_cus_segment:string;
m_accountType= []; m_accountType= [];
constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute, constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
@ -45,6 +47,11 @@ export class BankingDetailsComponent implements OnInit {
this.step = 0; this.step = 0;
this.initBankingForm(); this.initBankingForm();
this.getM_AccountType(); 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 = {}; let params: any = {};
params.pd_id = this.pdid; params.pd_id = this.pdid;
params.pd_form_id = '7'; params.pd_form_id = '7';
@ -98,9 +105,14 @@ export class BankingDetailsComponent implements OnInit {
account_type: ['', Validators.compose([Validators.required])], account_type: ['', Validators.compose([Validators.required])],
salary: ['', Validators.compose([Validators.required])], salary: ['', Validators.compose([Validators.required])],
limit: ['', Validators.compose([Validators.required])], limit: ['', Validators.compose([Validators.required])],
is_main: ['', Validators.compose([Validators.required])], //is_main: ['', Validators.compose([Validators.required])],
vintage: ['', 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) { addBankdetails(index, event) {
@ -109,6 +121,10 @@ export class BankingDetailsComponent implements OnInit {
let length = control.length; let length = control.length;
this.step = length; this.step = length;
control.push(this.createBankarray()); 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) { 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();
}
}
} }

View File

@ -2,25 +2,25 @@
<p>Business Details</p> <p>Business Details</p>
<form [formGroup]="businessForm" class="address"> <form [formGroup]="businessForm" class="address">
<mat-form-field> <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>
<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-form-field> <mat-form-field>
<mat-select placeholder="Industry" <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-option value="{{list.industry_classification_id}}" *ngFor="let list of industryData">{{list.name}}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="Type of Activity" <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-option value="{{type.type_of_activity_id}}" *ngFor="let type of activityData">{{type.name}}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Seasonality" formControlName="seasonality"> <input matInput placeholder="Seasonality" formControlName="seasonality" required>
</mat-form-field> </mat-form-field>
<mat-card> <mat-card>
<mat-card-header> <mat-card-header>
@ -32,10 +32,10 @@
[formGroupName]="i"> [formGroupName]="i">
<mat-card-content class="card"> <mat-card-content class="card">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Name" formControlName="sec_name"> <input matInput placeholder="Name" formControlName="sec_name" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Designation" formControlName="sec_designation"> <input matInput placeholder="Designation" formControlName="sec_designation" required>
</mat-form-field> </mat-form-field>
<button type="button" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button (click)="addDesignation()" <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"> matTooltip="Add More Designation" matTooltipPosition="above" color="primary" *ngIf="i==0">
@ -51,14 +51,14 @@
</mat-card> </mat-card>
<mat-form-field> <mat-form-field>
<mat-select placeholder="Who started the business / professions" <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="applicant">Started by Applicant</mat-option>
<mat-option value="family_business">Family Business</mat-option> <mat-option value="family_business">Family Business</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="Main person running the businesss" <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="applicants">One of the applicants</mat-option>
<mat-option value="Relative">Relative of an applicant</mat-option> <mat-option value="Relative">Relative of an applicant</mat-option>
<mat-option value="Others">Others</mat-option> <mat-option value="Others">Others</mat-option>
@ -70,17 +70,17 @@
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select multiple placeholder="Other family members invovled" <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-option value="{{member.relationship_id}}" *ngFor="let member of relationData">{{member.name}}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Any other business before" <input matInput placeholder="Any other business before"
formControlName="before_business"> formControlName="before_business" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Any delays" <input matInput placeholder="Any delays"
formControlName="any_delays"> formControlName="any_delays" required>
</mat-form-field> </mat-form-field>
<mat-card> <mat-card>
<mat-card-header> <mat-card-header>
@ -93,19 +93,19 @@
<mat-card-content class="card"> <mat-card-content class="card">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Name" <input matInput placeholder="Name"
formControlName="partner_name"> formControlName="partner_name" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Share of Profit / Shareholding" <input matInput placeholder="Share of Profit / Shareholding"
formControlName="shareholding"> formControlName="shareholding" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="No. of yrs in this business" <input matInput placeholder="No. of yrs in this business"
formControlName="current_business_experiance"> formControlName="current_business_experiance" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Total Business Experience" <input matInput placeholder="Total Business Experience"
formControlName="total_business_experiance"> formControlName="total_business_experiance" required>
</mat-form-field> </mat-form-field>
<button type="button" class="mr-1 mb-1 hover-icon" mat-raised-button mat-icon-button (click)="addPartnerDetails()" <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"> matTooltip="Add More Partners / Directors / Shareholders" matTooltipPosition="above" color="primary" *ngIf="i==0">
@ -127,15 +127,15 @@
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Total" <input matInput placeholder="Total"
formControlName="employees_total"> formControlName="employees_total" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Permanent" <input matInput placeholder="Permanent"
formControlName="employees_permanent"> formControlName="employees_permanent" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Temporary" <input matInput placeholder="Temporary"
formControlName="employees_temporary"> formControlName="employees_temporary" required>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
@ -147,15 +147,15 @@
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Total" <input matInput placeholder="Total"
formControlName="officer_total"> formControlName="officer_total" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Permanent" <input matInput placeholder="Permanent"
formControlName="officer_permanent"> formControlName="officer_permanent" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Temporary" <input matInput placeholder="Temporary"
formControlName="officer_temporary"> formControlName="officer_temporary" required>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
@ -167,11 +167,11 @@
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Amount Invested by Applicant" <input matInput placeholder="Amount Invested by Applicant"
formControlName="invested_amount"> formControlName="invested_amount" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Monthly Working Capital Needed" <input matInput placeholder="Monthly Working Capital Needed"
formControlName="working_capital"> formControlName="working_capital" required>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
@ -184,7 +184,7 @@
<mat-form-field> <mat-form-field>
<mat-select <mat-select
placeholder="Is the location of the business / profession suited to the nature of business / service provided? " 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="well_suited.">Well Suited.</mat-option>
<mat-option value="fairly_suited">Fairly Suited</mat-option> <mat-option value="fairly_suited">Fairly Suited</mat-option>
<mat-option value="not_suited">Not Suited</mat-option> <mat-option value="not_suited">Not Suited</mat-option>
@ -200,7 +200,7 @@
<mat-card-content class="matcards"> <mat-card-content class="matcards">
<mat-form-field> <mat-form-field>
<mat-select placeholder="What is the ownership of the setup ?" <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="self_owned">self owned</mat-option>
<mat-option value="rented">Rented</mat-option> <mat-option value="rented">Rented</mat-option>
<mat-option value="family_owned">Family Owned</mat-option> <mat-option value="family_owned">Family Owned</mat-option>
@ -213,7 +213,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="businessForm.controls['ownership_setup'].value == 'rented'"> <mat-form-field *ngIf="businessForm.controls['ownership_setup'].value == 'rented'">
<input matInput placeholder="Provide Rent Paid?" <input matInput placeholder="Provide Rent Paid?"
formControlName="rent_paid"> formControlName="rent_paid" (keypress)="keyPress($event)">
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
@ -225,56 +225,56 @@
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<mat-select placeholder="Shop and Eat Act Cert" <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="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="GST Regn Cert" <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="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="Export / Import cert" <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="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="Factory Cert" <mat-select placeholder="Factory Cert"
formControlName="factory_cert"> formControlName="factory_cert" required>
<mat-option value="yes">Yes</mat-option> <mat-option value="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="Cert of Practice" <mat-select placeholder="Cert of Practice"
formControlName="practice_cert"> formControlName="practice_cert" required>
<mat-option value="yes">Yes</mat-option> <mat-option value="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="PF Regn" <mat-select placeholder="PF Regn"
formControlName="pf_regn"> formControlName="pf_regn" required>
<mat-option value="yes">Yes</mat-option> <mat-option value="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="ESIC Regn" <mat-select placeholder="ESIC Regn"
formControlName="esic_regn"> formControlName="esic_regn" required>
<mat-option value="yes">Yes</mat-option> <mat-option value="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="Do you want to add other documents?" <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="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
@ -302,7 +302,7 @@
<div fxFlex="60" class="pb-0 text-sm-left"> <div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%"> <mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label> <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> </mat-form-field>
</div> </div>
</div> </div>

View File

@ -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();
}
}
} }

View File

@ -9,34 +9,36 @@
<div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none"> <div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none">
<div> <div>
<mat-form-field class="ml-xs example-full-width"> <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-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
</mat-form-field> </mat-form-field>
</div> </div>
<div> <div>
<mat-form-field class="ml-xs example-full-width"> <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-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
</mat-form-field> </mat-form-field>
</div> </div>
<div> <div>
<mat-form-field class="ml-xs example-full-width"> <mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Contact Mobile Number" formControlName="mobile_number"> <input matInput placeholder="Contact Mobile Number" formControlName="mobile_number" (keypress)="keyPress($event)" minlength=10 maxlength=10 required>
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>--> <!-- <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> </mat-form-field>
</div> </div>
</div> </div>
<div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none"> <div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none">
<div> <div>
<mat-form-field> <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-option *ngFor="let pm of m_paymentModeType" [value]="pm.id">{{ pm.name }}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
</div> </div>
<div *ngIf="sup.get('payment_mode').value == 1 || sup.get('payment_mode').value == 3"> <div *ngIf="sup.get('payment_mode').value == 1 || sup.get('payment_mode').value == 3">
<mat-form-field class="ml-xs example-full-width"> <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-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>-->
</mat-form-field> </mat-form-field>
</div> </div>
@ -50,7 +52,7 @@
<div fxLayout="row" fxLayoutGap="12px" fxLayoutAlign="start none"> <div fxLayout="row" fxLayoutGap="12px" fxLayoutAlign="start none">
<div> <div>
<mat-form-field> <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-option *ngFor="let feq of m_freqOfPurchase" [value]="feq.frequency_id">{{ feq.name }}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>

View File

@ -177,7 +177,7 @@ apiLoadFinish: boolean = false;
return this._formBuilder.group({ return this._formBuilder.group({
client_name: ['', Validators.compose([Validators.required])], client_name: ['', Validators.compose([Validators.required])],
contact_person: ['', 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])], payment_mode: ['', Validators.compose([Validators.required])],
per_of_immediate_advance_payment:[''], per_of_immediate_advance_payment:[''],
credit_period:[''], credit_period:[''],
@ -190,7 +190,7 @@ apiLoadFinish: boolean = false;
return this._formBuilder.group({ return this._formBuilder.group({
client_name: [data.client_name, Validators.compose([Validators.required])], client_name: [data.client_name, Validators.compose([Validators.required])],
contact_person: [data.contact_person, 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])], payment_mode: [data.payment_mode, Validators.compose([Validators.required])],
per_of_immediate_advance_payment:[data.per_of_immediate_advance_payment || ''], per_of_immediate_advance_payment:[data.per_of_immediate_advance_payment || ''],
credit_period:[data.credit_period || ''], credit_period:[data.credit_period || ''],
@ -280,6 +280,15 @@ var result = Object.keys(supp_data).map(function(key) {
onReset() { onReset() {
// this._addQuesFrom.reset(); // 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', // 'main_raw_materials': 'sdkjfal',

View File

@ -4,7 +4,7 @@
<form [formGroup]="currentLoanForm" class="address"> <form [formGroup]="currentLoanForm" class="address">
<mat-form-field> <mat-form-field>
<mat-select (selectionChange)="selectedLoanChanges($event)" placeholder="Do you have any other existing loan" <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="Yes">Yes</mat-option>
<mat-option value="No">No</mat-option> <mat-option value="No">No</mat-option>
</mat-select> </mat-select>
@ -18,22 +18,22 @@
[formGroupName]="i"> [formGroupName]="i">
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <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>
<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>
<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>
<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>
<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>
<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> </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()" <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"> *ngIf="i==0">
@ -51,7 +51,7 @@
<div fxFlex="60" class="pb-0 text-sm-left"> <div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%"> <mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label> <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> </mat-form-field>
</div> </div>
</div> </div>

View File

@ -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();
}
}
} }

View File

@ -2,55 +2,55 @@
<p>Employement Information</p> <p>Employement Information</p>
<form [formGroup]="employmentForm" class="address"> <form [formGroup]="employmentForm" class="address">
<mat-form-field> <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> </mat-form-field>
<div> <div>
<label>Since how long working with this employer?</label> <label>Since how long working with this employer?</label>
<br> <br>
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none"> <div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none">
<mat-form-field> <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>
<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> </mat-form-field>
</div> </div>
</div> </div>
<mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'"> <mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'">
<mat-select placeholder="Was the employer met?" <mat-select placeholder="Was the employer met?"
formControlName="was_met"> formControlName="was_met" required>
<mat-option value="yes">Yes</mat-option> <mat-option value="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none" *ngIf="employmentForm.controls['was_met'].value == 'yes'"> <div fxLayout="row" fxLayoutGap="2px" fxLayoutAlign="start none" *ngIf="employmentForm.controls['was_met'].value == 'yes'">
<mat-form-field> <mat-form-field fxFlex="50">
<input matInput placeholder="Name of person met" formControlName="name_person_met"> <input matInput placeholder="Name of Person Met" formControlName="name_person_met" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field fxFlex="50">
<input matInput placeholder="Designation of person met" formControlName="designation_person_met"> <input matInput placeholder="Designation of Person Met" formControlName="designation_person_met" required>
</mat-form-field> </mat-form-field>
</div> </div>
<mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'"> <mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'">
<mat-select placeholder="Salary amount confirmed ?" <mat-select placeholder="Salary amount confirmed ?"
formControlName="confirm_salary"> formControlName="confirm_salary" required>
<mat-option value="yes">Yes</mat-option> <mat-option value="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="employmentForm.controls['confirm_salary'].value == 'yes'"> <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>
<mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'"> <mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'">
<mat-select placeholder="Attendance register seen ?" <mat-select placeholder="Attendance register seen ?"
formControlName="attendance_seen"> formControlName="attendance_seen" required>
<mat-option value="yes">Yes</mat-option> <mat-option value="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'"> <mat-form-field *ngIf="pd_cus_segment!='SAL-CHQ'">
<mat-select placeholder="Salary register seen ?" <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="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
@ -61,22 +61,48 @@
</mat-card-header> </mat-card-header>
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Gross Monthly Salary" formControlName="gross_monthly_salary"> <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" (keypress)="keyPress($event)" required>
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Net Monthly Salary" <input matInput placeholder="Net Monthly Salary"
formControlName="net_monthly_salary"> formControlName="net_monthly_salary" (keypress)="keyPress($event)" required>
<!-- <input matInput placeholder="Net Take Home" <!-- <input matInput placeholder="Net Take Home"
formControlName="net_take_home"> --> formControlName="net_take_home"> -->
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Bonus or Incentive" <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>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Any Delays" <mat-select placeholder="Any Delays"
formControlName="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-form-field>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
@ -84,7 +110,7 @@
<div fxFlex="60" class="pb-0 text-sm-left"> <div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%"> <mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label> <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> </mat-form-field>
</div> </div>
</div> </div>

View File

@ -36,10 +36,13 @@ export class EmploymentInfoComponent implements OnInit {
public employmentForm: FormGroup; public employmentForm: FormGroup;
private notifier: NotifierService; private notifier: NotifierService;
public pd_cus_segment:string; public pd_cus_segment:string;
public frequency_data:any[];
constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute, constructor(notifier: NotifierService, private fb: FormBuilder, private route: ActivatedRoute,
private router: Router, private router: Router,
private _pd: PdTrigerService) { private _pd: PdTrigerService) {
this.notifier = notifier; this.notifier = notifier;
//getAllMasterDatas();
} }
ngOnInit() { ngOnInit() {
@ -66,13 +69,25 @@ export class EmploymentInfoComponent implements OnInit {
} }
this.employmentForm.controls['attendance_seen'].setValue(value.records.attendance_seen); 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['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['gross_monthly_salary'].setValue(value.records.gross_monthly_salary);
this.employmentForm.controls['net_monthly_salary'].setValue(value.records.net_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_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['any_delays'].setValue(value.records.any_delays);
this.employmentForm.controls['employment_remarks'].setValue(value.records.employment_remarks); 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 { public initemploymentForm(): void {
this.employmentForm = this.fb.group({ this.employmentForm = this.fb.group({
@ -86,9 +101,13 @@ export class EmploymentInfoComponent implements OnInit {
confirm_salary_amount: [''], confirm_salary_amount: [''],
attendance_seen: [this.pd_cus_segment=='SAL-CHQ' ? 'No' : '', Validators.compose([Validators.required])], 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])], 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])], gross_monthly_salary: ['', Validators.compose([Validators.required])],
net_monthly_salary: ['', Validators.compose([Validators.required])], net_monthly_salary: ['', Validators.compose([Validators.required])],
bonus_incentive: ['', Validators.compose([Validators.required])], bonus_incentive: ['', Validators.compose([Validators.required])],
bonus_frequency: [''],
bonus_type: [''],
bonus_type_other: [''],
any_delays: ['', Validators.compose([Validators.required])], any_delays: ['', Validators.compose([Validators.required])],
employment_remarks: ['', 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.attendance_seen = this.employmentForm.controls['attendance_seen'].value;
records.sal_reg_seen = this.employmentForm.controls['sal_reg_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.gross_monthly_salary = this.employmentForm.controls['gross_monthly_salary'].value;
records.net_monthly_salary = this.employmentForm.controls['net_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_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.any_delays = this.employmentForm.controls['any_delays'].value;
records.employment_remarks = this.employmentForm.controls['employment_remarks'].value; records.employment_remarks = this.employmentForm.controls['employment_remarks'].value;
console.log('data', records); console.log('data', records);
@ -128,5 +151,14 @@ export class EmploymentInfoComponent implements OnInit {
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); 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();
}
}
} }

View File

@ -4,7 +4,7 @@
<p>Family Details</p> <p>Family Details</p>
<form class="address" [formGroup]="familyForm"> <form class="address" [formGroup]="familyForm">
<mat-form-field> <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"> <mat-option *ngFor="let personMet of personMetData" [value]="personMet.person_met_id">
{{personMet.person_met_name}} {{personMet.person_met_name}}
</mat-option> </mat-option>
@ -14,7 +14,7 @@
<input matInput placeholder="Enter the relationship" formControlName="personOther"> <input matInput placeholder="Enter the relationship" formControlName="personOther">
</mat-form-field> </mat-form-field>
<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-form-field>
<mat-card> <mat-card>
<mat-card-header> <mat-card-header>
@ -111,13 +111,13 @@
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Residence Address" <input matInput placeholder="Residence Address"
formControlName="residence"> formControlName="residence" required>
</mat-form-field> </mat-form-field>
<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-form-field> <mat-form-field>
<mat-select placeholder="Ownership" formControlName="ownership"> <mat-select placeholder="Ownership" formControlName="ownership" required>
<mat-option value="{{ownerShip.id}}" <mat-option value="{{ownerShip.id}}"
*ngFor="let ownerShip of ownerShipData"> *ngFor="let ownerShip of ownerShipData">
{{ownerShip.name}} {{ownerShip.name}}

View File

@ -10,22 +10,22 @@
[formGroupName]="i"> [formGroupName]="i">
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <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>
<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>
<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>
<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>
<mat-form-field *ngIf="i != 0"> <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>
<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> </mat-form-field>
<button type="button" mat-raised-button mat-icon-button (click)="addDate()" <button type="button" mat-raised-button mat-icon-button (click)="addDate()"
@ -49,22 +49,22 @@
[formGroupName]="i"> [formGroupName]="i">
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <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>
<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>
<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>
<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>
<mat-form-field *ngIf="i != 0"> <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>
<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> </mat-form-field>
<button type="button" mat-raised-button mat-icon-button (click)="addGoods()" <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"> 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"> <div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%"> <mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label> <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> </mat-form-field>
</div> </div>
</div> </div>

View File

@ -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();
}
}
} }

View File

@ -2,10 +2,10 @@
<p>Loan Details</p> <p>Loan Details</p>
<form [formGroup]="loanDetailsForm" class="address"> <form [formGroup]="loanDetailsForm" class="address">
<mat-form-field> <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-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-option *ngFor="let enduse of m_endUseofLoad" [value]="enduse.id">{{ enduse.name }}</mat-option>
</mat-select> </mat-select>
<!--<mat-select multiple placeholder="What is the end use" <!--<mat-select multiple placeholder="What is the end use"
@ -24,35 +24,35 @@
<input matInput placeholder="Specify End Use" formControlName="end_use_other"> <input matInput placeholder="Specify End Use" formControlName="end_use_other">
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select placeholder="Is there a balance transfer" <mat-select placeholder="Is there a balance transfer" (selectionChange)="selectedBalancesTransferChanges($event)"
formControlName="is_transfer"> formControlName="is_transfer" required>
<mat-option value="yes">Yes</mat-option> <mat-option value="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes'"> <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>
<mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes'"> <mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes'">
<mat-select placeholder="Is there a Top Up" <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="yes">Yes</mat-option>
<mat-option value="no">No</mat-option> <mat-option value="no">No</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes' && loanDetailsForm.controls['is_topup'].value == 'yes'"> <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>
<mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes'"> <mat-form-field *ngIf="loanDetailsForm.controls['is_transfer'].value == 'yes'">
<input matInput placeholder="Lender from where balance transfer done" formControlName="lender"> <input matInput placeholder="Lender from where balance transfer done" formControlName="lender">
</mat-form-field> </mat-form-field>
<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-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-option *ngFor="let sour of m_sourceofamount" [value]="sour.id">{{ sour.name }}</mat-option>
</mat-select> </mat-select>
@ -67,7 +67,7 @@
<input matInput placeholder="Specify Lender Name and Type" formControlName="lender_name_type"> <input matInput placeholder="Specify Lender Name and Type" formControlName="lender_name_type">
</mat-form-field> </mat-form-field>
<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-form-field>
<mat-card> <mat-card>
<mat-card-header> <mat-card-header>
@ -76,7 +76,7 @@
</mat-card-header> </mat-card-header>
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <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-option *ngFor="let typeprop of m_mortageTypeProperty" [value]="typeprop.id">{{ typeprop.name }}</mat-option>
</mat-select> </mat-select>
@ -102,13 +102,13 @@
</mat-form-field> </mat-form-field>
<mat-form-field> <mat-form-field>
<mat-select multiple placeholder="Name of Owner" <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-option value="{{owner.pd_co_applicant_id}}" *ngFor="let owner of applicants">{{owner.applicant_name}}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<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-option *ngFor="let status of m_statusofCunstruction" [value]="status.id">{{ status.name }}</mat-option>
</mat-select> </mat-select>
@ -122,11 +122,11 @@
<mat-form-field> <mat-form-field>
<input matInput placeholder="EMV as Per Customer" <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>
<mat-form-field> <mat-form-field>
<input matInput placeholder="Value as Per Agreement" <input matInput placeholder="Value as Per Agreement"
formControlName="value_per_agreement"> formControlName="value_per_agreement" (keypress)="keyPress($event)" required>
</mat-form-field> </mat-form-field>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
@ -134,7 +134,7 @@
<div fxFlex="60" class="pb-0 text-sm-left"> <div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%"> <mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label> <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> </mat-form-field>
</div> </div>
</div> </div>

View File

@ -170,7 +170,8 @@ getM_sourceofamount() {
end_use: ['', Validators.compose([Validators.required])], end_use: ['', Validators.compose([Validators.required])],
end_use_other: [''], end_use_other: [''],
is_transfer: ['', Validators.compose([Validators.required])], is_transfer: ['', Validators.compose([Validators.required])],
is_topup: ['', Validators.compose([Validators.required])], //is_topup: ['', Validators.compose([Validators.required])],
is_topup: [''],
balance_transfer_amount: [''], balance_transfer_amount: [''],
topup_amount: [''], topup_amount: [''],
lender: [''], lender: [''],
@ -204,6 +205,7 @@ getM_sourceofamount() {
submitLoanDetails() { submitLoanDetails() {
console.log('formData', this.loanDetailsForm.value); console.log('formData', this.loanDetailsForm.value);
if (!this.loanDetailsForm.valid) { if (!this.loanDetailsForm.valid) {
//this.notifier.notify('warning', 'Form Invaild Check all requried Field .!');
return; return;
} }
let records: any = {}; 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();
}
}
} }

View File

@ -65,7 +65,7 @@
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<mat-select placeholder="Source" <mat-select placeholder="Source"
formControlName="source"> formControlName="source" required>
<mat-option value="rental_income">Rental Income</mat-option> <mat-option value="rental_income">Rental Income</mat-option>
<mat-option value="interest_income">Interest Income</mat-option> <mat-option value="interest_income">Interest Income</mat-option>
<mat-option value="agricultural_income">Agricultural Income</mat-option> <mat-option value="agricultural_income">Agricultural Income</mat-option>
@ -73,10 +73,10 @@
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
<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-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-option value="{{frq.frequency_id}}" *ngFor="let frq of frequencyData">{{frq.name}}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
@ -96,7 +96,7 @@
<div fxFlex="60" class="pb-0 text-sm-left"> <div fxFlex="60" class="pb-0 text-sm-left">
<mat-form-field appearance="outline" style="width: 100%"> <mat-form-field appearance="outline" style="width: 100%">
<mat-label>Remarks</mat-label> <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> </mat-form-field>
</div> </div>
</div> </div>

View File

@ -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();
}
}
} }

View File

@ -21,7 +21,7 @@
</mat-form-field> </mat-form-field>
<mat-form-field style="width: 100%"> <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-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> </mat-form-field>

View File

@ -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();
}
}
} }

View File

@ -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>

View File

@ -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%;
}

View File

@ -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.!');
})
}
}

View File

@ -11,19 +11,19 @@
[formGroupName]="i"> [formGroupName]="i">
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Name" formControlName="raw_name"> <input matInput placeholder="Name" formControlName="raw_name" required>
</mat-form-field> </mat-form-field>
<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>
<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>
<mat-form-field style="width:76%"> <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>
<mat-form-field style="width:76%"> <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> </mat-form-field>
<button type="button" mat-raised-button mat-icon-button (click)="addRawMaterials()" <button type="button" mat-raised-button mat-icon-button (click)="addRawMaterials()"
@ -47,19 +47,19 @@
[formGroupName]="i"> [formGroupName]="i">
<mat-card-content class="matcard"> <mat-card-content class="matcard">
<mat-form-field> <mat-form-field>
<input matInput placeholder="Name" formControlName="goods_name"> <input matInput placeholder="Name" formControlName="goods_name" required>
</mat-form-field> </mat-form-field>
<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>
<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>
<mat-form-field style="width:76%"> <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>
<mat-form-field style="width:76%"> <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> </mat-form-field>
<button type="button" mat-raised-button mat-icon-button (click)="addGoods()" <button type="button" mat-raised-button mat-icon-button (click)="addGoods()"

View File

@ -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();
}
}
} }

View File

@ -19,56 +19,57 @@
<div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none"> <div fxLayout="row wrap" fxLayoutGap="12px" fxLayoutAlign="start none">
<div fxFlex="30"> <div fxFlex="30">
<mat-form-field class="ml-xs example-full-width"> <mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Supplier Name" formControlName="supplier_name"> <input matInput placeholder="Supplier Name" formControlName="supplier_name" required>
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>--> <!-- <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> </mat-form-field>
</div> </div>
<div fxFlex="30"> <div fxFlex="30">
<mat-form-field class="ml-xs example-full-width"> <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-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> </mat-form-field>
</div> </div>
<div fxFlex="30"> <div fxFlex="30">
<mat-form-field class="ml-xs example-full-width"> <mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Contact Mobile Number" formControlName="mobile_number"> <input matInput placeholder="Contact Mobile Number" formControlName="mobile_number" (keypress)="keyPress($event)" minlength=10 maxlength=10 required>
<!--<mat-error *ngIf="submitted && f.supplier_name.hasError('required')" class="mat-text-warn">You must Include Supplier Name.</mat-error>--> <!-- <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> </mat-form-field>
</div> </div>
</div> </div>
<div fxLayout="row wrap" fxLayoutGap="14px" fxLayoutAlign="start none"> <div fxLayout="row wrap" fxLayoutGap="14px" fxLayoutAlign="start none">
<div fxFlex="30"> <div fxFlex="30">
<mat-form-field style="width:100%"> <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-option *ngFor="let pm of m_paymentModeType" [value]="pm.id">{{ pm.name }}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
</div> </div>
<div *ngIf="sup.get('payment_mode').value == 1 || sup.get('payment_mode').value == 3" fxFlex="30"> <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" > <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> </mat-form-field>
</div> </div>
<div *ngIf="sup.get('payment_mode').value == 2 || sup.get('payment_mode').value == 3" fxFlex="30"> <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"> <mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Credit Period" formControlName="credit_period"> <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> </mat-form-field>
</div> </div>
</div> </div>
<div fxLayout="row" fxLayoutGap="14px" fxLayoutAlign="start none"> <div fxLayout="row" fxLayoutGap="14px" fxLayoutAlign="start none">
<div fxFlex="30"> <div fxFlex="30">
<mat-form-field style="width:100%"> <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-option *ngFor="let feq of m_freqOfPurchase" [value]="feq.frequency_id">{{ feq.name }}</mat-option>
</mat-select> </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> </mat-form-field>
</div> </div>
<div *ngIf="sup.get('frequency_of_purchase').value == 8" fxFlex="30"> <div *ngIf="sup.get('frequency_of_purchase').value == 8" fxFlex="30">
<mat-form-field class="ml-xs example-full-width"> <mat-form-field class="ml-xs example-full-width">
<input matInput placeholder="Others Details" formControlName="freq_purchase_others_text_value"> <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> </mat-form-field>
</div> </div>

View File

@ -179,7 +179,7 @@ apiLoadFinish: boolean = false;
return this._formBuilder.group({ return this._formBuilder.group({
supplier_name: ['', Validators.compose([Validators.required])], supplier_name: ['', Validators.compose([Validators.required])],
contact_person: ['', 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])], payment_mode: ['', Validators.compose([Validators.required])],
per_of_immediate_advance_payment:[''], per_of_immediate_advance_payment:[''],
credit_period:[''], credit_period:[''],
@ -192,7 +192,7 @@ apiLoadFinish: boolean = false;
return this._formBuilder.group({ return this._formBuilder.group({
supplier_name: [data.supplier_name, Validators.compose([Validators.required])], supplier_name: [data.supplier_name, Validators.compose([Validators.required])],
contact_person: [data.contact_person, 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])], payment_mode: [data.payment_mode, Validators.compose([Validators.required])],
per_of_immediate_advance_payment:[data.per_of_immediate_advance_payment || ''], per_of_immediate_advance_payment:[data.per_of_immediate_advance_payment || ''],
credit_period:[data.credit_period || ''], credit_period:[data.credit_period || ''],
@ -284,6 +284,16 @@ apiLoadFinish: boolean = false;
// this._addQuesFrom.reset(); // 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', // 'main_raw_materials': 'sdkjfal',
// 'supplier_details' ; [ // 'supplier_details' ; [

View File

@ -31,9 +31,12 @@
<mat-list-item class="custm-list-item" (click)="OnSelectDirectForms(formButton)" style="background-color:#e0e0e0"> <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> <span class="mt-0">{{ (formButton.form_name.length>17)? (formButton.form_name | slice:0:17)+'..':(formButton.form_name) }}</span>
</mat-list-item> </mat-list-item>
</mat-list> </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-sidenav>
<mat-toolbar color="primary" fxHide="false" fxHide.gt-sm> <mat-toolbar color="primary" fxHide="false" fxHide.gt-sm>
@ -407,7 +410,7 @@
</ng-container> </ng-container>
<ng-container *ngSwitchCase="7"> <ng-container *ngSwitchCase="7">
<!--<p>Banking details</p>--> <!--<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>
<ng-container *ngSwitchCase="8"> <ng-container *ngSwitchCase="8">
<app-current-loan [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-current-loan> <app-current-loan [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-current-loan>
@ -433,9 +436,12 @@
<ng-container *ngSwitchCase="15"> <ng-container *ngSwitchCase="15">
<app-lender-representative [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-lender-representative> <app-lender-representative [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-lender-representative>
</ng-container> </ng-container>
<ng-container *ngSwitchCase="17">
<app-rental-info [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-rental-info>
</ng-container>
</ng-container> </ng-container>
</div> </div>
<!-- end form based questions --> <!-- end form based questions -->
</figure> </figure>

View File

@ -29,6 +29,7 @@ export class StartPdComponent implements OnInit, OnDestroy {
answerList: any = []; answerList: any = [];
ansPDList: any = []; ansPDList: any = [];
relationDetails: any = [1]; relationDetails: any = [1];
rentalDetail: any = { form_id: "16", form_name: "Rental Information", isAnswered: true}
// errorMessage:any; // errorMessage:any;
// selectedCategory:any=[]; // selectedCategory:any=[];
// categoryList: any=[]; // categoryList: any=[];
@ -294,6 +295,7 @@ pdFullDetails:any=[];
this.pdMasterList=data.records.pdmaster_details; this.pdMasterList=data.records.pdmaster_details;
this.categoryList=data.records.question_answers; this.categoryList=data.records.question_answers;
this.categoryFormButtons = data.records.template_forms; this.categoryFormButtons = data.records.template_forms;
console.log('formButtons', this.categoryFormButtons);
let filterApplicantName= data.records.pdapplicants_detials.filter(item => item.applicant_type == 1); let filterApplicantName= data.records.pdapplicants_detials.filter(item => item.applicant_type == 1);
this.mainApplicantName = filterApplicantName[0].applicant_name; this.mainApplicantName = filterApplicantName[0].applicant_name;
this.currentPDStatus = data.records.pdmaster_details.pd_status; this.currentPDStatus = data.records.pdmaster_details.pd_status;
@ -625,6 +627,7 @@ pdFullDetails:any=[];
OnSelectDirectForms(details: any) { OnSelectDirectForms(details: any) {
this.formsCategoryEnable = true; this.formsCategoryEnable = true;
this.selectedFormsCategory = details; this.selectedFormsCategory = details;
console.log('select..', this.selectedFormsCategory);
} }

View File

@ -13,11 +13,11 @@
<div *ngIf="pdCentralOfficerList.length > 0" > <div *ngIf="pdCentralOfficerList.length > 0" >
<div fxLayout="row wrap" fxFlex="100%"> <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 fxFlex="100%">
<mat-card-content style="text-align:center"> <mat-card-content style="text-align:center">
<mat-radio-button [value]="officer" (change)="selectPdOfficer(officer)"></mat-radio-button> <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> <span>{{officer.first_name}}</span>
<br> <br>
<span>{{officer.mobile_no}}</span><br> <span>{{officer.mobile_no}}</span><br>

View File

@ -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="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.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.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> <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> <br>
<!-- <span *ngIf="master.pd_allocated_to" style="color:red;text-align:left" class="fa-1x fa fa-user-secret" matTooltip="PD Officer" <!-- <span *ngIf="master.pd_allocated_to" style="color:red;text-align:left" class="fa-1x fa fa-user-secret" matTooltip="PD Officer"

View File

@ -170,6 +170,11 @@ export class ViewPdComponent implements OnInit, OnDestroy {
this.router.navigate([ '../../startpd',pdID], { relativeTo: this.route }); 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) { // updateViewComponent(editBack:string) {
// if(editBack=='1'){ // if(editBack=='1'){

View File

@ -9,7 +9,7 @@ import {
MatProgressBarModule, MatDialogModule, MatSortModule, MatProgressBarModule, MatDialogModule, MatSortModule,
MatToolbarModule, MatSelectModule, MatListModule, MatGridListModule, MatTabsModule, MatCheckboxModule, MatToolbarModule, MatSelectModule, MatListModule, MatGridListModule, MatTabsModule, MatCheckboxModule,
MatBadgeModule, MatExpansionModule, MatStepperModule, MatSidenavModule, MatMenuModule, MatButtonToggleModule, MatBadgeModule, MatExpansionModule, MatStepperModule, MatSidenavModule, MatMenuModule, MatButtonToggleModule,
MatAutocompleteModule MatAutocompleteModule, MatDatepickerModule
} from '@angular/material'; } from '@angular/material';
import {MatSlideToggleModule} from '@angular/material/slide-toggle'; import {MatSlideToggleModule} from '@angular/material/slide-toggle';
import {FormsModule, ReactiveFormsModule} from '@angular/forms'; 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 { 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 * Custom angular notifier options
*/ */
@ -135,7 +140,7 @@ const pdCustomNotifierOptions: NotifierOptions = {
// AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}), OwlDateTimeModule, // AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}), OwlDateTimeModule,
// OwlNativeDateTimeModule, // 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], // exports: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, CompletedPdComponent, QcCompletedPdComponent],
// providers: [PdTrigerService, GetGeometricLocationService], // providers: [PdTrigerService, GetGeometricLocationService],
@ -160,6 +165,7 @@ const pdCustomNotifierOptions: NotifierOptions = {
ReactiveFormsModule, ReactiveFormsModule,
FileUploadModule, FileUploadModule,
TreeModule, TreeModule,
MatDatepickerModule,
MatDialogModule,MatSortModule, MatDialogModule,MatSortModule,
NgxMatSelectSearchModule,MatTooltipModule, MatExpansionModule, NgxMatSelectSearchModule,MatTooltipModule, MatExpansionModule,
AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}),OwlDateTimeModule, AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}),OwlDateTimeModule,

View File

@ -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 { AddPdComponent } from '../manage-pd/list-pd/add-pd/add-pd.component';
import { ViewPdComponent } from '../manage-pd/list-pd/view-pd/view-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 { StartPdComponent } from './list-pd/start-pd/start-pd.component';
import { PdReportComponent } from './list-pd/pd-report/pd-report.component';
/* /*
* manage pd router * manage pd router
*/ */
@ -18,7 +19,7 @@ const routes: Routes = [
path: '', path: '',
pathMatch: 'full', pathMatch: 'full',
redirectTo: 'pdlist' redirectTo: 'pdlist'
},{ }, {
path: 'pdlist', path: 'pdlist',
component: ListPdComponent, component: ListPdComponent,
children: [ children: [
@ -37,6 +38,10 @@ const routes: Routes = [
{ {
path: 'startpd/:pdid', path: 'startpd/:pdid',
component: StartPdComponent, component: StartPdComponent,
},
{
path: 'pdRecord/:pdid',
component: PdReportComponent,
} }
] ]
} }

View File

@ -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) { // private handleError<T>(operation = 'operation', result?: T) {
// return (error: any): Observable<T> => { // return (error: any): Observable<T> => {
// return of(result as T); // return of(result as T);

View File

@ -1,14 +1,4 @@
<mat-card-content> <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 *ngIf="!noRecordFound" class="filter-container mat-elevation-z8">
<!-- <div class="filter-header"> <!-- <div class="filter-header">
<mat-form-field> <mat-form-field>
@ -37,7 +27,7 @@
<ng-container matColumnDef="pd_status_name"> <ng-container matColumnDef="pd_status_name">
<mat-header-cell *matHeaderCellDef mat-sort-header>Status </mat-header-cell> <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> --> <!-- <mat-checkbox [checked]="row.isPublish"></mat-checkbox> -->
</ng-container> </ng-container>

View File

@ -79,7 +79,8 @@ export class PdNotificationListComponent implements OnInit {
//To get data for listing //To get data for listing
getPdNotification() { getPdNotification() {
this._MastersService.getAllPDNotification().subscribe( //this._MastersService.getAllPDNotification().subscribe(
this._MastersService.getAllMasterData('PDNOTIFICATION').subscribe(
data => { data => {
// console.log(data); // console.log(data);
// console.log(data.status); // console.log(data.status);

View File

@ -6,24 +6,26 @@ import { FormBuilder,
import { MatDialog, import { MatDialog,
MatDialogRef, MatDialogRef,
MAT_DIALOG_DATA } from '@angular/material'; MAT_DIALOG_DATA } from '@angular/material';
/** Service */ /** Service */
import { MastersService } from '../../service/masters/masters.service'; import { MastersService } from '../../service/masters/masters.service';
import { PdTeamService } from '../../service/masters/pd-team.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 */ /**sweet alert */
import Swal from 'sweetalert2'; import Swal from 'sweetalert2';
@Component({ @Component({
selector: 'app-pd-team-add', selector: 'app-pd-team-add',
templateUrl: './pd-team-add.component.html', templateUrl: './pd-team-add.component.html',
styleUrls: ['./pd-team-add.component.scss'] styleUrls: ['./pd-team-add.component.scss']
}) })
export class PdTeamAddComponent implements OnInit { export class PdTeamAddComponent implements OnInit {
public _pdTeamForm: FormGroup; public _pdTeamForm: FormGroup;
private notifier: NotifierService;
color = 'primary'; color = 'primary';
errorMessage:string; errorMessage:string;
@ -42,17 +44,16 @@ selectedProductDatas : any=[];
selectedSegmentDatas : any=[]; selectedSegmentDatas : any=[];
constructor(private _formBuilder: FormBuilder, constructor(private _formBuilder: FormBuilder,
private _notifier: NotifierService,
private _pdTeamService: PdTeamService, private _pdTeamService: PdTeamService,
private _router: Router, private _router: Router,
private _masterService: MastersService) private _masterService: MastersService)
{ {
this.notifier = _notifier;
} }
ngOnInit() { ngOnInit() {
//console.log(this.notifier);
this.PdTeamFormDatas(); this.PdTeamFormDatas();
/** For Checking City Validation datas - checking purpose - Already exists are not */ /** For Checking City Validation datas - checking purpose - Already exists are not */
@ -143,15 +144,16 @@ onSubmit() {
this._pdTeamService.addPdTeamDetail(this._pdTeamForm.value).subscribe( this._pdTeamService.addPdTeamDetail(this._pdTeamForm.value).subscribe(
dataresult => { dataresult => {
if(dataresult.dataStatus == true) { if(dataresult.dataStatus == true) {
this.notifier.notify('success', 'Record Saved Successfully.!');
Swal('Record Saved Successfully.!','success'); Swal('Record Saved Successfully.!','success');
this._router.navigate(['/setting/pdteam/pdteamlist']); this._router.navigate(['/setting/pdteam/pdteamlist']);
} }
else { else {
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
Swal('Wrong.!'); //Swal('Wrong.!');
//alert('Some Thing Wents Wrong Try Again !'); Swal('Some Thing Wents Wrong Try Again !');
//this.errorMessage = "Some Thing Wents Wrong Try Again !"; //this.errorMessage = "Some Thing Wents Wrong Try Again !";
} }
}); });
@ -228,10 +230,9 @@ onChangeEntityId($event){
//console.log(this.CityValidation,lenderId); //console.log(this.CityValidation,lenderId);
this._pdTeamService.getLenderData(lenderId).subscribe( this._pdTeamService.getLenderData(lenderId).subscribe(
dataresult => { dataresult => {
if(dataresult.dataStatus == true) { if(dataresult.dataStatus == true) {
this.CityValidation = dataresult.records; this.CityValidation = dataresult.records;
console.log(this.CityValidation); //console.log(this.CityValidation);
} }
}, error => this.errorMessage = <any> error); }, error => this.errorMessage = <any> error);
} }

View File

@ -1,4 +1,4 @@
<div style="max-height: 580px;"> <div style="max-height: 580px;" *ngIf="apiFinishLoad">
<form [formGroup]="_pdTeamForm" (submit)="onSubmit()"> <form [formGroup]="_pdTeamForm" (submit)="onSubmit()">
<mat-card style="padding: 6px;"> <mat-card style="padding: 6px;">
<div class="ml-xs mr-xs" style="width: 100%;" fxLayout="row" fxLayoutAlign="center"> <div class="ml-xs mr-xs" style="width: 100%;" fxLayout="row" fxLayoutAlign="center">

View File

@ -6,9 +6,9 @@ import { FormBuilder,
/** Service */ /** Service */
import { MastersService } from '../../service/masters/masters.service'; import { MastersService } from '../../service/masters/masters.service';
import { PdTeamService } from '../../service/masters/pd-team.service'; import { PdTeamService } from '../../service/masters/pd-team.service';
import { NotifierService } from 'angular-notifier';
/** Here this component is like as a partent component */ /** 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 */ /**sweet alert */
import Swal from 'sweetalert2'; import Swal from 'sweetalert2';
@Component({ @Component({
@ -22,14 +22,15 @@ export class PdTeamEditComponent implements OnInit {
public _pdTeamForm: FormGroup; public _pdTeamForm: FormGroup;
public submitted = false; public submitted = false;
public listView: any = true; public listView: any = true;
private notifier: NotifierService;
color = 'primary'; color = 'primary';
errorMessage:string; errorMessage:string;
lenderId:any; lenderId:any;
teamID: any;
apiFinishLoad: boolean;
//This "childMessage" to get the function or data from partent component //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 //This Type Of Array Declaration for select dropdown to list the datas
citydatas: any[]; citydatas: any[];
lenderdatas: any[]; lenderdatas: any[];
@ -51,27 +52,33 @@ export class PdTeamEditComponent implements OnInit {
selectedCityDatas : any=[]; selectedCityDatas : any=[];
selectedProductDatas : any=[]; selectedProductDatas : any=[];
selectedSegmentDatas : any=[]; selectedSegmentDatas : any=[];
//EditDatasforFormGroup: any; //EditDatasforFormGroup: any;
constructor(private _formBuilder: FormBuilder, constructor(private _formBuilder: FormBuilder,
private _notifier: NotifierService, private _router: Router,private route: ActivatedRoute,
private _pdTeamService: PdTeamService, private _pdTeamService: PdTeamService,
private _PdTeamListComponent: PdTeamListComponent,
private _masterService: MastersService) { private _masterService: MastersService) {
this.notifier = _notifier;
} }
/** Onready function */ /** Onready function */
ngOnInit() { 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(); 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 */ /** For Checking City Validation datas - checking purpose - Already exists are not */
this._pdTeamService.getAllPdTeamCityMapping().subscribe( this._pdTeamService.getAllPdTeamCityMapping().subscribe(
dataresult => { dataresult => {
@ -117,18 +124,30 @@ export class PdTeamEditComponent implements OnInit {
this.customerSegmentdatas = this.customerSegmentdatas.filter(segment=>segment.isactive == 1 ); this.customerSegmentdatas = this.customerSegmentdatas.filter(segment=>segment.isactive == 1 );
} }
}, error => this.errorMessage = <any> error); }, error => this.errorMessage = <any> error);
this.lenderId = this._pdTeamForm.value['fk_lender'];
this._pdTeamService.getLenderData(this.lenderId).subscribe( // this.lenderId = this._pdTeamForm.value.fk_lender;
dataresult => { // console.log('form data',this._pdTeamForm);
if(dataresult.dataStatus == true){ // console.log('form data Particular Value',this._pdTeamForm.value.fk_lender);
this.CityValidation = dataresult.records; // this._pdTeamService.getLenderData(this.lenderId).subscribe(
} // dataresult => {
}, error => this.errorMessage = <any> error); // if(dataresult.dataStatus == true){
// this.CityValidation = dataresult.records;
// }
// });
} }
/** Pd Team Form Datas */ /** Pd Team Form Datas */
PdTeamFormDatas(){ 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); //console.log('Patricular pdteam_id Datas',this.childMessage);
// let PdTeamcity:any = []; // let PdTeamcity:any = [];
@ -174,16 +193,36 @@ export class PdTeamEditComponent implements OnInit {
} }
}, error => this.errorMessage = <any> error); }, error => this.errorMessage = <any> error);
this._pdTeamForm = this._formBuilder.group({ this._pdTeamForm.controls['pdteam_id'].setValue(this.childMessage[0].pdteam_id);
pdteam_id: [this.childMessage[0].pdteam_id, Validators.compose([Validators.required])], this._pdTeamForm.controls['team_name'].setValue(this.childMessage[0].team_name);
team_name: [this.childMessage[0].team_name, Validators.compose([Validators.required])], this._pdTeamForm.controls['fk_lender'].setValue(this.childMessage[0].fk_lender_id);
fk_lender: [this.childMessage[0].fk_lender_id, Validators.compose([Validators.required])], this._pdTeamForm.controls['fk_city'].setValue(PdTeamCity);
fk_city: [PdTeamCity, Validators.compose([Validators.required])], this._pdTeamForm.controls['fk_customer_segment'].setValue(this.DBCustomerSegmentDatas);
fk_customer_segment: [this.DBCustomerSegmentDatas, Validators.compose([Validators.required])], this._pdTeamForm.controls['fk_product'].setValue(this.DBProductDatas);
fk_product:[this.DBProductDatas, Validators.compose([Validators.required])], 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 */ /** convenience getter for easy access to form fields */
@ -191,7 +230,7 @@ export class PdTeamEditComponent implements OnInit {
/** For Popup Close Button */ /** For Popup Close Button */
onNoClick(): void { onNoClick(): void {
this._PdTeamListComponent.changeListView(); this._router.navigate(['/setting/pdteam/pdteamlist']);
} }
/** To Reset Popup Data For Add*/ /** To Reset Popup Data For Add*/
@ -225,9 +264,9 @@ export class PdTeamEditComponent implements OnInit {
this._pdTeamService.editPdTeamchildDetails(ActiveDatas,'PDTEAMCUSTOMERSEGMENT') this._pdTeamService.editPdTeamchildDetails(ActiveDatas,'PDTEAMCUSTOMERSEGMENT')
.subscribe(dataresult=>{ .subscribe(dataresult=>{
if (dataresult.dataStatus == true){ if (dataresult.dataStatus == true){
//alert('InActive Changes Done in cs'); // alert('InActive Changes Done in cs');
let index = this.selectedSegmentDatas.indexOf(CustomerSegmentName.name); // let index = this.selectedSegmentDatas.indexOf(CustomerSegmentName.name);
this.selectedSegmentDatas.splice(index,1); // this.selectedSegmentDatas.splice(index,1);
}else{} }else{}
}); });
@ -326,6 +365,7 @@ export class PdTeamEditComponent implements OnInit {
else if($event.source._selected == false ){ else if($event.source._selected == false ){
console.log('Return False for city Selection Data'); console.log('Return False for city Selection Data');
let index = this.selectedCityDatas.indexOf(cityName.name); let index = this.selectedCityDatas.indexOf(cityName.name);
this.selectedCityDatas.splice(index,1); this.selectedCityDatas.splice(index,1);
@ -336,16 +376,20 @@ export class PdTeamEditComponent implements OnInit {
dataresult => { dataresult => {
if (dataresult.dataStatus == true) { if (dataresult.dataStatus == true) {
data = dataresult.records; data = dataresult.records;
//console.log('data',data); //console.log('data',data);
data = data.filter(pdteamcity=>pdteamcity.fk_city_id == $event.source.value); 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]; 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=>{ this._pdTeamService.deletePDteamCity($event.source.value).subscribe(data=>{
if (dataresult.dataStatus == true) {//alert('Deleted'); // console.log('Response Data',data);
let index = this.selectedCityDatas.indexOf(cityName.name); // if (dataresult.dataStatus == true) {
this.selectedCityDatas.splice(index,1); // alert('Deleted');
//this._PdTeamListComponent.changeListView(); // // let index = this.selectedCityDatas.indexOf(cityName.name);
} // // this.selectedCityDatas.splice(index,1);
// }
}); });
} }
}, error => this.errorMessage = <any> error); }, error => this.errorMessage = <any> error);
@ -378,17 +422,17 @@ export class PdTeamEditComponent implements OnInit {
dataresult => { dataresult => {
if (dataresult.dataStatus == true) { if (dataresult.dataStatus == true) {
data = dataresult.records; 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(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]; 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'} ; let ActiveDatas = { 'pdteam_product_id':data.pdteam_product_id,'isactive': '0'} ;
this._pdTeamService.editPdTeamchildDetails(ActiveDatas,'PDTEAMPRODUCT') this._pdTeamService.editPdTeamchildDetails(ActiveDatas,'PDTEAMPRODUCT')
.subscribe(dataresult=>{ .subscribe(dataresult=>{
if (dataresult.dataStatus == true){ if (dataresult.dataStatus == true){
//alert('InActive Changes Done in product'); // alert('InActive Changes Done in product');
let index = this.selectedProductDatas.indexOf(productName.name); // let index = this.selectedProductDatas.indexOf(productName.name);
this.selectedProductDatas.splice(index,1); // this.selectedProductDatas.splice(index,1);
} }
else{ else{
//alert("Sorry Try Again !"); //alert("Sorry Try Again !");
@ -411,11 +455,13 @@ export class PdTeamEditComponent implements OnInit {
dataresult=>{ dataresult=>{
if (dataresult.dataStatus == true){ if (dataresult.dataStatus == true){
Swal("Data Edited Successfully"); Swal("Data Edited Successfully");
// this.notifier.notify('success', 'Record Edited Successfully.!');
this._router.navigate(['/setting/pdteam/pdteamlist']);
} }
else{ else{
Swal("SomeThing Wents Wrong Try Again !"); Swal("SomeThing Wents Wrong Try Again !");
// this.notifier.notify('warning', 'SomeThing Wents Wrong Try Again !');
} }
}); });

View File

@ -1,4 +1,4 @@
<div *ngIf="listView"> <!-- <div *ngIf="listView"> -->
<mat-card> <mat-card>
<div fxLayout="row" fxLayoutAlign="start center" class="mb-1"> <div fxLayout="row" fxLayoutAlign="start center" class="mb-1">
<div class="ml-xs mr-xs" style="width: 30%;"> <div class="ml-xs mr-xs" style="width: 30%;">
@ -57,7 +57,7 @@
<mat-header-cell *matHeaderCellDef> Action </mat-header-cell> <mat-header-cell *matHeaderCellDef> Action </mat-header-cell>
<mat-cell *matCellDef="let row"> <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> </mat-cell>
</ng-container> </ng-container>
@ -71,8 +71,7 @@
</div> </div>
</mat-card-content> </mat-card-content>
</mat-card> </mat-card>
</div> <!-- </div> -->
<!--<div *ngIf="!listView"> <!--<div *ngIf="!listView">
<app-pd-team-edit [childMessage]="parentMessage"></app-pd-team-edit> <app-pd-team-edit [childMessage]="parentMessage"></app-pd-team-edit>
</div>--> </div>-->
<notifier-container></notifier-container>

View File

@ -9,8 +9,7 @@ MatTableDataSource } from '@angular/material';
import { MastersService } from '../../service/masters/masters.service'; import { MastersService } from '../../service/masters/masters.service';
import { PdTeamService } from '../../service/masters/pd-team.service'; import { PdTeamService } from '../../service/masters/pd-team.service';
import { NotifierService } from 'angular-notifier'; import { Router,ActivatedRoute } from '@angular/router';
import { Router } from '@angular/router';
/**sweet alert */ /**sweet alert */
import Swal from 'sweetalert2'; import Swal from 'sweetalert2';
@ -38,11 +37,9 @@ export class PdTeamListComponent implements OnInit {
userData = null; userData = null;
noRecordFound: boolean = false; noRecordFound: boolean = false;
private notifier: NotifierService;
public listView: any = true;
public dataLength: number; public dataLength: number;
public dataSource = new MatTableDataSource(); public dataSource = new MatTableDataSource();
public parentMessage: any = [];
displayedColumns = ['serialno','team_name','lender_name','actions','isactive']; displayedColumns = ['serialno','team_name','lender_name','actions','isactive'];
@ -50,34 +47,25 @@ export class PdTeamListComponent implements OnInit {
@ViewChild(MatSort) sort: MatSort; @ViewChild(MatSort) sort: MatSort;
constructor(notifier: NotifierService, constructor(
private router: Router, private router: Router,private route: ActivatedRoute,
private _MasterService: MastersService, private _MasterService: MastersService,
private _PdTeamService: PdTeamService) { private _PdTeamService: PdTeamService) {
this.getPdTeam(); this.getPdTeam();
this.notifier = notifier;
} }
ngOnInit() { this.getPdTeam(); } ngOnInit() { this.getPdTeam(); }
/** To edit data */ /** To edit data */
editPdTeam(detail){ toEditPdTeam(pdteam_id){
//this.router.navigate(['/setting/pdteam/editpdteam',pdteam_id]);
this._PdTeamService.getAllPDTeamWithPDTeamID(detail).subscribe( console.log(btoa(pdteam_id));
dataresult => { this.router.navigate(['/setting/pdteam/editpdteam',btoa(pdteam_id)]);
this.parentMessage = dataresult;
this.parentMessage = this.parentMessage.records;
this.listView = false;
});
} }
/**To Manage Team */
managepdteam(){ /**To Manage Team */
managepdteam(){
this.router.navigate(['/setting/pdteam/pdteammanage']); this.router.navigate(['/setting/pdteam/pdteammanage']);
}
changeListView(){
this.getPdTeam();
this.listView = true;
} }
/** To get data for listing */ /** To get data for listing */

View File

@ -15,7 +15,7 @@ export const PdTeamRoutes: Routes = [{
path: 'addpdteam', path: 'addpdteam',
component: PdTeamAddComponent component: PdTeamAddComponent
},{ },{
path:'editpdteam', path:'editpdteam/:id',
component:PdTeamEditComponent component:PdTeamEditComponent
},{ },{
path:'pdteammanage', path:'pdteammanage',

View File

@ -29,6 +29,7 @@ export class MastersService {
// private apiUrl = "http://ssa.sineedge.com/sparqapi/api/"; // private apiUrl = "http://ssa.sineedge.com/sparqapi/api/";
private apiUrll = 'http://localhost/sparqapi/api/';
private apiUrl = environment.apiEndpoint; 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') // return this._http.get(this.apiUrl+'getPDNotificationsList')
.pipe(
catchError(this.handleError('role', []))
)
// return this._http.get(this.apiUrl+'getListOfCompany')
// .pipe( // .pipe(
// catchError(this.handleError('role', [])) // 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.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 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; delete item.serialno;
}); });

View File

@ -55,12 +55,12 @@
<div fxLayout="row" fxLayoutAlign="start center" class="mb-2"> <div fxLayout="row" fxLayoutAlign="start center" class="mb-2">
<mat-form-field dividerColor="primary" class="ml-xs mr-xs"> <mat-form-field dividerColor="primary" class="ml-xs mr-xs">
<input matInput placeholder="Email Address" [formControl]="regForm.controls['email']" type="email" required> <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-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>
<mat-form-field dividerColor="primary" class="ml-xs mr-xs"> <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'].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> <mat-error *ngIf="regForm.controls['phone'].errors?.phone && regForm.controls['phone'].touched" class="mat-text-warn">Invalid Phone Number.</mat-error>

View File

@ -430,5 +430,14 @@ this.loader = true;
delete this.users.localUserId; delete this.users.localUserId;
this.router.navigate(['setting/users/userlist']); 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();
}
}
} }