- -
+ {{qcStatus}} +
- + *ngIf="latestPDDetails.is_latest == 1 && qcStatus !== 'QC_COMPLETED'" (click)="addNewQuestion()">edit +
diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.ts index 83f222a13..d7ad19799 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/pd-report.component.ts @@ -10,6 +10,7 @@ import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from "@angular/material"; import { ModelEditPdReportComponent} from './model-edit-pd-report/model-edit-pd-report.component'; +import { QcReviewComponent } from './qc-review/qc-review.component'; /**sweet alert */ // import Swal from 'sweetalert2'; @@ -117,12 +118,14 @@ export class PdReportComponent implements OnInit { }) } + public qcStatus: string = ''; getPdReportVersionList(){ this.pdTrigerService.getPdDocVersionList(this.startPD).subscribe(data => { if(data.status == 200 && data.dataStatus){ - this.pdReportVersionList = [...data.records].reverse(); + this.pdReportVersionList = [...data.records.reports_urls].reverse(); let datas = this.pdReportVersionList.filter((a)=>{return a.is_latest == 1;}) this.latestPDDetails = datas[0]; + this.qcStatus = data.records.pdstatus; // alert(JSON.stringify(this.latestPDDetails)); this.reGenerateBtn = true; } else { @@ -174,6 +177,22 @@ export class PdReportComponent implements OnInit { console.log(this.latestPDDetails); } + + + reportReview(): void { + const dialogRef = this.dialog.open(QcReviewComponent, { + data: { startId : this.startPD }, + disableClose: true + }); + dialogRef.afterClosed() + .subscribe(dataresult => { + // this.getPdReportFinalTemplateDetails(); + // this.getQuestionsMasters(); + // this.getBranch(); + // this.isPopupOpened = false; + }); + } + changeDocumentEdit() : void{ @@ -200,8 +219,6 @@ export class PdReportComponent implements OnInit { } else { } }); - - // Swal('User Created'); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.html b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.html new file mode 100644 index 000000000..c67d819ea --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.html @@ -0,0 +1,23 @@ +

QC Completed Review

+ + +
+
+
+ + Remarks + + +
+
+ +
+
+
+
+ + + + + + diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.scss b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.scss new file mode 100644 index 000000000..e69de29bb diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.spec.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.spec.ts new file mode 100644 index 000000000..0d0b84d1e --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { QcReviewComponent } from './qc-review.component'; + +describe('QcReviewComponent', () => { + let component: QcReviewComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ QcReviewComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(QcReviewComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.ts b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.ts new file mode 100644 index 000000000..e87e9c5a0 --- /dev/null +++ b/ng6-seed/src/app/personal-discussion/manage-pd/list-pd/pd-report/qc-review/qc-review.component.ts @@ -0,0 +1,87 @@ +import { Component, OnInit, ViewChild , Input, Inject} from '@angular/core'; +import { FormGroup, FormBuilder, Validators } from '@angular/forms'; +import { PdTrigerService } from '../../../../pd-service/pd-triger.service'; +import { NotifierService } from "angular-notifier"; + + +import { + MatDialog, + MatDialogRef, + MAT_DIALOG_DATA +} from '@angular/material'; + +@Component({ + selector: 'app-qc-review', + templateUrl: './qc-review.component.html', + styleUrls: ['./qc-review.component.scss'] +}) +export class QcReviewComponent implements OnInit { + + @Input() questionId: number; + ngForm: FormGroup; + recordData: any; + showForm: Boolean; +/** + * Notifier service + */ + private notifier: NotifierService; + constructor( private _formBuilder: FormBuilder, + private pdTrigerService: PdTrigerService, + notifier: NotifierService , + private dialogRef: MatDialogRef, + @Inject(MAT_DIALOG_DATA) public data: any) { + this.notifier = notifier; + + // this.mycontent = `

My html content

`; + } + + ngOnInit() { + this.getQcCompleteReviewStatus(); + } + + getQcCompleteReviewStatus() { + this.pdTrigerService.getQCReportFinalReviewDetails(this.data.startId, "QC").subscribe(data => { + if(data['dataStatus']){ + this.recordData = data.records[0]; + this.ngForm = this._formBuilder.group({ + qc_remarks: [this.recordData.qc_remarks], + qc_rating: [Number(this.recordData.qc_rating)], + pd_status: [this.recordData.pd_status], + }) + this.showForm = true; + } + },err => { + + }); + } + + onChange($event: any): void { + console.log('onChange'); + // this.log += new Date() + "
"; + } + + myClick(): void { + let template = this.ngForm.value; + template.pd_id = this.data.startId; + console.log(JSON.stringify(template)); + this.pdTrigerService.pdReviewStatusUpdate(template).subscribe(data=>{ + this.notifier.notify('success', 'Your Changes Updated.!'); + this.dialogRef.close(); + }, err => { + this.notifier.notify('warning', 'Something Wents Wrong Try Again.!'); + + }) + } + + + + // ============================= + + ratingClicked: number; + itemIdRatingClicked: string; + rating : number = 1; + + ratingComponentClick(e){ + this.ngForm.controls.qc_rating.setValue(e.rating); + } +} diff --git a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts index 12285e2ba..64756a67c 100755 --- a/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts +++ b/ng6-seed/src/app/personal-discussion/manage-pd/manage-pd.module.ts @@ -87,6 +87,8 @@ import { NgxViewerModule } from 'ngx-viewer'; import { FinalRemarksComponent } from './list-pd/start-pd/forms/final-remarks/final-remarks.component'; import { BusinessOtherFamilyMemberComponent } from './list-pd/start-pd/forms/dialogue/business-other-family-member/business-other-family-member.component'; +import { QcReviewComponent } from './list-pd/pd-report/qc-review/qc-review.component'; +import { SharedModule } from "app/shared/shared.module"; /** * Custom angular notifier options @@ -264,7 +266,7 @@ const pdCustomNotifierOptions: NotifierOptions = { // AgmCoreModule.forRoot({apiKey: 'AIzaSyBtdO5k6CRntAMJCF-H5uZjTCoSGX95cdk'}), OwlDateTimeModule, // OwlNativeDateTimeModule, // ], - 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, PdRequirementComponent, GeneralInfoComponent, ModelEditPdReportComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, DialogChangeCurrentVenrsion, FinalRemarksComponent, BusinessOtherFamilyMemberComponent], + 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, PdRequirementComponent, GeneralInfoComponent, ModelEditPdReportComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, DialogChangeCurrentVenrsion, FinalRemarksComponent, BusinessOtherFamilyMemberComponent, QcReviewComponent], // exports: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, StartPdComponent, CompletedPdComponent, QcCompletedPdComponent], // providers: [PdTrigerService, GetGeometricLocationService], @@ -273,6 +275,7 @@ const pdCustomNotifierOptions: NotifierOptions = { CommonModule, ManagePdRoutingModule, NgxViewerModule, + SharedModule, NotifierModule.withConfig(pdCustomNotifierOptions), CKEditorModule, PdfViewerModule, @@ -307,7 +310,7 @@ const pdCustomNotifierOptions: NotifierOptions = { {provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS}], entryComponents: [PdAllocationComponent, SmartPdAllocationComponent, SchedulePdComponent, EditPdApplicantComponent, EditPdMasterComponent, TelePdAllocationComponent, AllocationViewMoreComponent, PersonalInfoComponent, - ClientInfoComponent, SupplierInfoComponent, CurrentLoanComponent, LoanDetailsComponent, OtherIncomeComponent, AssetsInfoComponent, AddressComponent, FamilyDetailsComponent, BankingDetailsComponent, StockComponent, EmploymentInfoComponent, BusinessInfoComponent, FinancialInfoComponent, LenderRepresentativeComponent,RentalInfoComponent, AssessedIncomeComponent, GeneralInfoComponent, PdRequirementComponent, ModelEditPdReportComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, DialogChangeCurrentVenrsion, FinalRemarksComponent, BusinessOtherFamilyMemberComponent], + ClientInfoComponent, SupplierInfoComponent, CurrentLoanComponent, LoanDetailsComponent, OtherIncomeComponent, AssetsInfoComponent, AddressComponent, FamilyDetailsComponent, BankingDetailsComponent, StockComponent, EmploymentInfoComponent, BusinessInfoComponent, FinancialInfoComponent, LenderRepresentativeComponent,RentalInfoComponent, AssessedIncomeComponent, GeneralInfoComponent, PdRequirementComponent, ModelEditPdReportComponent, OtherApplicantDetailsComponent, NeighbourHoodComponent, DialogChangeCurrentVenrsion, FinalRemarksComponent, BusinessOtherFamilyMemberComponent, QcReviewComponent], }) export class ManagePdModule { diff --git a/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts index 0cec83e9f..89b00f4b7 100755 --- a/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts +++ b/ng6-seed/src/app/personal-discussion/pd-service/pd-triger.service.ts @@ -331,6 +331,23 @@ getTypeofActivityForSuppliedInfoForm(pd_id: any): Observable{ ) } + getQCReportFinalReviewDetails(pd_id: any, flag : string ): Observable{ + return this._http.post(this.apiUrl+"getQCLenderRemarks", {"records": { "pd_id" : pd_id, "flag" :flag }}) + .pipe( + catchError(this.handleError('operation', [])) + ) + } + + // pd review status update details + pdReviewStatusUpdate(editData: any): Observable { + editData.fk_updatedby = this._aws.getlocale(); + // editData.updatedon = currentdate; + return this._http.post(this.apiUrl + "updatePDMaster", {records: editData}) + + .pipe( + catchError(this.handleError('operation', [])) + ) + } // inWords(num) { diff --git a/ng6-seed/src/app/shared/rating/rating.component.html b/ng6-seed/src/app/shared/rating/rating.component.html new file mode 100644 index 000000000..06bae631d --- /dev/null +++ b/ng6-seed/src/app/shared/rating/rating.component.html @@ -0,0 +1,16 @@ +
+ + + + + + + + + + + + + + +
\ No newline at end of file diff --git a/ng6-seed/src/app/shared/rating/rating.component.scss b/ng6-seed/src/app/shared/rating/rating.component.scss new file mode 100644 index 000000000..64db81cb4 --- /dev/null +++ b/ng6-seed/src/app/shared/rating/rating.component.scss @@ -0,0 +1,42 @@ + +.rating { + float:left; +} + +.rating:not(:checked) > input { + position:absolute; + top:-9999px; + clip:rect(0,0,0,0); +} + +.rating:not(:checked) > label { + float:right; + width:1em; + padding:0.1em; + overflow:hidden; + white-space:nowrap; + cursor:pointer; + font-size:200%; + line-height:1.2; + color:#ddd; +} + +.rating:not(:checked) > label:before { + content: '★ '; +} + +.rating > input:checked ~ label { + color: #f70; +} + +.rating:not(:checked) > label:hover, +.rating:not(:checked) > label:hover ~ label { + color: gold; +} + + +.rating > input:checked ~ label:hover, +.rating > input:checked ~ label:hover ~ label, +.rating > label:hover ~ input:checked ~ label { + color: #ea0; +} \ No newline at end of file diff --git a/ng6-seed/src/app/shared/rating/rating.component.spec.ts b/ng6-seed/src/app/shared/rating/rating.component.spec.ts new file mode 100644 index 000000000..1460c9ec6 --- /dev/null +++ b/ng6-seed/src/app/shared/rating/rating.component.spec.ts @@ -0,0 +1,25 @@ +import { async, ComponentFixture, TestBed } from '@angular/core/testing'; + +import { RatingComponent } from './rating.component'; + +describe('RatingComponent', () => { + let component: RatingComponent; + let fixture: ComponentFixture; + + beforeEach(async(() => { + TestBed.configureTestingModule({ + declarations: [ RatingComponent ] + }) + .compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(RatingComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/ng6-seed/src/app/shared/rating/rating.component.ts b/ng6-seed/src/app/shared/rating/rating.component.ts new file mode 100644 index 000000000..5c6eed26a --- /dev/null +++ b/ng6-seed/src/app/shared/rating/rating.component.ts @@ -0,0 +1,25 @@ +import { Component, Input, Output, EventEmitter, OnInit } from '@angular/core'; + +@Component({ + selector: 'app-rating', + templateUrl: './rating.component.html', + styleUrls: ['./rating.component.scss'] +}) +export class RatingComponent implements OnInit { + @Input() rating: number; + @Input() itemId: number; + @Output() ratingClick: EventEmitter = new EventEmitter(); + + inputName: string; + ngOnInit() { + this.inputName = this.itemId + '_rating'; + } + onClick(rating: number): void { + this.rating = rating; + this.ratingClick.emit({ + itemId: this.itemId, + rating: rating + }); + } + +} diff --git a/ng6-seed/src/app/shared/shared.module.ts b/ng6-seed/src/app/shared/shared.module.ts index 9dbf91116..cc6a4cb68 100755 --- a/ng6-seed/src/app/shared/shared.module.ts +++ b/ng6-seed/src/app/shared/shared.module.ts @@ -4,19 +4,22 @@ import { MenuItems } from './menu-items/menu-items'; import { HorizontalMenuItems } from './menu-items/horizontal-menu-items'; import { AccordionAnchorDirective, AccordionLinkDirective, AccordionDirective } from './accordion'; import { ToggleFullscreenDirective } from './fullscreen/toggle-fullscreen.directive'; +import { RatingComponent} from './rating/rating.component'; @NgModule({ declarations: [ AccordionAnchorDirective, AccordionLinkDirective, AccordionDirective, - ToggleFullscreenDirective + ToggleFullscreenDirective, + RatingComponent ], exports: [ AccordionAnchorDirective, AccordionLinkDirective, AccordionDirective, - ToggleFullscreenDirective + ToggleFullscreenDirective, + RatingComponent ], providers: [ MenuItems, HorizontalMenuItems ] })