Allow Chargeback transaction over payment transactions (#1784)
Co-authored-by: Jose Alberto Hernandez <alberto@blue-daemon.local>
This commit is contained in:
co-authored by
Jose Alberto Hernandez
parent
e1e3429b66
commit
22afdb21e1
@@ -12,7 +12,7 @@ import { LoansAccountButtonConfiguration } from './loan-accounts-button-config';
|
|||||||
/** Dialog Components */
|
/** Dialog Components */
|
||||||
import { ConfirmationDialogComponent } from '../../shared/confirmation-dialog/confirmation-dialog.component';
|
import { ConfirmationDialogComponent } from '../../shared/confirmation-dialog/confirmation-dialog.component';
|
||||||
import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component';
|
import { DeleteDialogComponent } from 'app/shared/delete-dialog/delete-dialog.component';
|
||||||
import { LoanStatus } from '../models/loan-status.nodel';
|
import { LoanStatus } from '../models/loan-status.model';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'mifosx-loans-view',
|
selector: 'mifosx-loans-view',
|
||||||
|
|||||||
@@ -3,7 +3,7 @@ import { MatDialog } from '@angular/material/dialog';
|
|||||||
import { ActivatedRoute, Router } from '@angular/router';
|
import { ActivatedRoute, Router } from '@angular/router';
|
||||||
import { Dates } from 'app/core/utils/dates';
|
import { Dates } from 'app/core/utils/dates';
|
||||||
import { LoansService } from 'app/loans/loans.service';
|
import { LoansService } from 'app/loans/loans.service';
|
||||||
import { LoanStatus } from 'app/loans/models/loan-status.nodel';
|
import { LoanStatus } from 'app/loans/models/loan-status.model';
|
||||||
import { SettingsService } from 'app/settings/settings.service';
|
import { SettingsService } from 'app/settings/settings.service';
|
||||||
import { ConfirmationDialogComponent } from 'app/shared/confirmation-dialog/confirmation-dialog.component';
|
import { ConfirmationDialogComponent } from 'app/shared/confirmation-dialog/confirmation-dialog.component';
|
||||||
|
|
||||||
|
|||||||
+11
-3
@@ -14,6 +14,7 @@ import { InputBase } from 'app/shared/form-dialog/formfield/model/input-base';
|
|||||||
import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base';
|
import { SelectBase } from 'app/shared/form-dialog/formfield/model/select-base';
|
||||||
import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component';
|
import { FormDialogComponent } from 'app/shared/form-dialog/form-dialog.component';
|
||||||
import { MatTableDataSource } from '@angular/material/table';
|
import { MatTableDataSource } from '@angular/material/table';
|
||||||
|
import { LoanTransactionType } from 'app/loans/models/loan-transaction-type.model';
|
||||||
|
|
||||||
/** Custom Dialogs */
|
/** Custom Dialogs */
|
||||||
|
|
||||||
@@ -68,9 +69,10 @@ export class ViewTransactionComponent implements OnInit {
|
|||||||
this.transactionData = data.loansAccountTransaction;
|
this.transactionData = data.loansAccountTransaction;
|
||||||
this.allowEdition = !this.transactionData.manuallyReversed && !this.allowTransactionEdition(this.transactionData.type.id);
|
this.allowEdition = !this.transactionData.manuallyReversed && !this.allowTransactionEdition(this.transactionData.type.id);
|
||||||
this.allowUndo = !this.transactionData.manuallyReversed;
|
this.allowUndo = !this.transactionData.manuallyReversed;
|
||||||
this.allowChargeback = this.transactionData.type.repayment && !this.transactionData.manuallyReversed;
|
console.log(this.transactionData.type);
|
||||||
|
this.allowChargeback = this.allowChargebackTransaction(this.transactionData.type) && !this.transactionData.manuallyReversed;
|
||||||
let transactionsChargebackRelated = false;
|
let transactionsChargebackRelated = false;
|
||||||
if (this.transactionData.type.repayment) {
|
if (this.allowChargeback) {
|
||||||
if (this.transactionData.transactionRelations) {
|
if (this.transactionData.transactionRelations) {
|
||||||
this.transactionRelations.data = this.transactionData.transactionRelations;
|
this.transactionRelations.data = this.transactionData.transactionRelations;
|
||||||
this.existTransactionRelations = (this.transactionData.transactionRelations.length > 0);
|
this.existTransactionRelations = (this.transactionData.transactionRelations.length > 0);
|
||||||
@@ -83,7 +85,7 @@ export class ViewTransactionComponent implements OnInit {
|
|||||||
});
|
});
|
||||||
this.amountRelationsAllowed = this.transactionData.amount - amountRelations;
|
this.amountRelationsAllowed = this.transactionData.amount - amountRelations;
|
||||||
this.isFullRelated = (this.amountRelationsAllowed === 0);
|
this.isFullRelated = (this.amountRelationsAllowed === 0);
|
||||||
this.allowChargeback = this.transactionData.type.repayment && !this.isFullRelated;
|
this.allowChargeback = this.allowChargebackTransaction(this.transactionData.type) && !this.isFullRelated;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!this.allowChargeback) {
|
if (!this.allowChargeback) {
|
||||||
@@ -115,6 +117,12 @@ export class ViewTransactionComponent implements OnInit {
|
|||||||
|| transactionType === 23);
|
|| transactionType === 23);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
allowChargebackTransaction(transactionType: LoanTransactionType): boolean {
|
||||||
|
return (transactionType.repayment
|
||||||
|
|| transactionType.goodwillCredit || transactionType.payoutRefund
|
||||||
|
|| transactionType.merchantIssuedRefund);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Undo the loans transaction
|
* Undo the loans transaction
|
||||||
*/
|
*/
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
export interface LoanTransactionType {
|
||||||
|
id: number;
|
||||||
|
code: string;
|
||||||
|
value: string;
|
||||||
|
|
||||||
|
accrual: boolean;
|
||||||
|
approveTransfer: boolean;
|
||||||
|
chargeAdjustment: boolean;
|
||||||
|
chargePayment: boolean;
|
||||||
|
chargeRefund: boolean;
|
||||||
|
chargeback: boolean;
|
||||||
|
chargeoff: boolean;
|
||||||
|
contra: boolean;
|
||||||
|
creditBalanceRefund: boolean;
|
||||||
|
disbursement: boolean;
|
||||||
|
goodwillCredit: boolean;
|
||||||
|
initiateTransfer: boolean;
|
||||||
|
merchantIssuedRefund: boolean;
|
||||||
|
payoutRefund: boolean;
|
||||||
|
recoveryRepayment: boolean;
|
||||||
|
refund: boolean;
|
||||||
|
refundForActiveLoans: boolean;
|
||||||
|
rejectTransfer: boolean;
|
||||||
|
repayment: boolean;
|
||||||
|
repaymentAtDisbursement: boolean;
|
||||||
|
waiveCharges: boolean;
|
||||||
|
waiveInterest: boolean;
|
||||||
|
withdrawTransfer: boolean;
|
||||||
|
writeOff: boolean;
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user