/**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     $this->validate($request, ['empleado' => 'required', 'title' => 'required|min:3|max:100', 'time' => 'required|duration']);
     $time = explode(" - ", $request->input('time'));
     $empleado_id = $request->input('empleado');
     $empleado = User::where('id', $empleado_id)->first();
     $name = $empleado->username;
     $event = new Event();
     $event->name = $name;
     $event->empleado_id = $empleado->id;
     $event->title = $request->input('title');
     $event->start_time = $this->change_date_format($time[0]);
     $event->finalDay = $this->change_date_format($time[1]);
     $format = 'd/m/Y';
     $finalDay = Carbon::createFromFormat($format, $time[1])->startOfDay()->addDay()->format($format);
     $event->end_time = $this->change_date_format($finalDay);
     $event->allDay = 1;
     $first_date = new DateTime($event->start_time);
     $second_date = new DateTime($event->end_time);
     $event->durationDays = $this->format_interval($first_date->diff($second_date));
     $event->save();
     $request->session()->flash('success', 'Guardado!');
     if (isset($_POST['solicitudEmpleado'])) {
         return redirect()->back();
     }
     return redirect('events/create');
 }
 public function add(Request $request)
 {
     $this->validate($request, ['empleado' => 'required', 'filefield' => 'required']);
     $file = $request->file('filefield');
     $extension = $file->getClientOriginalExtension();
     if ($extension !== 'pdf') {
         return redirect()->back()->with('info', 'El archivo debe ser un pdf válido');
     }
     $user_id = $request->empleado;
     $user = User::where('id', $user_id)->first();
     $nombre = $user->username;
     $mes = $request->month;
     // Esto no funciona y no se porque
     // setlocale(LC_TIME,"es_ES.UTF-8");
     // $monthName = strftime('%B', mktime(0, 0, 0, $mes));
     // $monthName = strftime("m", mktime(0, 0, 0, $mes, 10));
     $year = $request->year;
     $descripcion = $mes . ' ' . $year . ' ' . strtoupper($nombre);
     Storage::disk('local')->put($file->getFilename() . '.' . $extension, File::get($file));
     $entry = new Fileentry();
     $entry->mime = $file->getClientMimeType();
     $entry->original_filename = $file->getClientOriginalName();
     $entry->filename = $file->getFilename() . '.' . $extension;
     $entry->mes = $mes;
     $entry->year = $year;
     $entry->user_id = $user_id;
     $entry->descripcion = $descripcion;
     $entry->save();
     return redirect('fileentry')->withInput();
 }
 public function generarCuadrante(Request $request)
 {
     $this->validate($request, ['centro' => 'required', 'fecha' => 'required|date']);
     $fecha = date('Y-m-d', strtotime($request->fecha));
     $cuadrante = Cuadrante::whereDate('fecha', '=', $fecha)->where('centro_id', $request->centro)->first();
     $eventos = Event::where('finalDay', '>=', $request->fecha)->where('start_time', '<=', 'fecha')->get();
     $listaIdEmpleados = $eventos->lists('title', 'empleado_id')->toArray();
     // dd($listaIdEmpleados[2]);
     //si no existe ya uno hecho, se crea
     if (!$cuadrante) {
         $cuadrante = new Cuadrante();
         $cuadrante->fecha = $fecha;
         $cuadrante->centro_id = $request->centro;
         $cuadrante->estado = 'Pendiente';
         $cuadrante->save();
         $empleados = User::where('empresa_id', $request->centro)->orWhere('restaurante_id', $request->centro)->get();
         // dd($empleados);
         foreach ($empleados as $empleado) {
             $linea = new LineaCuadrante();
             $linea->cuadrante_id = $cuadrante->id;
             $linea->empleado_id = $empleado->id;
             $linea->email = $empleado->email;
             if (array_key_exists($empleado->id, $listaIdEmpleados)) {
                 $tipo = $listaIdEmpleados[$empleado->id];
                 $evento = Event::where('empleado_id', $empleado->id)->first();
                 // dd($listaIdEmpleados[$empleado->id]);
                 if ($tipo == 'Baja') {
                     $linea->tipo = 'Baja';
                     $linea->estado = 'Bloqueado';
                     $linea->fecha_inicio = $evento->start_time;
                     $linea->fecha_fin = $evento->finalDay;
                 }
                 if ($tipo == 'Vacaciones') {
                     $linea->tipo = 'Vacaciones';
                     $linea->estado = 'Bloqueado';
                     $linea->fecha_inicio = $evento->start_time;
                     $linea->fecha_fin = $evento->finalDay;
                 }
                 if ($tipo == 'Falta') {
                     $linea->tipo = 'Falta';
                     $linea->estado = 'Bloqueado';
                     $linea->fecha_inicio = $evento->start_time;
                     $linea->fecha_fin = $evento->finalDay;
                 }
             } else {
                 $linea->entrada = $empleado->entrada;
                 $linea->salida = $empleado->salida;
                 if ($empleado->turno_partido == 1) {
                     $linea->tipo = 'Partido';
                     $linea->entrada2 = $empleado->entrada2;
                     $linea->salida2 = $empleado->salida2;
                 }
             }
             // }
             $linea->save();
         }
         $lineas = LineaCuadrante::where('cuadrante_id', $cuadrante->id)->get();
         return redirect()->route('cuadrante.detalle', $cuadrante->id)->with('info', 'ya puedes confeccionar el horario');
     } elseif ($cuadrante->count()) {
         $lineas = LineaCuadrante::where('cuadrante_id', $cuadrante->id)->orderBy('salida', 'asc')->get();
         return redirect()->route('cuadrante.detalle', $cuadrante->id)->with('info', 'Ya existe un Cuadrante para ese día!!! Puedes modificarlo o Volver para crear otro diferente');
         // return view ('controlHorario.detalleCuadrante', compact('cuadrante', 'lineas'))->with('info', 'Ya existe un Cuadrante para ese día!!! Puedes modificarlo o salir para crear otro diferente');
     }
 }
Example #4
0
 public function postModificar(Request $request, $usuarioId)
 {
     $usuario = User::where('id', $usuarioId)->first();
     if (isset($_POST['estado'])) {
         $usuario->active = $_POST['estado'];
         unset($_POST['estado']);
         $usuario->save();
         return redirect()->back();
     }
     if (isset($_POST['password'])) {
         $random = random_int(1000, 9999);
         $usuario->password = bcrypt($random);
         $usuario->save();
         return redirect()->back()->with('info', 'La nueva password provisional es ' . $random);
     }
     $this->validate($request, ['email' => 'required|email|max:255|unique:users,email,' . $usuarioId, 'nombre' => 'required|min:4|max:35', 'entrada' => 'date_format:H:i', 'salida' => 'date_format:H:i', 'entrada2' => 'date_format:H:i', 'salida2' => 'date_format:H:i']);
     $restauranteId = !empty($request->input('restaurante')) ? $request->input('restaurante') : null;
     $empresaId = !empty($request->input('empresa')) ? $request->input('empresa') : null;
     // dd($restauranteId,$empresaId);
     $email = $request->input('email');
     $username = $request->input('username');
     $nombre = $request->input('nombre');
     $restaurante = $restauranteId;
     // $empresa = $request->input('empresa');
     $empresa = $empresaId;
     $entrada = $request->input('entrada');
     $salida = $request->input('salida');
     $entrada2 = $request->input('entrada2');
     $salida2 = $request->input('salida2');
     $is_supervisor = $usuario->is_supervisor;
     $is_admin = $usuario->is_admin;
     if (isset($_POST['turnoPartido'])) {
         $turno_partido = 1;
         $usuario->turno_partido = $turno_partido;
     } else {
         $usuario->turno_partido = 0;
     }
     if (isset($_POST['supervisor'])) {
         $is_supervisor = 1;
         $usuario->is_supervisor = $is_supervisor;
     }
     if (isset($_POST['administrador'])) {
         $is_admin = 1;
         $usuario->is_admin = $is_admin;
     }
     $usuario->email = $email;
     $usuario->username = $username;
     $usuario->nombre_completo = $nombre;
     $usuario->restaurante_id = $restauranteId;
     $usuario->empresa_id = $empresaId;
     $usuario->entrada = $entrada;
     $usuario->salida = $salida;
     $usuario->entrada2 = $entrada2;
     $usuario->salida2 = $salida2;
     // dd($usuario->restauranteId);
     $usuario->save();
     $centros = array_filter(array($usuario->empresa_id, $usuario->restaurante_id));
     $usuario->centros()->sync($centros);
     return redirect()->route('auth.listUsers')->with('info', 'Datos actualizados');
 }