public function guardarCita(Request $request) { $cliente = $request->input('user_id'); $programa = $request->input('producto_id'); $fecha = Carbon::createFromFormat('Y-m-d', $request->input('fecha')); $horaId = $request->input('hora'); $hora = Horario::find($horaId); if (!is_null(Cita::where('dia_id', '=', $fecha->dayOfWeek)->where('hora_id', '=', $horaId)->first())) { return \Redirect::back()->with('error', 'Ya existe una cita para la fecha y hora seleccionada.'); } $cita = new Cita(); $cita->user_id = $cliente; $cita->producto_id = $programa; $cita->fecha = $request->input('fecha'); $cita->hora = $hora->nombre; $cita->dia_id = $fecha->dayOfWeek; $cita->creadaporadmin = 1; $cita->hora_id = $horaId; $cita->save(); return \Redirect::back()->with('message', 'La cita ha sido creada exitosamente.'); }
public function HorariosOcupados($dia_cita) { $dayOfWeek = Carbon::now()->dayOfWeek; if ($dayOfWeek >= $dia_cita) { $citaInicial = Carbon::now()->next($dia_cita); } else { $citaInicial = Carbon::now()->next($dia_cita)->addWeek(); } $citas = Cita::distinct()->select('hora_id')->whereDia_id($dia_cita)->where('fecha', '>=', $citaInicial->toDateString())->groupBy('hora_id')->get(); $horasIds = array(); foreach ($citas as $cita) { $horasIds[] = $cita->hora_id; } return $horasIds; }
public function buscarCitasProximas() { $date = Carbon::now()->addDays(3); $citas_1 = Cita::whereFecha($date->toDateString())->get(); foreach ($citas_1 as $cita_1) { $user = User::find($cita_1->user_id); $producto = Producto::find($cita_1->producto_id); $this->sendFirstAppointmentReminder($user, $producto, $cita_1); } $tomorrow = Carbon::now()->tomorrow(); $citas = Cita::whereFecha($tomorrow->toDateString())->get(); foreach ($citas as $cita) { $user = User::find($cita->user_id); $producto = Producto::find($cita->producto_id); $this->sendAppointmentReminder($user, $producto, $cita); } Log::info('Se corrio cron para envio de recordatorios.'); }
protected function esFechaValida($fecha, $horaId, $userId = null, $productoId = null) { $cita = Cita::where('fecha', '=', $fecha)->where('hora_id', '=', $horaId)->first(); if (is_null($cita)) { //no encontre cita return true; } else { //si encontre, ahora si llega userId y productoId, valido que la cita encontrada, no sea del mismo usuario y mismo producto if ($userId > 0 and $productoId > 0) { if ($cita->user_id == $userId and $cita->producto_id == $productoId) { return true; } else { return false; } } else { return false; } } }
public function guardarCitaUnica(Request $request) { $producto = Producto::find($request->input('producto_id')); if (is_null($producto)) { App::abort(404); } $user = User::find(Auth::user()->id); $fechaCarbon = Carbon::createFromFormat("Y-m-d", $request->input('fecha')); $dia_cita = $fechaCarbon->dayOfWeek; $horaFormatHM = substr($request->input('hora'), 0, 5); $horario = Horario::whereNombre($horaFormatHM)->first(); if (is_null($horario)) { return \Redirect::back()->with('error', 'Ocurrió un error con la fecha.'); } $hora_cita = $horario->id; $cita = new Cita(); $cita->user_id = Auth::user()->id; $cita->producto_id = $request->input('producto_id'); $cita->fecha = $request->input('fecha'); $cita->hora = $request->input('hora'); $cita->dia_id = $dia_cita; $cita->hora_id = $hora_cita; $cita->save(); //ponemos el producto configurado. $productoUser = Producto::find($request->input('producto_id'))->Usuarios()->updateExistingPivot(Auth::user()->id, array('configurado' => 2)); $this->enviarCalendarioPorMail($producto, $user); return \Redirect("misproductos/ver/" . $request->input('producto_id')); }