Allow offline payment when no gateway defined

This commit is contained in:
Maxime 2019-01-09 13:01:47 +07:00
parent 3a389e0f80
commit daf4e2942c
3 changed files with 18 additions and 5 deletions

View File

@ -185,8 +185,8 @@ class EventCheckoutController extends Controller
$activeAccountPaymentGateway->fill(['payment_gateway_id' => config('attendize.payment_gateway_dummy')]);
$paymentGateway= $activeAccountPaymentGateway;
} else {
$activeAccountPaymentGateway = $event->account->active_payment_gateway->count() ? $event->account->active_payment_gateway->firstOrFail() : false;
$paymentGateway = $event->account->active_payment_gateway->count() ? $event->account->active_payment_gateway->payment_gateway : false;
$activeAccountPaymentGateway = $event->account->active_payment_gateway ? $event->account->active_payment_gateway->firstOrFail() : false;
$paymentGateway = $event->account->active_payment_gateway ? $event->account->active_payment_gateway->payment_gateway : false;
}
/*
@ -331,11 +331,17 @@ class EventCheckoutController extends Controller
$gateway = Omnipay::create('Dummy');
$gateway->initialize();
} else {
} elseif ($ticket_order['payment_gateway']) {
$gateway = Omnipay::create($ticket_order['payment_gateway']->name);
$gateway->initialize($ticket_order['account_payment_gateway']->config + [
'testMode' => config('attendize.enable_test_payments'),
]);
} else {
Log::error('No payment gateway configured.');
return response()->json([
'status' => 'error',
'message' => 'No payment gateway configured.'
]);
}
$orderService = new OrderService($ticket_order['order_total'], $ticket_order['total_booking_fee'], $event);
@ -382,7 +388,7 @@ class EventCheckoutController extends Controller
break;
default:
Log::error('No payment gateway configured.');
return repsonse()->json([
return response()->json([
'status' => 'error',
'message' => 'No payment gateway configured.'
]);

View File

@ -7,6 +7,7 @@ use App\Models\Order;
use Illuminate\Contracts\Queue\ShouldQueue;
use Illuminate\Queue\InteractsWithQueue;
use Illuminate\Queue\SerializesModels;
use Log;
class SendOrderNotification extends Job implements ShouldQueue
{

View File

@ -159,7 +159,13 @@
@if($event->enable_offline_payments)
<div class="offline_payment_toggle">
<div class="custom-checkbox">
<input data-toggle="toggle" id="pay_offline" name="pay_offline" type="checkbox" value="1">
@if($payment_gateway === false)
{{-- Force offline payment if no gateway --}}
<input type="hidden" name="pay_offline" value="1">
<input id="pay_offline" type="checkbox" value="1" checked disabled>
@else
<input data-toggle="toggle" id="pay_offline" name="pay_offline" type="checkbox" value="1">
@endif
<label for="pay_offline">@lang("Public_ViewEvent.pay_using_offline_methods")</label>
</div>
</div>