Skip to content

Commit 0a8aa1d

Browse files
Merge pull request #2515 from alberto-art3ch/enhancement/loan_account_undo_contract_termination
Loan account Contract Termination undo
2 parents b4503d3 + c42304f commit 0a8aa1d

File tree

3 files changed

+73
-29
lines changed

3 files changed

+73
-29
lines changed

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

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -196,7 +196,7 @@ export class TransactionsTabComponent implements OnInit {
196196
* INTEREST REFUND:33
197197
* CAPITALIZED INCOME:35
198198
* CAPITALIZED INCOME ADJUSTMENT:37
199-
* CONTRACT_TERMINATION:90
199+
* CONTRACT_TERMINATION:38
200200
*/
201201
showTransaction(transactionsData: LoanTransaction): boolean {
202202
return [
@@ -216,7 +216,7 @@ export class TransactionsTabComponent implements OnInit {
216216
33,
217217
35,
218218
37,
219-
90
219+
38
220220
].includes(transactionsData.type.id);
221221
}
222222

@@ -228,7 +228,8 @@ export class TransactionsTabComponent implements OnInit {
228228
transaction.type.disbursement ||
229229
transaction.type.chargeoff ||
230230
this.isReAgoeOrReAmortize(transaction.type) ||
231-
transaction.type.interestRefund
231+
transaction.type.interestRefund ||
232+
transaction.type.contractTermination
232233
);
233234
}
234235

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

Lines changed: 68 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -163,35 +163,77 @@ export class ViewTransactionComponent implements OnInit {
163163
* Undo the loans transaction
164164
*/
165165
undoTransaction() {
166+
console.log(this.transactionData);
166167
const accountId = this.route.snapshot.params['loanId'];
167-
const undoTransactionAccountDialogRef = this.dialog.open(ConfirmationDialogComponent, {
168-
data: {
169-
heading: this.translateService.instant('labels.heading.Undo Transaction'),
170-
dialogContext:
171-
this.translateService.instant('labels.dialogContext.Are you sure you want undo the transaction') +
172-
`${this.transactionData.id}`
173-
}
174-
});
175-
undoTransactionAccountDialogRef.afterClosed().subscribe((response: { confirm: any }) => {
176-
if (response.confirm) {
177-
const locale = this.settingsService.language.code;
178-
const dateFormat = this.settingsService.dateFormat;
179-
const data = {
180-
transactionDate: this.dateUtils.formatDate(
181-
this.transactionData.date && new Date(this.transactionData.date),
182-
dateFormat
183-
),
184-
transactionAmount: 0,
185-
dateFormat,
186-
locale
187-
};
188-
this.loansService
189-
.executeLoansAccountTransactionsCommand(accountId, 'undo', data, this.transactionData.id)
190-
.subscribe(() => {
168+
169+
if (this.transactionType.contractTermination) {
170+
const formfields: FormfieldBase[] = [
171+
new InputBase({
172+
controlName: 'note',
173+
label: 'Note',
174+
value: '',
175+
type: 'text',
176+
required: false,
177+
order: 1
178+
}),
179+
new InputBase({
180+
controlName: 'reversalExternalId',
181+
label: 'externalId',
182+
value: '',
183+
type: 'text',
184+
required: false,
185+
order: 2
186+
})
187+
188+
];
189+
const data = {
190+
title: this.translateService.instant('labels.heading.Undo Transaction'),
191+
layout: { addButtonText: 'Undo' },
192+
formfields: formfields
193+
};
194+
const undoTransactionAccountDialogRef = this.dialog.open(FormDialogComponent, { data, width: '50rem' });
195+
undoTransactionAccountDialogRef.afterClosed().subscribe((response: any) => {
196+
if (response.data) {
197+
const payload = {
198+
note: response.data.value.note,
199+
reversalExternalId: response.data.value.reversalExternalId
200+
};
201+
202+
this.loansService.loanActionButtons(accountId, 'undoContractTermination', payload).subscribe(() => {
191203
this.router.navigate(['../'], { relativeTo: this.route });
192204
});
193-
}
194-
});
205+
}
206+
});
207+
} else {
208+
const undoTransactionAccountDialogRef = this.dialog.open(ConfirmationDialogComponent, {
209+
data: {
210+
heading: this.translateService.instant('labels.heading.Undo Transaction'),
211+
dialogContext:
212+
this.translateService.instant('labels.dialogContext.Are you sure you want undo the transaction') +
213+
`${this.transactionData.id}`
214+
}
215+
});
216+
undoTransactionAccountDialogRef.afterClosed().subscribe((response: { confirm: any }) => {
217+
if (response.confirm) {
218+
const locale = this.settingsService.language.code;
219+
const dateFormat = this.settingsService.dateFormat;
220+
const data = {
221+
transactionDate: this.dateUtils.formatDate(
222+
this.transactionData.date && new Date(this.transactionData.date),
223+
dateFormat
224+
),
225+
transactionAmount: 0,
226+
dateFormat,
227+
locale
228+
};
229+
this.loansService
230+
.executeLoansAccountTransactionsCommand(accountId, 'undo', data, this.transactionData.id)
231+
.subscribe(() => {
232+
this.router.navigate(['../'], { relativeTo: this.route });
233+
});
234+
}
235+
});
236+
}
195237
}
196238

197239
chargebackTransaction() {

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,4 +36,5 @@ export interface LoanTransactionType {
3636
capitalizedIncomeAdjustment: boolean;
3737
capitalizedIncomeAmortization: boolean;
3838
capitalizedIncomeAmortizationAdjustment: boolean;
39+
contractTermination: boolean;
3940
}

0 commit comments

Comments
 (0)