dbfdg can('manage job')) { $jobs = Job::where('created_by', '=', \Auth::user()->creatorId())->with('branches','createdBy')->get(); $data['total'] = Job::where('created_by', '=', \Auth::user()->creatorId())->count(); $data['active'] = Job::where('status', 'active')->where('created_by', '=', \Auth::user()->creatorId())->count(); $data['in_active'] = Job::where('status', 'in_active')->where('created_by', '=', \Auth::user()->creatorId())->count(); return view('job.index', compact('jobs', 'data')); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function create() { $categories = JobCategory::where('created_by', \Auth::user()->creatorId())->get()->pluck('title', 'id'); $categories->prepend('--', ''); $branches = Branch::where('created_by', \Auth::user()->creatorId())->get()->pluck('name', 'id'); $branches->prepend('All', 0); $status = Job::$status; $customQuestion = CustomQuestion::where('created_by', \Auth::user()->creatorId())->get(); return view('job.create', compact('categories', 'status', 'branches', 'customQuestion')); } public function store(Request $request) { if(\Auth::user()->can('create job')) { $validator = \Validator::make( $request->all(), [ 'title' => 'required', 'branch' => 'required', 'category' => 'required', 'skill' => 'required', 'position' => 'required|integer', 'start_date' => 'required', 'end_date' => 'required', 'description' => 'required', 'requirement' => 'required', ] ); if($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } $job = new Job(); $job->title = $request->title; $job->branch = $request->branch; $job->category = $request->category; $job->skill = $request->skill; $job->position = $request->position; $job->status = $request->status; $job->start_date = $request->start_date; $job->end_date = $request->end_date; $job->description = $request->description; $job->requirement = $request->requirement; $job->code = uniqid(); $job->applicant = !empty($request->applicant) ? implode(',', $request->applicant) : ''; $job->visibility = !empty($request->visibility) ? implode(',', $request->visibility) : ''; $job->custom_question = !empty($request->custom_question) ? implode(',', $request->custom_question) : ''; $job->created_by = \Auth::user()->creatorId(); $job->save(); return redirect()->route('job.index')->with('success', __('Job successfully created.')); } else { return redirect()->route('job.index')->with('error', __('Permission denied.')); } } public function show(Job $job) { $status = Job::$status; $job->applicant = !empty($job->applicant) ? explode(',', $job->applicant) : ''; $job->visibility = !empty($job->visibility) ? explode(',', $job->visibility) : ''; $job->skill = !empty($job->skill) ? explode(',', $job->skill) : ''; return view('job.show', compact('status', 'job')); } public function edit(Job $job) { $categories = JobCategory::where('created_by', \Auth::user()->creatorId())->get()->pluck('title', 'id'); $categories->prepend('--', ''); $branches = Branch::where('created_by', \Auth::user()->creatorId())->get()->pluck('name', 'id'); $branches->prepend('All', 0); $status = Job::$status; $job->applicant = explode(',', $job->applicant); $job->visibility = explode(',', $job->visibility); $job->custom_question = explode(',', $job->custom_question); $customQuestion = CustomQuestion::where('created_by', \Auth::user()->creatorId())->get(); return view('job.edit', compact('categories', 'status', 'branches', 'job', 'customQuestion')); } public function update(Request $request, Job $job) { if(\Auth::user()->can('edit job')) { $validator = \Validator::make( $request->all(), [ 'title' => 'required', 'branch' => 'required', 'category' => 'required', 'skill' => 'required', 'position' => 'required|integer', 'start_date' => 'required', 'end_date' => 'required', 'description' => 'required', 'requirement' => 'required', ] ); if($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } $job->title = $request->title; $job->branch = $request->branch; $job->category = $request->category; $job->skill = $request->skill; $job->position = $request->position; $job->status = $request->status; $job->start_date = $request->start_date; $job->end_date = $request->end_date; $job->description = $request->description; $job->requirement = $request->requirement; $job->applicant = !empty($request->applicant) ? implode(',', $request->applicant) : ''; $job->visibility = !empty($request->visibility) ? implode(',', $request->visibility) : ''; $job->custom_question = !empty($request->custom_question) ? implode(',', $request->custom_question) : ''; $job->save(); return redirect()->route('job.index')->with('success', __('Job successfully updated.')); } else { return redirect()->route('job.index')->with('error', __('Permission denied.')); } } public function destroy(Job $job) { $application = JobApplication::where('job', $job->id)->get()->pluck('id'); JobApplicationNote::whereIn('application_id', $application)->delete(); JobApplication::where('job', $job->id)->delete(); $job->delete(); return redirect()->route('job.index')->with('success', __('Job successfully deleted.')); } public function career($id, $lang) { $jobs= Job::where('created_by', $id)->with(['branches','createdBy'])->get(); \Session::put('lang', $lang); App::setLocale($lang); $companySettings['title_text'] = \DB::table('settings')->where('created_by', $id)->where('name', 'title_text')->first(); $companySettings['footer_text'] = \DB::table('settings')->where('created_by', $id)->where('name', 'footer_text')->first(); $companySettings['company_favicon'] = \DB::table('settings')->where('created_by', $id)->where('name', 'company_favicon')->first(); $companySettings['company_logo'] = \DB::table('settings')->where('created_by', $id)->where('name', 'company_logo')->first(); $languages = Utility::languages(); $currantLang = \Session::get('lang'); if(empty($currantLang)) { $user = User::find($id); $currantLang = !empty($user) && !empty($user->lang) ? $user->lang : 'en'; } return view('job.career', compact('companySettings', 'jobs', 'languages', 'currantLang','id')); } public function jobRequirement($code, $lang) { $job = Job::where('code', $code)->first(); if($job->status == 'in_active') { return redirect()->back()->with('error', __('Permission Denied.')); } \Session::put('lang', $lang); \App::setLocale($lang); $companySettings['title_text'] = \DB::table('settings')->where('created_by', $job->created_by)->where('name', 'title_text')->first(); $companySettings['footer_text'] = \DB::table('settings')->where('created_by', $job->created_by)->where('name', 'footer_text')->first(); $companySettings['company_favicon'] = \DB::table('settings')->where('created_by', $job->created_by)->where('name', 'company_favicon')->first(); $companySettings['company_logo'] = \DB::table('settings')->where('created_by', $job->created_by)->where('name', 'company_logo')->first(); $languages = Utility::languages(); $currantLang = \Session::get('lang'); if(empty($currantLang)) { $currantLang = !empty($job->createdBy) ? $job->createdBy->lang : 'en'; } return view('job.requirement', compact('companySettings', 'job', 'languages', 'currantLang')); } public function jobApply($code, $lang) { \Session::put('lang', $lang); \App::setLocale($lang); $job = Job::where('code', $code)->first(); $companySettings['title_text'] = \DB::table('settings')->where('created_by', $job->created_by)->where('name', 'title_text')->first(); $companySettings['footer_text'] = \DB::table('settings')->where('created_by', $job->created_by)->where('name', 'footer_text')->first(); $companySettings['company_favicon'] = \DB::table('settings')->where('created_by', $job->created_by)->where('name', 'company_favicon')->first(); $companySettings['company_logo'] = \DB::table('settings')->where('created_by', $job->created_by)->where('name', 'company_logo')->first(); $questions = CustomQuestion::where('created_by', $job->created_by)->get(); $languages = Utility::languages(); $currantLang = \Session::get('lang'); if(empty($currantLang)) { $currantLang = !empty($job->createdBy) ? $job->createdBy->lang : 'en'; } return view('job.apply', compact('companySettings', 'job', 'questions', 'languages', 'currantLang')); } public function jobApplyData(Request $request, $code) { $validator = \Validator::make( $request->all(), [ 'name' => 'required', 'email' => 'required', 'phone' => 'required', // 'profile' => 'mimes:jpeg,png,jpg,gif,svg|max:20480', // 'resume' => 'mimes:jpeg,png,jpg,gif,svg,pdf,doc,zip|max:20480', ] ); if($validator->fails()) { $messages = $validator->getMessageBag(); return redirect()->back()->with('error', $messages->first()); } $job = Job::where('code', $code)->first(); if(!empty($request->profile)) { //storage limit $image_size = $request->file('profile')->getSize(); $result = Utility::updateStorageLimit(\Auth::user()->creatorId(), $image_size); if($result==1) { $filenameWithExt = $request->file('profile')->getClientOriginalName(); $filename = pathinfo($filenameWithExt, PATHINFO_FILENAME); $extension = $request->file('profile')->getClientOriginalExtension(); $fileNameToStore = $filename . '_' . time() . '.' . $extension; $dir = 'uploads/job/profile'; $image_path = $dir . $filenameWithExt; if (\File::exists($image_path)) { \File::delete($image_path); } $url = ''; $path = Utility::upload_file($request,'profile',$fileNameToStore,$dir,[]); } else { $fileNameToStore =''; } } if(!empty($request->resume)) { //storage limit $image_size = $request->file('resume')->getSize(); $result = Utility::updateStorageLimit(\Auth::user()->creatorId(), $image_size); if($result==1) { $filenameWithExt1 = $request->file('resume')->getClientOriginalName(); $filename1 = pathinfo($filenameWithExt1, PATHINFO_FILENAME); $extension1 = $request->file('resume')->getClientOriginalExtension(); $fileNameToStore1 = $filename1 . '_' . time() . '.' . $extension1; $dir = 'uploads/job/resume'; $image_path = $dir . $filenameWithExt1; if (\File::exists($image_path)) { \File::delete($image_path); } $url = ''; $path = Utility::upload_file($request,'resume',$fileNameToStore1,$dir,[]); } else { $fileNameToStore1 =''; } } $stage=JobStage::where('created_by',$job->created_by)->first(); $jobApplication = new JobApplication(); $jobApplication->job = $job->id; $jobApplication->name = $request->name; $jobApplication->email = $request->email; $jobApplication->phone = $request->phone; $jobApplication->profile = !empty($request->profile) ? $fileNameToStore : ''; $jobApplication->resume = !empty($request->resume) ? $fileNameToStore1 : ''; $jobApplication->cover_letter = $request->cover_letter; $jobApplication->dob = $request->dob; $jobApplication->gender = $request->gender; $jobApplication->country = $request->country; $jobApplication->state = $request->state; $jobApplication->city = $request->city; $jobApplication->custom_question = json_encode($request->question); $jobApplication->created_by = $job->created_by; $jobApplication->stage = $stage->id; $jobApplication->save(); return redirect()->back()->with('success', __('Job application successfully send'). ((isset($result) && $result!=1) ? '
' . $result . '' : '')); } }