/**
  * 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 getAdminInventarios()
 {
     if (Auth::user()->isAdmin()) {
         $plantillas = Plantilla::all();
         $inventariosPendientes = Inventario::where('estado', 'Pendiente')->orWhere('estado', 'Asignado')->orderBy('created_at', 'DESC')->get();
         $inventariosCerrados = Inventario::where('estado', 'Cerrado')->orderBy('updated_at', 'DESC')->get();
         $empleados = User::NoAdmin()->get();
         return view('inventarios.control')->with('plantillas', $plantillas)->with('inventariosPendientes', $inventariosPendientes)->with('inventariosCerrados', $inventariosCerrados)->with('empleados', $empleados);
     }
     return view('home');
 }
 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');
     }
 }
 public function changePassword(Request $request)
 {
     // $rules = array(
     // 	'old_password' => 'required',
     // 	'new_password' => 'required|confirmed|different:old_password',
     // 	'new_password_confirmation' => 'required|different:old_password|same:new_password',
     // 	);
     $this->validate($request, ['old_password' => 'required', 'new_password' => 'required|confirmed|different:old_password', 'new_password_confirmation' => 'required']);
     $user = User::find(Auth::user()->id);
     // dd($user);
     // $validator = Validator::make(Input::all(), $rules);
     // if($validator->fails()){
     // 	Session:flash('validationErrors', $validator->messages());
     // 	return Redirect::back()->withInput();
     // }
     if (!Hash::check(Input::get('old_password'), $user->password)) {
         // return Redirect::back()->withInput()->withError('La contraseña no es correcta');
         return redirect()->back()->with('info', 'La contraseña no es correcta. Inténtalo de nuevo');
     }
     $user->password = bcrypt(Input::get('new_password'));
     $user->touch();
     $save = $user->save();
     return redirect()->route('home')->with('info', 'La contraseña se ha cambiado correctamente');
 }