mirror of
https://gitlab.com/CIEFWorldwideSdnBhd/exchange-2.0.git
synced 2026-08-19 04:23:55 +00:00
-Approve refund - only super admin
-If invoice generated - only super admin can request refund
This commit is contained in:
@@ -73,14 +73,16 @@ class CreateBookingRefundLogic extends AbstractControllerLogic
|
|||||||
public function logic(Request $request) : JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
|
|
||||||
if(auth()->user()->type === 3) {
|
|
||||||
throw new MalformedRequestException('You do not have the permission to refund the order.');
|
|
||||||
}
|
|
||||||
|
|
||||||
$transaction = $this->fetchesTransaction->execute(['id' => $request->route('payment_id')]);
|
$transaction = $this->fetchesTransaction->execute(['id' => $request->route('payment_id')]);
|
||||||
|
|
||||||
$booking = $transaction->owner;
|
$booking = $transaction->owner;
|
||||||
|
|
||||||
|
$invoice = $booking->transactions()->where('type', TransactionType::INVOICE)->whereIn('status', [ApprovalStatus::APPROVED, ApprovalStatus::COMPLETED])->first();
|
||||||
|
|
||||||
|
if(auth()->user()->type === 3 || ($invoice && !(auth()->user()->type === 0 || auth()->user()->type === 1))) {
|
||||||
|
throw new MalformedRequestException('You do not have the permission to refund the order.');
|
||||||
|
}
|
||||||
|
|
||||||
$billNumber = $this->generatesTransactionBillNumber->execute('RFD-');
|
$billNumber = $this->generatesTransactionBillNumber->execute('RFD-');
|
||||||
|
|
||||||
$refund = $transaction->transactions()->refunds()->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED])->sum('original_amount');
|
$refund = $transaction->transactions()->refunds()->whereIn('status', [ApprovalStatus::PENDING_VERIFICATION, ApprovalStatus::APPROVED])->sum('original_amount');
|
||||||
|
|||||||
+6
-1
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
namespace App\Classes\Modules\Transactions\ControllersLogic;
|
namespace App\Classes\Modules\Transactions\ControllersLogic;
|
||||||
|
|
||||||
|
use App\Classes\Exceptions\MalformedRequestException;
|
||||||
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
use App\Classes\General\Abstracts\AbstractControllerLogic;
|
||||||
use App\Classes\Modules\Bookings\ControllersLogic\UpdateBookingAmountLogic;
|
use App\Classes\Modules\Bookings\ControllersLogic\UpdateBookingAmountLogic;
|
||||||
use App\Classes\Modules\Companies\Services\FetchesCompany;
|
use App\Classes\Modules\Companies\Services\FetchesCompany;
|
||||||
@@ -17,6 +17,7 @@ use App\Classes\Modules\Wallets\Processors\CreditWalletProcessor;
|
|||||||
use App\Classes\Modules\Bookings\Services\CalculatesBookingPayableAmount;
|
use App\Classes\Modules\Bookings\Services\CalculatesBookingPayableAmount;
|
||||||
use App\Classes\Modules\Bookings\Services\CalculatesBookingRefundAmount;
|
use App\Classes\Modules\Bookings\Services\CalculatesBookingRefundAmount;
|
||||||
use App\Classes\ValueObjects\Constants\TransactionType;
|
use App\Classes\ValueObjects\Constants\TransactionType;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
class UpdateRefundTransactionStatusLogic extends AbstractControllerLogic
|
class UpdateRefundTransactionStatusLogic extends AbstractControllerLogic
|
||||||
{
|
{
|
||||||
@@ -85,6 +86,10 @@ class UpdateRefundTransactionStatusLogic extends AbstractControllerLogic
|
|||||||
*/
|
*/
|
||||||
public function logic(Request $request) : JsonResponse
|
public function logic(Request $request) : JsonResponse
|
||||||
{
|
{
|
||||||
|
if (!(Auth::user()->type === 0 || Auth::user()->type === 1)) {
|
||||||
|
throw new MalformedRequestException('Only super admin can update refund status.');
|
||||||
|
}
|
||||||
|
|
||||||
$refundTransaction = $this->fetchesTransaction->execute(['id' => $request->route('id')]);
|
$refundTransaction = $this->fetchesTransaction->execute(['id' => $request->route('id')]);
|
||||||
|
|
||||||
$refundTransaction = $this->updatesTransactionStatus->execute($refundTransaction, $request->route('status'));
|
$refundTransaction = $this->updatesTransactionStatus->execute($refundTransaction, $request->route('status'));
|
||||||
|
|||||||
@@ -290,7 +290,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row m-t-10" v-show="!hasRefundInProgress && [2, 3].includes(item.status) && (totalRequestedRefund + totalRefunds) < data.original_amount">
|
<div class="row m-t-10" v-show="!hasRefundInProgress && [2, 3].includes(item.status) && (totalRequestedRefund + totalRefunds) < data.original_amount">
|
||||||
<div class="col" v-if="$store.getters.isAdmin">
|
<div class="col" v-if="$store.getters.isSuperAdmin || ($store.getters.isAdmin && !data.booking.documents.invoice)">
|
||||||
<button class="btn btn-xs all-caps b-rad-none bg-master-lighter btn-block no-border requestModal" data-type="transferSummary">Request Refund</button>
|
<button class="btn btn-xs all-caps b-rad-none bg-master-lighter btn-block no-border requestModal" data-type="transferSummary">Request Refund</button>
|
||||||
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="transferSummary" size="large">
|
<modal-component class="animate__animated animate__fast animate__fadeIn" styleType="fill-in" type="transferSummary" size="large">
|
||||||
<refund-confirmation-component :data="data" :section="section" :totalRefunds="totalRequestedRefund + totalRefunds"></refund-confirmation-component>
|
<refund-confirmation-component :data="data" :section="section" :totalRefunds="totalRequestedRefund + totalRefunds"></refund-confirmation-component>
|
||||||
@@ -345,7 +345,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row m-b-15 text-right parentContainer" v-if="$store.getters.isAdmin && refund.status === 1">
|
<div class="row m-b-15 text-right parentContainer" v-if="$store.getters.isSuperAdmin && refund.status === 1">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<button class="btn btn-xs btn-outline-danger b-rad-none m-r-5 requestModal" data-type="rejectRefund">
|
<button class="btn btn-xs btn-outline-danger b-rad-none m-r-5 requestModal" data-type="rejectRefund">
|
||||||
<i class="fa fa-times fa-fw"></i>
|
<i class="fa fa-times fa-fw"></i>
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
</div>
|
</div>
|
||||||
<div class="row m-b-10">
|
<div class="row m-b-10">
|
||||||
<div class="col">
|
<div class="col">
|
||||||
<div class="text-right">
|
<div class="text-right" v-if="$store.getters.isSuperAdmin">
|
||||||
<button class="btn btn-xs btn-outline-danger b-rad-none m-r-5 requestModal" data-type="rejectRefund">
|
<button class="btn btn-xs btn-outline-danger b-rad-none m-r-5 requestModal" data-type="rejectRefund">
|
||||||
<i class="fa fa-times fa-fw"></i>
|
<i class="fa fa-times fa-fw"></i>
|
||||||
</button>
|
</button>
|
||||||
|
|||||||
Reference in New Issue
Block a user