/** * Update the specified resource in storage. * * @Put("user/update/{id}") * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $user = User::find($id); $user->fill($request->all()); $user->save(); Session::flash('message', 'Usuario editado correctamente'); return Redirect::to('/user'); }
/** * @Post("reservar/{id}") */ public function doReserve(Request $request, $id) { // 1. Comprobar que el usuario tenga una tarifa (si no tiene no tiene sentido hacer mas comprobaciones) if (\Auth::user()->payment == null && \Auth::user()->bonus == null) { Session::flash('message-error', 'No tiene ninguna tarifa o bono asignada. Por favor contacte con administración de su centro'); return Redirect::to("horario"); } // 2. Comprobar que la tarifa del usuario no ha caducado aun $paymentDay = \Auth::user()->payment_day; $paymentDaySegmented = explode('-', $paymentDay); $limitToPay = date_create($paymentDaySegmented[0] . "-" . ($paymentDaySegmented[1] + 1) . "-7"); $today = date_create(date('Y-m-d', strtotime("now"))); $aWeek = array('M' => 1, 'T' => 2, 'W' => 3, 'Tu' => 4, 'F' => 5, 'S' => 6, 'Su' => 7); $event = ClaseSchedule::find($id); $todayWeek = date('N'); $reserveDay = $aWeek[$event->date]; $daysBetween = $this->subtractDate($todayWeek, $reserveDay); $reserveDate = date('Y-m-d', strtotime("now + " . $daysBetween . " day")); if ($today > $limitToPay) { //2.1 Comprobar que el usuario tenga bono, si no tiene tarifa if (\Auth::user()->bonus != null) { if (\Auth::user()->bonus_days == 0) { Session::flash('message-error', 'Su tarifa ha caducado y su bono no tiene clases restantes. Por favor contacte con administración de su centro'); return Redirect::to("horario"); } else { $user = User::find(\Auth::user()->id); $user->bonus_days = $user->bonus_days - 1; $user->save(); $reserve = new Reserve(); $reserve->user_id = $user->id; $reserve->event_id = $id; $reserve->reserve_day = $reserveDate; $reserve->save(); Session::flash('message-success', 'Reserva realizada con exito'); return Redirect::to("horario"); } } else { Session::flash('message-error', 'Su tarifa ha caducado. Por favor contacte con administración de su centro'); return Redirect::to("horario"); } } // 3. Comprobar que el usuario no ha reservado mas clases de las que puede reservar en esa semana $limiInf = strtotime($reserveDate); while (date('w', $limiInf) > 1) { $limiInf -= 86400; } $limitSup = date('Y-m-d', $limiInf + 6 * 86400); $limiInf = date('Y-m-d', $limiInf); $reservesDone = Reserve::where('user_id', \Auth::user()->id)->whereBetween('reserve_day', [$limiInf, $limitSup])->count(); if (\Auth::user()->payment == null || \Auth::user()->payment->weekReserves - $reservesDone == 0) { if (\Auth::user()->bonus != null) { if (\Auth::user()->bonus_days == 0) { Session::flash('message-error', 'Ha agotado las reservas de su tarifa semanal y su bono no tiene clases restantes. Por favor contacte con administración de su centro'); return Redirect::to("horario"); } else { $user = User::find(\Auth::user()->id); $user->bonus_days = $user->bonus_days - 1; $user->save(); $reserve = new Reserve(); $reserve->user_id = $user->id; $reserve->event_id = $id; $reserve->reserve_day = $reserveDate; $reserve->save(); Session::flash('message-success', 'Reserva realizada con exito con su bono'); return Redirect::to("horario"); } } Session::flash('message-error', 'Ha agotado las reservas de su tarifa semanal.'); return Redirect::to("horario"); } else { //4. Comprobar que el usuario no haya reservado ya esa clase if (Reserve::where('user_id', \Auth::user()->id)->where('reserve_day', $reserveDate)->where('event_id', $id)->count() > 0) { Session::flash('message-error', 'Ya ha reservado esta clase.'); return Redirect::to("horario"); } else { if (Reserve::where('user_id', \Auth::user()->id)->where('reserve_day', $reserveDate)->count() > 0) { Session::flash('message-error', 'Lo sentimos, su tarifa solo le permite reservar ' . \Auth::user()->payment->dayReserves . ' vez por día'); return Redirect::to("horario"); } else { $reserve = new Reserve(); $reserve->user_id = \Auth::user()->id; $reserve->event_id = $id; $reserve->reserve_day = $reserveDate; $reserve->save(); Session::flash('message-success', 'Reserva realizada con exito'); return Redirect::to("horario"); } } } }
/** * Change the user password by ajax petition * * @Post("ajax/password/change") * @param \Illuminate\Http\Request $request */ public function change(ChangePasswordRequest $request) { if ($request->ajax()) { $user = User::find($request->id); if (Hash::check($request->current_password, $user->password)) { $user->password = bcrypt($request->password); $user->save(); return 1; } else { return false; } } }
/** * @Post("user/profile/storeAvatar/{id}") */ public function storeAvatar(Request $request, $id) { $user = User::find($id); $user->avatar = $request->avatar; $user->save(); return Redirect::to('/user/profile/' . $id); }