Viewing file: CoverageController.php (6.64 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
namespace App\Http\Controllers\Admin;
use App\Http\Controllers\Controller; use App\Models\Coverage; use Illuminate\Http\Request; use App\Models\User; use App\Models\AdminActivity; class CoverageController extends Controller { public function index(){ return view('admin.coverage.index'); }
public function getAll() { $coverage = Coverage::orderByDesc('created_at')->where('added_by', 'admin');
return datatables()->of($coverage) ->addColumn('action', function (Coverage $q) { return "<a class='btn btn-sm btn-info' href='" . route('admin.coverage.edit', [$q]) . "'>Edit</a> " . '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this coverage?" data-action=' . route('admin.coverage.destroy', [$q]) . ' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm">Delete</button>'; }) ->addColumn('country', function (Coverage $q) {
return strtoupper($q->country); }) ->rawColumns(['action','country']) ->toJson(); }
public function create(){
return view('admin.coverage.create'); }
public function store(Request $request){
$request->validate([ 'country'=>'required', 'plain_sms'=>'required', 'receive_sms'=>'required', 'send_mms'=>'required', 'receive_mms'=>'required', 'send_voice_sms'=>'required', 'receive_voice_sms'=>'required', 'send_whatsapp_sms'=>'required', 'receive_whatsapp_sms'=>'required' ]); $country_code=getCountryCode()[$request->country];
if(!isset($country_code['code'])){ return redirect()->back()->withErrors(['failed'=>'Invalid Country code']); }
$pre_counry=Coverage::where('country', $request->country)->where('added_by', 'admin')->first(); if ($pre_counry){ return redirect()->back()->withErrors(['failed'=>'This country already have in coverage list, try another one']); } $userfirst = User::first(); $coverage= new Coverage(); $coverage->added_by='admin'; $coverage->admin_id=$userfirst->id; $coverage->country=$request->country; $coverage->country_code=$country_code['code']; $coverage->plain_sms=$request->plain_sms; $coverage->receive_sms=$request->receive_sms; $coverage->send_mms=$request->send_mms; $coverage->receive_mms=$request->receive_mms; $coverage->send_voice_sms=$request->send_voice_sms; $coverage->receive_voice_sms=$request->receive_voice_sms; $coverage->send_whatsapp_sms=$request->send_whatsapp_sms; $coverage->receive_whatsapp_sms=$request->receive_whatsapp_sms; $coverage->save();
$user = auth()->user(); if ($user->type == 'staff') {
$hasPermission = $user->hasPermissionTo('manage_plans'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'Coverage'; $adminActivity->model_id = $coverage->id; $adminActivity->action_type = 'create';
$adminActivity->details = "Created Coverage #{$coverage->id}";
$adminActivity->save(); } } return redirect()->route('admin.coverage.index')->with('success', 'Coverage Successfully Created'); }
public function edit(Coverage $coverage){ $data['coverage']=$coverage;
return view('admin.coverage.edit', $data); }
public function update(Coverage $coverage,Request $request){
$coverage->plain_sms=$request->plain_sms; $coverage->receive_sms=$request->receive_sms; $coverage->send_mms=$request->send_mms; $coverage->receive_mms=$request->receive_mms; $coverage->send_voice_sms=$request->send_voice_sms; $coverage->receive_voice_sms=$request->receive_voice_sms; $coverage->send_whatsapp_sms=$request->send_whatsapp_sms; $coverage->receive_whatsapp_sms=$request->receive_whatsapp_sms; $coverage->save();
$user = auth()->user();
if ($user->type == 'staff') { $updatedFields = $coverage->getChanges();
unset($updatedFields['updated_at']);
$hasPermission = $user->hasPermissionTo('manage_plans'); if ($hasPermission && !empty($updatedFields)) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'Coverage'; $adminActivity->model_id = $coverage->id; $adminActivity->action_type = 'update';
$fieldsChanged = collect($updatedFields) ->map(fn($value, $field) => "$field: $value") ->implode(', ');
$adminActivity->details = "Updated Coverage #{$coverage->id}, changed: $fieldsChanged";
$adminActivity->save(); } }
return redirect()->route('admin.coverage.index')->with('success', 'Coverage Successfully Updated'); }
public function destroy(Coverage $coverage){
if($coverage->id=='1'){ return redirect()->route('admin.coverage.index')->withErrors(['failed'=>'You can\'t delete this coverage']); }
$user = auth()->user();
if ($user->type == 'staff') {
$hasPermission = $user->hasPermissionTo('manage_plans'); if ($hasPermission) { $adminActivity = new AdminActivity(); $adminActivity->admin_id = $user->id; $adminActivity->role_id = $user->role_id; $adminActivity->name = $user->name; $adminActivity->model = 'Coverage'; $adminActivity->model_id = $coverage->id; $adminActivity->action_type = 'delete';
$adminActivity->details = "Delete Coverage #{$coverage->id} country {$coverage->country}";
$adminActivity->save(); } }
$coverage->delete();
return redirect()->route('admin.coverage.index')->with('success', 'Coverage Successfully Deleted'); } }
|