public function unregister($booking_item_id, $user_id = null) { if (empty($user_id)) { $user_id = Auth::id(); } if (!Auth::user()->isSuperAdmin() && Auth::id() != $user_id) { App::abort(403); } BookingItemUser::where('users_id', '=', $user_id)->where('booking_item_id', '=', $booking_item_id)->delete(); $user = User::find($user_id); $booking_item = BookingItem::find($booking_item_id); Mail::send('booking::emails.unregister', array('booking_item' => $booking_item, 'user' => $user), function ($m) use($user, $booking_item) { $m->from('*****@*****.**', 'Sébastien Hordeaux')->bcc('*****@*****.**', 'Sébastien Hordeaux')->to($booking_item->booking->user->email, $booking_item->booking->user->fullname)->subject(sprintf('%s - Désinscription - %s', $_ENV['organisation_name'], $booking_item->booking->title)); }); return Response::json(array('status' => 'OK', 'user_id' => $user_id)); }
public function logTimeAjax($id) { $booking_item = BookingItem::find($id); if (!$booking_item) { return Response::json(array('status' => 'KO', 'message' => 'La réservation est inconnue')); } $time = new PastTime(); $time->user_id = $booking_item->booking->user_id; $time->ressource_id = $booking_item->ressource_id; $time->date_past = date('Y-m-d', strtotime($booking_item->start_at)); $time->time_start = $booking_item->start_at; $time->time_end = date('Y-m-d H:i:s', strtotime($booking_item->start_at) + $booking_item->duration * 60); $existing = PastTime::query()->where('user_id', $time->user_id)->where('ressource_id', $time->ressource_id)->where('date_past', $time->date_past)->where('time_start', $time->time_start)->where('time_end', $time->time_end)->count() > 0; if ($existing) { return Response::json(array('status' => 'KO', 'message' => sprintf('Un enregistrement similaire à %s est déjà présent', $booking_item->booking->title))); } $time->save(); return Response::json(array('status' => 'OK', 'message' => sprintf('La réunion %s a été comptabilisée', $booking_item->booking->title), 'event' => $booking_item->toJsonEvent())); }