Fairoj : FEEDBACK VERSION 4 CHANGES

This commit is contained in:
venbatechnologies@gmail.com 2020-10-03 20:51:57 +05:30
parent f67e81816e
commit 41582545f3
6 changed files with 76 additions and 31 deletions

View File

@ -140,6 +140,7 @@
<ngx-mat-select-search [formControl]="designationFilterCtrl" <ngx-mat-select-search [formControl]="designationFilterCtrl"
[placeholderLabel]="'Search Designation...'" [placeholderLabel]="'Search Designation...'"
[noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search> [noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search>
<mat-option>Select</mat-option>
<mat-option *ngFor="let item of filteredcompanyRelationshipList | async" [value]="item.name.split('of')[0]">{{item.name.split('of')[0]}}</mat-option> <mat-option *ngFor="let item of filteredcompanyRelationshipList | async" [value]="item.name.split('of')[0]">{{item.name.split('of')[0]}}</mat-option>
</mat-select> </mat-select>
<mat-error align="end" style="font-size:13px" *ngIf="getQuestionControl().at(0)['controls']['designation_entered'].errors?.required || getQuestionControl().at(0)['controls']['designation_entered'].touched">Designation required</mat-error> <mat-error align="end" style="font-size:13px" *ngIf="getQuestionControl().at(0)['controls']['designation_entered'].errors?.required || getQuestionControl().at(0)['controls']['designation_entered'].touched">Designation required</mat-error>
@ -150,6 +151,7 @@
<ngx-mat-select-search [formControl]="relationFilterCtrl" <ngx-mat-select-search [formControl]="relationFilterCtrl"
[placeholderLabel]="'Search Relation...'" [placeholderLabel]="'Search Relation...'"
[noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search> [noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search>
<mat-option>Select</mat-option>
<mat-option *ngFor="let item of filteredrelationshipList | async" [value]="item.name">{{item.name}}</mat-option> <mat-option *ngFor="let item of filteredrelationshipList | async" [value]="item.name">{{item.name}}</mat-option>
</mat-select> </mat-select>
<mat-error align="end" style="font-size:13px" *ngIf="getQuestionControl().at(0)['controls']['relation_entered'].errors?.required || getQuestionControl().at(0)['controls']['relation_entered'].touched">Relation required</mat-error> <mat-error align="end" style="font-size:13px" *ngIf="getQuestionControl().at(0)['controls']['relation_entered'].errors?.required || getQuestionControl().at(0)['controls']['relation_entered'].touched">Relation required</mat-error>
@ -157,6 +159,7 @@
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Relation to</mat-label> <mat-label>Relation to</mat-label>
<mat-select formControlName="relation_to"> <mat-select formControlName="relation_to">
<mat-option>Select</mat-option>
<mat-option *ngFor="let applicant of getQuestionControl().at(0).get('individuals')['controls'];let a_i=index" [value]="applicant.value.applicant_name">{{applicant.value.applicant_name}}</mat-option> <mat-option *ngFor="let applicant of getQuestionControl().at(0).get('individuals')['controls'];let a_i=index" [value]="applicant.value.applicant_name">{{applicant.value.applicant_name}}</mat-option>
</mat-select> </mat-select>
<mat-error align="end" style="font-size:13px" *ngIf="getQuestionControl().at(0)['controls']['relation_to'].errors?.required || getQuestionControl().at(0)['controls']['relation_to'].touched">Relation to required</mat-error> <mat-error align="end" style="font-size:13px" *ngIf="getQuestionControl().at(0)['controls']['relation_to'].errors?.required || getQuestionControl().at(0)['controls']['relation_to'].touched">Relation to required</mat-error>
@ -256,7 +259,8 @@
</div> </div>
<div fxLayout="column" class="ion-align-self-end"> <div fxLayout="column" class="ion-align-self-end">
<mat-slide-toggle class="ion-float-right" color="primary" formControlName="is_pd_done_on_initiated_address" <mat-slide-toggle class="ion-float-right" color="primary" formControlName="is_pd_done_on_initiated_address"
></mat-slide-toggle> (change)="dynamicOnChangeValidations($event.checked,[getQuestionControl().at(1).get('alternative_addresses')['controls'][0]['controls'].alternative_address,getQuestionControl().at(1).get('alternative_addresses')['controls'][0]['controls'].reason_for_alternative_address],false)" ></mat-slide-toggle>
<!-- ABOVE LINE CHANGE FUNCTION HAS DYNAMICALLY SETTING VALIDATION FOR alternative_address and reason_for_alternative_address-->
</div> </div>
</div> </div>
</div> </div>
@ -536,6 +540,7 @@
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Do You Want to Add Other Documents?</mat-label> <mat-label>Do You Want to Add Other Documents?</mat-label>
<mat-select formControlName="other_documents" (selectionChange)= "onDocsSightedChange($event.value,2)"> <mat-select formControlName="other_documents" (selectionChange)= "onDocsSightedChange($event.value,2)">
<mat-option>Select</mat-option>
<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="not applicable">Not Applicable</mat-option> --> <!-- <mat-option value="not applicable">Not Applicable</mat-option> -->
@ -696,6 +701,7 @@
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Stock Photograph</mat-label> <mat-label>Stock Photograph</mat-label>
<mat-select formControlName="is_stock_photo"> <mat-select formControlName="is_stock_photo">
<mat-option>Select</mat-option>
<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>
@ -952,6 +958,7 @@
<mat-label>Final Status of visit</mat-label> <mat-label>Final Status of visit</mat-label>
<!-- <textarea matInput type="text" placeholder="Any other comments" formControlName="final_comments"></textarea> --> <!-- <textarea matInput type="text" placeholder="Any other comments" formControlName="final_comments"></textarea> -->
<mat-select formControlName="final_visit_status"> <mat-select formControlName="final_visit_status">
<mat-option>Select</mat-option>
<mat-option value="Positive">Positive</mat-option> <mat-option value="Positive">Positive</mat-option>
<mat-option value="Negative">Negative</mat-option> <mat-option value="Negative">Negative</mat-option>
<mat-option value="Could not verify">Could not verify</mat-option> <mat-option value="Could not verify">Could not verify</mat-option>

View File

@ -31,10 +31,6 @@ export class CommonQuesComponent implements OnInit {
stepper_index:2 stepper_index:2
}, },
{ {
form_name:'Employer information',
form_id:"BUSINESS_GROUP",
stepper_index:2
},{
form_name:'Credit Manager Queries', form_name:'Credit Manager Queries',
form_id:24, form_id:24,
stepper_index:3, stepper_index:3,
@ -172,7 +168,7 @@ export class CommonQuesComponent implements OnInit {
// this.FormId=this.router.getCurrentNavigation().extras.state.FormId // this.FormId=this.router.getCurrentNavigation().extras.state.FormId
this.applicants = this.pdDetails.applicants_details; this.applicants = this.pdDetails.applicants_details;
this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2 && appt.pd_co_applicant_id != 0); this.applicants = this.applicants.filter(appt=>appt.applicant_type != 2 && appt.pd_co_applicant_id != 0);
this.applicants.push({'pd_co_applicant_id': 0,'applicant_name': "Others"}) // this.applicants.push({'pd_co_applicant_id': 0,'applicant_name': "Others"})
this.customer_seg_abbr = this.pdDetails.customer_segment_abbr this.customer_seg_abbr = this.pdDetails.customer_segment_abbr
console.log("constr",this.pdDetails,this.docs_tobe_collect) console.log("constr",this.pdDetails,this.docs_tobe_collect)
if(this.pdDetails.lender_short_name == 'CLIX' || this.pdDetails.lender_short_name == 'MWISE' || this.pdDetails.prod_catagory == 'LAEP') if(this.pdDetails.lender_short_name == 'CLIX' || this.pdDetails.lender_short_name == 'MWISE' || this.pdDetails.prod_catagory == 'LAEP')
@ -360,6 +356,7 @@ getMasters() {
modifyApplicantList=this.applicants.map(element=>{ modifyApplicantList=this.applicants.map(element=>{
return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2}; return {id:element.pd_co_applicant_id,name:element.applicant_name,group_id:2};
}) })
modifyApplicantList.push({id:0,name:"Others",group_id:2})
this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList}) this.mergeCompanyApplicant.push({groupName:'APPLICANTS',groupValues:modifyApplicantList})
} }
@ -1174,11 +1171,11 @@ public findInvalidControls() {
if(group.invalid) { if(group.invalid) {
console.log(group,group.value.form_name); console.log(group,group.value.form_name);
// debugger; // debugger;
msg= "Questions are not filled up in "+group.value.form_name msg= group.value.form_name+" are not complete"
let index = this.stepperInfo.findIndex(vv=>vv.form_id == group.value.form_id); let index = this.stepperInfo.findIndex(vv=>vv.form_id == group.value.form_id);
console.log("Index",index); console.log("Index",index);
if(index != -1) { if(index != -1) {
msg = "Questions are not filled up in "+this.stepperInfo[index].form_name msg = this.stepperInfo[index].form_name+" are not complete"
this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index
} }
for (const name in group['controls']) { for (const name in group['controls']) {
@ -1187,7 +1184,7 @@ public findInvalidControls() {
let invalidFields = [].slice.call(document.getElementsByClassName('ng-invalid')); let invalidFields = [].slice.call(document.getElementsByClassName('ng-invalid'));
let firstInvalidField; let firstInvalidField;
for(let val in invalidFields){ for(let val in invalidFields){
if( invalidFields[val].nodeName == 'MAT-FORM-FIELD' || invalidFields[val].nodeName == 'MAT-SELECT' || invalidFields[val].nodeName == 'TEXTAREA' ){ //INPUT FOR INPUT FIELD if( invalidFields[val].nodeName == 'MAT-FORM-FIELD' || invalidFields[val].nodeName == 'MAT-SELECT' || invalidFields[val].nodeName == 'TEXTAREA' || invalidFields[val].nodeName == 'MAT-RADIO-GROUP' ){ //INPUT FOR INPUT FIELD
firstInvalidField=invalidFields[val] firstInvalidField=invalidFields[val]
break; break;
} }
@ -1516,6 +1513,20 @@ getAddressTypeNameById(id) {
} }
return 'Workplace' return 'Workplace'
} }
dynamicOnChangeValidations(choosed_value,controls_arr,value_compare) {
console.log("D",choosed_value,value_compare,value_compare == choosed_value)
if(controls_arr.length && controls_arr.length >0) {
controls_arr.forEach(vv=>{
if(choosed_value == value_compare) {
vv.setValidators(Validators.required);
}
else{
vv.clearValidators();
}
vv.updateValueAndValidity()
})
}
}
ngOnDestroy() { ngOnDestroy() {
console.log("Common ques component destroyed"); console.log("Common ques component destroyed");
if(this.firstFormGroup.dirty){ if(this.firstFormGroup.dirty){

View File

@ -82,6 +82,7 @@
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Is the Employer/ Manager available during FI visit?</mat-label> <mat-label>Is the Employer/ Manager available during FI visit?</mat-label>
<mat-select formControlName="is_employer_available"> <mat-select formControlName="is_employer_available">
<mat-option>Select</mat-option>
<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>
@ -93,6 +94,7 @@
<mat-form-field appearance="fill" *ngIf="checkPartEnable(2)"> <mat-form-field appearance="fill" *ngIf="checkPartEnable(2)">
<mat-label>Anyone met during FI visit at initiated address?</mat-label> <mat-label>Anyone met during FI visit at initiated address?</mat-label>
<mat-select formControlName="is_met_during_visit"> <mat-select formControlName="is_met_during_visit">
<mat-option>Select</mat-option>
<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>
@ -142,7 +144,7 @@
</mat-step> </mat-step>
<!-- getQuestionControl().at(2).get('employer_details') || getQuestionControl().at(2).get('office_photographs') || getQuestionControl().at(2).get('nameboard_photographs') || getQuestionControl().at(2).get('docs_sighted') --> <!-- getQuestionControl().at(2).get('employer_details') || getQuestionControl().at(2).get('office_photographs') || getQuestionControl().at(2).get('nameboard_photographs') || getQuestionControl().at(2).get('docs_sighted') -->
<mat-step *ngIf="checkPartEnable(4) || checkPartEnable(5) || checkPartEnable(1) || checkPartEnable(1) == false" formGroupName="2" [stepControl]="questions?.get([2])"> <mat-step *ngIf="checkPartEnable(4) || checkPartEnable(5) || checkPartEnable(1) || checkPartEnable(1) == false" formGroupName="2" [stepControl]="questions?.get([2])">
<ng-template matStepLabel>Employment Information</ng-template> <ng-template matStepLabel>{{dynamicStepperHeadingForEmp}}</ng-template>
<!-- START OF EMPLOYER INFO --> <!-- START OF EMPLOYER INFO -->
<div *ngIf="checkPartEnable(4) && getQuestionControl().at(2).get('employer_details')" formArrayName="employer_details"> <div *ngIf="checkPartEnable(4) && getQuestionControl().at(2).get('employer_details')" formArrayName="employer_details">
@ -158,6 +160,7 @@
<mat-select formControlName="designation_person_met"> <mat-select formControlName="designation_person_met">
<ngx-mat-select-search [formControl]="designationFilterCtrl" [placeholderLabel]="'Search Designation...'" <ngx-mat-select-search [formControl]="designationFilterCtrl" [placeholderLabel]="'Search Designation...'"
[noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search> [noEntriesFoundLabel]="'no matching records found'"></ngx-mat-select-search>
<mat-option>Select</mat-option>
<mat-option *ngFor="let item of filteredcompanyRelationshipList | async" <mat-option *ngFor="let item of filteredcompanyRelationshipList | async"
[value]="item.company_relationship_id">{{item.name.split('of')[0]}}</mat-option> [value]="item.company_relationship_id">{{item.name.split('of')[0]}}</mat-option>
</mat-select> </mat-select>
@ -167,7 +170,7 @@
</mat-form-field> </mat-form-field>
<div fxLayout="row" class="ion-align-items-center"> <div fxLayout="row" class="ion-align-items-center">
<div fxLayout="column" align="center" class="ion-align-self-center"> <div fxLayout="column" align="center" fxLayoutAlign="center center">
<!-- <ion-thumbnail slot="center"> --> <!-- <ion-thumbnail slot="center"> -->
<div fxLayout="row" fxLayoutAlign="center center"> <div fxLayout="row" fxLayoutAlign="center center">
<img ngxViewer text="PD Photos" title="Selfie Pic" class="ion-text-center" <img ngxViewer text="PD Photos" title="Selfie Pic" class="ion-text-center"
@ -192,8 +195,9 @@
<div fxLayout="row"> <div fxLayout="row">
<div fxLayout="column" fxFlex="85%"> <div fxLayout="column" fxFlex="85%">
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Photograph of “Photo ID card of the Employer/Manager"</mat-label> <mat-label>Photo ID card of the Employer/Manager</mat-label>
<mat-select formControlName="photo_id_card"> <mat-select formControlName="photo_id_card">
<mat-option>Select</mat-option>
<mat-option *ngFor="let item of photoIdCardList" [value]="item"> {{item}}</mat-option> <mat-option *ngFor="let item of photoIdCardList" [value]="item"> {{item}}</mat-option>
</mat-select> </mat-select>
</mat-form-field> </mat-form-field>
@ -226,6 +230,7 @@
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Employers/Managers Company ID card / Visiting Card provided”?</mat-label> <mat-label>Employers/Managers Company ID card / Visiting Card provided”?</mat-label>
<mat-select formControlName="visiting_card"> <mat-select formControlName="visiting_card">
<mat-option>Select</mat-option>
<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>
@ -256,7 +261,8 @@
</div> </div>
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Salary Amount Confirmed from Employer/Manager</mat-label> <mat-label>Salary Amount Confirmed from Employer/Manager</mat-label>
<mat-select formControlName="confirm_salary"> <mat-select formControlName="confirm_salary" (selectionChange)="dynamicOnChangeValidations($event.value,[getEmployer_details['controls']['sal_amount_was_not_confirmed']],'no')">
<mat-option>Select</mat-option>
<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>
@ -265,11 +271,11 @@
</mat-form-field> </mat-form-field>
<div *ngIf="getEmployer_details.value.confirm_salary == 'yes'"> <div *ngIf="getEmployer_details.value.confirm_salary == 'yes'">
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Gross Salary</mat-label> <mat-label>Gross Salary <span style="font-size:13px">(salary before deduction)</span></mat-label>
<input matInput type="number" formControlName="gross_monthly_salary" /> <input matInput type="number" formControlName="gross_monthly_salary" />
</mat-form-field> </mat-form-field>
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
<mat-label>Net Salary</mat-label> <mat-label>Net Salary <span style="font-size:13px">(salary after deduction)</span></mat-label>
<input matInput type="number" formControlName="net_monthly_salary" /> <input matInput type="number" formControlName="net_monthly_salary" />
</mat-form-field> </mat-form-field>
<mat-form-field appearance="fill"> <mat-form-field appearance="fill">
@ -332,11 +338,21 @@
</mat-form-field> </mat-form-field>
</div> </div>
</div> </div>
<mat-form-field appearance="fill" *ngIf="getEmployer_details.value.confirm_salary == 'no'"> <mat-form-field *ngIf="getEmployer_details.value.confirm_salary == 'no'">
<mat-label>Why salary amount was not confirmed by employer?</mat-label> <mat-label>Why salary amount was not confirmed by employer?</mat-label>
<textarea matInput type="text" formControlName="sal_amount_was_not_confirmed"></textarea> <!-- <textarea matInput type="text" formControlName="sal_amount_was_not_confirmed"></textarea> -->
<mat-select formControlName="sal_amount_was_not_confirmed" multiple>
<!-- <mat-option>Select</mat-option> -->
<mat-option *ngFor="let item of salAmountNotConfirmList" [value]="item">{{item}}</mat-option>
</mat-select>
<mat-error align="end" style="font-size:12px"
*ngIf="getEmployer_details['controls']['sal_amount_was_not_confirmed'].errors?.required ">Required
</mat-error>
</mat-form-field>
<mat-form-field *ngIf="checkSpecifyField(getEmployer_details.value.sal_amount_was_not_confirmed)">
<mat-label>Please Specify</mat-label>
<input matInput type="text" formControlName="sal_amount_was_not_confirmed_others"/>
</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>
@ -366,7 +382,7 @@
<!-- START OF DOCS SIGHTED --> <!-- START OF DOCS SIGHTED -->
<div *ngIf="checkPartEnable(5) && getQuestionControl().at(2).get('docs_sighted')" formArrayName="docs_sighted"> <div *ngIf="checkPartEnable(5) && getQuestionControl().at(2).get('docs_sighted')" formArrayName="docs_sighted">
<mat-label><h5>Documents Sighted of applicant employment During FI</h5></mat-label> <mat-label><h5>{{dynamicStepperHeadingForEmp}}</h5></mat-label>
<hr/><br/><br/> <hr/><br/><br/>
<div fxLayout="row"> <div fxLayout="row">
<div fxLayout="column" fxFlex="85%"> <div fxLayout="column" fxFlex="85%">
@ -588,7 +604,7 @@ Image </mat-label> -->
<!-- START OF OFFICE PHOTOGRAPHS --> <!-- START OF OFFICE PHOTOGRAPHS -->
<div *ngIf="checkPartEnable(1) && getQuestionControl().at(2).get('office_photographs')"> <div *ngIf="checkPartEnable(1) && getQuestionControl().at(2).get('office_photographs')">
<br/> <br/>
<mat-label><h5>Office Setup Photographs</h5></mat-label> <mat-label><h5>{{dynamicStepperHeadingForEmp}}</h5></mat-label>
<hr/><br/><br/> <hr/><br/><br/>
<div fxLayout="row" fxLayoutGap="10px" class="ion-align-items-center" formArrayName="office_photographs"> <div fxLayout="row" fxLayoutGap="10px" class="ion-align-items-center" formArrayName="office_photographs">
<div fxLayout="column" class="ion-align-self-center" *ngFor="let val of getPhotoControls('office_photographs');let i=index" [formGroupName]="i"> <div fxLayout="column" class="ion-align-self-center" *ngFor="let val of getPhotoControls('office_photographs');let i=index" [formGroupName]="i">
@ -616,7 +632,7 @@ Image </mat-label> -->
<!-- START OF NAME BOARD PHOTOGRAPHS --> <!-- START OF NAME BOARD PHOTOGRAPHS -->
<div *ngIf="checkPartEnable(1) == false && getQuestionControl().at(2).get('nameboard_photographs')"> <div *ngIf="checkPartEnable(1) == false && getQuestionControl().at(2).get('nameboard_photographs')">
<br/> <br/>
<mat-label><h5> Name board/Entrance photograph</h5></mat-label> <mat-label><h5>{{dynamicStepperHeadingForEmp}}</h5></mat-label>
<hr/><br/><br/> <hr/><br/><br/>
<div fxLayout="row" class="ion-align-items-center" formArrayName="nameboard_photographs"> <div fxLayout="row" class="ion-align-items-center" formArrayName="nameboard_photographs">
<div fxLayout="column" size="6" align="center" class="ion-align-self-center" *ngFor="let val of getPhotoControls('nameboard_photographs');let i=index" [formGroupName]="i"> <div fxLayout="column" size="6" align="center" class="ion-align-self-center" *ngFor="let val of getPhotoControls('nameboard_photographs');let i=index" [formGroupName]="i">
@ -737,12 +753,13 @@ Image </mat-label> -->
</div> </div>
<div fxLayout="column" class="ion-align-self-end"> <div fxLayout="column" class="ion-align-self-end">
<mat-slide-toggle class="ion-float-right" color="primary" formControlName="is_pd_done_on_initiated_address" <mat-slide-toggle class="ion-float-right" color="primary" formControlName="is_pd_done_on_initiated_address"
></mat-slide-toggle> (change)="dynamicOnChangeValidations($event.checked,[getQuestionControl().at(1).get('alternative_addresses')['controls'][0]['controls'].alternative_address,getQuestionControl().at(1).get('alternative_addresses')['controls'][0]['controls'].reason_for_alternative_address],false)"></mat-slide-toggle>
</div> </div>
</div> </div>
</div> </div>
<div *ngIf="getQuestionControl().at(1)['controls']['is_pd_done_on_initiated_address'].value === false"> <div *ngIf="getQuestionControl().at(1)['controls']['is_pd_done_on_initiated_address'].value === false">
<br/> <hr class="line"> <br/>
<!-- <hr class="line"> -->
<div formArrayName="alternative_addresses" > <div formArrayName="alternative_addresses" >
<div *ngFor="let alternative of getQuestionControl().at(1)['controls'].alternative_addresses['controls']; let i=index" [formGroupName]="i"> <div *ngFor="let alternative of getQuestionControl().at(1)['controls'].alternative_addresses['controls']; let i=index" [formGroupName]="i">
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
@ -808,7 +825,7 @@ Image </mat-label> -->
</div> </div>
</div> </div>
<hr class="line"> <!-- <hr class="line"> -->
</div> </div>
<mat-form-field style="width: 100%"> <mat-form-field style="width: 100%">
<!-- (selectionChange)="setOthers($event.value,'',3);selectedAddressType($event.source.triggerValue)" --> <!-- (selectionChange)="setOthers($event.value,'',3);selectedAddressType($event.source.triggerValue)" -->
@ -991,6 +1008,7 @@ Image </mat-label> -->
<mat-label>Final Status of visit</mat-label> <mat-label>Final Status of visit</mat-label>
<!-- <textarea matInput type="text" placeholder="Any other comments" formControlName="final_comments"></textarea> --> <!-- <textarea matInput type="text" placeholder="Any other comments" formControlName="final_comments"></textarea> -->
<mat-select formControlName="final_visit_status"> <mat-select formControlName="final_visit_status">
<mat-option>Select</mat-option>
<mat-option value="Positive">Positive</mat-option> <mat-option value="Positive">Positive</mat-option>
<mat-option value="Negative">Negative</mat-option> <mat-option value="Negative">Negative</mat-option>
<mat-option value="Could not verify">Could not verify</mat-option> <mat-option value="Could not verify">Could not verify</mat-option>

View File

@ -65,6 +65,7 @@ export class EmployerInfoComponent implements OnInit {
docNotAvailList:any=[ docNotAvailList:any=[
"Documents were not shared by Employer", "Documents are not issued by Employer", "Documents were not available", "Employer was not available", "Others (please specify)" "Documents were not shared by Employer", "Documents are not issued by Employer", "Documents were not available", "Employer was not available", "Others (please specify)"
] ]
salAmountNotConfirmList=["Employer doesnt know", "Employer was not co-operative", "Others Please Specify"]
public dateonly: any = [{date:1,isdisabled:false},{date:2,isdisabled:false},{date:3,isdisabled:false},{date:4,isdisabled:false},{date:5,isdisabled:false},{date:6,isdisabled:false},{date:7,isdisabled:false},{date:8,isdisabled:false},{date:9,isdisabled:false},{date:10,isdisabled:false},{date:11,isdisabled:false},{date:12,isdisabled:false},{date:13,isdisabled:false},{date:14,isdisabled:false},{date:15,isdisabled:false},{date:16,isdisabled:false},{date:17,isdisabled:false},{date:18,isdisabled:false},{date:19,isdisabled:false},{date:20,isdisabled:false},{date:21,isdisabled:false},{date:22,isdisabled:false},{date:23,isdisabled:false},{date:24,isdisabled:false},{date:25,isdisabled:false},{date:26,isdisabled:false},{date:27,isdisabled:false},{date:28,isdisabled:false},{date:29,isdisabled:false},{date:30,isdisabled:false},{date:31,isdisabled:false}]; public dateonly: any = [{date:1,isdisabled:false},{date:2,isdisabled:false},{date:3,isdisabled:false},{date:4,isdisabled:false},{date:5,isdisabled:false},{date:6,isdisabled:false},{date:7,isdisabled:false},{date:8,isdisabled:false},{date:9,isdisabled:false},{date:10,isdisabled:false},{date:11,isdisabled:false},{date:12,isdisabled:false},{date:13,isdisabled:false},{date:14,isdisabled:false},{date:15,isdisabled:false},{date:16,isdisabled:false},{date:17,isdisabled:false},{date:18,isdisabled:false},{date:19,isdisabled:false},{date:20,isdisabled:false},{date:21,isdisabled:false},{date:22,isdisabled:false},{date:23,isdisabled:false},{date:24,isdisabled:false},{date:25,isdisabled:false},{date:26,isdisabled:false},{date:27,isdisabled:false},{date:28,isdisabled:false},{date:29,isdisabled:false},{date:30,isdisabled:false},{date:31,isdisabled:false}];
public todate: any[] = this.dateonly; public todate: any[] = this.dateonly;
neighbour_status_list:any=[{id:'',name:'Select'},{id:'Positive',name:'Positive'},{id:'Negative',name:'Negative'},{id:'Could not verify',name:'Could not verify'}] neighbour_status_list:any=[{id:'',name:'Select'},{id:'Positive',name:'Positive'},{id:'Negative',name:'Negative'},{id:'Could not verify',name:'Could not verify'}]
@ -102,6 +103,7 @@ export class EmployerInfoComponent implements OnInit {
customer_seg_abbr: any; customer_seg_abbr: any;
generalExistBusinessYear: number; generalExistBusinessYear: number;
generalExistBusinessMonth: number; generalExistBusinessMonth: number;
dynamicStepperHeadingForEmp:String;
notifier: NotifierService; notifier: NotifierService;
get questions() { return this.employerForm.get('questions');} get questions() { return this.employerForm.get('questions');}
get getEmployer_details() {return this.questions.get([2]).get('employer_details')} get getEmployer_details() {return this.questions.get([2]).get('employer_details')}
@ -720,6 +722,7 @@ export class EmployerInfoComponent implements OnInit {
gross_monthly_salary:[''], gross_monthly_salary:[''],
net_monthly_salary:[''], net_monthly_salary:[''],
sal_amount_was_not_confirmed:[''], sal_amount_was_not_confirmed:[''],
sal_amount_was_not_confirmed_others:[''],
// Mode of net salary // Mode of net salary
mode_of_getting_salary:[''], mode_of_getting_salary:[''],
amount_paid_through_bank:[''], amount_paid_through_bank:[''],
@ -1227,11 +1230,11 @@ export class EmployerInfoComponent implements OnInit {
if(group.invalid) { if(group.invalid) {
console.log(group,group.value.form_name); console.log(group,group.value.form_name);
// debugger; // debugger;
msg= "Questions are not filled up in "+group.value.form_name msg= group.value.form_name+" are not complete"
let index = this.stepperInfo.findIndex(vv=>vv.form_id == group.value.form_id); let index = this.stepperInfo.findIndex(vv=>vv.form_id == group.value.form_id);
console.log("Index",index); console.log("Index",index);
if(index != -1) { if(index != -1) {
msg = "Questions are not filled up in "+this.stepperInfo[index].form_name msg = this.stepperInfo[index].form_name+" are not complete"
this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index this.myStepper.selectedIndex = this.stepperInfo[index].stepper_index
} }
for (const name in group['controls']) { for (const name in group['controls']) {
@ -1549,6 +1552,7 @@ export class EmployerInfoComponent implements OnInit {
// general_controls.person_met_entered_pic.setValidators(Validators.required); // general_controls.person_met_entered_pic.setValidators(Validators.required);
// FOR ADDING OFFICE PHOTO // FOR ADDING OFFICE PHOTO
employement_controls.addControl('office_photographs',this._formBuilder.array([])) employement_controls.addControl('office_photographs',this._formBuilder.array([]))
this.dynamicStepperHeadingForEmp = "Office Setup Photographs"
// FOR REMOVING NAME BOARD PHOTO // FOR REMOVING NAME BOARD PHOTO
employement_controls.removeControl('nameboard_photographs') employement_controls.removeControl('nameboard_photographs')
return true return true
@ -1556,6 +1560,7 @@ export class EmployerInfoComponent implements OnInit {
else if(general_controls.is_met_during_visit.value == 'no'){ else if(general_controls.is_met_during_visit.value == 'no'){
// FOR ADDING NAME BOARD PHOTO // FOR ADDING NAME BOARD PHOTO
employement_controls.addControl('nameboard_photographs',this._formBuilder.array([])) employement_controls.addControl('nameboard_photographs',this._formBuilder.array([]))
this.dynamicStepperHeadingForEmp = "Name board/Entrance photograph"
// FOR REMOVING OFFICE PHOTO // FOR REMOVING OFFICE PHOTO
employement_controls.removeControl('office_photographs') employement_controls.removeControl('office_photographs')
return false return false
@ -1594,6 +1599,7 @@ export class EmployerInfoComponent implements OnInit {
case 4: case 4:
if (general_controls.is_employer_available.value == 'yes') { if (general_controls.is_employer_available.value == 'yes') {
employement_controls.addControl('employer_details',this.getEmployerDetailsControls()) employement_controls.addControl('employer_details',this.getEmployerDetailsControls())
this.dynamicStepperHeadingForEmp = "Employment Information"
return true; return true;
} }
else{ else{
@ -1607,6 +1613,7 @@ export class EmployerInfoComponent implements OnInit {
if(applicant_arr && applicant_arr.length > 0) { if(applicant_arr && applicant_arr.length > 0) {
if(general_controls.is_employer_available.value == 'no' && applicant_arr.filter(vv=>vv.is_person_met == true).length != 0 ){ if(general_controls.is_employer_available.value == 'no' && applicant_arr.filter(vv=>vv.is_person_met == true).length != 0 ){
employement_controls.addControl('docs_sighted',this.getDocsSightedDetailsControls()) employement_controls.addControl('docs_sighted',this.getDocsSightedDetailsControls())
this.dynamicStepperHeadingForEmp = "Documents Sighted of applicant employment During FI"
return true; return true;
} }
else{ else{

View File

@ -152,7 +152,7 @@
<!-- <span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" [matTooltip]="master.fk_primary_address_id ? 'Initiate PD for this address' : 'Initiate Address for PD Process'" matTooltipPosition="above" (click)="initiateAddtionalPD(master,addresses,master.fk_primary_address_id ? true : false)"><mat-icon>where_to_vote</mat-icon></button></span> --> <!-- <span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" [matTooltip]="master.fk_primary_address_id ? 'Initiate PD for this address' : 'Initiate Address for PD Process'" matTooltipPosition="above" (click)="initiateAddtionalPD(master,addresses,master.fk_primary_address_id ? true : false)"><mat-icon>where_to_vote</mat-icon></button></span> -->
<button *ngIf="VendorRoleID != 22" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button> <button *ngIf="VendorRoleID != 22" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button>
<span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span> <span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span>
<span *ngIf="VendorRoleID != 22"><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.TRIGGERED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].vendor_status)"><mat-icon>question_answer</mat-icon></button></span> <span *ngIf="VendorRoleID != 22 && addresses.addtional_pd_data[0].is_qc_enabled == '1'"><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.TRIGGERED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].vendor_status)"><mat-icon>question_answer</mat-icon></button></span>
</div> </div>
</div> </div>
</div> </div>
@ -193,7 +193,7 @@
<div fxFlex="60" align="right"> <div fxFlex="60" align="right">
<span><button *ngIf="VendorRoleID != 22" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button></span> <span><button *ngIf="VendorRoleID != 22" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master,addresses)"><mat-icon>verified_user</mat-icon></button></span>
<span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span> <span><button mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master,addresses)"><mat-icon>schedule</mat-icon></button></span>
<span *ngIf="VendorRoleID != 22"><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.TRIGGERED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].vendor_status)"><mat-icon>question_answer</mat-icon></button></span> <span *ngIf="VendorRoleID != 22 && addresses.addtional_pd_data[0].is_qc_enabled == '1'"><button *ngIf="roleAccessDetails.discussions && addresses.assigned_pd && addresses.addtional_pd_data[0].pd_type_name && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.DRAFT && addresses.addtional_pd_data[0].vendor_status!=pdStatusCheck.TRIGGERED" mat-raised-button mat-button-md mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Discussion" matTooltipPosition="above" (click)="getPDStart(addresses,addresses.addtional_pd_data[0].vendor_status)"><mat-icon>question_answer</mat-icon></button></span>
</div> </div>
</div> </div>
<div fxLayout="row nowrap"> <div fxLayout="row nowrap">
@ -260,7 +260,7 @@
<div fxFlex="100"> <div fxFlex="100">
<mat-card fxFlex="100" class="p-2" style="box-shadow: 0 0 1px rgba(0,0,0,.18), 0 0 1px rgba(0,0,0,.15) !important"> <mat-card fxFlex="100" class="p-2" style="box-shadow: 0 0 1px rgba(0,0,0,.18), 0 0 1px rgba(0,0,0,.15) !important">
<div class="mat-button-div" style="text-align: right;"> <div class="mat-button-div" style="text-align: right;">
<button *ngIf="VendorRoleID != 22" mat-raised-button color="primary" class="mr-1 mb-1 hover-icon" type="button" matTooltip="QC COMPLETED" matTooltipPosition="above" (click)="onClickQCCompleted(master)">QC COMPLETED</button> <button *ngIf="VendorRoleID != 22 && master.is_qc_enabled == '1'" mat-raised-button color="primary" class="mr-1 mb-1 hover-icon" type="button" matTooltip="QC COMPLETE" matTooltipPosition="above" (click)="onClickQCCompleted(master)" [disabled]="master.vendor_status != 'COMPLETED'">QC COMPLETE</button>
</div> </div>
</mat-card> </mat-card>
</div> </div>
@ -398,7 +398,7 @@
</mat-tab>--> </mat-tab>-->
<mat-tab> <mat-tab>
<ng-template mat-tab-label>PD History</ng-template> <ng-template mat-tab-label>FI History</ng-template>
<div *ngIf="masterPdLogsData.length>0; else nohistory"> <div *ngIf="masterPdLogsData.length>0; else nohistory">
<mat-list class="m-gap p-gap" *ngFor="let master of masterPdLogsData"> <mat-list class="m-gap p-gap" *ngFor="let master of masterPdLogsData">
<mat-list-item [ngClass]="master.meta_data ? 'metaDataStyle' : '' "> <mat-list-item [ngClass]="master.meta_data ? 'metaDataStyle' : '' ">

View File

@ -370,6 +370,7 @@ export class ViewPdComponent implements OnInit, OnDestroy {
.subscribe(dataresult => { .subscribe(dataresult => {
if (dataresult.update_status == true) { if (dataresult.update_status == true) {
// this.router.navigate(['../../startpd',pdDetails.assigned_pd], { relativeTo: this.route }); // this.router.navigate(['../../startpd',pdDetails.assigned_pd], { relativeTo: this.route });
this.viewPdDetails(this.viewID)
this.openQuesComp(pdDetails) this.openQuesComp(pdDetails)
} }
}); });
@ -502,13 +503,14 @@ export class ViewPdComponent implements OnInit, OnDestroy {
console.log('qccompleted',master); console.log('qccompleted',master);
let param={ let param={
pd_id: master.pd_id, pd_id: master.pd_id,
vendor_status: master.vendor_status, vendor_status: 'QC_COMPLETED',
fk_updatedby: master.fk_updatedby, fk_updatedby: master.fk_updatedby,
} }
this._pd.updateStatus(param).subscribe(res=>{ this._pd.updateStatus(param).subscribe(res=>{
if(res['status'] == '200'){ if(res['status'] == '200'){
console.log(res['dataStatus'].status == 200) console.log(res['dataStatus'].status == 200)
this.notifier.notify("info","Updated Successfully") this.notifier.notify("info","Updated Successfully")
this.viewPdDetails(this.viewID);
} }
else if(res['status'] == '304'){ else if(res['status'] == '304'){
Swal( Swal(