Skip to content

Commit cfea98c

Browse files
authored
Merge pull request #2546 from Cocoa-Puffs/feature/buy-down-fees-adjustment-transaction
WEB-242: add buy down fee adjustment transaction to existing non reversed buy down fee transactions
2 parents 1a2618a + e4cf077 commit cfea98c

File tree

17 files changed

+167
-5
lines changed

17 files changed

+167
-5
lines changed

src/app/loans/loans-view/transactions-tab/transactions-tab.component.html

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,16 @@
204204
<span>{{ 'labels.menus.Capitalized Income Adjustment' | translate }}</span>
205205
</button>
206206
</span>
207+
<span *ngIf="isBuyDownFee(transaction.type) && !transaction.manuallyReversed">
208+
<button
209+
mat-menu-item
210+
*mifosxHasPermission="'BUY_DOWN_FEE_LOAN'"
211+
(click)="buyDownFeeAdjustmentTransaction(transaction, $event)"
212+
>
213+
<mat-icon><fa-icon icon="coins" size="sm"></fa-icon></mat-icon>
214+
<span>{{ 'labels.menus.Buy Down Fee Adjustment' | translate }}</span>
215+
</button>
216+
</span>
207217
<span *ngIf="viewJournalEntry(transaction.type)">
208218
<button
209219
mat-menu-item

src/app/loans/loans-view/transactions-tab/transactions-tab.component.ts

Lines changed: 73 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -245,6 +245,8 @@ export class TransactionsTabComponent implements OnInit {
245245
* CAPITALIZED INCOME:35
246246
* CAPITALIZED INCOME ADJUSTMENT:37
247247
* CONTRACT_TERMINATION:38
248+
* BUY_DOWN_FEE:40
249+
* BUY_DOWN_FEE_ADJUSTMENT:41
248250
*/
249251
showTransaction(transactionsData: LoanTransaction): boolean {
250252
return [
@@ -264,7 +266,9 @@ export class TransactionsTabComponent implements OnInit {
264266
33,
265267
35,
266268
37,
267-
38
269+
38,
270+
40,
271+
41
268272
].includes(transactionsData.type.id);
269273
}
270274

@@ -417,6 +421,10 @@ export class TransactionsTabComponent implements OnInit {
417421
);
418422
}
419423

424+
private isBuyDownFee(transactionType: LoanTransactionType): boolean {
425+
return transactionType.buyDownFee || transactionType.code === 'loanTransactionType.buyDownFee';
426+
}
427+
420428
private isReAgoeOrReAmortize(transactionType: LoanTransactionType): boolean {
421429
return this.isReAmortize(transactionType) || this.isReAge(transactionType);
422430
}
@@ -510,6 +518,70 @@ export class TransactionsTabComponent implements OnInit {
510518
});
511519
}
512520

521+
buyDownFeeAdjustmentTransaction(transaction: LoanTransaction) {
522+
const accountId = `${this.loanId}`;
523+
this.loansService
524+
.getLoanTransactionActionTemplate(accountId, 'buyDownFeeAdjustment', `${transaction.id}`)
525+
.subscribe((response: any) => {
526+
const transactionDate = response.date || transaction.date;
527+
if (response.amount == 0) {
528+
this.displayAlertMessage('Buy Down Fee amount already adjusted', transaction.amount);
529+
} else {
530+
const transactionAmount = response.amount || transaction.amount;
531+
const formfields: FormfieldBase[] = [
532+
new DatepickerBase({
533+
controlName: 'transactionDate',
534+
label: 'Date',
535+
value: this.dateUtils.parseDate(transactionDate),
536+
type: 'datetime-local',
537+
required: true,
538+
minDate: this.dateUtils.parseDate(transaction.date),
539+
order: 1
540+
}),
541+
new InputBase({
542+
controlName: 'amount',
543+
label: 'Amount',
544+
value: transactionAmount,
545+
type: 'number',
546+
required: true,
547+
max: transactionAmount,
548+
min: 0.001,
549+
order: 2
550+
})
551+
552+
];
553+
const data = {
554+
title: `Adjustment ${transaction.type.value} Transaction`,
555+
layout: { addButtonText: 'Adjustment' },
556+
formfields: formfields
557+
};
558+
const chargebackDialogRef = this.dialog.open(FormDialogComponent, { data });
559+
chargebackDialogRef.afterClosed().subscribe((response: { data: any }) => {
560+
if (response.data) {
561+
const dateFormat = this.settingsService.dateFormat;
562+
563+
if (response.data.value.amount <= transactionAmount) {
564+
const locale = this.settingsService.language.code;
565+
const payload = {
566+
transactionDate: this.dateUtils.formatDate(response.data.value.transactionDate, dateFormat),
567+
transactionAmount: response.data.value.amount,
568+
locale,
569+
dateFormat
570+
};
571+
this.loansService
572+
.executeLoansAccountTransactionsCommand(accountId, 'buyDownFeeAdjustment', payload, transaction.id)
573+
.subscribe(() => {
574+
this.reload();
575+
});
576+
} else {
577+
this.displayAlertMessage('Buy Down Fee Adjustment amount must be lower or equal to', transactionAmount);
578+
}
579+
}
580+
});
581+
}
582+
});
583+
}
584+
513585
private displayAlertMessage(label: string, amount: number): void {
514586
let message: string = this.translateService.instant('errors.' + label);
515587
if (amount) {

src/app/loans/models/loan-transaction-type.model.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,4 +37,6 @@ export interface LoanTransactionType {
3737
capitalizedIncomeAmortization: boolean;
3838
capitalizedIncomeAmortizationAdjustment: boolean;
3939
contractTermination: boolean;
40+
buyDownFee: boolean;
41+
buyDownFeeAdjustment: boolean;
4042
}

src/assets/translations/cs-CS.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
"errors": {
66
"Capitalized Income amount adjusted already adjusted": "Výše kapitalizovaného příjmu již upravená",
77
"Capitalized Income Adjustment amount must be lower or equal to": "Částka úpravy kapitalizovaného příjmu musí být nižší nebo rovna",
8+
"Buy Down Fee amount already adjusted": "Výše poplatku za odkup již byla upravena",
9+
"Buy Down Fee Adjustment amount must be lower or equal to": "Výše úpravy poplatku za odkoupení musí být nižší nebo rovna",
810
"Email not valid": "Email není platný",
911
"Filling Details": "Kliknutím začněte vyplňovat podrobnosti. * pole označení jsou nezbytná. Pro více podrobností klikněte na:",
1012
"Password is required": "Je vyžadováno heslo",
@@ -540,6 +542,8 @@
540542
"CENTER": "CENTRUM",
541543
"Capitalized Income": "Kapitalizovaný příjem",
542544
"Capitalized Income Adjustment": "Úprava kapitalizovaného příjmu",
545+
"Buy Down Fee": "Poplatek za odkup",
546+
"Buy Down Fee Adjustment": "Úprava poplatku za odkup",
543547
"Client": "Client",
544548
"cash_mgmt": "cash_mgmt",
545549
"collection_sheet": "kolekce_list",
@@ -814,6 +818,7 @@
814818
"Add/Edit Currency": "Přidat/upravit měnu",
815819
"Address": "Adresa",
816820
"Adjustment Capitalized Income Transaction": "Úprava Transakce s kapitalizovaným příjmem",
821+
"Adjustment Buy Down Fee Transaction": "Úprava poplatku za odkoupení Transakce",
817822
"Advanced Accounting Rules": "Pokročilá účetní pravidla",
818823
"All Charges": "Všechny poplatky",
819824
"All Dividends": "Všechny dividendy",
@@ -2517,6 +2522,7 @@
25172522
"Block Withdrawal": "Blokovat výběr",
25182523
"Breadcrumbs": "Strouhanka",
25192524
"Buy Down Fee": "Poplatek za odkup",
2525+
"Buy Down Fee Adjustment": "Úprava poplatku za odkup",
25202526
"Calculate Interest": "Vypočítejte úrok",
25212527
"Capitalized Income": "Kapitalizovaný příjem",
25222528
"Capitalized Income Adjustment": "Úprava kapitalizovaného příjmu",

src/assets/translations/de-DE.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
"errors": {
66
"Capitalized Income amount adjusted already adjusted": "Kapitalisiertes Einkommen Betrag angepasst bereits angepasst",
77
"Capitalized Income Adjustment amount must be lower or equal to": "Der Betrag der kapitalisierten Einkommensanpassung muss kleiner oder gleich sein",
8+
"Buy Down Fee amount already adjusted": "Kapitalisierte Erträge Betrag angepasst bereits angepasst",
9+
"Buy Down Fee Adjustment amount must be lower or equal to": "Der Anpassungsbetrag der Ankaufsgebühr muss niedriger oder gleich sein als",
810
"Email not valid": "E-Mail ungültig",
911
"Filling Details": "Klicken Sie hier, um mit dem Ausfüllen der Details zu beginnen. * Markierungsfelder sind erforderlich. Für weitere Details klicken Sie:",
1012
"Password is required": "Passwort wird benötigt",
@@ -540,6 +542,8 @@
540542
"CENTER": "CENTER",
541543
"Capitalized Income": "Kapitalisiertes Einkommen",
542544
"Capitalized Income Adjustment": "Anpassung des kapitalisierten Einkommens",
545+
"Buy Down Fee": "Ankaufsgebühr",
546+
"Buy Down Fee Adjustment": "Anpassung der Ankaufsgebühr",
543547
"Client": "Klient",
544548
"cash_mgmt": "cash_mgmt",
545549
"collection_sheet": "Sammlungsblatt",
@@ -815,6 +819,7 @@
815819
"Add/Edit Currency": "Währung hinzufügen/bearbeiten",
816820
"Address": "Adresse",
817821
"Adjustment Capitalized Income Transaction": "Anpassung der kapitalisierten Einkommenstransaktion",
822+
"Adjustment Buy Down Fee Transaction": "Anpassung Ankaufsgebühr Transaktion",
818823
"Advanced Accounting Rules": "Erweiterte Buchhaltungsregeln",
819824
"All Charges": "Alle Anklagen",
820825
"All Dividends": "Alle Dividenden",
@@ -2516,7 +2521,8 @@
25162521
"Block Deposit": "Blockeinzahlung",
25172522
"Block Withdrawal": "Auszahlung blockieren",
25182523
"Breadcrumbs": "Semmelbrösel",
2519-
"Buy Down Fee": "Anzahlungsgebühr",
2524+
"Buy Down Fee": "Ankaufsgebühr",
2525+
"Buy Down Fee Adjustment": "Anpassung der Ankaufsgebühr",
25202526
"Calculate Interest": "Zinsen berechnen",
25212527
"Capitalized Income": "Kapitalisiertes Einkommen",
25222528
"Capitalized Income Adjustment": "Anpassung des kapitalisierten Einkommens",

src/assets/translations/en-US.json

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,10 @@
33
"Logged in as": "Logged in as",
44
"Remember me": "Remember me",
55
"errors": {
6-
"Capitalized Income amount adjusted already adjusted": "Capitalized Income amount adjusted already adjusted",
6+
"Capitalized Income amount adjusted already adjusted": "Capitalized Income amount already adjusted",
77
"Capitalized Income Adjustment amount must be lower or equal to": "Capitalized Income Adjustment amount must be lower or equal to",
8+
"Buy Down Fee amount already adjusted": "Buy Down Fee amount already adjusted",
9+
"Buy Down Fee Adjustment amount must be lower or equal to": "Buy Down Fee Adjustment amount must be lower or equal to",
810
"Email not valid": "Email not valid",
911
"Filling Details": "Click to start filling the details. * mark fields are necessary. For more details click:",
1012
"Password is required": "Password is required",
@@ -541,6 +543,8 @@
541543
"CENTER": "CENTER",
542544
"Capitalized Income": "Capitalized Income",
543545
"Capitalized Income Adjustment": "Capitalized Income Adjustment",
546+
"Buy Down Fee": "Buy Down Fee",
547+
"Buy Down Fee Adjustment": "Buy Down Fee Adjustment",
544548
"CLIENT": "CLIENT",
545549
"Client": "Client",
546550
"cash_mgmt": "cash_mgmt",
@@ -820,6 +824,7 @@
820824
"Add/Edit Currency": "Add/Edit Currency",
821825
"Address": "Address",
822826
"Adjustment Capitalized Income Transaction": "Adjustment Capitalized Income Transaction",
827+
"Adjustment Buy Down Fee Transaction": "Adjustment Buy Down Fee Transaction",
823828
"Advanced Accounting Rules": "Advanced Accounting Rules",
824829
"All Charges": "All Charges",
825830
"All Dividends": "All Dividends",
@@ -2524,6 +2529,7 @@
25242529
"Block Withdrawal": "Block Withdrawal",
25252530
"Breadcrumbs": "Breadcrumbs",
25262531
"Buy Down Fee": "Buy Down Fee",
2532+
"Buy Down Fee Adjustment": "Buy Down Fee Adjustment",
25272533
"Calculate Interest": "Calculate Interest",
25282534
"Capitalized Income": "Capitalized Income",
25292535
"Capitalized Income Adjustment": "Capitalized Income Adjustment",

src/assets/translations/es-CL.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
"errors": {
66
"Capitalized Income amount adjusted already adjusted": "Monto de Ingreso Capitalizado ajustado ya ajustado",
77
"Capitalized Income Adjustment amount must be lower or equal to": "El monto del Ajuste de Ingreso Capitalizado debe ser menor o igual a",
8+
"Buy Down Fee amount already adjusted": "Importe de la comisión de recompra ya ajustado",
9+
"Buy Down Fee Adjustment amount must be lower or equal to": "El importe del ajuste de la cuota de readquisición debe ser igual o inferior a",
810
"Email not valid": "Correo electrónico no válido",
911
"Filling Details": "Haga clic para comenzar a completar los detalles. * Los campos de marca son necesarios. Para más detalles haga clic en:",
1012
"Password is required": "se requiere contraseña",
@@ -540,6 +542,8 @@
540542
"CENTER": "CENTRO",
541543
"Capitalized Income": "Ingresos capitalizados",
542544
"Capitalized Income Adjustment": "Ajuste de ingresos capitalizados",
545+
"Buy Down Fee": "Comisión de compra",
546+
"Buy Down Fee Adjustment": "Ajuste de la tasa de recompra",
543547
"Client": "Cliente",
544548
"cash_mgmt": "gestión_efectivo",
545549
"collection_sheet": "hoja_coleccion",
@@ -814,6 +818,7 @@
814818
"Add/Edit Currency": "Agregar/Editar moneda",
815819
"Address": "Domicilio",
816820
"Adjustment Capitalized Income Transaction": "Ajuste de Transacción de Ingreso Capitalizado",
821+
"Adjustment Buy Down Fee Transaction": "Transacción de la Comisión de Adquisición de Ajuste",
817822
"Advanced Accounting Rules": "Reglas de contabilidad avanzadas",
818823
"All Charges": "Todos los cargos",
819824
"All Dividends": "Todos los dividendos",
@@ -2517,6 +2522,7 @@
25172522
"Block Withdrawal": "Bloquear retiros",
25182523
"Breadcrumbs": "Migas de pan",
25192524
"Buy Down Fee": "Comisión de compra inicial",
2525+
"Buy Down Fee Adjustment": "Ajuste de la tasa de recompra",
25202526
"Calculate Interest": "Calcular interés",
25212527
"Capitalized Income": "Ingreso capitalizado",
25222528
"Capitalized Income Adjustment": "Ajuste de ingresos capitalizados",

src/assets/translations/es-MX.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
"errors": {
66
"Capitalized Income amount adjusted already adjusted": "Monto de Ingreso Capitalizado ajustado ya ajustado",
77
"Capitalized Income Adjustment amount must be lower or equal to": "El monto del Ajuste de Ingreso Capitalizado debe ser menor o igual a",
8+
"Buy Down Fee amount already adjusted": "Importe de la comisión de recompra ya ajustado",
9+
"Buy Down Fee Adjustment amount must be lower or equal to": "El importe del ajuste de la cuota de readquisición debe ser igual o inferior a",
810
"Email not valid": "Correo electrónico no válido",
911
"Filling Details": "Haga clic para comenzar a completar los detalles. * Los campos de marca son necesarios. Para más detalles haga clic en:",
1012
"Password is required": "se requiere contraseña",
@@ -540,6 +542,8 @@
540542
"CENTER": "CENTRO",
541543
"Capitalized Income": "Ingresos capitalizados",
542544
"Capitalized Income Adjustment": "Ajuste de ingresos capitalizados",
545+
"Buy Down Fee": "Comisión de compra",
546+
"Buy Down Fee Adjustment": "Ajuste de la tasa de recompra",
543547
"Client": "Cliente",
544548
"cash_mgmt": "gestión_efectivo",
545549
"collection_sheet": "hoja_coleccion",
@@ -814,6 +818,7 @@
814818
"Add/Edit Currency": "Agregar/Editar moneda",
815819
"Address": "Domicilio",
816820
"Adjustment Capitalized Income Transaction": "Ajuste Transacción de Ingreso Capitalizado",
821+
"Adjustment Buy Down Fee Transaction": "Transacción de la Comisión de Adquisición de Ajuste",
817822
"Advanced Accounting Rules": "Reglas de contabilidad avanzadas",
818823
"All Charges": "Todos los cargos",
819824
"All Dividends": "Todos los dividendos",
@@ -2517,6 +2522,7 @@
25172522
"Block Withdrawal": "Bloquear retiros",
25182523
"Breadcrumbs": "Migas de pan",
25192524
"Buy Down Fee": "Comisión de compra inicial",
2525+
"Buy Down Fee Adjustment": "Ajuste de la tasa de recompra",
25202526
"Calculate Interest": "Calcular interés",
25212527
"Capitalized Income": "Ingreso capitalizado",
25222528
"Capitalized Income Adjustment": "Ajuste de ingresos capitalizados",

src/assets/translations/fr-FR.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
"errors": {
66
"Capitalized Income amount adjusted already adjusted": "Montant du revenu capitalisé ajusté déjà ajusté",
77
"Capitalized Income Adjustment amount must be lower or equal to": "Le montant de l'ajustement du revenu capitalisé doit être inférieur ou égal à",
8+
"Buy Down Fee amount already adjusted": "Montant de la commission de rachat déjà ajusté",
9+
"Buy Down Fee Adjustment amount must be lower or equal to": "Le montant de l'ajustement de la commission de rachat doit être inférieur ou égal à",
810
"Email not valid": "E-mail non valide",
911
"Filling Details": "Cliquez pour commencer à remplir les détails. * Les champs de marque sont nécessaires. Pour plus de détails, cliquez sur :",
1012
"Password is required": "Mot de passe requis",
@@ -540,6 +542,8 @@
540542
"CENTER": "CENTRE",
541543
"Capitalized Income": "Revenu capitalisé",
542544
"Capitalized Income Adjustment": "Ajustement du revenu capitalisé",
545+
"Buy Down Fee": "Frais de rachat",
546+
"Buy Down Fee Adjustment": "Ajustement de la commission de rachat",
543547
"Client": "Client",
544548
"cash_mgmt": "cash_mgmt",
545549
"collection_sheet": "feuille_collection",
@@ -815,6 +819,7 @@
815819
"Add/Edit Currency": "Ajouter/Modifier une devise",
816820
"Address": "Adresse",
817821
"Adjustment Capitalized Income Transaction": "Transaction de revenu capitalisé d’ajustement",
822+
"Adjustment Buy Down Fee Transaction": "Ajustement des frais de rachat Transaction",
818823
"Advanced Accounting Rules": "Règles comptables avancées",
819824
"All Charges": "Tous les frais",
820825
"All Dividends": "Tous les dividendes",
@@ -2517,6 +2522,7 @@
25172522
"Block Withdrawal": "Bloquer le retrait",
25182523
"Breadcrumbs": "Chapelure",
25192524
"Buy Down Fee": "Frais d'achat initial",
2525+
"Buy Down Fee Adjustment": "Ajustement de la commission de rachat",
25202526
"Calculate Interest": "Calculer les intérêts",
25212527
"Capitalized Income": "Revenu capitalisé",
25222528
"Capitalized Income Adjustment": "Ajustement du revenu capitalisé",

src/assets/translations/it-IT.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
"errors": {
66
"Capitalized Income amount adjusted already adjusted": "Importo del reddito capitalizzato rettificato già rettificato",
77
"Capitalized Income Adjustment amount must be lower or equal to": "L'importo dell'adeguamento del reddito capitalizzato deve essere inferiore o uguale a",
8+
"Buy Down Fee amount already adjusted": "Importo della Buy Down Fee già adeguato",
9+
"Buy Down Fee Adjustment amount must be lower or equal to": "L'importo della Buy Down Fee Adjustment deve essere inferiore o uguale a",
810
"Email not valid": "E-mail non valida",
911
"Filling Details": "Fare clic per iniziare a compilare i dettagli. *I campi contrassegnati sono obbligatori. Per maggiori dettagli clicca:",
1012
"Password is required": "E 'richiesta la password",
@@ -540,6 +542,8 @@
540542
"CENTER": "CENTRO",
541543
"Capitalized Income": "Reddito capitalizzato",
542544
"Capitalized Income Adjustment": "Adeguamento del reddito capitalizzato",
545+
"Buy Down Fee": "Commissione di acquisto",
546+
"Buy Down Fee Adjustment": "Adeguamento della commissione di acquisto",
543547
"Client": "Cliente",
544548
"cash_mgmt": "cash_mgmt",
545549
"collection_sheet": "foglio_raccolta",
@@ -815,6 +819,7 @@
815819
"Add/Edit Currency": "Aggiungi/modifica valuta",
816820
"Address": "Indirizzo",
817821
"Adjustment Capitalized Income Transaction": "Operazione di reddito capitalizzato di aggiustamento",
822+
"Adjustment Buy Down Fee Transaction": "Adeguamento Tassa di riacquisto Transazione",
818823
"Advanced Accounting Rules": "Regole contabili avanzate",
819824
"All Charges": "Tutte le spese",
820825
"All Dividends": "Tutti i dividendi",
@@ -2517,6 +2522,7 @@
25172522
"Block Withdrawal": "Blocca il ritiro",
25182523
"Breadcrumbs": "Briciole di pane",
25192524
"Buy Down Fee": "Commissione di acquisto",
2525+
"Buy Down Fee Adjustment": "Adeguamento della commissione di acquisto",
25202526
"Calculate Interest": "Calcola gli interessi",
25212527
"Capitalized Income": "Reddito capitalizzato",
25222528
"Capitalized Income Adjustment": "Adeguamento del reddito capitalizzato",

0 commit comments

Comments
 (0)