This commit is contained in:
venbatechnologies@gmail.com 2019-01-12 13:58:44 +05:30
commit 997806319f
10 changed files with 103 additions and 57 deletions

View File

@ -39,7 +39,7 @@
</mat-form-field>
<mat-form-field style="width: 28%">
<input matInput autocomplete="off" placeholder="Lender Applicant ID" formControlName="lender_applicant_id" type="text" required>
<input matInput autocomplete="off" placeholder="Loan Applicant ID" formControlName="lender_applicant_id" type="text" required>
<!-- <mat-error *ngIf="pdMain.lender_applicant_id.hasError('required')">Applicant ID Required</mat-error> -->
</mat-form-field>
@ -48,24 +48,23 @@
<!-- <mat-error *ngIf="pdMain.lender_contact_person.hasError('required')">Lender Contact Person Required</mat-error> -->
</mat-form-field>
<mat-form-field style="width: 28%">
<input matInput autocomplete="off" placeholder="Lender's Mobile Number" formControlName="" type="text" maxlength="10">
</mat-form-field>
<input matInput autocomplete="off" placeholder="Lender's Mobile Number" formControlName="lender_contact_mobile" type="text" (keypress)="keyPress($event)" maxlength="10">
<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-form-field>
<!--<mat-form-field style="width: 32%">
<input matInput autocomplete="off" placeholder="Lender Contact Number" formControlName="lender_contact_mobile" type="text" (keypress)="keyPress($event)" maxlength="10" required>
<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-form-field>-->
<input matInput autocomplete="off" placeholder="Lender Contact Number" formControlName="lender_contact_mobile" type="text" (keypress)="keyPress($event)" maxlength="10" required>
<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-form-field>-->
<mat-form-field style="width: 8%">
<input matInput autocomplete="off" placeholder="STD Code" formControlName="stdcode" type="text" (keypress)="keyPress($event)">
<span matPrefix>+91</span>
<mat-error *ngIf="pdMain.stdcode.hasError('maxlength') || pdMain.stdcode.hasError('minlength')">Enter Valid STD Code Number. </mat-error>
</mat-form-field> -
<mat-form-field style="width: 17%">
<input matInput autocomplete="off" placeholder="Landline Number" formControlName="lender_contact_mobile" type="text" (keypress)="keyPress($event)" maxlength="10">
<mat-error *ngIf="pdMain.lender_contact_mobile.hasError('pattern') || pdMain.lender_contact_mobile.hasError('maxlength') || pdMain.lender_contact_mobile.hasError('minlength')">Enter Valid LandLine Number. </mat-error>
</mat-form-field>
<input matInput autocomplete="off" placeholder="STD Code" formControlName="lender_stdcode" type="text" (keypress)="keyPress($event)">
<mat-error *ngIf="pdMain.lender_stdcode.hasError('maxlength') || pdMain.lender_stdcode.hasError('minlength')">Enter Valid STD Code Number.</mat-error>
</mat-form-field> -
<mat-form-field style="width: 17%">
<input matInput autocomplete="off" placeholder="Landline Number" formControlName="lender_landline" type="text" (keypress)="keyPress($event)">
<mat-error *ngIf="pdMain.lender_landline.hasError('maxlength') || pdMain.lender_landline.hasError('minlength')">Enter Valid LandLine Number. </mat-error>
</mat-form-field>
<mat-form-field style="width: 28%">
<mat-select placeholder="Product Name" formControlName="fk_product_id" (selectionChange)="getSubproductList(pdMain.fk_product_id.value)">
@ -206,13 +205,13 @@
</mat-form-field>
<mat-form-field style="width: 15%">
<input matInput autocomplete="off" placeholder="STD Code" formControlName="stdcode" type="text" (keypress)="keyPress($event)">
<span matPrefix>+91</span>
<mat-error *ngIf="pdMain.stdcode.hasError('maxlength') || pdMain.stdcode.hasError('minlength')">Enter Valid STD Code Number. </mat-error>
<input matInput autocomplete="off" placeholder="STD Code" formControlName="applicant_stdcode" type="text" (keypress)="keyPress($event)">
<!-- <span matPrefix>+91</span> -->
<mat-error *ngIf="pdMain.applicant_stdcode.hasError('maxlength') || pdMain.applicant_stdcode.hasError('minlength')">Enter Valid STD Code Number. </mat-error>
</mat-form-field> &nbsp; - &nbsp;
<mat-form-field style="width: 20%">
<input matInput autocomplete="off" placeholder="Landline Number" formControlName="landline" type="text" (keypress)="keyPress($event)">
<mat-error *ngIf="pdMain.landline.hasError('maxlength') || pdMain.landline.hasError('minlength')">Enter Valid LandLine Number. </mat-error>
<input matInput autocomplete="off" placeholder="Landline Number" formControlName="applicant_landline" type="text" (keypress)="keyPress($event)">
<mat-error *ngIf="pdMain.applicant_landline.hasError('maxlength') || pdMain.applicant_landline.hasError('minlength')">Enter Valid LandLine Number. </mat-error>
</mat-form-field>
<!-- Phone field to be split into 2 parts. Mobile Number mandatory and optional land line number with std code. -->

View File

@ -71,7 +71,9 @@ export class AddPdComponent implements OnInit, OnDestroy {
pd_branch_id: [null],
lender_applicant_id: [null, Validators.compose([Validators.required])],
lender_contact_person: [null, Validators.compose([Validators.required])],
lender_contact_mobile: [null, Validators.compose([Validators.required,Validators.minLength(10),Validators.maxLength(12),Validators.required,Validators.pattern('^[0-9]*$')])],
lender_contact_mobile: [null, Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
lender_stdcode:[null, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],
lender_landline:[null, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],
//lender_billing: [null],
fk_product_id: [null],
fk_subproduct_id: [null],
@ -83,8 +85,6 @@ export class AddPdComponent implements OnInit, OnDestroy {
mobile_no: [null,Validators.compose([Validators.minLength(10),Validators.maxLength(10)])],
// landline : [null,Validators.compose([Validators.minLength(12),Validators.maxLength(13)])],
// email: [null],
lender_stdcode:[null, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],
lender_landline:[null, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],
applicant_stdcode:[null, Validators.compose([Validators.minLength(3),Validators.maxLength(5),Validators.pattern('^[0-9]*$')])],
applicant_landline:[null, Validators.compose([Validators.minLength(6),Validators.maxLength(8),Validators.pattern('^[0-9]*$')])],
company_name: [null],
@ -220,8 +220,8 @@ export class AddPdComponent implements OnInit, OnDestroy {
}
generateDocuments(): FormGroup {
return this._fb.group({
doc_name: [null, Validators.compose([Validators.required])],
documentFile : [null, Validators.compose([Validators.required])],
doc_name: [null],//Validators.compose([Validators.required])
documentFile : [null],//, Validators.compose([Validators.required])
});
}
@ -385,14 +385,18 @@ export class AddPdComponent implements OnInit, OnDestroy {
// common function for both draft and process pd
submitPdDetails(formValue: any, status:string) {
//alert('Inside Function Submit Function');
if(this._PDtriggerForm.invalid) {
this.validateAllFormFields(this._PDtriggerForm);
//alert('validationError');
//console.log(this._PDtriggerForm);
this.notifier.notify('warning', 'Please Fill All Mandatory Fields.!');
return;
}
else {
if((formValue.lender_contact_mobile == '') || (formValue.lender_stdcode == '' && formValue.lender_landline == '')){
this.notifier.notify('warning', 'Either Mobile or Landline Need.!');
return;
}
else{
this.disableAfterSubmit=true;
let pd_details:any={
"fk_lender_id":formValue.fk_lender_id,
@ -479,7 +483,7 @@ export class AddPdComponent implements OnInit, OnDestroy {
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
});
}
}
}
loadPdListCompoent(from:boolean) {
if(from){

View File

@ -134,10 +134,16 @@ export class EditPdApplicantComponent implements OnInit {
get pdCoApplicant() { return this._EditApplicantForm.get('coApplicantItems') as FormArray; }
updatePdApplicant(formValue: any) {
if(this._EditApplicantForm.invalid) {
this.validateAllFormFields(this._EditApplicantForm)
this.validateAllFormFields(this._EditApplicantForm);
this.notifier.notify('warning', 'Please Fill All Mandatory Fields.!');
return;
}
else {
if((formValue.mobile_no == '') || (formValue.stdcode == '' && formValue.landline == '')){
this.notifier.notify('warning', 'Either Mobile or Landline Need.!');
return;
}
else{
let pd_applicant_details : any=[{
"fk_pd_id": this.data.pdID,
"pd_co_applicant_id": formValue.fk_applicant_primary_id,
@ -195,7 +201,7 @@ export class EditPdApplicantComponent implements OnInit {
// }, error => {
// this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
// });
}
}}
}
// get relation master details

View File

@ -36,8 +36,8 @@
<mat-form-field style="width: 32%">
<input matInput placeholder="Lender Contact Person" formControlName="pd_contact_person" type="text" required>
</mat-form-field>
<mat-form-field style="width: 32%">
<input matInput placeholder="Lender Contact Number" formControlName="pd_contact_mobileno" type="text" required (keypress)="keyPress($event)">
<mat-form-field style="width: 25%">
<input matInput placeholder="Lender Contact Number" formControlName="pd_contact_mobileno" type="text" (keypress)="keyPress($event)">
<mat-error *ngIf="pdMain.pd_contact_mobileno.hasError('pattern') || pdMain.pd_contact_mobileno.hasError('maxlength') || pdMain.pd_contact_mobileno.hasError('minlength')">Enter Valid Mobile Number. </mat-error>
</mat-form-field>
<mat-form-field style="width: 10%">
@ -45,10 +45,10 @@
<!-- <span matPrefix>+91</span> -->
<mat-error *ngIf="pdMain.lender_stdcode.hasError('maxlength') || pdMain.lender_stdcode.hasError('minlength')">Enter Valid STD Code. </mat-error>
</mat-form-field> &nbsp;-&nbsp;
<mat-form-field style="width: 20%">
<mat-form-field style="width: 20%">
<input matInput placeholder="LandLine Number" formControlName="lender_landline" type="text" (keypress)="keyPress($event)">
<mat-error *ngIf="pdMain.lender_landline.hasError('maxlength') || pdMain.lender_landline.hasError('minlength')">Enter Valid Landline Number. </mat-error>
</mat-form-field>
</mat-form-field>
<mat-form-field style="width: 32%">
<mat-select placeholder="Product Name" formControlName="fk_product_id" (selectionChange)="getSubproductList(pdMain.fk_product_id.value)">
<mat-option>

View File

@ -112,6 +112,7 @@ export class EditPdMasterComponent implements OnInit {
}
loadFormData() {
console.log('this.data.record',this.data.records);
let stdcode;
let landline;
if(this.data.records.pd_contact_landline){
@ -130,7 +131,7 @@ export class EditPdMasterComponent implements OnInit {
fk_lender_id: [this.data.records.fk_lender_id, Validators.compose([Validators.required])],
lender_applicant_id: [this.data.records.lender_applicant_id, Validators.compose([Validators.required])],
pd_contact_person: [this.data.records.pd_contact_person, Validators.compose([Validators.required])],
pd_contact_mobileno: [this.data.records.pd_contact_mobileno, Validators.compose([Validators.required,Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
pd_contact_mobileno: [this.data.records.pd_contact_mobileno, Validators.compose([Validators.minLength(10),Validators.maxLength(12),Validators.pattern('^[0-9]*$')])],
lender_stdcode: [stdcode, Validators.compose([Validators.minLength(3),Validators.maxLength(5)])],
lender_landline: [landline,Validators.compose([Validators.minLength(6),Validators.maxLength(8)])],
fk_product_id: [this.data.records.fk_product_id],
@ -245,20 +246,24 @@ export class EditPdMasterComponent implements OnInit {
submitPdDetails(formValue: any, status:string) {
let updateStatus = this.currentPDStatus == this.pdStatusCheck.DRAFT ? status : this.currentPDStatus == this.pdStatusCheck.TRIGGERED ? status : this.currentPDStatus;
if(this._EditPDtriggerForm.invalid) {
this.validateAllFormFields(this._EditPDtriggerForm)
this.validateAllFormFields(this._EditPDtriggerForm);
this.notifier.notify('warning', 'Please Fill All Mandatory Fields.!');
return;
}
else{
let my_array = this._EditPDtriggerForm.value;
if((my_array.pd_contact_mobileno == '') || (my_array.lender_stdcode == '' && my_array.lender_landline == '')){
this.notifier.notify('warning', 'Either Mobile or Landline Need.!');
return;
}
else{
let concat_landline
if(my_array.lender_stdcode != null && my_array.lender_landline != null){
if(my_array.lender_stdcode == '' && my_array.lender_landline == ''){
concat_landline = null;
}else{
let std = my_array.lender_stdcode == '' ? '' : my_array.lender_stdcode;
let landline = my_array.lender_landerline == '' ? '' : my_array.lender_landerline;
let landline = my_array.lender_landline == '' ? '' : my_array.lender_landline;
concat_landline = std+'-'+landline;
}
}else if(my_array.lender_stdcode == '' && my_array.lender_landerline == ''){
@ -273,7 +278,7 @@ export class EditPdMasterComponent implements OnInit {
"lender_applicant_id": my_array.lender_applicant_id,
"pd_contact_person": my_array.pd_contact_person,
"pd_contact_mobileno": my_array.pd_contact_mobileno,
"pd_Contant_landline": concat_landline,
"pd_contact_landline": concat_landline,
"fk_product_id": my_array.fk_product_id,
"fk_subproduct_id": my_array.fk_subproduct_id,
"fk_pd_type": my_array.fk_pd_type,
@ -299,6 +304,7 @@ export class EditPdMasterComponent implements OnInit {
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
});//error closed
}//else closed
}
}
/** To Reset Popup Data */
onReset() {

View File

@ -88,6 +88,7 @@ export class AddressComponent implements OnInit {
private route: ActivatedRoute,
private router: Router,
private _pd: PdTrigerService,
private dialogRef: MatDialogRef<AddressComponent>,
@Inject(MAT_DIALOG_DATA) public pd_all_details: any)
{
this.pdid = this.pd_all_details.pdmaster_details.pd_id;
@ -378,6 +379,7 @@ export class AddressComponent implements OnInit {
this._pd.saveForm(records).subscribe(data => {
this.notifier.notify('success', 'Saved Successfully.');
this.dialogRef.close();
}, error => {
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
});

View File

@ -84,7 +84,7 @@ export class BankingDetailsComponent implements OnInit {
this.initBankingForm();
this._pd.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{
if(data.dataStatus){
this.existCompanyList = data.records.filter(val =>val.is_active);
this.existCompanyList = data.records.filter(val =>val.is_active===true && val.is_company_applicant===true);
}
let modifyCompanyList : any=[];

View File

@ -88,7 +88,7 @@ export class CurrentLoanComponent implements OnInit {
this.initCurrentloanForm();
this._pd.getCompaniesListsForBusiness(this.pdid).subscribe(data=>{
if(data.dataStatus){
this.existCompanyList = data.records.filter(val =>val.is_active);
this.existCompanyList = data.records.filter(val =>val.is_active===true && val.is_company_applicant===true);
}
let modifyCompanyList : any=[];

View File

@ -15,12 +15,12 @@
<small> {{master.lender_applicant_id}}</small> <br>
<small>{{master.pd_date_of_initiation}}</small><br>
<br>
<button mat-raised-button color="primary">
<button mat-raised-button color="primary" style="cursor: not-allowed !important;">
<span *ngIf="master.pd_status==pdStatusCheck.SCHEDULED" style="text-align:left">{{master.pd_status | titlecase}}</span>
<span *ngIf="master.pd_status!=pdStatusCheck.SCHEDULED && master.pd_status!=pdStatusCheck.QC_COMPLETED " style="text-align:left">{{master.pd_status | titlecase}}</span>
<span *ngIf="master.pd_status==pdStatusCheck.QC_COMPLETED " style="text-align:left">QC Completed</span>
</button>&nbsp;&nbsp;
<button *ngIf="master.pd_type_name && currentPDStatus==pdStatusCheck.DRAFT" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Trigger" matTooltipPosition="above" (click)="editPdMaster(master)" style="cursor: not-allowed !important;"><mat-icon>flash_on</mat-icon></button>
<button *ngIf="currentPDStatus==pdStatusCheck.DRAFT && mandatoryFieldsValidations.length==0" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Trigger" matTooltipPosition="above" (click)="directTriggerPD(mandatoryFieldsValidations,master.pd_id)"><mat-icon>flash_on</mat-icon></button>
<br>
<small *ngIf="master.pd_allocated_to && master.fk_pd_type==1" style="text-align:left" matTooltip="PD Officer" matTooltipPosition="above">{{master.pd_allocated_to | titlecase}}</small>
<small *ngIf="master.executive_name && master.centralofficer && master.fk_pd_type==2" style="text-align:left" matTooltip="PD Officer" matTooltipPosition="above">{{master.executive_name | titlecase}}/{{master.centralofficer | titlecase}}</small>
@ -40,16 +40,17 @@
<div fxFlex.xs="100" fxFlex.sm="100" fxFlex.md="50" fxFlex.lg="70" fxFlex.xl="70" class="content-data">
<figure>
<mat-card-content style="padding:0px !important;">
<div *ngFor="let master of pdMasterData" class="ml-xs mr-xs">
<div fxLayout="row">
<div fxFlex="100" style="text-align: right;">
<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>
<div fxLayout="row" class="ml-xs mr-xs">
<div fxFlex="100" style="text-align: right;">
<span *ngFor="let master of pdMasterData">
<button *ngIf="master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.COMPLETED && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Allocate" matTooltipPosition="above" (click)="pdAllocationTo(master)"><mat-icon>verified_user</mat-icon></button>
<button *ngIf="master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.COMPLETED && currentPDStatus!=pdStatusCheck.QC_COMPLETED" mat-raised-button mat-icon-button class="mr-1 mb-1 hover-icon" type="button" matTooltip="Schedule" matTooltipPosition="above" (click)="scheduleDetails(master)"><mat-icon>schedule</mat-icon></button>
<button *ngIf="master.pd_type_name && currentPDStatus!=pdStatusCheck.DRAFT && currentPDStatus!=pdStatusCheck.TRIGGERED && currentPDStatus!=pdStatusCheck.DRAFT && enableStartPD" 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>
</span>
<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>
</div>
</div>
</div>
</div>
</mat-card-content>
<hr>
@ -166,8 +167,8 @@
<i class="fa-1x fa fa-phone" style="width: 37px;padding: 8px 9px 8px 9px;border-bottom: 2px solid red;"></i>
&nbsp;{{applicant.landline}}
</span>
<span *ngIf="applicant.applicant_type=='1';else codetails" style="font-size:12px;">( Main Applicant ) </span>
<ng-template #codetails><span>( {{applicant.relation_name}} )</span></ng-template>
<span *ngIf="applicant.applicant_type=='1';else codetails" style="font-size:12px;">( Main Applicant )</span>
<ng-template #codetails><span> {{applicant.relation_name}} </span></ng-template>
</p>
</mat-list-item>
</mat-list>

View File

@ -46,6 +46,8 @@ export class ViewPdComponent implements OnInit, OnDestroy {
"QC_COMPLETED" :'QC_COMPLETED',
};
mandatoryFieldsValidations: any=[];
// @Input() childData: string;
// @Output() loadParent = new EventEmitter<string>();
public _EditPDtriggerForm:FormGroup;
@ -70,8 +72,10 @@ export class ViewPdComponent implements OnInit, OnDestroy {
this._pd.editPdDetails(editID).subscribe(
data => {
if (data.status == 200) {
this.pdMasterData=data.records.pd_master_details;
this.pd_QC_Rating = Number(this.pdMasterData[0].qc_rating);
let masterData: any = data.records.pd_master_details;
this.pdMasterData.push(masterData[0]);
this.mandatoryFieldsValidations = masterData[1].mandatory_fields;
this.pd_QC_Rating = Number(this.pdMasterData.qc_rating);
this.pdApplicantData= data.records.applicants_details;
this.pdDocumentsData=data.records.pd_documnets;
this.masterPdLogsData=data.records.pd_logs.master;
@ -228,6 +232,30 @@ export class ViewPdComponent implements OnInit, OnDestroy {
this.router.navigate([ '../../pdRecord',pdID], { relativeTo: this.route });
}
// direct trigger the pd
directTriggerPD(data: any,pdid:string){
if(data.length>0){
this.notifier.notify('warning', 'Please Fill All Mandatory Fields.!');
}
else {
let lenderMasterArray = {
"pd_id": pdid,
}
this._pd.editPdMasterDetails(lenderMasterArray, this.pdStatusCheck.TRIGGERED).subscribe(result => {
if (result.status == 200) {
this.notifier.notify('success', 'PD Status Updated.');
this.viewPdDetails(this.viewID);
}
else {
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
}//else
}, error => {
this.notifier.notify('warning', 'Something Wents Wrong Try Again.!');
});//error closed
}
}
// updateViewComponent(editBack:string) {
// if(editBack=='1'){