public function destroy($id) { $horarios = Horario::find($id); $horarios->delete(); Session::flash('message', 'El Horario de la fecha ' . $horarios->fecha . ' fue eliminado'); return redirect()->route('Administrador.horarios.index'); }
public function validarFechaSeleccionada(Request $request) { $fecha = $request->input('nuevaFecha'); $horario = Horario::find($request->input('hora_cita')); $hora = $horario->nombre; $fechaCarbon = Carbon::createFromFormat("Y-m-d H:i", $fecha . " " . $hora); $cita = Cita::whereFecha($fecha)->whereHora($hora)->first(); if ($fechaCarbon->isPast() or $fechaCarbon->isToday()) { $respuesta = ["code" => 1, "msg" => "La fecha seleccionada ya ha pasado, seleccione una a futuro."]; } elseif ($fechaCarbon->isTomorrow()) { $respuesta = ["code" => 1, "msg" => "La fecha seleccionada tiene que ser después del día de mañana."]; } elseif (is_null($cita)) { $respuesta = ["code" => 0, "msg" => "La cita ha sido agendada exitosamente."]; //Aqui agregar la cita $dia_cita = $fechaCarbon->dayOfWeek; $hora_cita = $request->input('hora_cita'); $cita = new Cita(); $cita->user_id = Auth::user()->id; $cita->producto_id = $request->input('producto_id'); $cita->fecha = $request->input('nuevaFecha'); $cita->hora = $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)); } else { $respuesta = ["code" => 1, "msg" => "La fecha seleccionada no se encuentra disponible."]; } return response()->json($respuesta); }
public function crearCalendario(Request $request) { $producto = Producto::find($request->input('producto_id')); $dia_cita = $request->input('dia_cita'); $hora_cita = $request->input('hora_cita'); if (is_null($producto)) { $code = 1; $message = "El producto no existe"; } else { $dayOfWeek = Carbon::now()->dayOfWeek; $horaNombre = Horario::find($hora_cita)->nombre; $today = Carbon::now()->toDateString(); $dt_selected = Carbon::createFromFormat('Y-m-d H:i', $today . " " . $horaNombre); if ($dayOfWeek >= $dia_cita) { $citaInicial = Carbon::now()->next($dia_cita); //la cita es next day seleccionado porque seria la semana siguiente } else { //si la hora actual < la hora seleccionada if (Carbon::now()->lt($dt_selected)) { $citaInicial = Carbon::now()->next($dia_cita); } else { //si la hora seleccionada es < que la hora actual //la cita es la proxima semana $citaInicial = Carbon::now()->next($dia_cita)->addWeek(); } } for ($i = 1; $i <= $producto->cantidad_citas; $i++) { if ($i == 1) { $fechaCita = $citaInicial; } else { $fechaCita = $fechaCita->addWeeks(2); } $esDiaInhabil = true; while ($esDiaInhabil) { if ($this->esDiaInhabil($fechaCita->toDateString()) or !$this->esFechaValida($fechaCita->toDateString(), $hora_cita)) { $fechaCita = $fechaCita->addWeek(); } else { $esDiaInhabil = false; } } $cita = new Cita(); $cita->user_id = Auth::user()->id; $cita->producto_id = $producto->id; $cita->fecha = $fechaCita->toDateString(); $cita->hora = $horaNombre; $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)); $code = 0; $message = "OK"; } $user = User::find(Auth::user()->id); $this->enviarCalendarioPorMail($producto, $user); return response()->json(["success" => true, "code" => $code, "message" => $message]); }
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.'); }