From b6db2f200b335e446de6e0b2d4fe120ee0fd743a Mon Sep 17 00:00:00 2001 From: Russ Long Date: Fri, 24 Apr 2026 15:56:29 -0400 Subject: [PATCH] Add customer-facing check for winning items --- app/Http/Controllers/PagesController.php | 26 ++++++++ app/Models/WinningBids.php | 2 +- readme.md | 18 ++++++ resources/views/layouts/app.blade.php | 5 ++ resources/views/mywinnings_form.blade.php | 41 ++++++++++++ resources/views/mywinnings_results.blade.php | 49 +++++++++++++++ routes/web.php | 2 + tests/Feature/MyWinningsTest.php | 65 ++++++++++++++++++++ 8 files changed, 207 insertions(+), 1 deletion(-) create mode 100644 resources/views/mywinnings_form.blade.php create mode 100644 resources/views/mywinnings_results.blade.php create mode 100644 tests/Feature/MyWinningsTest.php diff --git a/app/Http/Controllers/PagesController.php b/app/Http/Controllers/PagesController.php index 09e499c..5078e37 100644 --- a/app/Http/Controllers/PagesController.php +++ b/app/Http/Controllers/PagesController.php @@ -515,4 +515,30 @@ class PagesController extends Controller //dd($showcarlist_results); return view('showcarlist', ['showcarlist_results' => $showcarlist_results]); } + + public function myWinnings(Request $request) + { + if (!$request->bidder_number) { + return view('mywinnings_form'); + } + + $bidder_number = $request->bidder_number; + $bidder = Bidders::where('bidder_assigned_number', $bidder_number)->first(); + + if (!$bidder) { + return view('mywinnings_form', ['error' => 'Bidder number not found.']); + } + + $winnings = WinningBids::with('items') + ->where('winning_bidder_num', $bidder->idbidders) + ->get(); + + $total_cost = $winnings->sum('winning_cost'); + + return view('mywinnings_results', [ + 'bidder' => $bidder, + 'winnings' => $winnings, + 'total_cost' => $total_cost + ]); + } } diff --git a/app/Models/WinningBids.php b/app/Models/WinningBids.php index a5bfee9..7d8c61e 100644 --- a/app/Models/WinningBids.php +++ b/app/Models/WinningBids.php @@ -28,7 +28,7 @@ class WinningBids extends Model public function items() { - return $this->hasOne(Items::class, 'iditems', 'winning_item_num'); + return $this->belongsTo(Items::class, 'winning_item_num', 'iditems'); } public function bidders() diff --git a/readme.md b/readme.md index 2fd50b6..f121945 100644 --- a/readme.md +++ b/readme.md @@ -49,3 +49,21 @@ If you discover a security vulnerability within Laravel, please send an e-mail t ## License The Laravel framework is open-sourced software licensed under the [MIT license](http://opensource.org/licenses/MIT). + +## Changelog + +### [bidder-facing-checkout] - 2026-04-24 + +#### Added +- **Public Winnings View:** Introduced a new feature allowing bidders to check their won items by entering their bidder number. +- **Routes:** Added `/mywinnings` (GET and POST) routes to `routes/web.php`. +- **Controller Logic:** Implemented `myWinnings` method in `PagesController` to handle bidder lookups and display results. +- **Views:** + - `resources/views/mywinnings_form.blade.php`: Search form for bidder number. + - `resources/views/mywinnings_results.blade.php`: Detailed list of won items and total cost. +- **Navigation:** Added "Check My Winnings" link to the main layout navbar for easy public access. +- **Testing:** Created `tests/Feature/MyWinningsTest.php` to ensure the new feature works as expected. + +#### Changed +- **Models:** Updated `App\Models\WinningBids` relationship `items()` from `hasOne` to `belongsTo` to correctly map the database structure and support eager loading. + diff --git a/resources/views/layouts/app.blade.php b/resources/views/layouts/app.blade.php index 4b5ba9c..c01a98e 100644 --- a/resources/views/layouts/app.blade.php +++ b/resources/views/layouts/app.blade.php @@ -202,6 +202,11 @@ Checkout Bidder +
  • + + Check My Winnings + +