Skip to content

Commit 8d044f6

Browse files
author
Andrey Abumuslimov
committed
SUPEE-7227: Refund Online did not create a new transaction record in Sales > Transactions and Order view > Transactions
- Merge of solution from MAGETWO-43948.
1 parent 38de4f1 commit 8d044f6

File tree

2 files changed

+5
-0
lines changed

2 files changed

+5
-0
lines changed

app/code/Magento/Braintree/Model/PaymentMethod.php

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111
use \Braintree_Transaction;
1212
use \Braintree_Result_Successful;
1313
use Magento\Framework\Exception\LocalizedException;
14+
use Magento\Sales\Model\Order\Payment\Transaction;
1415
use Magento\Sales\Model\Resource\Order\Payment\Transaction\CollectionFactory as TransactionCollectionFactory;
1516
use Magento\Sales\Model\Order\Payment\Transaction as PaymentTransaction;
1617
use Magento\Payment\Model\InfoInterface;
@@ -636,13 +637,15 @@ public function refund(InfoInterface $payment, $amount)
636637
}
637638
}
638639

640+
// transaction should be voided if it not settled
639641
$canVoid = ($transaction->status === \Braintree_Transaction::AUTHORIZED
640642
|| $transaction->status === \Braintree_Transaction::SUBMITTED_FOR_SETTLEMENT);
641643
$result = $canVoid
642644
? $this->braintreeTransaction->void($transactionId)
643645
: $this->braintreeTransaction->refund($transactionId, $amount);
644646
$this->_debug($result);
645647
if ($result->success) {
648+
$payment->setTransactionId($transactionId . '-' . Transaction::TYPE_REFUND);
646649
$payment->setIsTransactionClosed(1);
647650
} else {
648651
throw new LocalizedException($this->errorHelper->parseBraintreeError($result));

app/code/Magento/Braintree/Test/Unit/Model/PaymentMethodTest.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
use Magento\Braintree\Model\PaymentMethod;
1010
use Magento\Framework\TestFramework\Unit\Helper\ObjectManager as ObjectManagerHelper;
11+
use Magento\Sales\Model\Order\Payment\Transaction;
1112
use \Magento\Sales\Model\Resource\Order\Payment\Transaction\CollectionFactory as TransactionCollectionFactory;
1213
use Magento\Framework\Exception\LocalizedException;
1314
use \Braintree_Result_Successful;
@@ -2327,6 +2328,7 @@ public function testRefund()
23272328

23282329
$this->model->refund($paymentObject, $amount);
23292330
$this->assertEquals(1, $paymentObject->getIsTransactionClosed());
2331+
$this->assertEquals($refundTransactionId . '-' .Transaction::TYPE_REFUND, $paymentObject->getTransactionId());
23302332
}
23312333

23322334
/**

0 commit comments

Comments
 (0)