From ffea817f76cf1f8abbd88bb7ca2ea13c238a962c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Alberto=20Hern=C3=A1ndez?= <44206706+josehernandezfintecheandomx@users.noreply.github.com> Date: Sun, 29 Jan 2023 00:56:38 -0600 Subject: [PATCH] Enhacement for Charge management (#1659) Co-authored-by: Jose Alberto Hernandez --- src/app/loans/loans-routing.module.ts | 1 - .../general-tab/general-tab.component.html | 24 ++++++++--- .../repayment-schedule-tab.component.html | 28 ++++++------- .../repayment-schedule-tab.component.scss | 4 ++ .../repayment-schedule-tab.component.ts | 7 ++++ .../products/charges/charges.component.html | 23 +++++++++-- src/app/products/charges/charges.component.ts | 2 +- .../create-charge.component.html | 24 +++++------ .../edit-charge/edit-charge.component.html | 41 +++++++++---------- .../edit-charge/edit-charge.component.scss | 3 ++ .../edit-charge/edit-charge.component.ts | 9 ++++ .../view-charge/view-charge.component.html | 3 ++ src/app/products/products-routing.module.ts | 2 +- src/assets/styles/_align.scss | 4 ++ 14 files changed, 115 insertions(+), 60 deletions(-) diff --git a/src/app/loans/loans-routing.module.ts b/src/app/loans/loans-routing.module.ts index 366f3105c..a3deb25ac 100644 --- a/src/app/loans/loans-routing.module.ts +++ b/src/app/loans/loans-routing.module.ts @@ -81,7 +81,6 @@ const routes: Routes = [ path: '', component: LoansViewComponent, resolve: { - loanDetailsData: LoanDetailsResolver, loanDatatables: LoanDatatablesResolver }, children: [ diff --git a/src/app/loans/loans-view/general-tab/general-tab.component.html b/src/app/loans/loans-view/general-tab/general-tab.component.html index 4140945b2..7ff75a9a0 100644 --- a/src/app/loans/loans-view/general-tab/general-tab.component.html +++ b/src/app/loans/loans-view/general-tab/general-tab.component.html @@ -3,12 +3,24 @@

Performance History

-

- Repayments : {{loanDetails?.numberOfRepayments | number}} -

-

- Maturity Date : {{loanDetails?.timeline.expectedMaturityDate | dateFormat}} -

+ + + + + + + + + +
+ Number of Repayments : + + {{loanDetails?.numberOfRepayments | number}} + + Maturity Date : + + {{loanDetails?.timeline.expectedMaturityDate | dateFormat}} +
diff --git a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.html b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.html index 6045af15a..7dcff5314 100644 --- a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.html +++ b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.html @@ -10,25 +10,25 @@ Days - {{ ele.daysInPeriod }} + {{ ele.daysInPeriod }} Total Date - {{ ele.dueDate | dateFormat}} + {{ ele.dueDate | dateFormat}} Paid Date - {{ ele.obligationsMetOnDate | dateFormat}} + {{ ele.obligationsMetOnDate | dateFormat}}   - + @@ -36,62 +36,62 @@ Balance Of Loan - {{ ele.principalLoanBalanceOutstanding | number }} + {{ ele.principalLoanBalanceOutstanding | number }}   Principal Due - {{ ele.principalDue | number }} + {{ ele.principalDue | number }} {{ repaymentScheduleDetails.totalPrincipalExpected | currency }} Interest - {{ ele.interestOriginalDue | number}} + {{ ele.interestOriginalDue | number}} {{ repaymentScheduleDetails.totalInterestCharged | currency }} Fees - {{ ele.feeChargesDue | number}} + {{ ele.feeChargesDue | number}} {{ repaymentScheduleDetails.totalFeeChargesCharged | currency }} Penalties - {{ ele.penaltyChargesDue | number}} + {{ ele.penaltyChargesDue | number}} {{ repaymentScheduleDetails.totalPenaltyChargesCharged | currency }} Due - {{ ele.totalDueForPeriod | number}} + {{ ele.totalDueForPeriod | number}} {{ repaymentScheduleDetails.totalRepaymentExpected | currency }} Paid - {{ ele.totalPaidForPeriod | number}} + {{ ele.totalPaidForPeriod | number}} {{ repaymentScheduleDetails.totalRepayment | currency }} In advance - {{ ele.totalPaidInAdvanceForPeriod | number}} + {{ ele.totalPaidInAdvanceForPeriod | number}} {{ repaymentScheduleDetails.totalPaidInAdvance | currency }} Late - {{ ele.totalPaidLateForPeriod | number}} + {{ ele.totalPaidLateForPeriod | number}} {{ repaymentScheduleDetails.totalPaidLate | currency }} Waived - {{ ele.totalWaivedForPeriod | number}} + {{ ele.totalWaivedForPeriod | number}} {{ repaymentScheduleDetails.totalWaived | currency }} diff --git a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.scss b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.scss index 90858405f..627fbb0d8 100644 --- a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.scss +++ b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.scss @@ -17,3 +17,7 @@ table { .amount-changed { color: $status-approved; } + +.additional { + color: $status-approved; +} diff --git a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.ts b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.ts index be393fe71..1e9ab8a52 100644 --- a/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.ts +++ b/src/app/loans/loans-view/repayment-schedule-tab/repayment-schedule-tab.component.ts @@ -41,4 +41,11 @@ export class RepaymentScheduleTabComponent implements OnInit { this.isWaived = this.repaymentScheduleDetails.totalWaived > 0; } + installmentStyle(installment: any): string { + if (installment.isAdditional) { + return 'additional'; + } + return ''; + } + } diff --git a/src/app/products/charges/charges.component.html b/src/app/products/charges/charges.component.html index 4cc95fbe4..824feba56 100644 --- a/src/app/products/charges/charges.component.html +++ b/src/app/products/charges/charges.component.html @@ -26,21 +26,36 @@ - Charge Applies To + Applies To {{ charge.chargeAppliesTo.value }} + + Time + {{ charge.chargeTimeType.value }} + + + + Calculation + {{ charge.chargeCalculationType.value }} + + + + Amount + {{ charge.amount | number }} + + Is Penalty? - + - Status - + Is Active? +
diff --git a/src/app/products/charges/charges.component.ts b/src/app/products/charges/charges.component.ts index 283ac35de..d08ef2214 100644 --- a/src/app/products/charges/charges.component.ts +++ b/src/app/products/charges/charges.component.ts @@ -25,7 +25,7 @@ export class ChargesComponent implements OnInit, AfterViewInit { /** Charge data. */ chargeData: any; /** Columns to be displayed in charges table. */ - displayedColumns: string[] = ['name', 'chargeAppliesTo', 'penalty', 'active']; + displayedColumns: string[] = ['name', 'chargeAppliesTo', 'chargeTimeType', 'chargeCalculationType', 'amount', 'penalty', 'active']; /** Data source for charges table. */ dataSource: MatTableDataSource; diff --git a/src/app/products/charges/create-charge/create-charge.component.html b/src/app/products/charges/create-charge/create-charge.component.html index a84383a34..cff1abf4a 100644 --- a/src/app/products/charges/create-charge/create-charge.component.html +++ b/src/app/products/charges/create-charge/create-charge.component.html @@ -86,6 +86,17 @@ + + Frequency Interval + + + Frequency Interval is required + + + Frequency Interval must be a positive integer + + + Charge Frequency @@ -98,17 +109,6 @@ - - Frequency Interval - - - Frequency Interval is required - - - Frequency Interval must be a positive integer - - - Due Date @@ -178,7 +178,7 @@ {{ incomeOrLiabilityAccount.name }} - + Tax Group diff --git a/src/app/products/charges/edit-charge/edit-charge.component.html b/src/app/products/charges/edit-charge/edit-charge.component.html index 2098b5e8d..6cb31a7cd 100644 --- a/src/app/products/charges/edit-charge/edit-charge.component.html +++ b/src/app/products/charges/edit-charge/edit-charge.component.html @@ -18,7 +18,7 @@ - +
@@ -28,7 +28,7 @@ Name is required - + Currency @@ -41,7 +41,7 @@ - + Charge time type @@ -52,9 +52,9 @@ Charge Time Type is required - + - + Charge calculation @@ -78,7 +78,7 @@ Charge Payment Mode is required - + Amount @@ -86,7 +86,7 @@ Amount is required - + Income from charge @@ -98,7 +98,7 @@ Income from charge is required - + Tax Group @@ -114,12 +114,20 @@ -
- +
+ Add Fee Frequency
+ + Frequency Interval + + + Frequency Interval is required + + + Charge Frequency @@ -128,19 +136,10 @@ - Fee Frequency is required + Fee Frequency is required - - Frequency Interval - - - Amount is required - - - -
@@ -149,7 +148,7 @@ Active
- +
Is Penalty diff --git a/src/app/products/charges/edit-charge/edit-charge.component.scss b/src/app/products/charges/edit-charge/edit-charge.component.scss index e69de29bb..67f3585da 100644 --- a/src/app/products/charges/edit-charge/edit-charge.component.scss +++ b/src/app/products/charges/edit-charge/edit-charge.component.scss @@ -0,0 +1,3 @@ +.checkbox { + padding-top: 10px; +} diff --git a/src/app/products/charges/edit-charge/edit-charge.component.ts b/src/app/products/charges/edit-charge/edit-charge.component.ts index 49b214f0b..d1f05f5e8 100644 --- a/src/app/products/charges/edit-charge/edit-charge.component.ts +++ b/src/app/products/charges/edit-charge/edit-charge.component.ts @@ -71,6 +71,8 @@ export class EditChargeComponent implements OnInit { * Edit Charge form. */ editChargeForm() { + this.showFeeOptions = (this.chargeData.feeInterval && this.chargeData.feeInterval > 0); + this.chargeForm = this.formBuilder.group({ 'name': [this.chargeData.name, Validators.required], 'chargeAppliesTo': [{ value: this.chargeData.chargeAppliesTo.id, disabled: true }, Validators.required], @@ -88,6 +90,13 @@ export class EditChargeComponent implements OnInit { this.addFeeFrequency = true; this.chargePaymentMode = true; this.chargeForm.addControl('chargePaymentMode', this.formBuilder.control(this.chargeData.chargePaymentMode.id, Validators.required)); + if (this.showFeeOptions) { + this.getFeeFrequency(this.showFeeOptions); + this.chargeForm.patchValue({ + 'feeInterval': this.chargeData.feeInterval, + 'feeFrequency': this.chargeData.feeFrequency.id + }); + } break; } case 'Savings': { diff --git a/src/app/products/charges/view-charge/view-charge.component.html b/src/app/products/charges/view-charge/view-charge.component.html index 3221c34bb..393f73e6f 100644 --- a/src/app/products/charges/view-charge/view-charge.component.html +++ b/src/app/products/charges/view-charge/view-charge.component.html @@ -123,6 +123,9 @@
+
+ +
diff --git a/src/app/products/products-routing.module.ts b/src/app/products/products-routing.module.ts index a9d857d58..aef760ef7 100644 --- a/src/app/products/products-routing.module.ts +++ b/src/app/products/products-routing.module.ts @@ -772,7 +772,7 @@ const routes: Routes = [ }, { path: ':id', - data: { title: extract('View Charges'), routeParamBreadcrumb: 'id' }, + data: { title: extract('View Charges'), breadcrumb: 'id', routeParamBreadcrumb: 'id' }, resolve: { charge: ChargeResolver }, diff --git a/src/assets/styles/_align.scss b/src/assets/styles/_align.scss index 13f386ba8..4f2b6c90b 100644 --- a/src/assets/styles/_align.scss +++ b/src/assets/styles/_align.scss @@ -22,6 +22,10 @@ padding-right: 5px !important; } +.left { + text-align: left !important; +} + .right { text-align: right !important; }