pending account terminate feature develop
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
/**
|
||||
* Copyright since 2025 Mifos Initiative
|
||||
*
|
||||
* This Source Code Form is subject to the terms of the Mozilla Public
|
||||
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||
* file, You can obtain one at http://mozilla.org/MPL/2.0/.
|
||||
*/
|
||||
|
||||
import { Injectable, inject } from '@angular/core';
|
||||
import { Resolve } from '@angular/router';
|
||||
import { Observable, forkJoin, of } from 'rxjs';
|
||||
import { map, catchError } from 'rxjs/operators';
|
||||
import { TasksService } from '../tasks.service';
|
||||
|
||||
@Injectable()
|
||||
export class GetTerminatedAccounts implements Resolve<any> {
|
||||
private tasksService = inject(TasksService);
|
||||
|
||||
resolve(): Observable<any> {
|
||||
return forkJoin({
|
||||
savings: this.tasksService.getTerminatedSavingsAccounts().pipe(catchError(() => of({ pageItems: [] }))),
|
||||
current: this.tasksService.getTerminatedCurrentAccounts().pipe(catchError(() => of([]))),
|
||||
offices: this.tasksService.getAllOffices().pipe(catchError(() => of([])))
|
||||
}).pipe(
|
||||
map((results) => {
|
||||
const officeMap: Record<number, string> = {};
|
||||
(results.offices || []).forEach((o: any) => {
|
||||
officeMap[o.id] = o.name;
|
||||
});
|
||||
|
||||
const savingsItems = (results.savings?.pageItems || []).map((a: any) => ({
|
||||
...a,
|
||||
officeName: officeMap[a.officeId] || a.officeName || '',
|
||||
fieldOfficerName: a.fieldOfficerName || '',
|
||||
accountType: a.depositType?.value || 'Savings'
|
||||
}));
|
||||
|
||||
const currentItems = (Array.isArray(results.current) ? results.current : results.current?.pageItems || []).map(
|
||||
(a: any) => ({ ...a, accountType: 'Current' })
|
||||
);
|
||||
|
||||
return { pageItems: [
|
||||
...savingsItems,
|
||||
...currentItems
|
||||
] };
|
||||
})
|
||||
);
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user