Edit File: PlanController.php
<?php namespace App\Http\Controllers\Admin; use App\Traits\Report; use App\Models\Plan; use App\Models\Subscription; use Carbon\Carbon; use Illuminate\Http\Request; use App\Http\Controllers\Controller; use App\Http\Requests\Admin\Plan\StorePlanRequest; class PlanController extends Controller { /*************************** get all **************************/ public function index() { $rows = Plan::latest()->get(); return view('admin.plans.index', compact('rows')); } /*************************** store **************************/ public function create($id = null) { $categories = Plan::latest()->get(); return view('admin.plans.create' , compact('categories')); } /*************************** store **************************/ public function store(StorePlanRequest $request) { Plan::create($request->validated() + ([ 'name' => ['ar' => $request->name_ar , 'en' => $request->name_en] , ])); Report::addToLog(' اضافه باقة') ; return response()->json(['url' => route('admin.plans.index')]); } /*************************** edit page **************************/ public function edit($id) { $row = Plan::findOrFail($id); return view('admin.plans.edit' , ['row' => $row ]); } /*************************** update **************************/ public function update(StorePlanRequest $request, $id) { $row = Plan::findOrFail($id); $currentDate = Carbon::now(); $subscriptions = $row->subscriptions()->count(); if($subscriptions != 0 && $request->available == "false"){ return response()->json(['key'=>'fail','msg' => 'لا يمكن تعديل حاله الباقه لأن يوجد مشتركين بها']); } $row = Plan::findOrFail($id)->update($request->validated() + ([ 'name' => ['ar' => $request->name_ar , 'en' => $request->name_en] , ])); Report::addToLog(' تعديل باقة') ; return response()->json(['url' => route('admin.plans.index')]); } /*************** show *************************************/ public function show($id) { $row = Plan::findOrFail($id); $counter = Subscription::where('plan_id' , $id)->count(); return view('admin.plans.show' , ['row' => $row ,'counter' => $counter]); } public function subscription_show($id) { $rows = Subscription::where('plan_id' , $id)->get(); $now = Carbon::now(); return view('admin.plans.subscription_show' , ['rows' => $rows , 'now' => $now]); } /*************************** delete **************************/ public function delete($id) { $row = Plan::findOrFail($id); if($row->subscriptions->count() > 0){ return response()->json(['key' => 'fail']); } $row->delete(); Report::addToLog(' حذف باقة') ; return response()->json(['key' =>'success']); } public function deleteAll(Request $request) { $requestIds = json_decode($request->data); foreach ($requestIds as $id) { $ids[] = $id->id; } foreach($ids as $id){ $row = Plan::findOrFail($id); if($row->subscriptions->count() > 0){ return response()->json(['fail']); } } if (Plan::WhereIn('id',$ids)->delete()) { Report::addToLog(' حذف العديد من الباقات') ; return response()->json('success'); } else { return response()->json('fail'); } } }
Back to File Manager