Viewing file: BloodCollectorController.php (6.85 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers;
use App\Models\BloodCollector; use App\Models\Plan; use App\Models\User; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB; use Spatie\Permission\Models\Role;
class BloodCollectorController extends Controller { public function index() { if(!check_blood_collector()){ return abort('404'); }
if (\Auth::user()->can('show blood collector')) { $data['bloodCollectors'] = BloodCollector::where('created_by', \Auth::user()->creatorId())->get(); return view('bloodcollector.index', $data); } else { return redirect()->back()->with('error', __('Permission denied.')); } } public function create() { if(!check_blood_collector()){ return abort('404'); }
if (\Auth::user()->can('create blood collector')) { return view('bloodcollector.create'); } else { return redirect()->back()->with('error', __('Permission denied.')); }
} public function store(Request $request) { if(!check_blood_collector()){ return abort('404'); } DB::beginTransaction();
$validator = \Validator::make( $request->all(), [ 'name' => 'required', 'status' => 'required|in:active,inactive', ] ); if ($validator->fails()) { $messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first()); } try { $total_blood_collectors = User::where('type', 'blood_collector')->where('created_by', \Auth::user()->creatorId())->count(); $total_blood_collectors = $total_blood_collectors == 0 ? 0 : $total_blood_collectors + 1; $companyUserPlan = \App\Models\Plan::getPlan(\Auth::user()->show_dashboard()); if ($companyUserPlan && $companyUserPlan->max_blood_collectors != -1 && $companyUserPlan->max_blood_collectors < $total_blood_collectors) { return redirect()->back()->with('error', __('Your Blood Collector limit is over, Please upgrade plan.')); }
$objUser = \Auth::user()->creatorId(); $objUser = User::find($objUser); // $user = User::find(\Auth::user()->created_by); $plan = Plan::find($objUser->plan); $role_name = 'blood_collector';
$default_language = DB::table('settings') ->select('value') ->where('name', 'default_language') ->where('created_by', '=', \Auth::user()->creatorId()) ->first(); $plan = Plan::find($objUser->plan); $userpassword = $request->input('password'); $user = new User(); $user->name = $request->name; $user->email = $request->email; $user->phone_number = $request->phone_number; $user->password = !empty ($userpassword) ? \Hash::make($userpassword) : null; $user->lang = !empty ($default_language) ? $default_language->value : 'en'; $user->email_verified_at = now(); $user->is_enable_login = 1; $user->created_by = \Auth::user()->creatorId(); $user->type = 'blood_collector';
$findRrole = Role::where('name','blood_collector_'.\Auth::user()->creatorId())->first(); if(!$findRrole){ createBloodCollector(\Auth::user()->id); }
$role_r = Role::findOrCreate('blood_collector_'.\Auth::user()->creatorId()); $user->assignRole($role_r); $user->save();
$bloodCollection = new BloodCollector(); $bloodCollection->user_id = $user->id; $bloodCollection->address = $request->address; $bloodCollection->status = $request->status; $bloodCollection->created_by = \Auth::user()->creatorId(); $bloodCollection->save();
DB::commit(); return redirect()->back()->with('success', __('Blood Collector successfully created.')); } catch (\Exception $e) { DB::rollback(); return redirect()->back()->with('error', $e->getMessage()); }
} public function edit($id) { if(!check_blood_collector()){ return abort('404'); }
if (\Auth::user()->can('edit blood collector')) { $data['bloodCollector'] = BloodCollector::findOrFail($id); return view('bloodcollector.edit', $data); } else { return redirect()->back()->with('error', __('Permission denied.')); }
} public function update(Request $request) { if(!check_blood_collector()){ return abort('404'); }
$bloodCollection = BloodCollector::findOrFail($request->id); $user = User::findOrFail($bloodCollection->user_id);
DB::beginTransaction();
$validator = \Validator::make( $request->all(), [ 'name' => 'required', 'status' => 'required|in:active,inactive', 'email' => 'required|email|unique:users,email,' . $user->id, ] ); if ($validator->fails()) { $messages = $validator->getMessageBag();
return redirect()->back()->with('error', $messages->first()); } try { $user->name = $request->name; $user->email = $request->email; $user->phone_number = $request->phone_number; if($request->input('password')){ $userpassword = $request->input('password'); $user->password =\Hash::make($userpassword); } $user->save();
$bloodCollection->address = $request->address; $bloodCollection->status = $request->status; $bloodCollection->save();
DB::commit(); return redirect()->back()->with('success', __('Blood Collection successfully updated.')); } catch (\Exception $ex) { DB::rollback(); return redirect()->back()->with('error', $ex->getMessage()); }
} public function destroy($id) { if(!check_blood_collector()){ return abort('404'); }
if (\Auth::user()->can('delete blood collector')) { $bloodCollection = BloodCollector::findOrFail($id); $user = User::findOrFail($bloodCollection->user_id); $bloodCollection->delete(); $user->delete(); return redirect()->back()->with('success', __('Blood Collection successfully deleted.')); } else { return redirect()->back()->with('error', __('Permission denied.')); }
} }
|