diff --git a/app/Http/Controllers/BookingController.php b/app/Http/Controllers/BookingController.php index 7a8313ce..2ef021e0 100644 --- a/app/Http/Controllers/BookingController.php +++ b/app/Http/Controllers/BookingController.php @@ -42,7 +42,16 @@ class BookingController extends Controller */ public function create($type,$id) { - return view('admin.booking.create',['items' => \App\Item::training(),'event_type' => $type,'event_id' => $id]); + $event = null; + if($type == 'course') + { + $event = \App\Course::find($id)->event; + } + else if ($type == 'event') + { + $event = \App\Event::find($id); + } + return view('admin.booking.create',['items' => \App\Item::training(),'event_type' => $type,'event_id' => $id,'event' => $event]); } /** @@ -136,13 +145,31 @@ class BookingController extends Controller $b->delete(); } - public function modalItem($id) + public function modalItem($id,$event_type,$event_id) { - return view('admin.booking.modal.create',['item' => \App\Item::find($id)]); + $event = null; + if ($event_type == 'course') + { + $event = \App\Course::find($event_id)->event; + } + else + { + $event = \App\Event::find($event_id); + } + return view('admin.booking.modal.create',['item' => \App\Item::find($id),'event' => $event]); } - public function modalItemEdit($id) + public function modalItemEdit($id,$event_type,$event_id) { - return view('admin.booking.modal.edit',['booking' => \App\Booking::find($id)]); + $event = null; + if ($event_type == 'course') + { + $event = \App\Course::find($event_id)->event; + } + else + { + $event = \App\Event::find($event_id); + } + return view('admin.booking.modal.edit',['booking' => \App\Booking::find($id),'event' => $event]); } } diff --git a/app/Item.php b/app/Item.php index f4e585e9..17391c9b 100644 --- a/app/Item.php +++ b/app/Item.php @@ -51,15 +51,52 @@ class Item extends Model { return $this->quantity - $this->booked(); } + else + { + return $this->quantity - $this->booked($begin,$end); + } } - public function booked() + public function booked($begin_time = null,$end_time = null) { $nbBooked = 0; - - foreach ($this->bookings() as $b) + foreach ($this->bookings as $b) { - $nbBooked = $nbBooked + $b->amount; + if ($begin_time != null && $end_time != null) + { + $b_begin_time = null; + $b_end_time = null; + if ($b->bookable_type == 'App\Course') + { + $b_begin_time = $b->bookable->event->date_begin; + $b_end_time = $b->bookable->event->date_end; + } + else + { + $b_begin_time = $b->bookable->date_begin; + $b_end_time = $b->bookable->date_end; + } + if (date('U',strtotime($b_begin_time)) <= date('U',strtotime($begin_time)) && date('U',strtotime($b_end_time)) <= date('U',strtotime($end_time)) && date('U',strtotime($b_end_time)) >= date('U',strtotime($begin_time))) + { + $nbBooked = $nbBooked + $b->amount; + } + elseif (date('U',strtotime($b_begin_time)) <= date('U',strtotime($begin_time)) && date('U',strtotime($b_end_time)) >= date('U',strtotime($end_time))) + { + $nbBooked = $nbBooked + $b->amount; + } + elseif (date('U',strtotime($b_begin_time)) >= date('U',strtotime($begin_time)) && date('U',strtotime($b_begin_time)) <= date('U',strtotime($end_time)) && date('U',strtotime($b_end_time)) >= date('U',strtotime($end_time))) + { + $nbBooked = $nbBooked + $b->amount; + } + elseif (date('U',strtotime($b_begin_time)) >= date('U',strtotime($begin_time)) && date('U',strtotime($b_begin_time)) <= date('U',strtotime($end_time))) + { + $nbBooked = $nbBooked + $b->amount; + } + } + else + { + $nbBooked = $nbBooked + $b->amount; + } } return $nbBooked; diff --git a/resources/views/admin/booking/create.blade.php b/resources/views/admin/booking/create.blade.php index abe8455f..47644b78 100644 --- a/resources/views/admin/booking/create.blade.php +++ b/resources/views/admin/booking/create.blade.php @@ -27,7 +27,7 @@
2019-09-11
++ Nouveauté +
+ Bug +