costCalculatorService = $costCalculatorService; } public function index(Request $request) { // $data['title'] = 'Cost Calculator List'; // $data['costs'] = $this->costCalculatorService->findAll($request); // $data['countryOptions'] = Country::where('status', 1)->pluck('title', 'id'); // $data['programLevelOptions'] = ProgramLevel::where('status', 1)->pluck('title', 'id'); // $data['programOptions'] = Program::where('status', 1)->pluck('title', 'id'); // $data['livingStatusOptions'] = config('constants.living_status'); // return view('costcalculator::cost.index', $data); if (request()->ajax()) { $model = CostCalculator::query()->orderBy('order'); return DataTables::eloquent($model) ->addIndexColumn() ->setRowClass('tableRow') ->editColumn('image', function (CostCalculator $cost) { return $cost->getRawOriginal('image') ? "{$cost->country->image}" : '-'; }) ->editColumn('status', function (CostCalculator $cost) { $status = $cost->status ? 'Published' : 'Draft'; $color = $cost->status ? 'text-success' : 'text-danger'; return "

{$status}

"; }) ->addColumn('action', 'costcalculator::cost.datatable.action') ->rawColumns(['image', 'status', 'action']) ->toJson(); } return view('costcalculator::cost.index', [ 'title' => 'Cost Calculator List', ]); } /** * Show the form for creating a new resource. */ public function create() { $data['title'] = 'Create Cost Calculator'; $data['editable'] = false; $data['countryOptions'] = Country::where('status', 1)->pluck('title', 'id'); $data['programLevelOptions'] = ProgramLevel::where('status', 1)->pluck('title', 'id'); $data['programOptions'] = Program::where('status', 1)->pluck('title', 'id'); $data['livingStatusOptions'] = config('constants.living_status'); return view('costcalculator::cost.create', $data); } /** * Store a newly created resource in storage. */ public function store(Request $request) { $request->validate([ 'country_id' => 'required', 'programlevel_id' => 'required', 'living_status_id' => 'required', ]); $input = $request->all(); DB::transaction(function () use ($input, $request) { CostCalculator::create($input); flash()->success('Cost Calculation has been created!'); }); return redirect()->route('costCalculator.index'); } /** * Show the specified resource. */ public function show($id) { $data['title'] = 'View Cost Calculation'; $data['program'] = CostCalculator::findOrFail($id); $data['intakeOptions'] = Program::INTAKE; return view('costcalculator::cost.show', $data); } /** * Show the form for editing the specified resource. */ public function edit($id) { $data['title'] = 'Edit Cost Calculator'; $data['editable'] = true; $data['cost'] = CostCalculator::findOrFail($id); $data['countryOptions'] = Country::where('status', 1)->pluck('title', 'id'); $data['programLevelOptions'] = ProgramLevel::where('status', 1)->pluck('title', 'id'); $data['programOptions'] = Program::where('status', 1)->pluck('title', 'id'); $data['livingStatusOptions'] = config('constants.living_status'); return view('costcalculator::cost.edit', $data); } /** * Update the specified resource in storage. */ public function update(Request $request, $id) { $input = $request->all(); DB::transaction(function () use ($input, $request, $id) { $program = CostCalculator::findOrFail($id); $program->update($input); flash()->success('Cost Calculation has been updated!'); }); return redirect()->route('costCalculator.index')->withSuccess('Program has been updated!'); } /** * Remove the specified resource from storage. */ public function destroy($id) { try { $program = CostCalculator::findOrFail($id); $program->delete(); flash()->success('Cost Calculator has been deleted!'); } catch (\Throwable $th) { flash()->error($th->getMessage()); } return response()->json(['status' => 200, 'message' => 'Cost Calculator has been deleted!'], 200); } }