From 6b4a9f1ebea18773982528f2bf17f1ea551ddf17 Mon Sep 17 00:00:00 2001 From: Subash Date: Mon, 18 Aug 2025 17:00:40 +0545 Subject: [PATCH] feat: Enhance cost calculator functionality with new cost retrieval route and result display --- .../app/Services/CostCalculatorService.php | 4 - .../resources/views/cost/show.blade.php | 2 +- Modules/User/routes/client.php | 1 + app/Http/Controllers/WebsiteController.php | 17 +- .../raffles/pages/cost-calculator.blade.php | 15 +- .../raffles/pages/cost-result.blade.php | 237 ++++++++++++++++++ .../raffles/parts/testimonial.blade.php | 4 +- 7 files changed, 261 insertions(+), 19 deletions(-) create mode 100644 resources/views/client/raffles/pages/cost-result.blade.php diff --git a/Modules/CostCalculator/app/Services/CostCalculatorService.php b/Modules/CostCalculator/app/Services/CostCalculatorService.php index a040396..1b14b61 100644 --- a/Modules/CostCalculator/app/Services/CostCalculatorService.php +++ b/Modules/CostCalculator/app/Services/CostCalculatorService.php @@ -18,10 +18,6 @@ class CostCalculatorService $query->where("stay_type_id", $request->stay_type_id); } - if ($request->filled('program_id')) { - Program::where('status', 1)-> where('id', $request->program_id)->get(); - } - })->latest()->paginate(10)->withQueryString(); } diff --git a/Modules/CostCalculator/resources/views/cost/show.blade.php b/Modules/CostCalculator/resources/views/cost/show.blade.php index 63fde2b..d14b8c2 100644 --- a/Modules/CostCalculator/resources/views/cost/show.blade.php +++ b/Modules/CostCalculator/resources/views/cost/show.blade.php @@ -28,7 +28,7 @@

Estimated Cost Calculation For - {{ $cost->country?->title ?? 'N/A' }} (country?->title ?? 'N/A' }} ({{ str_replace('_', ' ', $type) }})

diff --git a/Modules/User/routes/client.php b/Modules/User/routes/client.php index ca687d0..5ac172c 100644 --- a/Modules/User/routes/client.php +++ b/Modules/User/routes/client.php @@ -19,5 +19,6 @@ Route::get('destination/{alias}', [WebsiteController::class, 'countrySingle'])-> Route::get('/home/resources', [WebsiteController::class, 'resources']); Route::get('getCoursesList', [ProgramController::class, 'getCoursesList'])->name('program.getCoursesList'); Route::post('enquiry', [EnquiryController::class, 'store'])->name('enquiry.store'); +Route::get('getCost', [WebsiteController::class, 'getCost'])->name('cost.getCost'); Route::get('{parent}/{slug?}', [WebsiteController::class, 'loadPage'])->name('page.load'); diff --git a/app/Http/Controllers/WebsiteController.php b/app/Http/Controllers/WebsiteController.php index 330e024..97fe477 100644 --- a/app/Http/Controllers/WebsiteController.php +++ b/app/Http/Controllers/WebsiteController.php @@ -12,6 +12,7 @@ use Modules\CCMS\Models\Service; use Modules\CCMS\Models\Test; use Modules\CostCalculator\Models\CostCalculator; use Modules\CostCalculator\Models\StayType; +use Modules\CostCalculator\Services\CostCalculatorService; use Modules\CourseFinder\Models\Coop; use Modules\CourseFinder\Models\Program; use Modules\CourseFinder\Models\ProgramLevel; @@ -21,9 +22,11 @@ class WebsiteController extends Controller { private $path; protected $programService; - public function __construct(ProgramService $programService) + protected $costCalculatorService; + public function __construct(ProgramService $programService, CostCalculatorService $costCalculatorService) { $this->programService = $programService; + $this->costCalculatorService = $costCalculatorService; $headerMenus = getAllHeaderMenusWithChildren(); $footerMenus = getAllFooterMenusWithChildren(); $tests = Test::where('status', 1)->where('parent_id', null)->get(); @@ -257,15 +260,19 @@ class WebsiteController extends Controller return view("client.raffles.pages.cost-calculator", $data); } - public function getCost(Request $request, $id) + public function getCost(Request $request) { - $cost = CostCalculator::with([ + $data['costss'] = $this->costCalculatorService->findAll($request); + foreach ($data['costss'] as $value) { + $id = $value->id; + } + $cost = CostCalculator::with([ 'stayTypeLiving', 'stayTypeAccomodation', 'stayTypeOnetime', 'stayTypeService' ])->findOrFail($id); - + $data['fee'] = Program::where('id', $request->program_id)->first(); $data['title'] = 'View Cost Calculation'; $data['cost'] = $cost; @@ -305,5 +312,7 @@ class WebsiteController extends Controller 'with_spouse' => $getBreakdown('With Spouse'), 'with_spouse_and_child' => $getBreakdown('With Spouse and Child'), ]; + + return view('client.raffles.pages.cost-result', $data); } } diff --git a/resources/views/client/raffles/pages/cost-calculator.blade.php b/resources/views/client/raffles/pages/cost-calculator.blade.php index bfc4905..29c7279 100644 --- a/resources/views/client/raffles/pages/cost-calculator.blade.php +++ b/resources/views/client/raffles/pages/cost-calculator.blade.php @@ -144,7 +144,7 @@ -
+
@@ -153,9 +153,9 @@
@foreach ($countries as $country)
- -
@@ -176,7 +176,7 @@
@foreach ($livingStatusOptions as $key => $status)
-