Viewing file: MealPlanController.php (15.06 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\CustomerMealPlanDetail; use App\Models\MealPlan; use App\Models\MealPlanDetail; use App\Models\MealPlanDetailsTask; use App\Models\MealPlanTask; use Illuminate\Http\Request; use Illuminate\Support\Facades\DB;
class MealPlanController extends Controller { public function index() {
return view('admin.meal_plan.index'); }
public function getAll() {
$meal_plans = MealPlan::orderByDesc('created_at'); return datatables()->of($meal_plans) ->addColumn('title', function ($q) { return $q->title; }) ->addColumn('created_at', function ($q) { return $q->created_at->format('d-m-Y'); }) ->addColumn('status', function ($q) { if ($q->status == 'active') { $status = '<strong class="text-white bg-success px-2 py-1 rounded status-font-size"> ' . ucfirst($q->status) . ' </strong>'; } else { $status = '<strong class="text-white bg-danger px-2 py-1 rounded status-font-size"> ' . ucfirst($q->status) . ' </strong>'; } return $status; }) ->addColumn('action', function (MealPlan $q) {
$deleteBtn = '<button class="btn btn-sm btn-danger" data-message="Are you sure you want to delete this plan?" data-action=' . route('admin.meal-plan.destroy', [$q]) . ' data-input={"_method":"delete"} data-toggle="modal" data-target="#modal-confirm" title="Delete"><i class="fa fa-trash"></i></button>';
$duplicate_button = '<button class="btn btn-sm btn-warning" data-message="Are you sure you want to Duplicate this plan?" data-action=' . route('admin.duplicate.meal.plan') . ' data-input={"_method":"post","id":"'.$q->id.'"} data-toggle="modal" data-target="#modal-confirm" title="Duplicate"><i class="fa fa-clone"></i></button>'; return "<a class='btn btn-sm btn-info' href='" . route('admin.meal-plan.edit', [$q->id]) . "' title='Edit'><i class='fa fa-pencil-alt'></i></a>" . ' '.$duplicate_button. ' ' .$deleteBtn; }) ->rawColumns(['action', 'title', 'status']) ->toJson(); }
public function create() { $get_meal_tasks = MealPlanTask::orderByDesc('created_at')->select(['id','name'])->get(); $meal_tasks=[]; foreach($get_meal_tasks as $get_meal_task){ $meal_tasks[]=[ 'name'=>$get_meal_task->name, 'id'=>$get_meal_task->id ]; } $data['meal_tasks']=json_encode($meal_tasks);
return view('admin.meal_plan.create',$data); }
public function store(Request $request) {
$request->validate([ 'title' => 'required', 'status' => 'required' ]);
DB::beginTransaction();
try { $meal_plan = new MealPlan(); $meal_plan->title = $request->title; $meal_plan->status = $request->status; $meal_plan->admin_id = auth()->user()->id; $meal_plan->save();
if ($request->day) { foreach ($request->day as $key => $day) { $plan_details = new MealPlanDetail(); $plan_details->plan_id = $meal_plan->id; $plan_details->day = $day; $plan_details->save();
if(isset($request->breakfast[$key]) && $request->breakfast[$key]){ foreach ($request->breakfast[$key] as $breakfast){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$breakfast; $meal_task->type='breakfast'; $meal_task->save(); } }
if(isset($request->launch[$key]) && $request->launch[$key]){ foreach ($request->launch[$key] as $launch){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$launch; $meal_task->type='launch'; $meal_task->save(); } }
if(isset($request->snack[$key]) && $request->snack[$key]){ foreach ($request->snack[$key] as $snack){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$snack; $meal_task->type='snack'; $meal_task->save(); } }
if(isset($request->dinner_snack[$key]) && $request->dinner_snack[$key]){ foreach ($request->dinner_snack[$key] as $dinner_snack){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$dinner_snack; $meal_task->type='dinner_snack'; $meal_task->save(); } }
if(isset($request->dinner[$key]) && $request->dinner[$key]){ foreach ($request->dinner[$key] as $dinner){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$dinner; $meal_task->type='dinner'; $meal_task->save(); } }
} } else { return redirect()->back()->withErrors(['failed' => 'At last add one meal data']); }
DB::commit();
return redirect()->route('admin.meal-plan.index')->with('success', trans('Meal plan successfully created')); } catch (\Exception $ex) { DB::rollBack(); return redirect()->back()->withErrors(['failed' => $ex->getMessage()]); } }
public function duplicate_meal_plan(Request $request){ DB::beginTransaction();
try{ $duplicate_plan = MealPlan::findOrFail($request->id);
$meal_plan = new MealPlan(); $meal_plan->title = $duplicate_plan->title.' -Copy'; $meal_plan->status = $duplicate_plan->status; $meal_plan->admin_id = auth()->user()->id; $meal_plan->save();
foreach ($duplicate_plan->plan_details as $key => $detail) { $plan_details = new MealPlanDetail(); $plan_details->plan_id = $meal_plan->id; $plan_details->day = $detail->day; $plan_details->save();
foreach($detail->detail_tasks as $detail_task){ $meal_task = new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id = $plan_details->id; $meal_task->task_id = $detail_task->task_id; $meal_task->type = $detail_task->type; $meal_task->save(); }
}
$data['mealPlan'] = $meal_plan; $data['plan_details'] = $meal_plan->plan_details;
$get_meal_tasks = MealPlanTask::orderByDesc('created_at')->select(['id','name'])->get(); $meal_tasks=[]; foreach($get_meal_tasks as $get_meal_task){ $meal_tasks[]=[ 'name'=>$get_meal_task->name, 'id'=>$get_meal_task->id ]; } $data['meal_tasks']=json_encode($meal_tasks); $data['get_meal_tasks']=$get_meal_tasks;
DB::commit();
return view('admin.meal_plan.edit', $data); }catch(\Exception $ex){ DB::rollBack(); return redirect()->back()->withErrors(['failed'=>$ex->getMessage()]); }
}
public function edit(MealPlan $mealPlan) { $data['mealPlan'] = $mealPlan; $data['plan_details'] = $mealPlan->plan_details()->with('detail_tasks')->get();
$get_meal_tasks = MealPlanTask::orderByDesc('created_at')->select(['id','name'])->get(); $meal_tasks=[]; foreach($get_meal_tasks as $get_meal_task){ $meal_tasks[]=[ 'name'=>$get_meal_task->name, 'id'=>$get_meal_task->id ]; } $data['meal_tasks']=json_encode($meal_tasks); $data['get_meal_tasks']=$get_meal_tasks;
return view('admin.meal_plan.edit', $data); }
public function update(MealPlan $mealPlan, Request $request) {
$request->validate([ 'title' => 'required', 'status' => 'required' ]);
DB::beginTransaction();
try { if ($mealPlan->plan_details) { foreach ($mealPlan->plan_details as $plan_details){ if($plan_details->detail_tasks) { $plan_details->detail_tasks()->delete(); } } $mealPlan->plan_details()->delete(); }
$mealPlan->title = $request->title; $mealPlan->status = $request->status; $mealPlan->admin_id = auth()->user()->id; $mealPlan->save();
if ($request->day) { foreach ($request->day as $key => $day) { $plan_details = new MealPlanDetail(); $plan_details->plan_id = $mealPlan->id; $plan_details->day = $day; $plan_details->save();
if(isset($request->breakfast[$key]) && $request->breakfast[$key]){ foreach ($request->breakfast[$key] as $child_key=>$breakfast){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$breakfast; $meal_task->type='breakfast'; $meal_task->save(); } } if(isset($request->launch[$key]) && $request->launch[$key]){ foreach ($request->launch[$key] as $launch){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$launch; $meal_task->type='launch'; $meal_task->save(); } }
if(isset($request->snack[$key]) && $request->snack[$key]){ foreach ($request->snack[$key] as $snack){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$snack; $meal_task->type='snack'; $meal_task->save(); } }
if(isset($request->dinner_snack[$key]) && $request->dinner_snack[$key]){ foreach ($request->dinner_snack[$key] as $dinner_snack){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$dinner_snack; $meal_task->type='dinner_snack'; $meal_task->save(); } }
if(isset($request->dinner[$key]) && $request->dinner[$key]){ foreach ($request->dinner[$key] as $dinner){ $meal_task=new MealPlanDetailsTask(); $meal_task->meal_plan_detail_id=$plan_details->id; $meal_task->task_id=$dinner; $meal_task->type='dinner'; $meal_task->save(); } }
} } else { return redirect()->back()->withErrors(['failed' => 'At last add one meal data']); }
DB::commit();
return redirect()->route('admin.meal-plan.index')->with('success', trans('Meal plan successfully updated')); } catch (\Exception $ex) { DB::rollBack();
return redirect()->back()->withErrors(['failed' => $ex->getMessage()]); }
}
public function destroy(MealPlan $mealPlan){ if($mealPlan->plan_details){ $plan_details_ids=[]; foreach ($mealPlan->plan_details as $plan_detail){ $plan_details_ids[]=$plan_detail->id; } if($plan_details_ids) { MealPlanDetailsTask::whereIn('meal_plan_detail_id', $plan_details_ids)->delete(); } $mealPlan->plan_details()->delete(); }
$mealPlan->delete();
return redirect()->route('admin.meal-plan.index')->with('success', trans('Meal plan successfully deleted'));
} public function show(){
} public function status_change(Request $request){
try { $request->validate([ 'status' => 'required', 'id'=>'required' ]);
$plan_status = CustomerMealPlanDetail::findOrFail($request->id); $plan_status->status= $request->status; $plan_status->save(); return response()->json(['message' => 'Status change successfully.','status'=>'success']); } catch (\Exception $e) { return response()->json(['message' => 'Error, Something wrong.','status'=>'failed']); } }
public function search_meal_plan(Request $request){
try { $request->validate([ 'input_text' => 'required', ]); if($request->input_text){ $meal_plan_task = MealPlanTask::where('name','like',"%{$request->input_text}%")->get(); } else{ $meal_plan_task = MealPlanTask::where('name',$request->input_text)->select('name')->get(); }
return response()->json(['message' => 'Status change successfully.','status'=>'success','data'=>$meal_plan_task]); } catch (\Exception $e) { return response()->json(['message' => 'Error, Something wrong.','status'=>'failed']); } }
}
|