Build Issues : ps
This commit is contained in:
parent
4ad50910c9
commit
07ce3a14d5
@ -43,7 +43,7 @@
|
|||||||
<mat-error *ngIf="pdMain.lender_contact_person.hasError('required')">Contact Person Required</mat-error>
|
<mat-error *ngIf="pdMain.lender_contact_person.hasError('required')">Contact Person Required</mat-error>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 100%">
|
<mat-form-field style="width: 100%">
|
||||||
<input matInput placeholder="Contact Number" formControlName="lender_contact_mobile" type="text" required>
|
<input matInput placeholder="Contact Number" formControlName="lender_contact_mobile" type="text">
|
||||||
<mat-error *ngIf="pdMain.lender_contact_mobile.hasError('required')">Contact Number Required</mat-error>
|
<mat-error *ngIf="pdMain.lender_contact_mobile.hasError('required')">Contact Number Required</mat-error>
|
||||||
<mat-error *ngIf="pdMain.lender_contact_mobile.hasError('pattern') || pdMain.lender_contact_mobile.hasError('maxlength') || pdMain.lender_contact_mobile.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
<mat-error *ngIf="pdMain.lender_contact_mobile.hasError('pattern') || pdMain.lender_contact_mobile.hasError('maxlength') || pdMain.lender_contact_mobile.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
|
||||||
|
|
||||||
|
|||||||
@ -77,7 +77,7 @@ 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(10),Validators.required])],
|
mobile_no: [null,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],
|
||||||
landline : [null,Validators.compose([Validators.minLength(12),Validators.maxLength(13)])],
|
landline : [null,Validators.compose([Validators.minLength(12),Validators.maxLength(13)])],
|
||||||
email: [null],
|
email: [null],
|
||||||
addressline1: [null],
|
addressline1: [null],
|
||||||
|
|||||||
@ -25,7 +25,7 @@
|
|||||||
|
|
||||||
<div fxLayout="row" fxLayoutGap="5%" fxLayoutAlign="start none">
|
<div fxLayout="row" fxLayoutGap="5%" fxLayoutAlign="start none">
|
||||||
<mat-form-field style="width: 50%">
|
<mat-form-field style="width: 50%">
|
||||||
<input matInput placeholder="Mobile" formControlName="mobile_no" type="text" (keypress)="keyPress($event)" required>
|
<input matInput placeholder="Mobile" formControlName="mobile_no" type="text" (keypress)="keyPress($event)">
|
||||||
<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('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>
|
||||||
|
|||||||
@ -24,36 +24,74 @@
|
|||||||
<mat-card-content formArrayName="main_applicant_details">
|
<mat-card-content formArrayName="main_applicant_details">
|
||||||
<div *ngFor="let mainDetails of _personalForm.controls.main_applicant_details['controls']; let i = index;" [formGroupName]="i">
|
<div *ngFor="let mainDetails of _personalForm.controls.main_applicant_details['controls']; let i = index;" [formGroupName]="i">
|
||||||
|
|
||||||
<mat-form-field style="width: 20%">
|
<mat-form-field style="width: 20%">
|
||||||
<input matInput placeholder="Name" formControlName="name_ans" type="text" required>
|
<input matInput placeholder="Name" formControlName="name_ans" type="text" required>
|
||||||
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 5%">
|
|
||||||
|
<mat-form-field style="width: 20%">
|
||||||
|
<!-- <input matInput placeholder="Entity" formControlName="entity_ans" type="text" required> -->
|
||||||
|
<mat-select placeholder="Entity" formControlName="entity_ans" required>
|
||||||
|
<mat-option value="individual" >Individual</mat-option>
|
||||||
|
<mat-option value="non-individual" >Non-Individual</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field *ngIf="mainDetails['controls'].entity_ans.value=='individual'" style="width: 20%">
|
||||||
|
|
||||||
<input matInput placeholder="Age" formControlName="age_ans" type="text" required (keypress)="keyPress($event)">
|
<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>
|
||||||
<mat-form-field style="width: 15%">
|
|
||||||
|
|
||||||
<input matInput placeholder="Entity" formControlName="entity_ans" type="text" required>
|
<mat-form-field *ngIf="mainDetails['controls'].entity_ans.value=='non-individual'" style="width: 20%">
|
||||||
</mat-form-field>
|
<!-- <input matInput placeholder="Entity" formControlName="entity_ans" type="text" required> -->
|
||||||
<mat-form-field style="width: 20%">
|
<mat-select placeholder="Non-Individual Entity" formControlName="non_individual_entity_ans" required>
|
||||||
<mat-select placeholder="Earning Status" formControlName="earning_ans" required>
|
<mat-option *ngFor="let NE of nonindividualentities" [value]="NE.non_individual_entity_id">
|
||||||
<mat-option *ngFor="let earning of earningStatus" [value]="earning.earning_member_status_id" >
|
{{NE.non_individual_entity_name}}
|
||||||
{{earning.earning_member_status}}
|
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
|
||||||
<mat-form-field style="width: 20%">
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field *ngIf="mainDetails['controls'].non_individual_entity_ans.value==10" style="width: 20%">
|
||||||
|
<input matInput placeholder="Specify Others" formControlName="other_non_individual_entity_ans" type="text">
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
|
||||||
|
<mat-form-field *ngIf="mainDetails['controls'].entity_ans.value=='individual'" style="width: 20%">
|
||||||
|
<mat-select placeholder="Earning Status" formControlName="earning_ans" required>
|
||||||
|
<mat-option *ngFor="let earning of earningStatus" [value]="earning.earning_member_status_id" >
|
||||||
|
{{earning.earning_member_status}}
|
||||||
|
</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field *ngIf="mainDetails['controls'].entity_ans.value=='non-individual'" style="width: 20%">
|
||||||
|
|
||||||
|
<input matInput placeholder="Vintage" formControlName="vintage_ans" type="text" required (keypress)="keyPress($event)">
|
||||||
|
<mat-error *ngIf="mainDetails['controls'].vintage_ans.hasError('pattern') || mainDetails['controls'].vintage_ans.hasError('maxlength') || mainDetails['controls'].vintage_ans.hasError('minlength')">Enter Valid Vintage. </mat-error>
|
||||||
|
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<!-- <mat-form-field style="width: 15%">
|
||||||
|
<input matInput placeholder="Entity" formControlName="entity_ans" type="text" required>
|
||||||
|
</mat-form-field> -->
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<mat-form-field *ngIf="mainDetails['controls'].entity_ans.value=='individual'" style="width: 20%">
|
||||||
|
|
||||||
<mat-select placeholder="Educational Qualification" formControlName="qualification_ans" required>
|
<mat-select placeholder="Educational Qualification" formControlName="qualification_ans" required>
|
||||||
<mat-option *ngFor="let education of qualifications" [value]="education.qualification_id" >
|
<mat-option *ngFor="let education of qualifications" [value]="education.qualification_id" >
|
||||||
{{education.qualification_name}}
|
{{education.qualification_name}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field *ngIf="mainDetails['controls'].entity_ans.value=='individual' && mainDetails['controls'].qualification_ans.value == 2" style="width: 20%">
|
||||||
|
<input matInput placeholder="Education Level" formControlName="edu_level_ans" type="text">
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
@ -71,40 +109,68 @@
|
|||||||
<mat-card-content formArrayName="co_applicant_details">
|
<mat-card-content formArrayName="co_applicant_details">
|
||||||
<mat-card *ngFor="let coDetails of _personalForm.controls.co_applicant_details['controls']; let c = index;" [formGroupName]="c">
|
<mat-card *ngFor="let coDetails of _personalForm.controls.co_applicant_details['controls']; let c = index;" [formGroupName]="c">
|
||||||
<mat-card-content>
|
<mat-card-content>
|
||||||
<mat-form-field style="width: 20%">
|
<mat-form-field style="width: 20%">
|
||||||
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
||||||
<input matInput placeholder="Name" formControlName="name_ans" type="text" required>
|
<input matInput placeholder="Name" formControlName="name_ans" type="text" required>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 10%">
|
|
||||||
|
<mat-form-field style="width: 20%">
|
||||||
|
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
||||||
|
|
||||||
|
<!-- <input matInput placeholder="Entity" formControlName="entity_ans" type="text" required> -->
|
||||||
|
<mat-select placeholder="Entity" formControlName="entity_ans" required>
|
||||||
|
<mat-option value="individual" >Individual</mat-option>
|
||||||
|
<mat-option value="non-individual" >Non-Individual</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
<mat-form-field *ngIf="coDetails['controls'].entity_ans.value=='individual'" style="width: 20%">
|
||||||
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
||||||
|
|
||||||
<input matInput placeholder="Age" formControlName="age_ans" type="text" required>
|
<input matInput placeholder="Age" formControlName="age_ans" type="text" required>
|
||||||
<mat-error *ngIf="coDetails['controls'].age_ans.hasError('pattern') || coDetails['controls'].age_ans.hasError('maxlength') || coDetails['controls'].age_ans.hasError('minlength')">Enter Valid Age. </mat-error>
|
<mat-error *ngIf="coDetails['controls'].age_ans.hasError('pattern') || coDetails['controls'].age_ans.hasError('maxlength') || coDetails['controls'].age_ans.hasError('minlength')">Enter Valid Age. </mat-error>
|
||||||
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 25%">
|
<mat-form-field *ngIf="coDetails['controls'].entity_ans.value=='non-individual'" style="width: 20%">
|
||||||
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
<!-- <input matInput placeholder="Entity" formControlName="entity_ans" type="text" required> -->
|
||||||
|
<mat-select placeholder="Non-Individual Entity" formControlName="non_individual_entity_ans" required>
|
||||||
|
<mat-option *ngFor="let NE of nonindividualentities" [value]="NE.non_individual_entity_id">
|
||||||
|
{{NE.non_individual_entity_name}}
|
||||||
|
</mat-option>
|
||||||
|
</mat-select>
|
||||||
|
|
||||||
<input matInput placeholder="Entity" formControlName="entity_ans" type="text" required>
|
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 25%">
|
|
||||||
|
<mat-form-field *ngIf="coDetails['controls'].non_individual_entity_ans.value==10" style="width: 20%">
|
||||||
|
<input matInput placeholder="Specify Others" formControlName="other_non_individual_entity_ans" type="text">
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field *ngIf="coDetails['controls'].entity_ans.value=='individual'" style="width: 20%">
|
||||||
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
||||||
<mat-select placeholder="Earning Status" formControlName="earning_ans" required>
|
<mat-select placeholder="Earning Status" formControlName="earning_ans" required>
|
||||||
<mat-option *ngFor="let earning of earningStatus" [value]="earning.earning_member_status_id" >
|
<mat-option *ngFor="let earning of earningStatus" [value]="earning.earning_member_status_id" >
|
||||||
{{earning.earning_member_status}}
|
{{earning.earning_member_status}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<mat-form-field style="width: 34%">
|
<mat-form-field *ngIf="coDetails['controls'].entity_ans.value=='non-individual'" style="width: 20%">
|
||||||
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
|
||||||
|
|
||||||
|
<input matInput placeholder="Vintage" formControlName="vintage_ans" type="text" required (keypress)="keyPress($event)">
|
||||||
|
<mat-error *ngIf="mainDetails['controls'].vintage_ans.hasError('pattern') || mainDetails['controls'].vintage_ans.hasError('maxlength') || mainDetails['controls'].vintage_ans.hasError('minlength')">Enter Valid Vintage. </mat-error>
|
||||||
|
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
<mat-form-field *ngIf="coDetails['controls'].entity_ans.value=='individual'" style="width: 20%">
|
||||||
|
<!-- <mat-label>{{coDetails.controls.pd_question.value}}</mat-label> -->
|
||||||
<mat-select placeholder="Educational Qualification" formControlName="qualification_ans" required>
|
<mat-select placeholder="Educational Qualification" formControlName="qualification_ans" required>
|
||||||
<mat-option *ngFor="let education of qualifications" [value]="education.qualification_id" >
|
<mat-option *ngFor="let education of qualifications" [value]="education.qualification_id" >
|
||||||
{{education.qualification_name}}
|
{{education.qualification_name}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
</mat-form-field>
|
<mat-form-field *ngIf="coDetails['controls'].entity_ans.value=='individual' && mainDetails['controls'].qualification_ans.value == 2" style="width: 20%">
|
||||||
|
<input matInput placeholder="Education Level" formControlName="edu_level_ans" type="text">
|
||||||
|
</mat-form-field>
|
||||||
|
|
||||||
|
|
||||||
<mat-form-field style="width: 40%">
|
<mat-form-field style="width: 40%">
|
||||||
@ -113,12 +179,13 @@
|
|||||||
<mat-option *ngFor="let rel of relationShipList" [value]="rel.relationship_id" >
|
<mat-option *ngFor="let rel of relationShipList" [value]="rel.relationship_id" >
|
||||||
{{rel.name}}
|
{{rel.name}}
|
||||||
</mat-option>
|
</mat-option>
|
||||||
</mat-select>
|
</mat-select>
|
||||||
</mat-form-field>
|
</mat-form-field>
|
||||||
<button type="button" mat-raised-button mat-icon-button (click)="removeCoApplicant(c)"
|
|
||||||
|
<button type="button" mat-raised-button mat-icon-button (click)="removeCoApplicant(c)"
|
||||||
matTooltip="Remove Co Applicant" matTooltipPosition="above" class="mr-1 mb-1 hover-icon" color="primary" *ngIf="coDetails.controls.current_added_status.value==1">
|
matTooltip="Remove Co Applicant" matTooltipPosition="above" class="mr-1 mb-1 hover-icon" color="primary" *ngIf="coDetails.controls.current_added_status.value==1">
|
||||||
<mat-icon>delete</mat-icon>
|
<mat-icon>delete</mat-icon>
|
||||||
</button>
|
</button>
|
||||||
|
|
||||||
</mat-card-content>
|
</mat-card-content>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
|
|||||||
@ -20,6 +20,7 @@ export class PersonalInfoComponent implements OnInit {
|
|||||||
earningStatus:any=[];
|
earningStatus:any=[];
|
||||||
qualifications:any=[];
|
qualifications:any=[];
|
||||||
relationShipList:any=[];
|
relationShipList:any=[];
|
||||||
|
nonindividualentities: any = [];
|
||||||
|
|
||||||
// @Input() pdid : string;
|
// @Input() pdid : string;
|
||||||
// @Input() pd_all_details:any;
|
// @Input() pd_all_details:any;
|
||||||
@ -33,17 +34,25 @@ export class PersonalInfoComponent implements OnInit {
|
|||||||
public const_main_applicant : any = {
|
public const_main_applicant : any = {
|
||||||
"name_ans": '',
|
"name_ans": '',
|
||||||
"age_ans":'',
|
"age_ans":'',
|
||||||
|
"vintage_ans":'',
|
||||||
|
"non_individual_entity_ans":'',
|
||||||
|
"other_non_individual_entity_ans":'',
|
||||||
"earning_ans": '',
|
"earning_ans": '',
|
||||||
"entity_ans": '',
|
"entity_ans": '',
|
||||||
"qualification_ans": '',
|
"qualification_ans": '',
|
||||||
|
"edu_level_ans":'',
|
||||||
"current_added_status":1
|
"current_added_status":1
|
||||||
};
|
};
|
||||||
public const_co_applicant : any = {
|
public const_co_applicant : any = {
|
||||||
"name_ans": '',
|
"name_ans": '',
|
||||||
"age_ans":'',
|
"age_ans":'',
|
||||||
|
"vintage_ans":'',
|
||||||
|
"non_individual_entity_ans":'',
|
||||||
|
"other_non_individual_entity_ans":'',
|
||||||
"earning_ans": '',
|
"earning_ans": '',
|
||||||
"entity_ans": '',
|
"entity_ans": '',
|
||||||
"qualification_ans": '',
|
"qualification_ans": '',
|
||||||
|
"edu_level_ans":'',
|
||||||
"relation_ans": '',
|
"relation_ans": '',
|
||||||
"current_added_status":1
|
"current_added_status":1
|
||||||
};
|
};
|
||||||
@ -64,6 +73,7 @@ export class PersonalInfoComponent implements OnInit {
|
|||||||
this.getMasterDetails('RELATIONSHIPS',1);
|
this.getMasterDetails('RELATIONSHIPS',1);
|
||||||
this.getMasterDetails('EARNINGMEMBERSSTATUS',2);
|
this.getMasterDetails('EARNINGMEMBERSSTATUS',2);
|
||||||
this.getMasterDetails('EDUQUALIFICATION',3);
|
this.getMasterDetails('EDUQUALIFICATION',3);
|
||||||
|
this.getMasterDetails('NONINDIVIDUALENTITIES',4);
|
||||||
this.mainApplicantDetails = this.pd_all_details.pdapplicants_detials.filter(item => item.applicant_type == 1);
|
this.mainApplicantDetails = this.pd_all_details.pdapplicants_detials.filter(item => item.applicant_type == 1);
|
||||||
// console.log(this.mainApplicantDetails)
|
// console.log(this.mainApplicantDetails)
|
||||||
this.coApplicantDetails = this.pd_all_details.pdapplicants_detials.filter(item => item.applicant_type == 0);
|
this.coApplicantDetails = this.pd_all_details.pdapplicants_detials.filter(item => item.applicant_type == 0);
|
||||||
@ -149,7 +159,9 @@ export class PersonalInfoComponent implements OnInit {
|
|||||||
else if(type==3){
|
else if(type==3){
|
||||||
this.qualifications=data.records.filter(item => item.isactive == 1);
|
this.qualifications=data.records.filter(item => item.isactive == 1);
|
||||||
}
|
}
|
||||||
|
else if(type==4){
|
||||||
|
this.nonindividualentities=data.records.filter(item => item.isactive == 1);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}, error => this.errorMessage = <any> error);
|
}, error => this.errorMessage = <any> error);
|
||||||
@ -195,9 +207,13 @@ loadMainApplicant(applicant:any) {
|
|||||||
return this._fb.group({
|
return this._fb.group({
|
||||||
name_ans: [applicant.name_ans, Validators.required],
|
name_ans: [applicant.name_ans, Validators.required],
|
||||||
age_ans: [applicant.age_ans, Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
age_ans: [applicant.age_ans, Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
||||||
|
vintage_ans: [applicant.vintage_ans, Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
||||||
|
non_individual_entity_ans: [applicant.non_individual_entity_ans],
|
||||||
|
other_non_individual_entity_ans:[applicant.other_non_individual_entity_ans],
|
||||||
entity_ans: [applicant.entity_ans, Validators.required],
|
entity_ans: [applicant.entity_ans, Validators.required],
|
||||||
qualification_ans: [applicant.qualification_ans, Validators.required],
|
qualification_ans: [applicant.qualification_ans, Validators.required],
|
||||||
earning_ans: [applicant.earning_ans, Validators.required],
|
earning_ans: [applicant.earning_ans, Validators.required],
|
||||||
|
edu_level_ans: [applicant.edu_level_ans],
|
||||||
current_added_status: [applicant.current_added_status],
|
current_added_status: [applicant.current_added_status],
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -209,8 +225,12 @@ loadCoApplicant(applicant:any) {
|
|||||||
age_ans: [applicant.age_ans, Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
age_ans: [applicant.age_ans, Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
||||||
entity_ans: [applicant.entity_ans, Validators.required],
|
entity_ans: [applicant.entity_ans, Validators.required],
|
||||||
qualification_ans: [applicant.qualification_ans, Validators.required],
|
qualification_ans: [applicant.qualification_ans, Validators.required],
|
||||||
|
vintage_ans: [applicant.vintage_ans, Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
||||||
|
non_individual_entity_ans: [applicant.non_individual_entity_ans],
|
||||||
|
other_non_individual_entity_ans:[applicant.other_non_individual_entity_ans],
|
||||||
earning_ans: [applicant.earning_ans, Validators.required],
|
earning_ans: [applicant.earning_ans, Validators.required],
|
||||||
relation_ans: [applicant.relation_ans, Validators.required],
|
relation_ans: [applicant.relation_ans, Validators.required],
|
||||||
|
edu_level_ans: [applicant.edu_level_ans],
|
||||||
current_added_status: [applicant.current_added_status],
|
current_added_status: [applicant.current_added_status],
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -220,9 +240,13 @@ loadDefaultMainApplicant(applicant:any){
|
|||||||
return this._fb.group({
|
return this._fb.group({
|
||||||
name_ans: [applicant.applicant_name, Validators.required],
|
name_ans: [applicant.applicant_name, Validators.required],
|
||||||
age_ans: ['', Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
age_ans: ['', Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
||||||
|
vintage_ans:['', Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
||||||
|
non_individual_entity_ans:[''],
|
||||||
|
other_non_individual_entity_ans:[''],
|
||||||
entity_ans: [this.pd_all_details.pdmaster_details.customer_segment_abbr.substring(0,3).toUpperCase()==='SAL' ? 'Individual' : '', Validators.required],
|
entity_ans: [this.pd_all_details.pdmaster_details.customer_segment_abbr.substring(0,3).toUpperCase()==='SAL' ? 'Individual' : '', Validators.required],
|
||||||
qualification_ans: ['', Validators.required],
|
qualification_ans: ['', Validators.required],
|
||||||
earning_ans: ['', Validators.required],
|
earning_ans: ['', Validators.required],
|
||||||
|
edu_level_ans:[''],
|
||||||
current_added_status: [applicant.current_added_status],
|
current_added_status: [applicant.current_added_status],
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@ -232,7 +256,11 @@ loadDefaultMainApplicant(applicant:any){
|
|||||||
return this._fb.group({
|
return this._fb.group({
|
||||||
name_ans: [applicant.applicant_name, Validators.required],
|
name_ans: [applicant.applicant_name, Validators.required],
|
||||||
age_ans: ['', Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
age_ans: ['', Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
||||||
|
vintage_ans:['', Validators.compose([Validators.required,Validators.minLength(1),Validators.maxLength(3),Validators.required,Validators.pattern('^[0-9]*$')])],
|
||||||
|
non_individual_entity_ans:[''],
|
||||||
|
other_non_individual_entity_ans:[''],
|
||||||
entity_ans: [this.pd_all_details.pdmaster_details.customer_segment_abbr.substring(0,3).toUpperCase()==='SAL' ? 'Individual' : '', Validators.required],
|
entity_ans: [this.pd_all_details.pdmaster_details.customer_segment_abbr.substring(0,3).toUpperCase()==='SAL' ? 'Individual' : '', Validators.required],
|
||||||
|
edu_level_ans:[''],
|
||||||
qualification_ans: ['', Validators.required],
|
qualification_ans: ['', Validators.required],
|
||||||
earning_ans: ['', Validators.required],
|
earning_ans: ['', Validators.required],
|
||||||
relation_ans: ['', Validators.required],
|
relation_ans: ['', Validators.required],
|
||||||
@ -257,8 +285,12 @@ submitPersonalForm(formData:any) {
|
|||||||
main_applicantDetails.push({
|
main_applicantDetails.push({
|
||||||
"name_ans":element.name_ans,
|
"name_ans":element.name_ans,
|
||||||
"age_ans":element.age_ans,
|
"age_ans":element.age_ans,
|
||||||
|
"vintage_ans":element.vintage_ans,
|
||||||
|
"non_individual_entity_ans":element.non_individual_entity_ans,
|
||||||
|
"other_non_individual_entity_ans":element.other_non_individual_entity_ans,
|
||||||
"entity_ans":element.entity_ans,
|
"entity_ans":element.entity_ans,
|
||||||
"qualification_ans":element.qualification_ans,
|
"qualification_ans":element.qualification_ans,
|
||||||
|
"edu_level_ans":element.edu_level_ans,
|
||||||
"earning_ans":element.earning_ans,
|
"earning_ans":element.earning_ans,
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
@ -271,6 +303,10 @@ submitPersonalForm(formData:any) {
|
|||||||
"qualification_ans":Coelement.qualification_ans,
|
"qualification_ans":Coelement.qualification_ans,
|
||||||
"entity_ans":Coelement.entity_ans,
|
"entity_ans":Coelement.entity_ans,
|
||||||
"earning_ans":Coelement.earning_ans,
|
"earning_ans":Coelement.earning_ans,
|
||||||
|
"vintage_ans":Coelement.vintage_ans,
|
||||||
|
"non_individual_entity_ans":Coelement.non_individual_entity_ans,
|
||||||
|
"other_non_individual_entity_ans":Coelement.other_non_individual_entity_ans,
|
||||||
|
"edu_level_ans":Coelement.edu_level_ans,
|
||||||
"relation_ans":Coelement.relation_ans,
|
"relation_ans":Coelement.relation_ans,
|
||||||
})
|
})
|
||||||
// get new co applicant list for applicant table
|
// get new co applicant list for applicant table
|
||||||
|
|||||||
@ -1,5 +1,6 @@
|
|||||||
import {NgModule} from '@angular/core';
|
import {NgModule} from '@angular/core';
|
||||||
import {CommonModule} from '@angular/common';
|
import {CommonModule} from '@angular/common';
|
||||||
|
|
||||||
import {
|
import {
|
||||||
MatCardModule,
|
MatCardModule,
|
||||||
MatIconModule,
|
MatIconModule,
|
||||||
@ -7,10 +8,12 @@ import {
|
|||||||
MatRadioModule,
|
MatRadioModule,
|
||||||
MatButtonModule, MatTableModule, MatPaginatorModule,
|
MatButtonModule, MatTableModule, MatPaginatorModule,
|
||||||
MatProgressBarModule, MatDialogModule, MatSortModule,
|
MatProgressBarModule, MatDialogModule, MatSortModule,
|
||||||
MatToolbarModule, MatSelectModule, MatListModule, MatGridListModule, MatTabsModule, MatCheckboxModule,
|
MatToolbarModule, MatSelectModule, MatListModule, MatGridListModule,
|
||||||
MatBadgeModule, MatExpansionModule, MatStepperModule, MatSidenavModule, MatMenuModule, MatButtonToggleModule,
|
MatTabsModule, MatCheckboxModule,
|
||||||
MatAutocompleteModule, MatDatepickerModule
|
MatBadgeModule, MatExpansionModule, MatStepperModule, MatSidenavModule,
|
||||||
} from '@angular/material';
|
MatMenuModule, MatButtonToggleModule,
|
||||||
|
MatAutocompleteModule, MatDatepickerModule } 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';
|
||||||
import {FileUploadModule} from 'ng2-file-upload/ng2-file-upload';
|
import {FileUploadModule} from 'ng2-file-upload/ng2-file-upload';
|
||||||
@ -114,69 +117,108 @@ const pdCustomNotifierOptions: NotifierOptions = {
|
|||||||
};
|
};
|
||||||
|
|
||||||
@NgModule({
|
@NgModule({
|
||||||
// imports: [
|
imports: [
|
||||||
// CommonModule,
|
CommonModule,
|
||||||
// ManagePdRoutingModule,
|
ManagePdRoutingModule,
|
||||||
// NotifierModule.withConfig(pdCustomNotifierOptions),
|
NotifierModule.withConfig(pdCustomNotifierOptions),
|
||||||
// MatCardModule,
|
MatCardModule,
|
||||||
// MatIconModule,
|
MatIconModule,
|
||||||
// MatInputModule,
|
MatInputModule,
|
||||||
// MatRadioModule,
|
MatRadioModule,
|
||||||
// MatTableModule,
|
MatTableModule,
|
||||||
// MatPaginatorModule,
|
MatPaginatorModule,
|
||||||
// MatButtonModule,
|
MatButtonModule,
|
||||||
// MatProgressBarModule,
|
MatProgressBarModule,
|
||||||
// MatAutocompleteModule,
|
MatToolbarModule,
|
||||||
// MatToolbarModule,
|
FlexLayoutModule,
|
||||||
// FlexLayoutModule,
|
NgxDatatableModule,
|
||||||
// NgxDatatableModule,
|
FormsModule,MatSlideToggleModule,
|
||||||
// FormsModule,
|
MatSelectModule, MatListModule,MatGridListModule, MatTabsModule, MatBadgeModule, MatCheckboxModule,MatStepperModule,MatSidenavModule ,MatMenuModule, MatButtonToggleModule,
|
||||||
// MatSlideToggleModule,
|
ReactiveFormsModule,
|
||||||
// MatSelectModule, MatListModule, MatGridListModule, MatTabsModule, MatBadgeModule, MatCheckboxModule, MatStepperModule, MatSidenavModule, MatMenuModule, MatButtonToggleModule,
|
FileUploadModule,
|
||||||
// ReactiveFormsModule,
|
TreeModule,
|
||||||
// FileUploadModule,
|
MatDatepickerModule,
|
||||||
// TreeModule,
|
MatDialogModule,MatSortModule,
|
||||||
// MatDialogModule, MatSortModule,
|
NgxMatSelectSearchModule,MatTooltipModule, MatExpansionModule,
|
||||||
// NgxMatSelectSearchModule, MatTooltipModule, MatExpansionModule,
|
AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}),OwlDateTimeModule,
|
||||||
// AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}), OwlDateTimeModule,
|
OwlNativeDateTimeModule,
|
||||||
// OwlNativeDateTimeModule,
|
],
|
||||||
// ],
|
declarations: [RentalInfoComponent,
|
||||||
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, AssessedIncomeComponent, AllocationViewMoreComponent],
|
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,
|
||||||
|
AssessedIncomeComponent,
|
||||||
|
AllocationViewMoreComponent],
|
||||||
|
|
||||||
// exports: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, CompletedPdComponent, QcCompletedPdComponent],
|
exports: [PdAllocationComponent,
|
||||||
// providers: [PdTrigerService, GetGeometricLocationService],
|
SmartPdAllocationComponent,
|
||||||
// entryComponents: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent],
|
TelePdAllocationComponent,
|
||||||
imports: [
|
SchedulePdComponent,
|
||||||
CommonModule,
|
EditPdApplicantComponent,
|
||||||
ManagePdRoutingModule,
|
EditPdMasterComponent,
|
||||||
NotifierModule.withConfig(pdCustomNotifierOptions),
|
StartPdComponent,
|
||||||
MatCardModule,
|
CompletedPdComponent,
|
||||||
MatIconModule,
|
QcCompletedPdComponent,
|
||||||
MatInputModule,
|
AllocationViewMoreComponent],
|
||||||
MatRadioModule,
|
|
||||||
MatTableModule,
|
providers: [PdTrigerService,
|
||||||
MatPaginatorModule,
|
GetGeometricLocationService],
|
||||||
MatButtonModule,
|
|
||||||
MatProgressBarModule,
|
entryComponents: [PdAllocationComponent,
|
||||||
MatToolbarModule,
|
SmartPdAllocationComponent,
|
||||||
FlexLayoutModule,
|
SchedulePdComponent,
|
||||||
NgxDatatableModule,
|
EditPdApplicantComponent,
|
||||||
FormsModule,MatSlideToggleModule,
|
EditPdMasterComponent,
|
||||||
MatSelectModule, MatListModule,MatGridListModule, MatTabsModule, MatBadgeModule, MatCheckboxModule,MatStepperModule,MatSidenavModule ,MatMenuModule, MatButtonToggleModule,
|
TelePdAllocationComponent,
|
||||||
ReactiveFormsModule,
|
AllocationViewMoreComponent,
|
||||||
FileUploadModule,
|
|
||||||
TreeModule,
|
PersonalInfoComponent,
|
||||||
MatDatepickerModule,
|
ClientInfoComponent,
|
||||||
MatDialogModule,MatSortModule,
|
SupplierInfoComponent,
|
||||||
NgxMatSelectSearchModule,MatTooltipModule, MatExpansionModule,
|
CurrentLoanComponent,
|
||||||
AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}),OwlDateTimeModule,
|
LoanDetailsComponent,
|
||||||
OwlNativeDateTimeModule,
|
OtherIncomeComponent,
|
||||||
],
|
AssetsInfoComponent,
|
||||||
// declarations: [ListPdComponent, ManagePdComponent, MapPdViewComponent, AddPdComponent, ViewPdComponent, PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, InprogressPdComponent, AllPdComponent, ScheduledPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, SupplierInfoComponent, PersonalInfoComponent, AssetsInfoComponent],
|
AddressComponent,
|
||||||
exports: [PdAllocationComponent, SmartPdAllocationComponent, TelePdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, CompletedPdComponent, QcCompletedPdComponent, ClientInfoComponent, SupplierInfoComponent, PersonalInfoComponent, CurrentLoanComponent, LoanDetailsComponent, OtherIncomeComponent, AssetsInfoComponent, AddressComponent, FamilyDetailsComponent, BankingDetailsComponent, StockComponent, EmploymentInfoComponent, BusinessInfoComponent, FinancialInfoComponent, LenderRepresentativeComponent,RentalInfoComponent, AssessedIncomeComponent, AllocationViewMoreComponent],
|
FamilyDetailsComponent,
|
||||||
providers: [PdTrigerService, GetGeometricLocationService],
|
BankingDetailsComponent,
|
||||||
entryComponents: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, TelePdAllocationComponent, AllocationViewMoreComponent, PersonalInfoComponent,
|
StockComponent,
|
||||||
ClientInfoComponent, SupplierInfoComponent, CurrentLoanComponent, LoanDetailsComponent, OtherIncomeComponent, AssetsInfoComponent, AddressComponent, FamilyDetailsComponent, BankingDetailsComponent, StockComponent, EmploymentInfoComponent, BusinessInfoComponent, FinancialInfoComponent, LenderRepresentativeComponent,RentalInfoComponent, AssessedIncomeComponent],
|
EmploymentInfoComponent,
|
||||||
|
BusinessInfoComponent,
|
||||||
|
FinancialInfoComponent,
|
||||||
|
LenderRepresentativeComponent,
|
||||||
|
RentalInfoComponent,
|
||||||
|
AssessedIncomeComponent],
|
||||||
})
|
})
|
||||||
export class ManagePdModule {
|
export class ManagePdModule {
|
||||||
}
|
}
|
||||||
|
|||||||
@ -374,71 +374,6 @@
|
|||||||
<!-- end check box questions section -->
|
<!-- end check box questions section -->
|
||||||
<!-- start forms based questions -->
|
<!-- start forms based questions -->
|
||||||
<div *ngIf="formsCategoryEnable">
|
<div *ngIf="formsCategoryEnable">
|
||||||
<ng-container [ngSwitch]="selectedFormsCategory.form_id">
|
|
||||||
<!-- start supplier type questions section -->
|
|
||||||
<ng-container *ngSwitchCase="1">
|
|
||||||
<app-supplier-info [pdid]="startPD"></app-supplier-info>
|
|
||||||
</ng-container>
|
|
||||||
<!-- end supplier type questions -->
|
|
||||||
|
|
||||||
<!-- start client type questions -->
|
|
||||||
<ng-container *ngSwitchCase="2">
|
|
||||||
<app-client-info [pdid]="startPD"></app-client-info>
|
|
||||||
</ng-container>
|
|
||||||
<!-- end client type questions -->
|
|
||||||
|
|
||||||
<!-- start personal type questions -->
|
|
||||||
<ng-container *ngSwitchCase="3">
|
|
||||||
<app-personal-info [pdid]="startPD" [pd_all_details]="pdFullDetails"></app-personal-info>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="4">
|
|
||||||
<app-assets-info [pdid]="startPD"></app-assets-info>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="5">
|
|
||||||
<app-address [pdid]="startPD"></app-address>
|
|
||||||
<!-- end personal type questions -->
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="6">
|
|
||||||
<app-family-details [pdid]="startPD"></app-family-details>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="7">
|
|
||||||
<!--<p>Banking details</p>-->
|
|
||||||
<app-banking-details [pdid]="startPD" ></app-banking-details>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="8">
|
|
||||||
<app-current-loan [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-current-loan>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="9">
|
|
||||||
<app-other-income [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-other-income>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="10">
|
|
||||||
<app-loan-details [pdid]="startPD" [form_id]="selectedFormsCategory.form_id" [applicant_details]="pdFullDetails"></app-loan-details>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="11">
|
|
||||||
<app-stock [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-stock>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="12">
|
|
||||||
<app-employment-info [pdid]="startPD" [form_id]="selectedFormsCategory.form_id" [pd_all_details]="pdFullDetails"></app-employment-info>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="13">
|
|
||||||
<app-business-info [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-business-info>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="14">
|
|
||||||
<app-financial-info [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-financial-info>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="15">
|
|
||||||
<app-lender-representative [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-lender-representative>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="16">
|
|
||||||
<app-assessed-income [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-assessed-income>
|
|
||||||
</ng-container>
|
|
||||||
<ng-container *ngSwitchCase="17">
|
|
||||||
<app-rental-info [pdid]="startPD" [form_id]="selectedFormsCategory.form_id"></app-rental-info>
|
|
||||||
</ng-container>
|
|
||||||
|
|
||||||
<!-- end personal type questions
|
|
||||||
-->
|
|
||||||
</ng-container>
|
|
||||||
</div>
|
</div>
|
||||||
<!-- end form based questions -->
|
<!-- end form based questions -->
|
||||||
</figure>
|
</figure>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user