mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-25 23:43:58 +00:00
Merge branch 'dillon/151-fix-wallet-double-refund' into vapor/development
This commit is contained in:
+15
@@ -14,8 +14,11 @@ use App\Classes\Modules\Bookings\Services\CalculatesBookingPayableAmount;
|
||||
use App\Classes\Modules\Bookings\Services\CalculatesBookingRefundAmount;
|
||||
use App\Classes\Modules\Transactions\Standards\Rules\CanUpdateRefundTransactionStatus;
|
||||
use App\Classes\Modules\Transactions\Processors\CreateInvoiceTransactionV2Processor;
|
||||
use App\Classes\ValueObjects\Constants\KVPKey;
|
||||
use App\Classes\ValueObjects\Constants\RemarkRefundReason;
|
||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||
use App\Models\Transaction;
|
||||
use ErrorException;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
|
||||
class UpdateRefundTransactionStatusProcessor
|
||||
@@ -108,6 +111,14 @@ class UpdateRefundTransactionStatusProcessor
|
||||
|
||||
$paidAmount = $paymentTransaction->original_amount - $refundAmount;
|
||||
|
||||
$claimed = Transaction::where('id', $refundTransaction->id)
|
||||
->where('process_status', null)
|
||||
->update(['process_status' => ApprovalStatus::PENDING_VERIFICATION]);
|
||||
|
||||
if (!$claimed) {
|
||||
throw new ErrorException("This refund transaction has already been processed");
|
||||
}
|
||||
|
||||
if ($refundTransaction->status == ApprovalStatus::APPROVED) {
|
||||
$this->creditWalletProcessor->execute($booking->company, $refundTransaction->type, $refundTransaction->amount, $reference, $refundTransaction);
|
||||
|
||||
@@ -141,5 +152,9 @@ class UpdateRefundTransactionStatusProcessor
|
||||
'bookingOriginalStatus' => $booking->status
|
||||
]);
|
||||
}
|
||||
|
||||
Transaction::where('id', $refundTransaction->id)
|
||||
->where('process_status', ApprovalStatus::PENDING_VERIFICATION)
|
||||
->update(['process_status' => ApprovalStatus::APPROVED]);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user