public function postRegistrar(Request $request) { // Permite registrar un Chef $validator = Validator::make($request->all(), ['nombres' => 'required|min:3|max:50', 'apellidos' => 'required|min:3|max:50', 'dni' => 'required|min:7|max:8', 'email' => 'required|min:5|max:50', 'direccion' => 'required|min:3|max:50', 'telefono' => 'required|min:6|max:9', 'sueldo' => 'required|min:0']); $chef_test = Chef::where('dni', $request->dni)->first(); if (strpos(trim($request->nombres), ' ') == false) { $espacio = strlen($request->nombres); } else { $espacio = strpos(trim($request->nombres), ' '); } $nombre = substr($request->nombres, 0, $espacio); if (strpos(trim($request->apellidos), ' ') == false) { $space = strlen($request->apellidos); } else { $space = strpos($request->apellidos, ' '); } $apellido = substr($request->apellidos, 0, $space); if ($validator->fails() or strlen($nombre) < 3 or strlen($apellido) < 3 or $chef_test != null) { $data['errors'] = $validator->errors(); if ($chef_test != null) { $data['errors']->add("dni", "No puede registrar 2 chefs con el mismo dni"); } else { if (strlen($nombre) < 3) { $data['errors']->add("nombre", "El primer nombre debe tener por lo menos 3 caracteres "); } else { if (strlen($apellido) < 3) { $data['errors']->add("apellido", "El primer apellido debe tener por lo menos 3 caracteres "); } } } return redirect('gestionar/chefs')->withInput($request->all())->with($data); } // Si no hay errores, registramos $usuario = Auth::user(); $i = 1; $user_base = strtolower(substr($request->get('nombres'), 0, 3) . substr($request->get('apellidos'), 0, 3)); $user_completo = $user_base . $i; $encontrado = User::where('username', $user_completo)->first(); $fullname = $request->get('nombres') . ', ' . $request->get('apellidos'); if ($encontrado == null) { $user = User::create(['username' => $user_completo, 'full_name' => $fullname, 'password' => bcrypt($request->get('dni')), 'phone' => $request->get('telefono'), 'email' => $request->get('email'), 'tipo' => 1]); } else { $user_base = strtolower(substr($request->get('nombres'), 0, 3) . substr($request->get('apellidos'), 0, 3)); while ($encontrado != null) { $i += 1; $user_completo = $user_base . $i; $encontrado = User::where('username', $user_completo)->first(); } $user = User::create(['username' => $user_completo, 'full_name' => $fullname, 'password' => bcrypt($request->get('dni')), 'phone' => $request->get('telefono'), 'email' => $request->get('email'), 'tipo' => 1]); } $id = User::all()->max('id'); $chef = Chef::create(['usuario_id' => $id, 'nombres' => $request->get('nombres'), 'apellidos' => $request->get('apellidos'), 'dni' => $request->get('dni'), 'direccion' => $request->get('direccion'), 'email' => $request->get('email'), 'telefono' => $request->get('telefono'), 'sueldo' => $request->get('sueldo'), 'masculino' => $request->get('masculino'), 'activo' => $request->get('activo')]); $data['notif'] = "El Chef con USUARIO: " . $user->username . " y CLAVE: " . $chef->dni . " ha sido registrado correctamente."; $user->save(); $chef->save(); return redirect('gestionar/chefs')->with($data); }