public function staffCreate() { // Validate Input. $validator = Validator::make(Input::all(), array('username' => 'required', 'password' => 'required', 'worker' => 'required', 'name' => 'required', 'phone' => 'required', 'insurance' => 'required', 'inss' => 'required', 'patron' => 'required', 'basic' => 'required', 'bonusPercentage' => 'required', 'bonusSource' => 'required', 'staffCategory' => 'required', 'permission' => 'required')); if ($validator->fails()) { return response()->json(['error' => 'Informacion incompleta!']); } // Check that user is part of authorized staff. if (Auth::user()->Type != 1) { // If they are unauthorized no point in returning anything. return response()->json(array()); } // Make sure username is unique. $user = User::where('Username', '=', Input::get('username'))->get(); if (count($user) > 0) { $response['state'] = 'Error'; $response['error'] = 'Ya existe un usuario con este nombre!'; return response()->json($response); } // Make sure the worker is unique. $existWorker = Worker::where('Cedula', '=', Input::get('worker'))->first(); if ($existWorker) { $response['state'] = 'Error'; $response['error'] = 'Ya existe un trabajador con esta cedula!'; return response()->json($response); } $branchId = Worker::where('Id', '=', Auth::user()->TypeId)->first()->BranchId; $worker = Worker::create(array('Name' => Input::get('name'), 'Cedula' => Input::get('worker'), 'INSS' => Input::get('inss'), 'BranchId' => $branchId, 'Phone' => Input::get('phone'), 'Category' => Input::get('staffCategory'), 'Basic' => Input::get('basic'), 'Insurance' => Input::get('insurance'), 'Patron' => Input::get('patron'), 'BonusSource' => Input::get('bonusSource'), 'BonusPercentage' => Input::get('bonusPercentage'))); $salt = uniqid(); // Get permission view. $permissions = json_decode(UserLevel::find(Input::get('permission'))->Permissions); $user = User::create(array('Type' => 1, 'TypeId' => $worker->Id, 'UserLevel' => Input::get('permission'), 'Username' => Input::get('username'), 'Password' => bcrypt(Input::get('password') . $salt), 'Salt' => $salt, 'View' => $permissions->view)); $response['state'] = 'Success'; $response['permissions'] = $permissions; return response()->json($response); }