Files
cbsnexora/src/app/loans/loans-routing.module.ts
T
Felix van HoveandGitHub 08e3dfbf6e fix: bug preventing individual loan application, improved GLIM (#2329)
This fixes a recently introduced bug preventing individual loan
applications. It also simplifies dramatically the GLIM process,
improving GLIM user experience and functionality.

Partially addresses: WEB-9
2025-03-17 18:37:24 -06:00

398 lines
17 KiB
TypeScript

/** Angular Imports */
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
/** Custom Components */
import { LoansViewComponent } from './loans-view/loans-view.component';
import { GeneralTabComponent } from './loans-view/general-tab/general-tab.component';
import { AccountDetailsComponent } from './loans-view/account-details/account-details.component';
import { NotesTabComponent } from './loans-view/notes-tab/notes-tab.component';
import { RepaymentScheduleTabComponent } from './loans-view/repayment-schedule-tab/repayment-schedule-tab.component';
import { TransactionsTabComponent } from './loans-view/transactions-tab/transactions-tab.component';
import { OriginalScheduleTabComponent } from './loans-view/original-schedule-tab/original-schedule-tab.component';
import { OverdueChargesTabComponent } from './loans-view/overdue-charges-tab/overdue-charges-tab.component';
import { ChargesTabComponent } from './loans-view/charges-tab/charges-tab.component';
import { DatatableTabComponent } from './loans-view/datatable-tab/datatable-tab.component';
import { LoanAccountActionsComponent } from './loans-view/loan-account-actions/loan-account-actions.component';
import { FloatingInterestRatesComponent } from './loans-view/floating-interest-rates/floating-interest-rates.component';
import { LoanTrancheDetailsComponent } from './loans-view/loan-tranche-details/loan-tranche-details.component';
import { LoanCollateralTabComponent } from './loans-view/loan-collateral-tab/loan-collateral-tab.component';
import { CreateLoansAccountComponent } from './create-loans-account/create-loans-account.component';
import { LoanDocumentsTabComponent } from './loans-view/loan-documents-tab/loan-documents-tab.component';
import { StandingInstructionsTabComponent } from 'app/loans/loans-view/standing-instructions-tab/standing-instructions-tab.component';
import { EditLoansAccountComponent } from './edit-loans-account/edit-loans-account.component';
import { ViewChargeComponent } from './loans-view/view-charge/view-charge.component';
import { ViewTransactionComponent } from './loans-view/transactions/view-transaction/view-transaction.component';
import { EditTransactionComponent } from './loans-view/transactions/edit-transaction/edit-transaction.component';
import { ViewRecieptComponent } from './loans-view/transactions/view-reciept/view-reciept.component';
import { ExportTransactionsComponent } from './loans-view/transactions/export-transactions/export-transactions.component';
import { GlimAccountComponent } from './glim-account/glim-account.component';
import { CreateGlimAccountComponent } from './glim-account/create-glim-account/create-glim-account.component';
/** Custom Resolvers */
import { LoanDetailsResolver } from './common-resolvers/loan-details.resolver';
import { LoanNotesResolver } from './common-resolvers/loan-notes.resolver';
import { LoanDatatablesResolver } from './common-resolvers/loan-datatables.resolver';
import { LoanDatatableResolver } from './common-resolvers/loan-datatable.resolver';
import { LoanActionButtonResolver } from './common-resolvers/loan-action-button.resolver';
import { LoansAccountTemplateResolver } from './common-resolvers/loans-account-template.resolver';
import { LoanDocumentsResolver } from './common-resolvers/loan-documents.resolver';
import { LoansAccountAndTemplateResolver } from './common-resolvers/loans-account-and-template.resolver';
import { LoansAccountChargeResolver } from './common-resolvers/loans-account-charge.resolver';
import { LoansAccountTransactionResolver } from './common-resolvers/loans-account-transaction.resolver';
import { LoansTransactionRecieptResolver } from './common-resolvers/loans-transaction-reciept.resolver';
import { LoansAccountTransactionTemplateResolver } from './common-resolvers/loans-account-transaction-template.resolver';
import { SavingsAccountViewResolver } from 'app/savings/common-resolvers/savings-account-view.resolver';
import { GroupAccountsResolver } from 'app/groups/common-resolvers/group-account.resolver';
import { GLIMViewResolver } from './glim-account/glim-account-view.resolver';
import { GSIMAccountsResolver } from 'app/groups/common-resolvers/gsim-account-resolver';
import { GLIMLoanTemplateResolver } from './common-resolvers/glim-loan-template.resolver';
import { GroupViewResolver } from 'app/groups/common-resolvers/group-view.resolver';
import { LoanDelinquencyTagsResolver } from './common-resolvers/loan-delinquency-tags.resolver';
import { LoanDelinquencyTagsTabComponent } from './loans-view/loan-delinquency-tags-tab/loan-delinquency-tags-tab.component';
import { LoanReschedulesResolver } from './common-resolvers/loan-reschedules.resolver';
import { RescheduleLoanTabComponent } from './loans-view/reschedule-loan-tab/reschedule-loan-tab.component';
import { AdjustLoanChargeComponent } from './loans-view/loan-account-actions/adjust-loan-charge/adjust-loan-charge.component';
import { LoanArrearDelinquencyResolver } from './common-resolvers/loan-arrear-delinquency.resolver';
import { ExternalAssetOwnerTabComponent } from './loans-view/external-asset-owner-tab/external-asset-owner-tab.component';
import { ExternalAssetOwnerResolver } from './common-resolvers/external-asset-owner.resolver';
import { ExternalAssetOwnerActiveTransferResolver } from './common-resolvers/external-asset-owner-active-transfer.resolver';
import { LoanCollateralsResolver } from './common-resolvers/loan-collaterals.resolver';
import { LoanDelinquencyDataResolver } from './common-resolvers/loan-delinquency-data.resolver';
import { LoanDelinquencyActionsResolver } from './common-resolvers/loan-delinquency-actions.resolver';
import { LoanTermVariationsTabComponent } from './loans-view/loan-term-variations-tab/loan-term-variations-tab.component';
import { LoanTermVariationsResolver } from './common-resolvers/loan-term-variations.resolver';
/** Loans Route. */
const routes: Routes = [
{
path: '',
data: { title: 'Loans', breadcrumb: 'Loans', routeParamBreadcrumb: false },
children: [
{
path: 'create',
data: { title: 'Create Loans Account', breadcrumb: 'Create Loans Account' },
component: CreateLoansAccountComponent,
resolve: {
loansAccountTemplate: LoansAccountTemplateResolver
}
},
{
path: ':loanId',
data: { title: 'Loan View', routeParamBreadcrumb: 'loanId' },
component: LoansViewComponent,
resolve: {
loanDetailsData: LoanDetailsResolver,
loanDatatables: LoanDatatablesResolver,
loanArrearsDelinquencyConfig: LoanArrearDelinquencyResolver
},
children: [
{
path: '',
redirectTo: 'general',
pathMatch: 'full'
},
{
path: 'general',
component: GeneralTabComponent,
data: { title: 'General', breadcrumb: 'General', routeParamBreadcrumb: false },
resolve: {
loanDetailsData: LoanDetailsResolver,
loanDatatables: LoanDatatablesResolver
}
},
{
path: 'accountdetail',
component: AccountDetailsComponent,
data: { title: 'Account Detail', breadcrumb: 'Account Detail', routeParamBreadcrumb: false }
},
{
path: 'original-schedule',
component: OriginalScheduleTabComponent,
data: { title: 'Original Schedule', breadcrumb: 'Original Schedule', routeParamBreadcrumb: false }
},
{
path: 'repayment-schedule',
component: RepaymentScheduleTabComponent,
data: { title: 'Repayment Schedule', breadcrumb: 'Repayment Schedule', routeParamBreadcrumb: false }
},
{
path: 'transactions',
data: { title: 'Loans Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
children: [
{
path: '',
component: TransactionsTabComponent
},
{
path: 'export',
component: ExportTransactionsComponent
}
]
},
{
path: 'delinquencytags',
data: { title: 'Loans Delinquency Tags', breadcrumb: 'Delinquency Tags', routeParamBreadcrumb: false },
resolve: {
loanDelinquencyTagsData: LoanDelinquencyTagsResolver,
loanDelinquencyData: LoanDelinquencyDataResolver,
loanDelinquencyActions: LoanDelinquencyActionsResolver
},
children: [
{
path: '',
component: LoanDelinquencyTagsTabComponent
}
]
},
{
path: 'loan-reschedules',
data: {},
resolve: {
loanRescheduleData: LoanReschedulesResolver
},
children: [
{
path: '',
component: RescheduleLoanTabComponent
}
]
},
{
path: 'loan-collateral',
component: LoanCollateralTabComponent,
data: {
title: 'Loan Collateral Details',
breadcrumb: 'Loan Collateral Details',
routeParamBreadcrumb: false
},
resolve: {
loanCollaterals: LoanCollateralsResolver
}
},
{
path: 'term-variations',
component: LoanTermVariationsTabComponent,
data: { title: 'Loan Term Variations', breadcrumb: 'Loan Term Variations', routeParamBreadcrumb: false },
resolve: {
loanDetailsData: LoanDetailsResolver,
interestPausesData: LoanTermVariationsResolver
}
},
{
path: 'loan-tranche-details',
component: LoanTrancheDetailsComponent,
data: { title: 'Loan Tranche Details', breadcrumb: 'Loan Tranche Details', routeParamBreadcrumb: false }
},
{
path: 'overdue-charges',
component: OverdueChargesTabComponent,
data: { title: 'Overdue Charges', breadcrumb: 'Overdue Charges', routeParamBreadcrumb: false }
},
{
path: 'floating-interest-rates',
component: FloatingInterestRatesComponent,
data: {
title: 'Floating Interest Rates',
breadcrumb: 'Floating Interest Rates',
routeParamBreadcrumb: false
}
},
{
path: 'charges',
data: { title: 'Loans Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false },
component: ChargesTabComponent
},
{
path: 'loan-documents',
component: LoanDocumentsTabComponent,
data: { title: 'Loan Documents', breadcrumb: 'Loan Documents', routeParamBreadcrumb: false },
resolve: {
loanDocuments: LoanDocumentsResolver
}
},
{
path: 'notes',
component: NotesTabComponent,
data: { title: 'Notes', breadcrumb: 'Notes', routeParamBreadcrumb: false },
resolve: {
loanNotes: LoanNotesResolver
}
},
{
path: 'standing-instruction',
component: StandingInstructionsTabComponent,
data: { title: 'Standing Instructions', breadcrumb: 'Standing Instructions', routeParamBreadcrumb: false }
},
{
path: 'external-asset-owner',
component: ExternalAssetOwnerTabComponent,
data: { title: 'External Asset Owner', breadcrumb: 'External Asset Owner', routeParamBreadcrumb: false },
resolve: {
activeTransferData: ExternalAssetOwnerActiveTransferResolver,
loanTransfersData: ExternalAssetOwnerResolver
}
},
{
path: 'datatables',
children: [
{
path: ':datatableName',
component: DatatableTabComponent,
data: { title: 'Data Table View', routeParamBreadcrumb: 'datatableName' },
resolve: {
loanDatatable: LoanDatatableResolver
}
}
]
}
]
},
{
path: ':loanId/transactions/:id',
data: { title: 'Loans Account Transactions', breadcrumb: 'Transactions', routeParamBreadcrumb: false },
resolve: {
loanDetailsAssociationData: LoanDetailsResolver
},
children: [
{
path: '',
data: { routeParamBreadcrumb: 'id' },
component: ViewTransactionComponent,
resolve: {
loansAccountTransaction: LoansAccountTransactionResolver
}
},
{
path: 'edit',
component: EditTransactionComponent,
data: { breadcrumb: 'Edit', routeParamBreadcrumb: false },
resolve: {
loansAccountTransactionTemplate: LoansAccountTransactionTemplateResolver
}
},
{
path: 'reciept',
component: ViewRecieptComponent,
data: { breadcrumb: 'Reciept', routeParamBreadcrumb: false },
resolve: {
loansTransactionReciept: LoansTransactionRecieptResolver
}
}
]
},
{
path: ':loanId/edit-loans-account',
data: { title: 'Modify Loans Account', breadcrumb: 'Modify Loans Account', routeParamBreadcrumb: 'Edit' },
component: EditLoansAccountComponent,
resolve: {
loansAccountAndTemplate: LoansAccountAndTemplateResolver
}
},
{
path: ':loanId/charges',
data: { title: 'Loans Account Charges', breadcrumb: 'Charges', routeParamBreadcrumb: false },
children: [
{
path: '',
redirectTo: '../charges',
pathMatch: 'prefix'
},
{
path: ':id',
data: { routeParamBreadcrumb: 'id' },
component: ViewChargeComponent,
resolve: {
loansAccountCharge: LoansAccountChargeResolver,
loanDetailsData: LoanDetailsResolver
}
},
{
path: ':id/adjustment',
data: { routeParamBreadcrumb: 'id', breadcrumb: 'Adjustment' },
component: AdjustLoanChargeComponent,
resolve: {
loansAccountCharge: LoansAccountChargeResolver,
loanDetailsData: LoanDetailsResolver
}
}
]
},
{
path: ':loanId/actions/:action',
component: LoanAccountActionsComponent,
data: { title: 'Loan Account Actions', breadcrumb: 'action', routeParamBreadcrumb: 'action' },
resolve: {
actionButtonData: LoanActionButtonResolver
}
},
{
path: ':loanId/transfer-funds',
loadChildren: () =>
import('../account-transfers/account-transfers.module').then((m) => m.AccountTransfersModule)
},
{
path: 'edit-loans-account',
data: { title: 'Modify Loans Account', breadcrumb: 'Modify Loans Account', routeParamBreadcrumb: 'Edit' },
component: EditLoansAccountComponent,
resolve: {
loansAccountAndTemplate: LoansAccountAndTemplateResolver
}
}
]
},
{
path: 'glim-account',
data: { title: 'Loans', breadcrumb: 'Loans', routeParamBreadcrumb: false },
children: [
{
path: 'create',
data: { title: 'Create GLIM Application', breadcrumb: 'Create GLIM Application', routeParamBreadcrumb: false },
component: CreateGlimAccountComponent,
resolve: {
loansAccountTemplate: GLIMLoanTemplateResolver,
groupsData: GroupViewResolver
}
},
{
path: ':glimId',
data: { title: 'GSIM Account View', routeParamBreadcrumb: 'savingAccountId' },
component: GlimAccountComponent,
resolve: {
glimData: GLIMViewResolver,
groupsData: GroupAccountsResolver
}
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule],
declarations: [],
providers: [
LoanDetailsResolver,
LoanNotesResolver,
LoanDatatablesResolver,
LoanDatatableResolver,
LoanDelinquencyTagsResolver,
LoanActionButtonResolver,
LoansAccountTemplateResolver,
LoanDocumentsResolver,
LoansAccountAndTemplateResolver,
LoansAccountChargeResolver,
LoansAccountTransactionResolver,
LoansAccountTransactionTemplateResolver,
LoansTransactionRecieptResolver,
SavingsAccountViewResolver,
GroupAccountsResolver,
GLIMViewResolver,
GSIMAccountsResolver,
GLIMLoanTemplateResolver,
ExternalAssetOwnerResolver,
LoanDelinquencyDataResolver,
LoanTermVariationsResolver
]
})
export class LoansRoutingModule {}