| import {ListAllPeopleComponent} from './list-all-people/list-all-people.component'; | import {ListAllPeopleComponent} from './list-all-people/list-all-people.component'; | ||||
| import {ListIncomeComponent} from './list-income/list-income.component'; | import {ListIncomeComponent} from './list-income/list-income.component'; | ||||
| import {UploadDetailComponent} from './upload-detail/upload-detail.component'; | import {UploadDetailComponent} from './upload-detail/upload-detail.component'; | ||||
| import {LoansAllComponent} from './loans-all/loans-all.component'; | |||||
| const routes: Routes = [ | const routes: Routes = [ | ||||
| {path : 'login', component: AuthComponent}, | {path : 'login', component: AuthComponent}, | ||||
| {path : 'transaction', component: TransactionComponent, canActivate: [AuthGuard]}, | {path : 'transaction', component: TransactionComponent, canActivate: [AuthGuard]}, | ||||
| {path : 'transaction-list', component: TransactionListComponent, canActivate: [AuthGuard]}, | {path : 'transaction-list', component: TransactionListComponent, canActivate: [AuthGuard]}, | ||||
| {path : 'list-all-loans', component: ListAllLoansComponent, canActivate: [AuthGuard]}, | |||||
| {path : 'list-all-loans', component: LoansAllComponent, canActivate: [AuthGuard]}, | |||||
| {path : 'edit-loan/:id', component: LoanEditComponent, canActivate: [AuthGuard]}, | {path : 'edit-loan/:id', component: LoanEditComponent, canActivate: [AuthGuard]}, | ||||
| {path : 'edit-loan', component: LoanEditComponent, canActivate: [AuthGuard]}, | {path : 'edit-loan', component: LoanEditComponent, canActivate: [AuthGuard]}, | ||||
| {path : 'uploads', component: LenderUploadsComponent, canActivate: [AuthGuard]}, | {path : 'uploads', component: LenderUploadsComponent, canActivate: [AuthGuard]}, |
| import { UploadingProgressCardComponent } from './uploading-progress-card/uploading-progress-card.component'; | import { UploadingProgressCardComponent } from './uploading-progress-card/uploading-progress-card.component'; | ||||
| import { LoanSelectComponent } from './loan-select/loan-select.component'; | import { LoanSelectComponent } from './loan-select/loan-select.component'; | ||||
| import {PopupModule} from '@progress/kendo-angular-popup'; | import {PopupModule} from '@progress/kendo-angular-popup'; | ||||
| import { LoansAllComponent } from './loans-all/loans-all.component'; | |||||
| PopupIncomeFilterComponent, | PopupIncomeFilterComponent, | ||||
| LoanCardComponent, | LoanCardComponent, | ||||
| UploadingProgressCardComponent, | UploadingProgressCardComponent, | ||||
| LoanSelectComponent | |||||
| LoanSelectComponent, | |||||
| LoansAllComponent | |||||
| ], | ], | ||||
| imports: [ | imports: [ | ||||
| BrowserModule, | BrowserModule, |
| <ng-template *ngIf="EnableExportExcel || EnableExportPdf || EnableSelectButton" kendoGridToolbarTemplate> | <ng-template *ngIf="EnableExportExcel || EnableExportPdf || EnableSelectButton" kendoGridToolbarTemplate> | ||||
| <button *ngIf="EnableExportExcel" kendoGridExcelCommand type="button" icon="file-excel" style="float:right;">Export to Excel</button> | <button *ngIf="EnableExportExcel" kendoGridExcelCommand type="button" icon="file-excel" style="float:right;">Export to Excel</button> | ||||
| <button *ngIf="EnableExportPdf" kendoGridPDFCommand icon="file-pdf" style="float:right;">Export to PDF</button> | <button *ngIf="EnableExportPdf" kendoGridPDFCommand icon="file-pdf" style="float:right;">Export to PDF</button> | ||||
| <div class="selected-loans" #notification> | |||||
| <div class="selected-loans" #notification *ngIf="EnableSelectButton"> | |||||
| <app-loan-card *ngFor="let l of SelectedLoans" [Loan]="l" [ShowCloseButton]="true" | <app-loan-card *ngFor="let l of SelectedLoans" [Loan]="l" [ShowCloseButton]="true" | ||||
| (Closed)="RemoveFromSelection(l)" | (Closed)="RemoveFromSelection(l)" | ||||
| @fadeIn @slideOutUp | @fadeIn @slideOutUp | ||||
| ></app-loan-card> | ></app-loan-card> | ||||
| </div> | </div> | ||||
| <div class="selection-percentage" *ngIf="SelectedLoans.length >0"> | |||||
| <div *ngIf="EnableSelectButton && SelectedLoans.length >0" class="selection-percentage" > | |||||
| <span class="badge badge-info">{{SelectedLoans.length}}</span>/ | <span class="badge badge-info">{{SelectedLoans.length}}</span>/ | ||||
| <span class="badge badge-info">{{MaxSelect}}</span> | <span class="badge badge-info">{{MaxSelect}}</span> | ||||
| </div> | </div> |
| public pageSize = 10; | public pageSize = 10; | ||||
| public skip = 0; | public skip = 0; | ||||
| @Output() LoanSelected: EventEmitter<LoanModel[]|LoanModel> = new EventEmitter<LoanModel[]|LoanModel>(); | @Output() LoanSelected: EventEmitter<LoanModel[]|LoanModel> = new EventEmitter<LoanModel[]|LoanModel>(); | ||||
| @Output() LoanClicked: EventEmitter<LoanModel> = new EventEmitter<LoanModel>(); | |||||
| @Input() EnableExportExcel = false; | @Input() EnableExportExcel = false; | ||||
| @Input() EnableExportPdf = false; | @Input() EnableExportPdf = false; | ||||
| } | } | ||||
| public onCellClick(event: CellCloseEvent): void { | public onCellClick(event: CellCloseEvent): void { | ||||
| // this.LoanSelected.emit(event.dataItem); | |||||
| this.LoanClicked.emit(event.dataItem); | |||||
| } | } | ||||
| public AddLoanToSelection(loan: LoanModel): void{ | public AddLoanToSelection(loan: LoanModel): void{ |
| constructor() { } | constructor() { } | ||||
| ngOnInit(): void { | ngOnInit(): void { | ||||
| console.log('init loan-select', this); | |||||
| // console.log('init loan-select', this); | |||||
| } | } | ||||
| writeValue(loan: LoanModel): void { | writeValue(loan: LoanModel): void { |
| <div class="wrapper all-loans"> | |||||
| <app-list-all-loans [SingleSelection]="true" | |||||
| [EnableExportExcel]="true" | |||||
| [EnableExportPdf]="true" | |||||
| [EnableSelectButton]="false" | |||||
| (LoanClicked)="onClick($event)" | |||||
| ></app-list-all-loans> | |||||
| </div> |
| div.wrapper.all-loans { | |||||
| width: 100vw; | |||||
| height: calc(100vh - 48px); | |||||
| app-list-all-loans{ | |||||
| height: 100%; | |||||
| } | |||||
| } |
| import { ComponentFixture, TestBed } from '@angular/core/testing'; | |||||
| import { LoansAllComponent } from './loans-all.component'; | |||||
| describe('LoansAllComponent', () => { | |||||
| let component: LoansAllComponent; | |||||
| let fixture: ComponentFixture<LoansAllComponent>; | |||||
| beforeEach(async () => { | |||||
| await TestBed.configureTestingModule({ | |||||
| declarations: [ LoansAllComponent ] | |||||
| }) | |||||
| .compileComponents(); | |||||
| }); | |||||
| beforeEach(() => { | |||||
| fixture = TestBed.createComponent(LoansAllComponent); | |||||
| component = fixture.componentInstance; | |||||
| fixture.detectChanges(); | |||||
| }); | |||||
| it('should create', () => { | |||||
| expect(component).toBeTruthy(); | |||||
| }); | |||||
| }); |
| import { Component, OnInit } from '@angular/core'; | |||||
| import {LoanModel} from '../models/loan.model'; | |||||
| import {Router} from '@angular/router'; | |||||
| @Component({ | |||||
| selector: 'app-loans-all', | |||||
| templateUrl: './loans-all.component.html', | |||||
| styleUrls: ['./loans-all.component.scss'] | |||||
| }) | |||||
| export class LoansAllComponent implements OnInit { | |||||
| constructor(private router: Router) { } | |||||
| ngOnInit(): void { | |||||
| } | |||||
| onClick(loan: LoanModel): void{ | |||||
| this.router.navigate(['edit-loan/', loan.Id]); | |||||
| } | |||||
| } |
| this.filter.UploadIds = [ value.Id.toString() ]; | this.filter.UploadIds = [ value.Id.toString() ]; | ||||
| } | } | ||||
| this.debouncedLoadFilteredData(); | this.debouncedLoadFilteredData(); | ||||
| console.log('upload filter changed', value, this.filter); | |||||
| //console.log('upload filter changed', value, this.filter); | |||||
| } | } | ||||
| get uploadMeta(): UploadMetaModel { | get uploadMeta(): UploadMetaModel { | ||||
| this.filter.LoanIds = [ value.Id ]; | this.filter.LoanIds = [ value.Id ]; | ||||
| } | } | ||||
| this.debouncedLoadFilteredData(); | this.debouncedLoadFilteredData(); | ||||
| console.log('filter loanId changed', value, this.filter); | |||||
| // console.log('filter loanId changed', value, this.filter); | |||||
| } | } | ||||
| get Loan(): LoanModel { | get Loan(): LoanModel { | ||||
| this.showOffsetBalance = offsetBalance >= 0 ; | this.showOffsetBalance = offsetBalance >= 0 ; | ||||
| this.incomeFormGroup = this.createFormGroup(new PayInModelEx({})); | this.incomeFormGroup = this.createFormGroup(new PayInModelEx({})); | ||||
| console.log(this.incomeFormGroup); | |||||
| // console.log(this.incomeFormGroup); | |||||
| sender.addRow(this.incomeFormGroup); | sender.addRow(this.incomeFormGroup); | ||||
| } | } | ||||
| return new FormGroup({ | return new FormGroup({ | ||||
| Id: new FormControl({value: dataItem.Id, disabled: true}, Validators.required), | Id: new FormControl({value: dataItem.Id, disabled: true}, Validators.required), | ||||
| Lender: new FormControl(dataItem.Lender), | |||||
| Lender: new FormControl({value: dataItem.Lender, disabled: Loan.Id !== '' }, Validators.required), | |||||
| Amount: new FormControl(dataItem.Amount), | Amount: new FormControl(dataItem.Amount), | ||||
| LoanNumber: new FormControl(dataItem.LoanNumber), | |||||
| LoanNumber: new FormControl(dataItem.LoanNumber, Validators.required), | |||||
| IncomeAmount: new FormControl(dataItem.IncomeAmount, Validators.required), | IncomeAmount: new FormControl(dataItem.IncomeAmount, Validators.required), | ||||
| IncomeType: new FormControl(dataItem.IncomeType, Validators.required), | IncomeType: new FormControl(dataItem.IncomeType, Validators.required), | ||||
| Ts: new FormControl(dataItem.Ts, Validators.required), | Ts: new FormControl(dataItem.Ts, Validators.required), | ||||
| } | } | ||||
| public cancelHandler({ sender, rowIndex }): void { | public cancelHandler({ sender, rowIndex }): void { | ||||
| console.log(sender); | |||||
| // console.log(sender); | |||||
| this.closeEditor(sender, rowIndex); | this.closeEditor(sender, rowIndex); | ||||
| } | } | ||||
| } | } | ||||
| public removeHandler({ dataItem }): void { | public removeHandler({ dataItem }): void { | ||||
| console.log('delete', dataItem); | |||||
| // console.log('delete', dataItem); | |||||
| this.Loan.PayIn = this.Loan.PayIn.filter(v => v.Id !== dataItem.Id ); | this.Loan.PayIn = this.Loan.PayIn.filter(v => v.Id !== dataItem.Id ); | ||||
| this.gridData.data = this.gridData.data.filter(v => v.Id !== dataItem.Id) ; | this.gridData.data = this.gridData.data.filter(v => v.Id !== dataItem.Id) ; |