breadcrumbs fix with mobile reserved not to delete
This commit is contained in:
parent
cd4d1863e8
commit
c7c558b224
|
|
@ -95,7 +95,10 @@ class EventCheckoutController extends Controller
|
|||
/*
|
||||
* Remove any tickets the user has reserved
|
||||
*/
|
||||
ReservedTickets::where('session_id', '=', session()->getId())->delete();
|
||||
ReservedTickets::where('session_id', '=', session()->getId())
|
||||
->whereNull('expects_payment_at')
|
||||
->orWhere('expects_payment_at','<',Carbon::now()->addMinutes(-5))
|
||||
->delete();
|
||||
|
||||
/*
|
||||
* Go though the selected tickets and check if they're available
|
||||
|
|
@ -321,16 +324,6 @@ class EventCheckoutController extends Controller
|
|||
//Add the request data to a session in case payment is required off-site
|
||||
session()->push('ticket_order_' . $event_id . '.request_data', $request->except(['card-number', 'card-cvc']));
|
||||
|
||||
$orderRequiresPayment = $ticket_order['order_requires_payment'];
|
||||
|
||||
if ($orderRequiresPayment && $request->get('pay_offline') && $event->enable_offline_payments) {
|
||||
return $this->completeOrder($event_id);
|
||||
}
|
||||
|
||||
if (!$orderRequiresPayment) {
|
||||
return $this->completeOrder($event_id);
|
||||
}
|
||||
|
||||
try {
|
||||
$orderService = new OrderService($ticket_order['order_total'], $ticket_order['total_booking_fee'], $event);
|
||||
$orderService->calculateFinalCosts();
|
||||
|
|
@ -504,167 +497,13 @@ class EventCheckoutController extends Controller
|
|||
$data = OrderService::mobileCompleteOrder($order);
|
||||
return view('mobile.Pages.ViewOrderPageApp', $data);
|
||||
} else {
|
||||
ReservedTickets::where('session_id', $order->session_id)
|
||||
->where('event_id', $event_id)
|
||||
->update(['expects_payment_at' => Carbon::now()]);
|
||||
ProcessPayment::dispatch($order)->delay(now()->addMinutes(5));
|
||||
return $this->render('Pages.OrderExpectingPayment',$order);
|
||||
}
|
||||
}
|
||||
/**
|
||||
* Complete an order
|
||||
*
|
||||
* @param $event_id
|
||||
* @param bool|true $return_json
|
||||
* @return \Illuminate\Http\JsonResponse|\Illuminate\Http\RedirectResponse
|
||||
*/
|
||||
public function completeOrder($event_id, $return_json = true)
|
||||
{
|
||||
|
||||
DB::beginTransaction();
|
||||
|
||||
try {
|
||||
|
||||
$order = Order::with('event')
|
||||
->where('event_id', $event_id)
|
||||
->where('session_id', session()->getId());
|
||||
$ticket_order = session()->get('ticket_order_' . $event_id);
|
||||
$request_data = $ticket_order['request_data'][0];
|
||||
// $event = Event::findOrFail($ticket_order['event_id']);
|
||||
$attendee_increment = 1;
|
||||
$ticket_questions = isset($request_data['ticket_holder_questions']) ? $request_data['ticket_holder_questions'] : [];
|
||||
$order->order_status_id = isset($request_data['pay_offline']) ? config('attendize.order_awaiting_payment') : config('attendize.order_complete');
|
||||
$order->is_payment_received = isset($request_data['pay_offline']) ? 0 : 1;
|
||||
$order->save();
|
||||
|
||||
/*
|
||||
* Update the event sales volume
|
||||
*/
|
||||
$order->event->increment('sales_volume', $order->amount);
|
||||
$order->event->increment('organiser_fees_volume', $order->organiser_booking_fee);
|
||||
|
||||
/*
|
||||
* Update the event stats
|
||||
*/
|
||||
$event_stats = EventStats::updateOrCreate([
|
||||
'event_id' => $event_id,
|
||||
'date' => DB::raw('CURRENT_DATE'),
|
||||
]);
|
||||
$event_stats->increment('tickets_sold', $ticket_order['total_ticket_quantity']);
|
||||
|
||||
if ($ticket_order['order_requires_payment']) {
|
||||
$event_stats->increment('sales_volume', $order->amount);
|
||||
$event_stats->increment('organiser_fees_volume', $order->organiser_booking_fee);
|
||||
}
|
||||
|
||||
/*
|
||||
* Add the attendees
|
||||
*/
|
||||
foreach ($ticket_order['tickets'] as $attendee_details) {
|
||||
|
||||
$ticket = Ticket::findOrFail($attendee_details['ticket']['id']);
|
||||
|
||||
/*
|
||||
* Update some ticket info
|
||||
*/
|
||||
$ticket->increment('quantity_sold', $attendee_details['qty']);
|
||||
$ticket->increment('sales_volume', ($attendee_details['ticket']['price'] * $attendee_details['qty']));
|
||||
$ticket->increment('organiser_fees_volume',
|
||||
($attendee_details['ticket']['organiser_booking_fee'] * $attendee_details['qty']));
|
||||
|
||||
/*
|
||||
* Create the attendees
|
||||
*/
|
||||
foreach ($attendee_details['seats'] as $i) {
|
||||
|
||||
$attendee = new Attendee();
|
||||
$attendee->first_name = strip_tags($request_data["ticket_holder_first_name"][$i][$attendee_details['ticket']['id']]);
|
||||
$attendee->last_name = strip_tags($request_data["ticket_holder_last_name"][$i][$attendee_details['ticket']['id']]);
|
||||
$attendee->email = $request_data["ticket_holder_email"][$i][$attendee_details['ticket']['id']];
|
||||
$attendee->event_id = $event_id;
|
||||
$attendee->order_id = $order->id;
|
||||
$attendee->ticket_id = $attendee_details['ticket']['id'];
|
||||
$attendee->account_id = $order->account_id;
|
||||
$attendee->reference_index = $attendee_increment;
|
||||
$attendee->seat_no = $i;
|
||||
$attendee->save();
|
||||
|
||||
|
||||
/*
|
||||
* Save the attendee's questions
|
||||
*/
|
||||
foreach ($attendee_details['ticket']->questions as $question) {
|
||||
|
||||
|
||||
$ticket_answer = isset($ticket_questions[$attendee_details['ticket']->id][$i][$question->id]) ? $ticket_questions[$attendee_details['ticket']->id][$i][$question->id] : null;
|
||||
|
||||
if (is_null($ticket_answer)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
/*
|
||||
* If there are multiple answers to a question then join them with a comma
|
||||
* and treat them as a single answer.
|
||||
*/
|
||||
$ticket_answer = is_array($ticket_answer) ? implode(', ', $ticket_answer) : $ticket_answer;
|
||||
|
||||
if (!empty($ticket_answer)) {
|
||||
QuestionAnswer::create([
|
||||
'answer_text' => $ticket_answer,
|
||||
'attendee_id' => $attendee->id,
|
||||
'event_id' => $event_id,
|
||||
'account_id' => $order->account_id,
|
||||
'question_id' => $question->id
|
||||
]);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* Keep track of total number of attendees */
|
||||
$attendee_increment++;
|
||||
}
|
||||
}
|
||||
|
||||
} catch (Exception $e) {
|
||||
|
||||
Log::error($e);
|
||||
DB::rollBack();
|
||||
|
||||
return response()->json([
|
||||
'status' => 'error',
|
||||
'message' => trans('ClientSide.order_error')
|
||||
]);
|
||||
|
||||
}
|
||||
//save the order to the database
|
||||
DB::commit();
|
||||
//forget the order in the session
|
||||
session()->forget('ticket_order_' . $event_id);
|
||||
|
||||
/*
|
||||
* Remove any tickets the user has reserved after they have been ordered for the user
|
||||
*/
|
||||
ReservedTickets::where('session_id', '=', session()->getId())->delete();
|
||||
|
||||
// Queue up some tasks - Emails to be sent, PDFs etc.
|
||||
Log::info('Firing the event');
|
||||
event(new OrderCompletedEvent($order));
|
||||
|
||||
|
||||
if ($return_json) {
|
||||
return response()->json([
|
||||
'status' => 'success',
|
||||
'redirectUrl' => route('showOrderDetails', [
|
||||
'is_embedded' => $this->is_embedded,
|
||||
'order_reference' => $order->order_reference,
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
return response()->redirectToRoute('showOrderDetails', [
|
||||
'is_embedded' => $this->is_embedded,
|
||||
'order_reference' => $order->order_reference,
|
||||
]);
|
||||
|
||||
}
|
||||
|
||||
/**
|
||||
* Show the order details page
|
||||
|
|
|
|||
|
|
@ -64,6 +64,7 @@ class PublicController extends Controller
|
|||
->get();
|
||||
|
||||
|
||||
dd($sub_cats);
|
||||
$lastKid = $sub_cats->pop();
|
||||
|
||||
$data['category'] = $lastKid?:$lastKid->parent;
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@
|
|||
namespace App\Jobs;
|
||||
|
||||
use App\Models\Order;
|
||||
use App\Models\ReservedTickets;
|
||||
use App\Payment\CardPayment;
|
||||
use App\Services\EventOrderService;
|
||||
use Illuminate\Bus\Queueable;
|
||||
|
|
@ -48,5 +49,10 @@ class ProcessPayment extends Job implements ShouldQueue
|
|||
//todo send mail that order is unsuccessfull;
|
||||
Log::info('ProcessPayment Job payment is unsuccessful for order id: '.$this->order->id);
|
||||
}
|
||||
|
||||
ReservedTickets::where('event_id', $this->order->event_id)
|
||||
->where('session_id',$this->order->session_id)
|
||||
->whereNotNull('expects_payment_at')
|
||||
->delete();
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -13,6 +13,7 @@ namespace App\Models;
|
|||
*/
|
||||
class ReservedTickets extends \Illuminate\Database\Eloquent\Model
|
||||
{
|
||||
protected $dates = ['expects_payment_at'];
|
||||
public function ticket()
|
||||
{
|
||||
return $this->belongsTo(Ticket::class);
|
||||
|
|
|
|||
|
|
@ -4,23 +4,6 @@
|
|||
<link href="{{asset('vendor/gijgo/gijgo.min.css')}}" rel="stylesheet" type="text/css" />
|
||||
@endsection
|
||||
|
||||
@section('content')
|
||||
{{\DaveJamesMiller\Breadcrumbs\Facades\Breadcrumbs::render('category',$category)}}
|
||||
@include("Shared.Partials.FilterMenu")
|
||||
|
||||
@yield('inner_content')
|
||||
|
||||
{{-- <section id="first-add-wrapper" style="margin: 100px 0;">--}}
|
||||
{{-- <div class="container">--}}
|
||||
{{-- <div class="row" style="padding: 0 20px;">--}}
|
||||
{{-- <a href="" style="width: 100%">--}}
|
||||
{{-- <img src="{{asset('assets/images/advs/first.png')}}" style="width: 100%">--}}
|
||||
{{-- </a>--}}
|
||||
{{-- </div>--}}
|
||||
{{-- </div>--}}
|
||||
{{-- </section>--}}
|
||||
|
||||
@endsection
|
||||
@push('after_styles')
|
||||
<style type="text/css">
|
||||
.red_button{
|
||||
|
|
|
|||
|
|
@ -1,5 +1,7 @@
|
|||
@extends("desktop.Layouts.EventsLayout")
|
||||
@section('inner_content')
|
||||
@section('content')
|
||||
{{\DaveJamesMiller\Breadcrumbs\Facades\Breadcrumbs::render('sub_category',$category)}}
|
||||
@include("Shared.Partials.FilterMenu")
|
||||
<section class="movie-items-group">
|
||||
<div class="container">
|
||||
<div class="row kinoteator tab-part">
|
||||
|
|
|
|||
|
|
@ -1,5 +1,8 @@
|
|||
@extends("desktop.Layouts.EventsLayout")
|
||||
@section('inner_content')
|
||||
@section('content')
|
||||
{{\DaveJamesMiller\Breadcrumbs\Facades\Breadcrumbs::render('category',$category)}}
|
||||
@include("Shared.Partials.FilterMenu")
|
||||
|
||||
@foreach($sub_cats as $cat)
|
||||
|
||||
@php
|
||||
|
|
|
|||
|
|
@ -12,18 +12,9 @@
|
|||
<meta name="csrf-token" content="{{ csrf_token() }}" />
|
||||
<!-- CSS Global Compulsory -->
|
||||
<link rel="stylesheet" href="{{asset('vendor/bootstrap4/bootstrap.min.css')}}">
|
||||
<!-- CSS Implementing Plugins -->
|
||||
<link rel="stylesheet" href="{{asset('vendor/icon-awesome/css/font-awesome.min.css')}}">
|
||||
|
||||
@yield('after_styles')
|
||||
|
||||
|
||||
<!-- CSS Unify Theme -->
|
||||
<link rel="stylesheet" href="{{asset('assets/stylesheet/styles.e-commerce.css')}}">
|
||||
|
||||
<!-- KMB Custom css -->
|
||||
<link rel="stylesheet" href='{{asset("assets/stylesheet/custom.css")}}'>
|
||||
<link rel="stylesheet" href='{{asset("assets/stylesheet/custom_new.css")}}'>
|
||||
@stack('after_styles')
|
||||
|
||||
</head>
|
||||
|
|
@ -34,13 +25,13 @@
|
|||
<section id="intro" class="container">
|
||||
<div class="row">
|
||||
<div class="col-md-12 text-center">
|
||||
<h2 property="name" style="font-weight: bold">Töleg geçmedi. Birsalymdan gaýtadan synanşyp görüň!</h2>
|
||||
<h4 property="name" style="font-weight: bold">Töleg geçmedi. Birsalymdan gaýtadan synanşyp görüň!</h4>
|
||||
</div>
|
||||
</div>
|
||||
</section>
|
||||
<section id="order_form" class="container">
|
||||
|
||||
<h3> {{$message}}</h3>
|
||||
<h5> {{$message}}</h5>
|
||||
</section>
|
||||
|
||||
</main>
|
||||
|
|
|
|||
|
|
@ -12,20 +12,20 @@ Breadcrumbs::for('home', function ($trail) {
|
|||
|
||||
Breadcrumbs::for('category', function ($trail, $category){
|
||||
$trail->parent('home');
|
||||
$trail->push($category->title?? trans('ClientSide.results'), $category->url ?? '#');
|
||||
});
|
||||
|
||||
if(!empty($category) && $category->parent_id){
|
||||
$parent = $category->parent;
|
||||
$trail->push($parent->title ?? '#title_transation', $parent->url?? '#');
|
||||
}
|
||||
$trail->push($category->title?? 'No translation', $category->url ?? '#');
|
||||
Breadcrumbs::for('sub_category', function ($trail, $category){
|
||||
$trail->parent('category',$category->parent);
|
||||
$trail->push($category->title?? trans('ClientSide.results'), $category->url ?? '#');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('event',function($trail, $event){
|
||||
if($event->subCategory)
|
||||
$trail->parent('category', $event->subCategory);
|
||||
$trail->parent('sub_category', $event->subCategory);
|
||||
else
|
||||
$trail->parent('category', $event->mainCategory);
|
||||
$trail->push($event->title?? '#title_transation',$event->event_url ?? '#');
|
||||
$trail->push($event->title?? trans('ClientSide.results'),$event->event_url ?? '#');
|
||||
});
|
||||
|
||||
Breadcrumbs::for('seats',function ($trail,$event){
|
||||
|
|
|
|||
Loading…
Reference in New Issue