diff --git a/Modules/CostCalculator/app/Http/Controllers/CostCalculatorController.php b/Modules/CostCalculator/app/Http/Controllers/CostCalculatorController.php index 5518d6d..c139514 100644 --- a/Modules/CostCalculator/app/Http/Controllers/CostCalculatorController.php +++ b/Modules/CostCalculator/app/Http/Controllers/CostCalculatorController.php @@ -25,24 +25,77 @@ class CostCalculatorController extends Controller $this->costCalculatorService = $costCalculatorService; } + public function formatCostForStayType(CostCalculator $cost, string $stayTypeTitle) + { + $living = optional($cost->stayTypeLiving->firstWhere('title', $stayTypeTitle))->pivot; + $accomodation = optional($cost->stayTypeAccomodation->firstWhere('title', $stayTypeTitle))->pivot; + $onetime = optional($cost->stayTypeOnetime->firstWhere('title', $stayTypeTitle))->pivot; + $service = optional($cost->stayTypeService->firstWhere('title', $stayTypeTitle))->pivot; + + $html = "
{$cost->country?->title}
+{$status}
"; }) ->addColumn('action', 'costcalculator::cost.datatable.action') - ->rawColumns(['image', 'status', 'action']) + ->rawColumns(['country', 'alone', 'with_spouse', 'with_spouse_and_child', 'status', 'action']) ->toJson(); } - return view('costcalculator::cost.index', [ - 'title' => 'Cost Calculator List', + 'title' => 'Estimated Cost Calculation', ]); } + /** * Show the form for creating a new resource. */ public function create() { - $data['title'] = 'Create Cost Calculator'; + $data['title'] = 'Create Estimated Cost Calculation'; $data['editable'] = false; $data['countryOptions'] = Country::where('status', 1)->where('parent_id', null)->pluck('title', 'id'); - $data['programLevelOptions'] = ProgramLevel::where('status', 1)->pluck('title', 'id'); - $data['programOptions'] = Program::where('status', 1)->pluck('title', 'id'); $data['livingStatusOptions'] = StayType::where('status', 1)->pluck('title', 'id'); return view('costcalculator::cost.create', $data); @@ -81,7 +132,6 @@ class CostCalculatorController extends Controller { $request->validate([ 'country_id' => 'required', - 'programlevel_id' => 'required', ]); $input = $request->except(['living_cost', 'accomodation_cost', 'onetime_cost', 'service_cost']); @@ -110,7 +160,7 @@ class CostCalculatorController extends Controller } foreach ($request->onetime_cost as $item) { - $attachLivingData[$item['stay_type_id']] = [ + $attachOnetimeData[$item['stay_type_id']] = [ 'visa' => $item['visa'], 'biometrics' => $item['biometrics'], 'sevis' => $item['sevis'], @@ -119,7 +169,7 @@ class CostCalculatorController extends Controller } foreach ($request->service_cost as $item) { - $attachLivingData[$item['stay_type_id']] = [ + $attachServiceData[$item['stay_type_id']] = [ 'flight_ticket' => $item['flight_ticket'], 'insurance' => $item['insurance'], 'extra' => $item['extra'], @@ -134,7 +184,7 @@ class CostCalculatorController extends Controller flash()->success('Cost Calculation has been created!'); }); - return redirect()->route('costCalculator.index'); + return redirect()->route('cost.index'); } /** @@ -153,13 +203,11 @@ class CostCalculatorController extends Controller */ public function edit($id) { - $data['title'] = 'Edit Cost Calculator'; + $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'); + $data['countryOptions'] = Country::where('status', 1)->where('parent_id', null)->pluck('title', 'id'); + $data['livingStatusOptions'] = StayType::where('status', 1)->pluck('title', 'id'); return view('costcalculator::cost.edit', $data); } @@ -174,10 +222,10 @@ class CostCalculatorController extends Controller $program = CostCalculator::findOrFail($id); $program->update($input); - flash()->success('Cost Calculation has been updated!'); + flash()->success('Cost Calculation has been updated!'); }); - return redirect()->route('costCalculator.index')->withSuccess('Program has been updated!'); + return redirect()->route('cost.index')->withSuccess('Program has been updated!'); } /** @@ -195,5 +243,4 @@ class CostCalculatorController extends Controller } return response()->json(['status' => 200, 'message' => 'Cost Calculator has been deleted!'], 200); } - } diff --git a/Modules/CostCalculator/app/Models/CostCalculator.php b/Modules/CostCalculator/app/Models/CostCalculator.php index f376af2..34168b4 100644 --- a/Modules/CostCalculator/app/Models/CostCalculator.php +++ b/Modules/CostCalculator/app/Models/CostCalculator.php @@ -8,6 +8,7 @@ use Modules\CCMS\Models\Country; use Modules\CourseFinder\Models\Program; use Modules\CourseFinder\Models\ProgramLevel; use Modules\CostCalculator\Models\StayType; +use Illuminate\Database\Eloquent\Relations\BelongsToMany; // use Modules\CostCalculator\Database\Factories\CostCalculatorFactory; @@ -30,16 +31,6 @@ class CostCalculator extends Model return $this->belongsTo(Country::class, 'country_id'); } - public function programLevel() - { - return $this->belongsTo(ProgramLevel::class, 'programlevel_id'); - } - - public function program() - { - return $this->belongsTo(Program::class, 'program_id'); - } - public function stayTypeLiving(): BelongsToMany { return $this->belongsToMany(StayType::class, 'living_costs', 'cost_calculator_id', 'stay_type_id')->withPivot('id', 'monthly', 'yearly')->withTimestamps(); diff --git a/Modules/CostCalculator/database/migrations/2025_08_13_102211_create_cost_calculators_table.php b/Modules/CostCalculator/database/migrations/2025_08_13_102211_create_cost_calculators_table.php index f36e669..1a0c0b3 100644 --- a/Modules/CostCalculator/database/migrations/2025_08_13_102211_create_cost_calculators_table.php +++ b/Modules/CostCalculator/database/migrations/2025_08_13_102211_create_cost_calculators_table.php @@ -14,8 +14,6 @@ return new class extends Migration Schema::create('cost_calculators', function (Blueprint $table) { $table->id(); $table->unsignedInteger('country_id')->nullable(); - $table->unsignedInteger('programlevel_id')->nullable(); - $table->unsignedInteger('program_id')->nullable(); $table->unsignedInteger('createdby')->nullable(); $table->unsignedInteger('updatedby')->nullable(); $table->boolean('status')->default(1); diff --git a/Modules/CostCalculator/resources/views/cost/datatable/action.blade.php b/Modules/CostCalculator/resources/views/cost/datatable/action.blade.php index 72af1b8..82b1c30 100644 --- a/Modules/CostCalculator/resources/views/cost/datatable/action.blade.php +++ b/Modules/CostCalculator/resources/views/cost/datatable/action.blade.php @@ -2,9 +2,9 @@ - + class="link-info fs-15 toggle-item"> --}} diff --git a/Modules/CostCalculator/resources/views/cost/edit.blade.php b/Modules/CostCalculator/resources/views/cost/edit.blade.php index e69de29..d26e38f 100644 --- a/Modules/CostCalculator/resources/views/cost/edit.blade.php +++ b/Modules/CostCalculator/resources/views/cost/edit.blade.php @@ -0,0 +1,10 @@ +@extends('layouts.app') +@section('content') +