WEB-292: Backdated Interest modification (for progressive) on closed or overpaid loans

This commit is contained in:
Jose Alberto Hernandez
2025-08-27 07:31:04 -05:00
parent 933f9b8133
commit 539a7c2e23
8 changed files with 32 additions and 32 deletions
@@ -1,7 +1,7 @@
/** Angular Imports. */
import { Component, OnInit, Input } from '@angular/core';
import { UntypedFormGroup, UntypedFormBuilder, Validators, FormControl, ReactiveFormsModule } from '@angular/forms';
import { ActivatedRoute, Router, RouterLink } from '@angular/router';
import { Component, OnInit } from '@angular/core';
import { UntypedFormGroup, UntypedFormBuilder, Validators } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { Dates } from 'app/core/utils/dates';
/** Custom Services. */
@@ -12,7 +12,6 @@ import { InputAmountComponent } from '../../../../shared/input-amount/input-amou
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
import { FormatNumberPipe } from '../../../../pipes/format-number.pipe';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
import { MatIcon } from '@angular/material/icon';
/**
* Approve Loan component.
@@ -25,8 +24,7 @@ import { MatIcon } from '@angular/material/icon';
...STANDALONE_SHARED_IMPORTS,
InputAmountComponent,
CdkTextareaAutosize,
FormatNumberPipe,
MatIcon
FormatNumberPipe
]
})
export class ApproveLoanComponent implements OnInit {
@@ -1,12 +1,6 @@
import { Component, Input, OnInit } from '@angular/core';
import {
UntypedFormBuilder,
UntypedFormControl,
UntypedFormGroup,
Validators,
ReactiveFormsModule
} from '@angular/forms';
import { ActivatedRoute, Router, RouterLink } from '@angular/router';
import { UntypedFormBuilder, UntypedFormControl, UntypedFormGroup, Validators } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
import { Dates } from 'app/core/utils/dates';
import { LoansService } from 'app/loans/loans.service';
import { SettingsService } from 'app/settings/settings.service';
@@ -15,7 +9,6 @@ import { InputAmountComponent } from '../../../../shared/input-amount/input-amou
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
import { FormatNumberPipe } from '../../../../pipes/format-number.pipe';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
import { MatIcon } from '@angular/material/icon';
@Component({
selector: 'mifosx-disburse-to-savings-account',
@@ -25,8 +18,7 @@ import { MatIcon } from '@angular/material/icon';
...STANDALONE_SHARED_IMPORTS,
InputAmountComponent,
CdkTextareaAutosize,
FormatNumberPipe,
MatIcon
FormatNumberPipe
]
})
export class DisburseToSavingsAccountComponent implements OnInit {
@@ -1,13 +1,7 @@
/** Angular Imports */
import { Component, OnInit, Input } from '@angular/core';
import {
UntypedFormGroup,
UntypedFormBuilder,
Validators,
UntypedFormControl,
ReactiveFormsModule
} from '@angular/forms';
import { ActivatedRoute, Router, RouterLink } from '@angular/router';
import { UntypedFormGroup, UntypedFormBuilder, Validators, UntypedFormControl } from '@angular/forms';
import { ActivatedRoute, Router } from '@angular/router';
/** Custom Services */
import { LoansService } from 'app/loans/loans.service';
@@ -19,7 +13,6 @@ import { MatSlideToggle } from '@angular/material/slide-toggle';
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
import { FormatNumberPipe } from '../../../../pipes/format-number.pipe';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
import { MatIcon } from '@angular/material/icon';
/**
* Disburse Loan Option
@@ -33,8 +26,7 @@ import { MatIcon } from '@angular/material/icon';
InputAmountComponent,
MatSlideToggle,
CdkTextareaAutosize,
FormatNumberPipe,
MatIcon
FormatNumberPipe
]
})
export class DisburseComponent implements OnInit {
@@ -307,7 +307,9 @@
{{ 'labels.inputs.Charges' | translate }}
</a>
</ng-container>
<ng-container *ngIf="loanDetailsData.status.active">
<ng-container
*ngIf="loanDetailsData.status.active || loanDetailsData.status.closed || loanDetailsData.status.overpaid"
>
<a
mat-tab-link
[routerLink]="['./loan-reschedules']"
@@ -1,6 +1,6 @@
/** Angular Imports */
import { Component, OnInit } from '@angular/core';
import { ActivatedRoute, NavigationExtras, Router, RouterLinkActive, RouterLink, RouterOutlet } from '@angular/router';
import { ActivatedRoute, NavigationExtras, Router, RouterLinkActive, RouterOutlet } from '@angular/router';
import { MatDialog } from '@angular/material/dialog';
/** Custom Services */
@@ -18,10 +18,10 @@ import { DelinquencyPausePeriod } from '../models/loan-account.model';
import { TranslateService } from '@ngx-translate/core';
import { LoanTransaction } from 'app/products/loan-products/models/loan-account.model';
import { OptionData } from 'app/shared/models/option-data.model';
import { MatCard, MatCardHeader, MatCardTitleGroup, MatCardTitle, MatCardContent } from '@angular/material/card';
import { MatCardHeader, MatCardTitleGroup, MatCardTitle } from '@angular/material/card';
import { SvgIconComponent } from '../../shared/svg-icon/svg-icon.component';
import { MatTooltip } from '@angular/material/tooltip';
import { NgClass, NgIf, NgFor, CurrencyPipe } from '@angular/common';
import { NgClass, CurrencyPipe } from '@angular/common';
import { LongTextComponent } from '../../shared/long-text/long-text.component';
import { AccountNumberComponent } from '../../shared/account-number/account-number.component';
import { MatIconButton } from '@angular/material/button';
@@ -33,6 +33,7 @@ import { StatusLookupPipe } from '../../pipes/status-lookup.pipe';
import { DateFormatPipe } from '../../pipes/date-format.pipe';
import { FormatNumberPipe } from '../../pipes/format-number.pipe';
import { STANDALONE_SHARED_IMPORTS } from 'app/standalone-shared.module';
import { LoanProducts } from 'app/products/loan-products/loan-products';
@Component({
selector: 'mifosx-loans-view',
@@ -295,6 +296,13 @@ export class LoansViewComponent implements OnInit {
taskPermissionName: 'DISBURSE_LOAN'
});
}
if (LoanProducts.isAdvancedPaymentAllocationStrategy(this.loanDetailsData.transactionProcessingStrategyCode)) {
this.buttonConfig.addButton({
name: 'Reschedule',
icon: 'calendar',
taskPermissionName: 'CREATE_RESCHEDULELOAN'
});
}
}
}