Compare commits
257 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d1c03b927e | |||
| bbea9e51c8 | |||
| 17b2224490 | |||
| c2ec8464ba | |||
| 1dbf0c51bb | |||
| 2b5046b077 | |||
| a2ce8a51fe | |||
| 2512c27904 | |||
| 4fdd41e9b8 | |||
| e79d6174f8 | |||
| 4ed1f6769d | |||
| f75bdb6b4a | |||
| 31acaa23dd | |||
| d4ea64007f | |||
| 7a05e73d52 | |||
| 9ed1765c73 | |||
| 4893550e2a | |||
| 24e2d91eb7 | |||
| 7a6028c63d | |||
| 8d138e22b7 | |||
| 92da95bdff | |||
| 2e5454484f | |||
| ad610633d1 | |||
| 80545f38b3 | |||
| 1b30673823 | |||
| 3703ed569a | |||
| c63ca6626e | |||
| a7edc0115d | |||
| e8a31380f7 | |||
| 1ad8f53a95 | |||
| 05dad0ece0 | |||
| b5bbe4d1b5 | |||
| 2db4ad18e3 | |||
| 107223f2cc | |||
| 799eb37ae0 | |||
| d79d2fbe3e | |||
| 6e2c27a5a4 | |||
| 9e2c50a9ee | |||
| 239ee20397 | |||
| 7bf32dfdcc | |||
| f96b70684b | |||
| bd87475b4d | |||
| 6b1d87414e | |||
| 7a4b926aac | |||
| fb31d91476 | |||
| 55a05ef00e | |||
| a4483788cf | |||
| 2a6edc07f9 | |||
| ba6182e41e | |||
| 2cd8feb19d | |||
| b6ed1e8325 | |||
| 7a29315759 | |||
| 5f4b0c16a3 | |||
| 599b404791 | |||
| 3ddf99172e | |||
| 5c1b855283 | |||
| a4f26e9006 | |||
| 444b9e26db | |||
| 24905c9506 | |||
| 6cb3e1ac24 | |||
| 30dbbd6d58 | |||
| 6193e7fce4 | |||
| 2521246bda | |||
| b208af478d | |||
| 7d9af30ed3 | |||
| 46fbe7c98d | |||
| 87aa8d74d4 | |||
| 01a6d78333 | |||
| af49c71d72 | |||
| e74295fee4 | |||
| e47e20e49b | |||
| 365ebf112a | |||
| 8e6f4bdcfc | |||
| 597c11acd1 | |||
| ea0c1272d1 | |||
| 66e0e467df | |||
| 46c88ed22a | |||
| 4bd0ec6e35 | |||
| 68f3be7644 | |||
| e19c077203 | |||
| bb71e41459 | |||
| 1f4b108c51 | |||
| 762b242046 | |||
| 3cc39c4b3d | |||
| ef00695950 | |||
| 3f711effdc | |||
| 599dfb6f14 | |||
| 5049ed9777 | |||
| b564a63c67 | |||
| 3d95c63e63 | |||
| 72362d2d90 | |||
| 0c4df52f83 | |||
| c6a82f66ad | |||
| 760a3887b6 | |||
| 583b146f41 | |||
| 9526e17f09 | |||
| b82df0a0fb | |||
| 7598164ce4 | |||
| e813d2543f | |||
| 74d67d073e | |||
| e5dbe3e126 | |||
| 18e7c9b361 | |||
| bec2234bd4 | |||
| 492ff400c7 | |||
| d0a0149a75 | |||
| 10349075b0 | |||
| 44a34b1114 | |||
| bd93dd0bf7 | |||
| 81dbf11592 | |||
| 7c88db310d | |||
| 0fd6a6c3e2 | |||
| 01c1d77016 | |||
| 008000314f | |||
| a382a434d4 | |||
| 610ee4290b | |||
| 846db1accf | |||
| 78c2fbb41a | |||
| f130d39118 | |||
| 1adb557265 | |||
| 75aa121ac7 | |||
| 296a6b9243 | |||
| ccac39cd85 | |||
| 69e4516ad8 | |||
| f6aac32eaa | |||
| a60a89d77d | |||
| cec229459d | |||
| 2ae745ffea | |||
| bd52e27f76 | |||
| 9108b6bab6 | |||
| 58450a1262 | |||
| 878236ae2f | |||
| 05ab1c6014 | |||
| 9065dcd911 | |||
| dcd08ae530 | |||
| d468991bd1 | |||
| 7d1ec59dea | |||
| 24d1eda717 | |||
| 9d981f3a34 | |||
| b9c018a4a6 | |||
| 23b0b30434 | |||
| 4b9220c89e | |||
| 298f3fa22b | |||
| 98be7131f4 | |||
| 999c1dfc58 | |||
| a3fd278536 | |||
| 290498c728 | |||
| aca21ae115 | |||
| 982efbf2bd | |||
| 3953a6f4c8 | |||
| fbb10a01d4 | |||
| 6ccb754e0c | |||
| 50826c8c20 | |||
| 68f75ac2fc | |||
| 9587c44657 | |||
| 06de3c0145 | |||
| d2d53e961b | |||
| b0816231d6 | |||
| e4cccba942 | |||
| e023f68a84 | |||
| 4edb7fac10 | |||
| 19f93f95bb | |||
| 885161cc2b | |||
| a8fd03f256 | |||
| 00ff08e3a6 | |||
| 7e8b35bf20 | |||
| 681d8b73d6 | |||
| f294ded6e8 | |||
| eca564eac7 | |||
| e8df889f7e | |||
| ad02f65b54 | |||
| c2c9464133 | |||
| c0176f9924 | |||
| ffa8d30be4 | |||
| d64e1d5578 | |||
| ad66fef19b | |||
| 5a7684bc8c | |||
| aed29fbf56 | |||
| 816fba5121 | |||
| ddbfc642f2 | |||
| b6db2f200b | |||
| ef4ef144a6 | |||
| 7a338c6a31 | |||
| 44521ab677 | |||
| 4b6839aafa | |||
| 186865890d | |||
| cfc8f58a1e | |||
| 59f6c733ac | |||
| a4fff7aea3 | |||
| 47ae95f060 | |||
| 377cc4ab77 | |||
| 947fb290f6 | |||
| 0c794c89a4 | |||
| 55925c8abf | |||
| 20349e57c4 | |||
| 10aa32e19c | |||
| 8bd68a42bd | |||
| fc96cb96ed | |||
| d25890d3ac | |||
| f6df7aa08e | |||
| db1d4ba165 | |||
| a30b70bf27 | |||
| 193d7ecb1f | |||
| a01afdc321 | |||
| ee526dce89 | |||
| 5eea2de51e | |||
| 48fd3d2b35 | |||
| 237fe9f07b | |||
| bab18b6d26 | |||
| 6d8f2b8ead | |||
| 849794ff90 | |||
| 24beacae7e | |||
| 4283399ffa | |||
| de1443b300 | |||
| 02f0fed769 | |||
| 87f9befa72 | |||
| d32c2d6a99 | |||
| e3a64c6ba3 | |||
| 9326fb5026 | |||
| bdd06abcd1 | |||
| 72dfb16018 | |||
| 2374d02670 | |||
| 472cb78ffb | |||
| a99021587e | |||
| 13837faaa5 | |||
| 9954817c16 | |||
| c13238014a | |||
| f9d2fcfa06 | |||
| 3431bef787 | |||
| 47bf882702 | |||
| 70c0e1f768 | |||
| 894fecf6b8 | |||
| 9051c8bd25 | |||
| efa24f90ce | |||
| eeb38a367e | |||
| d113d44463 | |||
| 085ae34e89 | |||
| 1969b7edc8 | |||
| 2fa2c0b9f7 | |||
| cb990adb2a | |||
| dae9f6f39e | |||
| a5e6b5f8d6 | |||
| e5097cf466 | |||
| ecb1dc2bcf | |||
| 3390f66226 | |||
| e7c539e4ef | |||
| 330e210fde | |||
| 7053ce029b | |||
| 2823e03793 | |||
| 42067a7b04 | |||
| 9e65a3731c | |||
| 4bdf14de83 | |||
| 141d6c25fa | |||
| 11ef29d89c | |||
| a2ef1742af | |||
| 4cc8296049 | |||
| d0dd8d35a9 | |||
| 4fb991e4c0 |
@@ -33,3 +33,13 @@ MAIL_FROM_NAME=null
|
||||
PUSHER_APP_ID=
|
||||
PUSHER_APP_KEY=
|
||||
PUSHER_APP_SECRET=
|
||||
|
||||
OIDC_BASE_URL=
|
||||
OIDC_CLIENT_ID=
|
||||
OIDC_CLIENT_SECRET=
|
||||
OIDC_REDIRECT_URI="${APP_URL}/auth/social/oidc/callback"
|
||||
|
||||
NORTH_CHECKOUT_ID=
|
||||
NORTH_PROFILE_ID=
|
||||
NORTH_PRIVATE_API_KEY=
|
||||
|
||||
|
||||
@@ -0,0 +1 @@
|
||||
{"version":2,"defects":{"Tests\\Feature\\MyWinningsTest::test_mywinnings_form_is_accessible":8,"Tests\\Feature\\MyWinningsTest::test_mywinnings_results_show_correct_data":8,"Tests\\Feature\\MyWinningsTest::test_mywinnings_invalid_bidder_shows_error":8},"times":{"Tests\\Unit\\PhoneFormattingTest::it_formats_a_10_digit_phone_number":0.018,"Tests\\Unit\\PhoneFormattingTest::it_strips_non_numeric_characters_before_formatting":0,"Tests\\Unit\\PhoneFormattingTest::it_returns_original_value_if_not_10_digits":0,"Tests\\Unit\\PhoneFormattingTest::bidder_model_accessor_formats_phone_number":0.003}}
|
||||
@@ -3,307 +3,119 @@
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use App\Models\Bidders;
|
||||
use App\Models\CarShowCategory;
|
||||
use App\Models\CarShowWinner;
|
||||
use App\Models\PeoplesChoice;
|
||||
use App\Models\Vehicles;
|
||||
use App\Models\VehicleScores;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
||||
class TabulateWinners extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'carshow:tabulatewinners';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Tabulate Show Winners, and add them to the CarShowWinner table';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
protected $description = 'Tabulate Show Winners. Year Category 1st places can overlap with Best in Show/People\'s Choice.';
|
||||
|
||||
public function handle()
|
||||
{
|
||||
function bestInShowWinner()
|
||||
{
|
||||
$bestInShowWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $bestInShowWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function bestInShow2ndWinner()
|
||||
{
|
||||
$bestInShow2ndWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $bestInShow2ndWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function pcWinner()
|
||||
{
|
||||
$peoplesChoiceWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('peoples_choice.vehicle')
|
||||
->selectRaw('*, sum(pc_count) as totalscore')
|
||||
->whereNotIn('vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $peoplesChoiceWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function pc2ndWinner()
|
||||
{
|
||||
$peoplesChoice2ndWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('peoples_choice.vehicle')
|
||||
->selectRaw('*, sum(pc_count) as totalscore')
|
||||
->whereNotIn('vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $peoplesChoice2ndWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function zeroTo43Winner()
|
||||
{
|
||||
$zeroTo43Query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 0)
|
||||
->where('vehicles.year', '<=', 1943)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $zeroTo43Query->vehicle;
|
||||
}
|
||||
|
||||
function zeroTo432ndWinner()
|
||||
{
|
||||
$zeroTo432ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 0)
|
||||
->where('vehicles.year', '<=', 1943)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $zeroTo432ndQuery->vehicle;
|
||||
}
|
||||
|
||||
function fortyFourToNinetySevenWinner()
|
||||
{
|
||||
$fortyFourToNinetySevenQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1944)
|
||||
->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $fortyFourToNinetySevenQuery->vehicle;
|
||||
}
|
||||
|
||||
function fortyFourToNinetySeven2ndWinner()
|
||||
{
|
||||
$fortyFourToNinetySeven2ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1944)
|
||||
->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $fortyFourToNinetySeven2ndQuery->vehicle;
|
||||
}
|
||||
|
||||
function NinetyEightToCurrentWinner()
|
||||
{
|
||||
$NinetyEightToCurrentQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1998)
|
||||
//->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $NinetyEightToCurrentQuery->vehicle;
|
||||
}
|
||||
|
||||
function NinetyEightToCurrent2ndWinner()
|
||||
{
|
||||
$NinetyEightToCurrent2ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1998)
|
||||
//->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $NinetyEightToCurrent2ndQuery->vehicle;
|
||||
}
|
||||
|
||||
// Truncate table first
|
||||
CarShowWinner::truncate();
|
||||
//Insert Best In Show Winner
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '6',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => bestInShowWinner()
|
||||
]
|
||||
);
|
||||
/*
|
||||
//Insert Best In Show 2nd Place Winner
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '6',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => bestInShow2ndWinner()
|
||||
]
|
||||
);
|
||||
*/
|
||||
//Insert People's Choice Winner
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '3',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => pcWinner()
|
||||
]
|
||||
);
|
||||
/*
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '3',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => pc2ndWinner()
|
||||
]
|
||||
);
|
||||
*/
|
||||
//Insert Year Award Winners
|
||||
//0-1943
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '17',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => zeroTo43Winner()
|
||||
]
|
||||
);
|
||||
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '17',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => zeroTo432ndWinner()
|
||||
]
|
||||
);
|
||||
//1944-1997
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '18',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => fortyFourToNinetySevenWinner()
|
||||
]
|
||||
);
|
||||
$this->info('Starting tabulation...');
|
||||
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '18',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => fortyFourToNinetySeven2ndWinner()
|
||||
]
|
||||
);
|
||||
|
||||
//1998-Current
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '19',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => NinetyEightToCurrentWinner()
|
||||
]
|
||||
);
|
||||
// 2. BEST IN SHOW (Category 6)
|
||||
$this->recordJudgedWinners(6, 'first', null, null, true);
|
||||
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '19',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => NinetyEightToCurrent2ndWinner()
|
||||
]
|
||||
);
|
||||
// 3. PEOPLE'S CHOICE (Category 3)
|
||||
$this->recordPeoplesChoiceWinners(3, 'first');
|
||||
|
||||
// 4. YEAR CATEGORIES
|
||||
$yearConfigs = [
|
||||
['id' => 17, 'name' => '0-1942', 'start' => 0, 'end' => 1942],
|
||||
['id' => 18, 'name' => '1943-1969', 'start' => 1943, 'end' => 1969],
|
||||
['id' => 20, 'name' => '1970-2000', 'start' => 1970, 'end' => 2000],
|
||||
['id' => 19, 'name' => '2001-Current', 'start' => 2001, 'end' => 2026],
|
||||
];
|
||||
|
||||
foreach ($yearConfigs as $config) {
|
||||
$this->info("Processing Category: {$config['name']}");
|
||||
$this->recordJudgedWinners($config['id'], 'first', $config['start'], $config['end'], false);
|
||||
$this->recordJudgedWinners($config['id'], 'second', $config['start'], $config['end'], true);
|
||||
$this->recordJudgedWinners($config['id'], 'third', $config['start'], $config['end'], true);
|
||||
$this->recordJudgedWinners($config['id'], 'fourth', $config['start'], $config['end'], true);
|
||||
$this->recordJudgedWinners($config['id'], 'fifth', $config['start'], $config['end'], true);
|
||||
}
|
||||
|
||||
$this->info('Winners tabulated successfully.');
|
||||
}
|
||||
}
|
||||
|
||||
private function recordJudgedWinners($categoryId, $place, $startYear = null, $endYear = null, $excludeExisting = true)
|
||||
{
|
||||
$query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->where('vehicles.doNotJudge', 0);
|
||||
|
||||
if ($excludeExisting) {
|
||||
$query->whereNotIn('vehicle_scores.vehicle', function ($q) {
|
||||
$q->select('vehicle')->from('car_show_winners');
|
||||
});
|
||||
}
|
||||
|
||||
if ($startYear !== null) $query->where('vehicles.year', '>=', $startYear);
|
||||
if ($endYear !== null) $query->where('vehicles.year', '<=', $endYear);
|
||||
|
||||
$maxScore = (clone $query)
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('sum(vehicle_scores.overall_score) as totalscore')
|
||||
->orderBy('totalscore', 'desc')
|
||||
->value('totalscore');
|
||||
|
||||
if ($maxScore) {
|
||||
$winners = $query->selectRaw('vehicles.id as vehicle_id, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->groupBy('vehicles.id')
|
||||
->having('totalscore', '=', $maxScore)
|
||||
->get();
|
||||
|
||||
foreach ($winners as $winner) {
|
||||
CarShowWinner::updateOrCreate([
|
||||
'category' => $categoryId,
|
||||
'place' => $place,
|
||||
'vehicle' => $winner->vehicle_id
|
||||
], [
|
||||
// Added totalscore here
|
||||
'total_score' => $winner->totalscore
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private function recordPeoplesChoiceWinners($categoryId, $place)
|
||||
{
|
||||
$maxVotes = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
|
||||
->where('vehicles.doNotJudge', 0)
|
||||
->whereNotIn('peoples_choice.vehicle', function ($q) {
|
||||
$q->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->groupBy('peoples_choice.vehicle')
|
||||
->selectRaw('sum(pc_count) as totalvotes')
|
||||
->orderBy('totalvotes', 'desc')
|
||||
->value('totalvotes');
|
||||
|
||||
if ($maxVotes) {
|
||||
$winners = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
|
||||
->selectRaw('peoples_choice.vehicle as vehicle_id, sum(pc_count) as totalvotes')
|
||||
->where('vehicles.doNotJudge', 0)
|
||||
->whereNotIn('peoples_choice.vehicle', function ($q) {
|
||||
$q->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->groupBy('peoples_choice.vehicle')
|
||||
->having('totalvotes', '=', $maxVotes)
|
||||
->get();
|
||||
|
||||
foreach ($winners as $winner) {
|
||||
CarShowWinner::create([
|
||||
'category' => $categoryId,
|
||||
'place' => $place,
|
||||
'vehicle' => $winner->vehicle_id,
|
||||
// Added totalvotes here
|
||||
'total_score' => $winner->totalvotes
|
||||
]);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,309 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use App\Models\Bidders;
|
||||
use App\Models\CarShowCategory;
|
||||
use App\Models\CarShowWinner;
|
||||
use App\Models\PeoplesChoice;
|
||||
use App\Models\Vehicles;
|
||||
use App\Models\VehicleScores;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
||||
class TabulateWinners extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'carshow:tabulatewinners';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Tabulate Show Winners, and add them to the CarShowWinner table';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
|
||||
public function handle()
|
||||
{
|
||||
function bestInShowWinner()
|
||||
{
|
||||
$bestInShowWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $bestInShowWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function bestInShow2ndWinner()
|
||||
{
|
||||
$bestInShow2ndWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $bestInShow2ndWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function pcWinner()
|
||||
{
|
||||
$peoplesChoiceWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('peoples_choice.vehicle')
|
||||
->selectRaw('*, sum(pc_count) as totalscore')
|
||||
->whereNotIn('vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $peoplesChoiceWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function pc2ndWinner()
|
||||
{
|
||||
$peoplesChoice2ndWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('peoples_choice.vehicle')
|
||||
->selectRaw('*, sum(pc_count) as totalscore')
|
||||
->whereNotIn('vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $peoplesChoice2ndWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function zeroTo43Winner()
|
||||
{
|
||||
$zeroTo43Query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 0)
|
||||
->where('vehicles.year', '<=', 1943)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $zeroTo43Query->vehicle;
|
||||
}
|
||||
|
||||
function zeroTo432ndWinner()
|
||||
{
|
||||
$zeroTo432ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 0)
|
||||
->where('vehicles.year', '<=', 1943)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $zeroTo432ndQuery->vehicle;
|
||||
}
|
||||
|
||||
function fortyFourToNinetySevenWinner()
|
||||
{
|
||||
$fortyFourToNinetySevenQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1944)
|
||||
->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $fortyFourToNinetySevenQuery->vehicle;
|
||||
}
|
||||
|
||||
function fortyFourToNinetySeven2ndWinner()
|
||||
{
|
||||
$fortyFourToNinetySeven2ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1944)
|
||||
->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $fortyFourToNinetySeven2ndQuery->vehicle;
|
||||
}
|
||||
|
||||
function NinetyEightToCurrentWinner()
|
||||
{
|
||||
$NinetyEightToCurrentQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1998)
|
||||
//->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $NinetyEightToCurrentQuery->vehicle;
|
||||
}
|
||||
|
||||
function NinetyEightToCurrent2ndWinner()
|
||||
{
|
||||
$NinetyEightToCurrent2ndQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1998)
|
||||
//->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $NinetyEightToCurrent2ndQuery->vehicle;
|
||||
}
|
||||
|
||||
// Truncate table first
|
||||
CarShowWinner::truncate();
|
||||
//Insert Best In Show Winner
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '6',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => bestInShowWinner()
|
||||
]
|
||||
);
|
||||
/*
|
||||
//Insert Best In Show 2nd Place Winner
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '6',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => bestInShow2ndWinner()
|
||||
]
|
||||
);
|
||||
*/
|
||||
//Insert People's Choice Winner
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '3',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => pcWinner()
|
||||
]
|
||||
);
|
||||
/*
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '3',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => pc2ndWinner()
|
||||
]
|
||||
);
|
||||
*/
|
||||
//Insert Year Award Winners
|
||||
//0-1943
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '17',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => zeroTo43Winner()
|
||||
]
|
||||
);
|
||||
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '17',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => zeroTo432ndWinner()
|
||||
]
|
||||
);
|
||||
//1944-1997
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '18',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => fortyFourToNinetySevenWinner()
|
||||
]
|
||||
);
|
||||
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '18',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => fortyFourToNinetySeven2ndWinner()
|
||||
]
|
||||
);
|
||||
|
||||
//1998-Current
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '19',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => NinetyEightToCurrentWinner()
|
||||
]
|
||||
);
|
||||
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '19',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => NinetyEightToCurrent2ndWinner()
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,309 @@
|
||||
<?php
|
||||
|
||||
namespace App\Console\Commands;
|
||||
|
||||
use Illuminate\Console\Command;
|
||||
use App\Models\Bidders;
|
||||
use App\Models\CarShowCategory;
|
||||
use App\Models\CarShowWinner;
|
||||
use App\Models\PeoplesChoice;
|
||||
use App\Models\Vehicles;
|
||||
use App\Models\VehicleScores;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
|
||||
class TabulateWinners extends Command
|
||||
{
|
||||
/**
|
||||
* The name and signature of the console command.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $signature = 'carshow:tabulatewinners';
|
||||
|
||||
/**
|
||||
* The console command description.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $description = 'Tabulate Show Winners, and add them to the CarShowWinner table';
|
||||
|
||||
/**
|
||||
* Create a new command instance.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
/**
|
||||
* Execute the console command.
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
|
||||
public function handle()
|
||||
{
|
||||
function bestInShowWinner()
|
||||
{
|
||||
$bestInShowWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $bestInShowWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function bestInShow2ndWinner()
|
||||
{
|
||||
$bestInShow2ndWinnerQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $bestInShow2ndWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function pcWinner()
|
||||
{
|
||||
$peoplesChoiceWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('peoples_choice.vehicle')
|
||||
->selectRaw('*, sum(pc_count) as totalscore')
|
||||
->whereNotIn('vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $peoplesChoiceWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function pc2ndWinner()
|
||||
{
|
||||
$peoplesChoice2ndWinnerQuery = PeoplesChoice::join('vehicles', 'peoples_choice.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('peoples_choice.vehicle')
|
||||
->selectRaw('*, sum(pc_count) as totalscore')
|
||||
->whereNotIn('vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $peoplesChoice2ndWinnerQuery->vehicle;
|
||||
}
|
||||
|
||||
function zeroTo42Winner()
|
||||
{
|
||||
$zeroTo43Query = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 0)
|
||||
->where('vehicles.year', '<=', 1942)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $zeroTo43Query->vehicle;
|
||||
}
|
||||
|
||||
function fortyThreeToSixtyNineWinner()
|
||||
{
|
||||
$fortyThreeToSixtyNineQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1943)
|
||||
->where('vehicles.year', '<=', 1969)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $fortyThreeToSixtyNineQuery->vehicle;
|
||||
}
|
||||
|
||||
function seventyToTwoThousandWinner()
|
||||
{
|
||||
$seventyToTwoThousandQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 1970)
|
||||
->where('vehicles.year', '<=', 2000)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $seventyToTwoThousandQuery->vehicle;
|
||||
}
|
||||
|
||||
function TwoThousandOneToCurrentWinner()
|
||||
{
|
||||
$TwoThousandOneToCurrentQuery = VehicleScores::join('vehicles', 'vehicle_scores.vehicle', '=', 'vehicles.id')
|
||||
->groupBy('vehicles.id')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->whereNotIn('vehicle_scores.vehicle', function($query){
|
||||
$query->select('vehicle')->from('car_show_winners');
|
||||
})
|
||||
->where('vehicles.year', '>=', 2001)
|
||||
//->where('vehicles.year', '<=', 1997)
|
||||
->where('vehicles.doNotJudge', '=', 0)
|
||||
->orderBy('totalscore','desc')
|
||||
->first();
|
||||
return $TwoThousandOneToCurrentQuery->vehicle;
|
||||
}
|
||||
|
||||
// Truncate table first
|
||||
CarShowWinner::truncate();
|
||||
//Insert Best In Show Winner
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '6',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => bestInShowWinner()
|
||||
]
|
||||
);
|
||||
|
||||
//Insert People's Choice Winner
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '3',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => pcWinner()
|
||||
]
|
||||
);
|
||||
|
||||
//Insert Year Award Winners
|
||||
//0-1942
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '17',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => zeroTo42Winner()
|
||||
]
|
||||
);
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '17',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => zeroTo42Winner()
|
||||
]
|
||||
);
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '17',
|
||||
'place' => 'third'
|
||||
],
|
||||
[
|
||||
'vehicle' => zeroTo42Winner()
|
||||
]
|
||||
);
|
||||
//1943-1969
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '18',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => fortyThreeToSixtyNineWinner()
|
||||
]
|
||||
);
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '18',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => fortyThreeToSixtyNineWinner()
|
||||
]
|
||||
);
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '18',
|
||||
'place' => 'third'
|
||||
],
|
||||
[
|
||||
'vehicle' => fortyThreeToSixtyNineWinner()
|
||||
]
|
||||
);
|
||||
|
||||
//1970-2000
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '20',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => seventyToTwoThousandWinner()
|
||||
]
|
||||
);
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '20',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => seventyToTwoThousandWinner()
|
||||
]
|
||||
);
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '20',
|
||||
'place' => 'third'
|
||||
],
|
||||
[
|
||||
'vehicle' => seventyToTwoThousandWinner()
|
||||
]
|
||||
);
|
||||
|
||||
//2001-Current
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '19',
|
||||
'place' => 'first'
|
||||
],
|
||||
[
|
||||
'vehicle' => TwoThousandOneToCurrentWinner()
|
||||
]
|
||||
);
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '19',
|
||||
'place' => 'second'
|
||||
],
|
||||
[
|
||||
'vehicle' => TwoThousandOneToCurrentWinner()
|
||||
]
|
||||
);
|
||||
CarShowWinner::updateOrCreate(
|
||||
[
|
||||
'category' => '19',
|
||||
'place' => 'third'
|
||||
],
|
||||
[
|
||||
'vehicle' => TwoThousandOneToCurrentWinner()
|
||||
]
|
||||
);
|
||||
}
|
||||
}
|
||||
@@ -5,15 +5,19 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\BiddersResource\Pages;
|
||||
use App\Filament\Resources\BiddersResource\RelationManagers;
|
||||
use App\Models\Bidders;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class BiddersResource extends Resource
|
||||
{
|
||||
@@ -21,14 +25,14 @@ class BiddersResource extends Resource
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'idbidders';
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Silent Auction';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('bidder_fname')->label('First Name'),
|
||||
TextInput::make('bidder_lname')->label('Last Name'),
|
||||
TextInput::make('bidder_addr')->label('Address'),
|
||||
@@ -36,7 +40,7 @@ class BiddersResource extends Resource
|
||||
TextInput::make('bidder_state')->label('State'),
|
||||
TextInput::make('bidder_zip')->label('Zip'),
|
||||
TextInput::make('bidder_phone')->label('Phone Number')
|
||||
->mask(fn (TextInput\Mask $mask) => $mask->pattern('(000)000-0000')),
|
||||
->mask('(999) 999-9999'),
|
||||
TextInput::make('bidder_email')->label('Email'),
|
||||
TextInput::make('bidder_assigned_number')->label('Assigned Number'),
|
||||
]);
|
||||
@@ -46,24 +50,27 @@ class BiddersResource extends Resource
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
TextColumn::make('bidder_assigned_number')->sortable()->label('Assigned Number'),
|
||||
TextColumn::make('bidder_fname')->sortable()->label('First Name'),
|
||||
TextColumn::make('bidder_lname')->sortable()->label('Last Name'),
|
||||
TextColumn::make('bidder_addr')->label('Address'),
|
||||
TextColumn::make('bidder_city')->label('City'),
|
||||
TextColumn::make('bidder_state')->label('State'),
|
||||
TextColumn::make('bidder_zip')->label('Zip'),
|
||||
TextColumn::make('bidder_phone')->label('Phone Number'),
|
||||
TextColumn::make('bidder_email')->label('Email'),
|
||||
TextColumn::make('bidder_assigned_number')->sortable()->label('Assigned Number')->sortable(),
|
||||
TextColumn::make('bidder_fname')->sortable()->label('First Name')->sortable(),
|
||||
TextColumn::make('bidder_lname')->sortable()->label('Last Name')->sortable(),
|
||||
TextColumn::make('bidder_addr')->label('Address')->sortable(),
|
||||
TextColumn::make('bidder_city')->label('City')->sortable(),
|
||||
TextColumn::make('bidder_state')->label('State')->sortable(),
|
||||
TextColumn::make('bidder_zip')->label('Zip')->sortable(),
|
||||
TextColumn::make('bidder_phone')->label('Phone Number')->sortable()
|
||||
->formatStateUsing(fn ($state) => \App\Helpers\PhoneHelper::format($state)),
|
||||
TextColumn::make('bidder_email')->label('Email')->sortable(),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
])
|
||||
->defaultSort('bidder_assigned_number');
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\BiddersResource\Pages;
|
||||
|
||||
use App\Filament\Resources\BiddersResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateBidders extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\BiddersResource\Pages;
|
||||
|
||||
use App\Filament\Resources\BiddersResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditBidders extends EditRecord
|
||||
{
|
||||
protected static string $resource = BiddersResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\BiddersResource\Pages;
|
||||
|
||||
use App\Filament\Resources\BiddersResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListBidders extends ListRecords
|
||||
{
|
||||
protected static string $resource = BiddersResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+24
-18
@@ -3,12 +3,18 @@
|
||||
namespace App\Filament\Resources\BiddersResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
|
||||
class CheckoutRelationManager extends RelationManager
|
||||
{
|
||||
@@ -16,43 +22,43 @@ class CheckoutRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'bidder_num';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('bidder_num')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
Tables\Columns\TextColumn::make('bidders.bidder_assigned_number')
|
||||
TextColumn::make('bidders.bidder_assigned_number')
|
||||
->label('Bidder Number')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('winnertotal')
|
||||
TextColumn::make('winnertotal')
|
||||
->label('Total Amount')
|
||||
->money('usd', 'true')
|
||||
->money('USD')
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('paymentMethod.pm_name')
|
||||
TextColumn::make('paymentMethod.pm_name')
|
||||
->label('Payment Method')
|
||||
->sortable(),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
+23
-17
@@ -3,24 +3,29 @@
|
||||
namespace App\Filament\Resources\BiddersResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use App\Models\CarShowCategory;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
use Filament\Tables\Columns\IconColumn;
|
||||
class VehiclesRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'vehicles';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'owner';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('year')
|
||||
->label('Year'),
|
||||
Forms\Components\TextInput::make('make')
|
||||
@@ -34,7 +39,7 @@ class VehiclesRelationManager extends RelationManager
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -53,10 +58,11 @@ class VehiclesRelationManager extends RelationManager
|
||||
Tables\Columns\TextColumn::make('vehicleType.category_name')
|
||||
->label('Type')
|
||||
->sortable(),
|
||||
Tables\Columns\BooleanColumn::make('doNotJudge')
|
||||
IconColumn::make('doNotJudge')
|
||||
->boolean()
|
||||
->label('Judged?')
|
||||
->sortable()
|
||||
->falseIcon('heroicon-o-badge-check')
|
||||
->falseIcon('heroicon-o-check-badge')
|
||||
->trueIcon('heroicon-o-x-circle')
|
||||
->trueColor('danger')
|
||||
->falseColor('success'),
|
||||
@@ -64,15 +70,15 @@ class VehiclesRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
+20
-15
@@ -3,13 +3,18 @@
|
||||
namespace App\Filament\Resources\BiddersResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use App\Models\Bidders;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class WinningBidsRelationManager extends RelationManager
|
||||
{
|
||||
@@ -17,10 +22,10 @@ class WinningBidsRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'winning_bidder_num';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\Select::make('winning_bidder_num')
|
||||
->label('Winning Bidder Number')
|
||||
->options(Bidders::pluck('bidder_assigned_number', 'idbidders'))
|
||||
@@ -28,7 +33,7 @@ class WinningBidsRelationManager extends RelationManager
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -40,22 +45,22 @@ class WinningBidsRelationManager extends RelationManager
|
||||
->sortable(),
|
||||
Tables\Columns\TextColumn::make('winning_cost')
|
||||
->label('Winning Bid Amt')
|
||||
->money('usd', 'true')
|
||||
->money('USD')
|
||||
->sortable(),
|
||||
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -6,30 +6,35 @@ use App\Filament\Resources\CarShowCategoryResource\Pages;
|
||||
use App\Filament\Resources\CarShowCategoryResource\RelationManagers;
|
||||
use App\Filament\Resources\CarShowCategoryResource\RelationManagers\VehicleRelationManager;
|
||||
use App\Models\CarShowCategory;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Tables\Columns\BooleanColumn;
|
||||
use Filament\Tables\Columns\IconColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Forms\Components\Toggle;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class CarShowCategoryResource extends Resource
|
||||
{
|
||||
protected static ?string $model = CarShowCategory::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Car Show';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('category_name'),
|
||||
Toggle::make('vehicle_type')->inline(false)
|
||||
]);
|
||||
@@ -40,16 +45,18 @@ class CarShowCategoryResource extends Resource
|
||||
return $table
|
||||
->columns([
|
||||
TextColumn::make('category_name')->sortable(),
|
||||
BooleanColumn::make('vehicle_type')->sortable(),
|
||||
IconColumn::make('vehicle_type')->boolean()->sortable(),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
])
|
||||
->defaultSort('category_name');
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CarShowCategoryResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateCarShowCategory extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CarShowCategoryResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditCarShowCategory extends EditRecord
|
||||
{
|
||||
protected static string $resource = CarShowCategoryResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CarShowCategoryResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListCarShowCategories extends ListRecords
|
||||
{
|
||||
protected static string $resource = CarShowCategoryResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+23
-18
@@ -3,13 +3,19 @@
|
||||
namespace App\Filament\Resources\CarShowCategoryResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
use Filament\Actions\DissociateAction;
|
||||
use Filament\Actions\AssociateAction;
|
||||
class VehicleRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'vehicle';
|
||||
@@ -18,17 +24,17 @@ class VehicleRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $inverseRelationship = 'vehicleType';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('id')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -41,18 +47,17 @@ class VehicleRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
Tables\Actions\AssociateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
DissociateAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
Tables\Actions\DissociateAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
Tables\Actions\DissociateBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
AssociateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,8 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\CarShowWinnerResource\Pages;
|
||||
use App\Filament\Resources\CarShowWinnerResource\RelationManagers;
|
||||
use App\Models\CarShowWinner;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -16,19 +14,25 @@ use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\Select;
|
||||
use App\Models\Vehicles;
|
||||
use App\Models\CarShowCategory;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class CarShowWinnerResource extends Resource
|
||||
{
|
||||
protected static ?string $model = CarShowWinner::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Car Show';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Select::make('vehicle')
|
||||
->label('Vehicle')
|
||||
->options(Vehicles::all()->pluck('owner', 'id'))
|
||||
@@ -44,20 +48,23 @@ class CarShowWinnerResource extends Resource
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
TextColumn::make('awardCategory.category_name')->label('Category'),
|
||||
TextColumn::make('awardVehicle.owner')->label('Vehicle Number'),
|
||||
TextColumn::make('awardVehicle.year')->label('Year'),
|
||||
TextColumn::make('awardVehicle.make')->label('Make'),
|
||||
TextColumn::make('awardVehicle.model')->label('Model'),
|
||||
TextColumn::make('awardCategory.category_name')->label('Category')->sortable(),
|
||||
TextColumn::make('awardVehicle.owner')->label('Vehicle Number')->sortable(),
|
||||
TextColumn::make('total_score')->label('Total Score')->sortable(),
|
||||
TextColumn::make('awardVehicle.year')->label('Year')->sortable(),
|
||||
TextColumn::make('awardVehicle.make')->label('Make')->sortable(),
|
||||
TextColumn::make('awardVehicle.model')->label('Model')->sortable(),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CarShowWinnerResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateCarShowWinner extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CarShowWinnerResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditCarShowWinner extends EditRecord
|
||||
{
|
||||
protected static string $resource = CarShowWinnerResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CarShowWinnerResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListCarShowWinners extends ListRecords
|
||||
{
|
||||
protected static string $resource = CarShowWinnerResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+19
-15
@@ -3,30 +3,34 @@
|
||||
namespace App\Filament\Resources\CarShowWinnerResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
class AwardCategoryRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'awardCategory';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'id';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('id')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -36,15 +40,15 @@ class AwardCategoryRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
+19
-15
@@ -3,30 +3,34 @@
|
||||
namespace App\Filament\Resources\CarShowWinnerResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
class AwardVehicleRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'awardVehicle';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'id';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('id')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -38,15 +42,15 @@ class AwardVehicleRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,33 +5,36 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\CheckoutResource\Pages;
|
||||
use App\Filament\Resources\CheckoutResource\RelationManagers;
|
||||
use App\Models\Checkout;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Tables\Columns\BooleanColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\Toggle;
|
||||
use App\Models\Bidders;
|
||||
use App\Models\PaymentMethods;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class CheckoutResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Checkout::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Silent Auction';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Select::make('bidder_num')
|
||||
->label('Bidder')
|
||||
->options(
|
||||
@@ -40,15 +43,7 @@ class CheckoutResource extends Resource
|
||||
)
|
||||
->searchable(),
|
||||
TextInput::make('winnertotal')
|
||||
->label('Total Amount')
|
||||
->mask(
|
||||
fn (TextInput\Mask $mask) => $mask->money(
|
||||
prefix: '$',
|
||||
thousandsSeparator: ',',
|
||||
decimalPlaces: 2,
|
||||
isSigned: false
|
||||
)
|
||||
),
|
||||
->label('Total Amount'),
|
||||
Select::make('payment_method')
|
||||
->label('Payment Method')
|
||||
->options(PaymentMethods::all()->pluck('pm_name', 'pm_id'))
|
||||
@@ -65,7 +60,7 @@ class CheckoutResource extends Resource
|
||||
->sortable(),
|
||||
TextColumn::make('winnertotal')
|
||||
->label('Total Amount')
|
||||
->money('usd', 'true')
|
||||
->money('USD')
|
||||
->sortable(),
|
||||
TextColumn::make('paymentMethod.pm_name')
|
||||
->label('Payment Method')
|
||||
@@ -74,11 +69,13 @@ class CheckoutResource extends Resource
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
])
|
||||
->defaultSort('bidders.bidder_assigned_number');
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\CheckoutResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CheckoutResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateCheckout extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\CheckoutResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CheckoutResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditCheckout extends EditRecord
|
||||
{
|
||||
protected static string $resource = CheckoutResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\CheckoutResource\Pages;
|
||||
|
||||
use App\Filament\Resources\CheckoutResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListCheckouts extends ListRecords
|
||||
{
|
||||
protected static string $resource = CheckoutResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+10
-8
@@ -3,9 +3,9 @@
|
||||
namespace App\Filament\Resources\CheckoutResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -16,10 +16,10 @@ class BiddersRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'bidder_num';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\Select::make('bidder_num')
|
||||
->label('Number')
|
||||
->required()
|
||||
@@ -33,11 +33,11 @@ class BiddersRelationManager extends RelationManager
|
||||
Forms\Components\TextInput::make('bidder_phone')->label('Phone Number'),
|
||||
Forms\Components\TextInput::make('bidder_email')->label('Email'),
|
||||
Forms\Components\TextInput::make('bidder_assigned_number')->label('Assigned Number'),
|
||||
]),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -56,7 +56,9 @@ class BiddersRelationManager extends RelationManager
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
+9
-7
@@ -3,9 +3,9 @@
|
||||
namespace App\Filament\Resources\CheckoutResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -16,17 +16,17 @@ class PaymentMethodRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'payment_method';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('payment_method')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -43,7 +43,9 @@ class PaymentMethodRelationManager extends RelationManager
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,54 +5,41 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\ItemsResource\Pages;
|
||||
use App\Filament\Resources\ItemsResource\RelationManagers;
|
||||
use App\Models\Items;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Tables\Columns\BooleanColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Forms\Components\Toggle;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class ItemsResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Items::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Silent Auction';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('item_assigned_num')
|
||||
->label('Item Number'),
|
||||
TextInput::make('item_desc')
|
||||
->label('Description'),
|
||||
TextInput::make('item_min_bid')
|
||||
->label('Minimum Bid')
|
||||
->mask(
|
||||
fn (TextInput\Mask $mask) => $mask->money(
|
||||
prefix: '$',
|
||||
thousandsSeparator: ',',
|
||||
decimalPlaces: 2,
|
||||
isSigned: false
|
||||
)
|
||||
),
|
||||
->label('Minimum Bid'),
|
||||
TextInput::make('item_est_value')
|
||||
->label('Estimated Value')
|
||||
->mask(
|
||||
fn (TextInput\Mask $mask) => $mask->money(
|
||||
prefix: '$',
|
||||
thousandsSeparator: ',',
|
||||
decimalPlaces: 2,
|
||||
isSigned: false
|
||||
)
|
||||
),
|
||||
->label('Estimated Value'),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -67,21 +54,23 @@ class ItemsResource extends Resource
|
||||
->label('Description'),
|
||||
TextColumn::make('item_min_bid')
|
||||
->label('Minimum Bid')
|
||||
->money('usd', 'true')
|
||||
->money('USD')
|
||||
->sortable(),
|
||||
TextColumn::make('item_est_value')
|
||||
->label('Estimated Value')
|
||||
->money('usd', 'true')
|
||||
->money('USD')
|
||||
->sortable(),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
])
|
||||
->defaultSort('item_assigned_num');
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\ItemsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\ItemsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateItems extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\ItemsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\ItemsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditItems extends EditRecord
|
||||
{
|
||||
protected static string $resource = ItemsResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\ItemsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\ItemsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListItems extends ListRecords
|
||||
{
|
||||
protected static string $resource = ItemsResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+9
-7
@@ -3,9 +3,9 @@
|
||||
namespace App\Filament\Resources\ItemsResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -16,17 +16,17 @@ class WinningBidsRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'iditems';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('iditems')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -43,7 +43,9 @@ class WinningBidsRelationManager extends RelationManager
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,28 +5,32 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\JudgesResource\Pages;
|
||||
use App\Filament\Resources\JudgesResource\RelationManagers;
|
||||
use App\Models\Judges;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class JudgesResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Judges::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Car Show';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('judge_number'),
|
||||
]);
|
||||
}
|
||||
@@ -40,11 +44,13 @@ class JudgesResource extends Resource
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\JudgesResource\Pages;
|
||||
|
||||
use App\Filament\Resources\JudgesResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateJudges extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\JudgesResource\Pages;
|
||||
|
||||
use App\Filament\Resources\JudgesResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditJudges extends EditRecord
|
||||
{
|
||||
protected static string $resource = JudgesResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\JudgesResource\Pages;
|
||||
|
||||
use App\Filament\Resources\JudgesResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListJudges extends ListRecords
|
||||
{
|
||||
protected static string $resource = JudgesResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+9
-7
@@ -3,9 +3,9 @@
|
||||
namespace App\Filament\Resources\JudgesResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -16,17 +16,17 @@ class VehicleScoresRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'judge';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('judge')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -43,7 +43,9 @@ class VehicleScoresRelationManager extends RelationManager
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,28 +5,32 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\PaymentMethodsResource\Pages;
|
||||
use App\Filament\Resources\PaymentMethodsResource\RelationManagers;
|
||||
use App\Models\PaymentMethods;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class PaymentMethodsResource extends Resource
|
||||
{
|
||||
protected static ?string $model = PaymentMethods::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Silent Auction';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('pm_name')
|
||||
->label('Method Name'),
|
||||
]);
|
||||
@@ -43,11 +47,13 @@ class PaymentMethodsResource extends Resource
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\PaymentMethodsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreatePaymentMethods extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\PaymentMethodsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditPaymentMethods extends EditRecord
|
||||
{
|
||||
protected static string $resource = PaymentMethodsResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\PaymentMethodsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListPaymentMethods extends ListRecords
|
||||
{
|
||||
protected static string $resource = PaymentMethodsResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+9
-7
@@ -3,9 +3,9 @@
|
||||
namespace App\Filament\Resources\PaymentMethodsResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -16,17 +16,17 @@ class CheckoutRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'payment_method';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('payment_method')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -43,7 +43,9 @@ class CheckoutRelationManager extends RelationManager
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,10 +5,11 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\PeoplesChoiceResource\Pages;
|
||||
use App\Filament\Resources\PeoplesChoiceResource\RelationManagers;
|
||||
use App\Models\PeoplesChoice;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -16,21 +17,24 @@ use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use App\Models\Vehicles;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class PeoplesChoiceResource extends Resource
|
||||
{
|
||||
protected static ?string $model = PeoplesChoice::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
|
||||
protected static ?string $navigationGroup = 'Car Show';
|
||||
|
||||
protected static ?string $pluralModelLabel = 'Peoples Choice';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Select::make('vehicle')
|
||||
->label('Vehicle')
|
||||
->options(Vehicles::all()->pluck('owner', 'id'))
|
||||
@@ -43,20 +47,22 @@ class PeoplesChoiceResource extends Resource
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
TextColumn::make('pc_count')->label('PC Vote Count'),
|
||||
TextColumn::make('vehicles.owner')->label('Vehicle Number'),
|
||||
TextColumn::make('vehicles.year')->label('Year'),
|
||||
TextColumn::make('vehicles.make')->label('Make'),
|
||||
TextColumn::make('vehicles.model')->label('Model'),
|
||||
TextColumn::make('pc_count')->label('PC Vote Count')->sortable(),
|
||||
TextColumn::make('vehicles.owner')->label('Vehicle Number')->sortable(),
|
||||
TextColumn::make('vehicles.year')->label('Year')->sortable(),
|
||||
TextColumn::make('vehicles.make')->label('Make')->sortable(),
|
||||
TextColumn::make('vehicles.model')->label('Model')->sortable(),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
|
||||
|
||||
use App\Filament\Resources\PeoplesChoiceResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreatePeoplesChoice extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
|
||||
|
||||
use App\Filament\Resources\PeoplesChoiceResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditPeoplesChoice extends EditRecord
|
||||
{
|
||||
protected static string $resource = PeoplesChoiceResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
|
||||
|
||||
use App\Filament\Resources\PeoplesChoiceResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListPeoplesChoices extends ListRecords
|
||||
{
|
||||
protected static string $resource = PeoplesChoiceResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+9
-7
@@ -3,9 +3,9 @@
|
||||
namespace App\Filament\Resources\PeoplesChoiceResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -16,17 +16,17 @@ class VehiclesRelationManager extends RelationManager
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'vehicle';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('vehicle')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -43,7 +43,9 @@ class VehiclesRelationManager extends RelationManager
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
Tables\Actions\BulkActionGroup::make([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,77 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources;
|
||||
|
||||
use App\User;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
use Filament\Support\Icons\Heroicon;
|
||||
use BackedEnum;
|
||||
|
||||
class UserResource extends Resource
|
||||
{
|
||||
protected static ?string $model = User::class;
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'name';
|
||||
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-users';
|
||||
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $schema
|
||||
->components([
|
||||
TextInput::make('name')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
TextInput::make('email')
|
||||
->email()
|
||||
->required()
|
||||
->maxLength(255),
|
||||
TextInput::make('provider_name')
|
||||
->label('OIDC Provider')
|
||||
->disabled(),
|
||||
TextInput::make('provider_id')
|
||||
->label('OIDC ID')
|
||||
->disabled(),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
TextColumn::make('name')->sortable()->searchable(),
|
||||
TextColumn::make('email')->sortable()->searchable(),
|
||||
TextColumn::make('provider_name')->label('OIDC Provider'),
|
||||
TextColumn::make('provider_id')->label('OIDC ID'),
|
||||
TextColumn::make('created_at')->dateTime()->sortable(),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function getPages(): array
|
||||
{
|
||||
return [
|
||||
'index' => UserResource\Pages\ListUsers::route('/'),
|
||||
'create' => UserResource\Pages\CreateUsers::route('/create'),
|
||||
'edit' => UserResource\Pages\EditUsers::route('/{record}/edit'),
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources\UserResource\Pages;
|
||||
|
||||
use App\Filament\Resources\UserResource;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateUsers extends CreateRecord
|
||||
{
|
||||
protected static string $resource = UserResource::class;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources\UserResource\Pages;
|
||||
|
||||
use App\Filament\Resources\UserResource;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditUsers extends EditRecord
|
||||
{
|
||||
protected static string $resource = UserResource::class;
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
<?php
|
||||
|
||||
namespace App\Filament\Resources\UserResource\Pages;
|
||||
|
||||
use App\Filament\Resources\UserResource;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListUsers extends ListRecords
|
||||
{
|
||||
protected static string $resource = UserResource::class;
|
||||
}
|
||||
@@ -5,10 +5,11 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\VehicleScoresResource\Pages;
|
||||
use App\Filament\Resources\VehicleScoresResource\RelationManagers;
|
||||
use App\Models\VehicleScores;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
@@ -17,19 +18,22 @@ use Filament\Forms\Components\TextInput;
|
||||
use Filament\Forms\Components\Select;
|
||||
use App\Models\Vehicles;
|
||||
use App\Models\Judges;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class VehicleScoresResource extends Resource
|
||||
{
|
||||
protected static ?string $model = VehicleScores::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Car Show';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Select::make('judge')
|
||||
->label('Judge')
|
||||
->options(Judges::all()->pluck('judge_number', 'id'))
|
||||
@@ -55,11 +59,13 @@ class VehicleScoresResource extends Resource
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\VehicleScoresResource\Pages;
|
||||
|
||||
use App\Filament\Resources\VehicleScoresResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateVehicleScores extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\VehicleScoresResource\Pages;
|
||||
|
||||
use App\Filament\Resources\VehicleScoresResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditVehicleScores extends EditRecord
|
||||
{
|
||||
protected static string $resource = VehicleScoresResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\VehicleScoresResource\Pages;
|
||||
|
||||
use App\Filament\Resources\VehicleScoresResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListVehicleScores extends ListRecords
|
||||
{
|
||||
protected static string $resource = VehicleScoresResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+19
-13
@@ -3,30 +3,34 @@
|
||||
namespace App\Filament\Resources\VehicleScoresResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
class JudgeRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'judges';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'judge_number';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('judge_number')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -36,14 +40,16 @@ class JudgeRelationManager extends RelationManager
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
CreateAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
+19
-15
@@ -3,30 +3,34 @@
|
||||
namespace App\Filament\Resources\VehicleScoresResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
class ScoredVehicleRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'scoredVehicle';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'id';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('owner')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -38,15 +42,15 @@ class ScoredVehicleRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,33 +5,37 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\VehiclesResource\Pages;
|
||||
use App\Filament\Resources\VehiclesResource\RelationManagers;
|
||||
use App\Models\Vehicles;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Tables\Columns\BooleanColumn;
|
||||
use Filament\Tables\Columns\IconColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Forms\Components\Select;
|
||||
use Filament\Forms\Components\Toggle;
|
||||
use App\Models\Bidders;
|
||||
use App\Models\CarShowCategory;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class VehiclesResource extends Resource
|
||||
{
|
||||
protected static ?string $model = Vehicles::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Car Show';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Car Show';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Select::make('owner')
|
||||
->label('Owner')
|
||||
->options(Bidders::orderBy('bidder_assigned_number')->pluck('bidder_assigned_number', 'idbidders'))
|
||||
@@ -68,10 +72,11 @@ class VehiclesResource extends Resource
|
||||
TextColumn::make('vehicleType.category_name')
|
||||
->label('Type')
|
||||
->sortable(),
|
||||
BooleanColumn::make('doNotJudge')
|
||||
IconColumn::make('doNotJudge')
|
||||
->label('Judged?')
|
||||
->sortable()
|
||||
->falseIcon('heroicon-o-badge-check')
|
||||
->boolean()
|
||||
->falseIcon('heroicon-o-check-badge')
|
||||
->trueIcon('heroicon-o-x-circle')
|
||||
->trueColor('danger')
|
||||
->falseColor('success'),
|
||||
@@ -85,11 +90,13 @@ class VehiclesResource extends Resource
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
])
|
||||
->defaultSort('vehicleOwner.bidder_assigned_number');
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\VehiclesResource\Pages;
|
||||
|
||||
use App\Filament\Resources\VehiclesResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateVehicles extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\VehiclesResource\Pages;
|
||||
|
||||
use App\Filament\Resources\VehiclesResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditVehicles extends EditRecord
|
||||
{
|
||||
protected static string $resource = VehiclesResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\VehiclesResource\Pages;
|
||||
|
||||
use App\Filament\Resources\VehiclesResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListVehicles extends ListRecords
|
||||
{
|
||||
protected static string $resource = VehiclesResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
+19
-15
@@ -3,30 +3,34 @@
|
||||
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
class CarShowWinnerRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'CarShowWinner';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'id';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\TextInput::make('id')
|
||||
->required()
|
||||
->maxLength(255),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -35,15 +39,15 @@ class CarShowWinnerRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
+20
-16
@@ -3,24 +3,28 @@
|
||||
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use App\Models\Bidders;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
class VehicleOwnerRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'vehicleOwner';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'owner';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\Select::make('owner')
|
||||
->label('Owner Assigned Number')
|
||||
->required()
|
||||
@@ -39,11 +43,11 @@ class VehicleOwnerRelationManager extends RelationManager
|
||||
Forms\Components\TextInput::make('bidder_phone')->label('Phone Number'),
|
||||
Forms\Components\TextInput::make('bidder_email')->label('Email'),
|
||||
Forms\Components\TextInput::make('bidder_assigned_number')->label('Assigned Number'),
|
||||
]),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -54,15 +58,15 @@ class VehicleOwnerRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
+19
-15
@@ -3,25 +3,29 @@
|
||||
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use App\Models\Vehicles;
|
||||
use App\Models\Judges;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
class VehicleScoresRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'vehicleScores';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'id';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\Select::make('judge')
|
||||
->label('Judge')
|
||||
->options(Judges::all()->pluck('judge_number', 'id'))
|
||||
@@ -35,7 +39,7 @@ class VehicleScoresRelationManager extends RelationManager
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -45,15 +49,15 @@ class VehicleScoresRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
+20
-16
@@ -3,24 +3,28 @@
|
||||
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
|
||||
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\RelationManagers\RelationManager;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use App\Models\CarShowCategory;
|
||||
|
||||
use Filament\Actions\CreateAction;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\DeleteAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
class VehicleTypeRelationManager extends RelationManager
|
||||
{
|
||||
protected static string $relationship = 'vehicleType';
|
||||
|
||||
protected static ?string $recordTitleAttribute = 'id';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Forms\Components\Select::make('category_name')
|
||||
->required()
|
||||
->searchable()
|
||||
@@ -28,11 +32,11 @@ class VehicleTypeRelationManager extends RelationManager
|
||||
->createOptionForm([
|
||||
Forms\Components\TextInput::make('category_name'),
|
||||
Forms\Components\Toggle::make('vehicle_type')->inline(false),
|
||||
]),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
|
||||
public static function table(Table $table): Table
|
||||
public function table(Table $table): Table
|
||||
{
|
||||
return $table
|
||||
->columns([
|
||||
@@ -41,15 +45,15 @@ class VehicleTypeRelationManager extends RelationManager
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->headerActions([
|
||||
Tables\Actions\CreateAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
DeleteAction::make(),
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
Tables\Actions\DeleteAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
CreateAction::make(),
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -5,35 +5,37 @@ namespace App\Filament\Resources;
|
||||
use App\Filament\Resources\WinningBidsResource\Pages;
|
||||
use App\Filament\Resources\WinningBidsResource\RelationManagers;
|
||||
use App\Models\WinningBids;
|
||||
use Filament\Forms;
|
||||
use Filament\Resources\Form;
|
||||
use UnitEnum;
|
||||
use BackedEnum;
|
||||
use Filament\Schemas\Schema;
|
||||
use Filament\Resources\Resource;
|
||||
use Filament\Resources\Table;
|
||||
use Filament\Tables\Table;
|
||||
use Filament\Tables;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
use Illuminate\Database\Eloquent\SoftDeletingScope;
|
||||
use Filament\Tables\Columns\BooleanColumn;
|
||||
use Filament\Tables\Columns\IconColumn;
|
||||
use Filament\Tables\Columns\TextColumn;
|
||||
use Filament\Forms\Components\TextInput;
|
||||
use Filament\Forms\Components\Toggle;
|
||||
use App\Models\Bidders;
|
||||
use App\Models\Items;
|
||||
use Filament\Forms\Components\Select;
|
||||
|
||||
use function Ramsey\Uuid\v1;
|
||||
use Filament\Actions\EditAction;
|
||||
use Filament\Actions\BulkActionGroup;
|
||||
use Filament\Actions\DeleteBulkAction;
|
||||
|
||||
class WinningBidsResource extends Resource
|
||||
{
|
||||
protected static ?string $model = WinningBids::class;
|
||||
|
||||
protected static ?string $navigationIcon = 'heroicon-o-collection';
|
||||
protected static string | BackedEnum | null $navigationIcon = 'heroicon-o-rectangle-stack';
|
||||
|
||||
protected static ?string $navigationGroup = 'Silent Auction';
|
||||
protected static string | UnitEnum | null $navigationGroup = 'Silent Auction';
|
||||
|
||||
public static function form(Form $form): Form
|
||||
public static function form(Schema $schema): Schema
|
||||
{
|
||||
return $form
|
||||
->schema([
|
||||
return $schema
|
||||
->components([
|
||||
Select::make('winning_item_num')
|
||||
->label('Item')
|
||||
->options(Items::orderBy('item_assigned_num')->pluck('item_assigned_num', 'iditems'))
|
||||
@@ -47,14 +49,7 @@ class WinningBidsResource extends Resource
|
||||
->searchable(),
|
||||
TextInput::make('winning_cost')
|
||||
->label('Winning Bid')
|
||||
->mask(
|
||||
fn (TextInput\Mask $mask) => $mask->money(
|
||||
prefix: '$',
|
||||
thousandsSeparator: ',',
|
||||
decimalPlaces: 2,
|
||||
isSigned: false
|
||||
)
|
||||
),
|
||||
->prefix('$'),
|
||||
]);
|
||||
}
|
||||
|
||||
@@ -73,17 +68,19 @@ class WinningBidsResource extends Resource
|
||||
->sortable(),
|
||||
TextColumn::make('winning_cost')
|
||||
->label('Winning Bid Amt')
|
||||
->money('usd', 'true')
|
||||
->money('USD')
|
||||
->sortable(),
|
||||
])
|
||||
->filters([
|
||||
//
|
||||
])
|
||||
->actions([
|
||||
Tables\Actions\EditAction::make(),
|
||||
->recordActions([
|
||||
EditAction::make(),
|
||||
])
|
||||
->bulkActions([
|
||||
Tables\Actions\DeleteBulkAction::make(),
|
||||
->toolbarActions([
|
||||
BulkActionGroup::make([
|
||||
DeleteBulkAction::make(),
|
||||
]),
|
||||
])
|
||||
->defaultSort('items.item_assigned_num');
|
||||
}
|
||||
|
||||
@@ -3,7 +3,7 @@
|
||||
namespace App\Filament\Resources\WinningBidsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\WinningBidsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\CreateRecord;
|
||||
|
||||
class CreateWinningBids extends CreateRecord
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\WinningBidsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\WinningBidsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\EditRecord;
|
||||
|
||||
class EditWinningBids extends EditRecord
|
||||
{
|
||||
protected static string $resource = WinningBidsResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\DeleteAction::make(),
|
||||
|
||||
@@ -3,14 +3,14 @@
|
||||
namespace App\Filament\Resources\WinningBidsResource\Pages;
|
||||
|
||||
use App\Filament\Resources\WinningBidsResource;
|
||||
use Filament\Pages\Actions;
|
||||
use Filament\Actions;
|
||||
use Filament\Resources\Pages\ListRecords;
|
||||
|
||||
class ListWinningBids extends ListRecords
|
||||
{
|
||||
protected static string $resource = WinningBidsResource::class;
|
||||
|
||||
protected function getActions(): array
|
||||
protected function getHeaderActions(): array
|
||||
{
|
||||
return [
|
||||
Actions\CreateAction::make(),
|
||||
|
||||
@@ -0,0 +1,14 @@
|
||||
<?php
|
||||
namespace App\Helpers;
|
||||
|
||||
class PhoneHelper
|
||||
{
|
||||
public static function format($phone)
|
||||
{
|
||||
$phone = preg_replace('/[^0-9]/', '', $phone);
|
||||
if (strlen($phone) == 10) {
|
||||
return preg_replace('/([0-9]{3})([0-9]{3})([0-9]{4})/', '$1-$2-$3', $phone);
|
||||
}
|
||||
return $phone;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,68 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Laravel\Socialite\Facades\Socialite;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class SocialiteController extends Controller
|
||||
{
|
||||
public function redirectToProvider($provider)
|
||||
{
|
||||
return Socialite::driver($provider)->redirect();
|
||||
}
|
||||
|
||||
public function handleProviderCallback($provider)
|
||||
{
|
||||
try {
|
||||
$socialUser = Socialite::driver($provider)->user();
|
||||
} catch (\Exception $e) {
|
||||
return redirect('/login')->with('error', 'Authentication failed.');
|
||||
}
|
||||
|
||||
if (Auth::check()) {
|
||||
$user = Auth::user();
|
||||
$user->update([
|
||||
'provider_name' => $provider,
|
||||
'provider_id' => $socialUser->getId(),
|
||||
]);
|
||||
|
||||
return redirect()->intended('/admin')->with('status', 'Account linked successfully!');
|
||||
}
|
||||
|
||||
// Find user by provider_id
|
||||
$user = User::where('provider_name', $provider)
|
||||
->where('provider_id', $socialUser->getId())
|
||||
->first();
|
||||
|
||||
if (!$user) {
|
||||
// Find user by email to link
|
||||
$user = User::where('email', $socialUser->getEmail())->first();
|
||||
|
||||
if ($user) {
|
||||
// Link the account
|
||||
$user->update([
|
||||
'provider_name' => $provider,
|
||||
'provider_id' => $socialUser->getId(),
|
||||
]);
|
||||
} else {
|
||||
// Optionally create a new user
|
||||
$user = User::create([
|
||||
'name' => $socialUser->getName() ?? $socialUser->getNickname() ?? $socialUser->getEmail(),
|
||||
'email' => $socialUser->getEmail(),
|
||||
'provider_name' => $provider,
|
||||
'provider_id' => $socialUser->getId(),
|
||||
'password' => bcrypt(Str::random(24)),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
Auth::login($user);
|
||||
|
||||
return redirect()->intended('/admin'); // Redirect to filament admin or home
|
||||
}
|
||||
}
|
||||
@@ -7,7 +7,7 @@ use Illuminate\Routing\Controller as BaseController;
|
||||
use Illuminate\Foundation\Validation\ValidatesRequests;
|
||||
use Illuminate\Foundation\Auth\Access\AuthorizesRequests;
|
||||
|
||||
class Controller extends BaseController
|
||||
class Controller extends \Illuminate\Routing\Controller
|
||||
{
|
||||
use AuthorizesRequests, DispatchesJobs, ValidatesRequests;
|
||||
}
|
||||
|
||||
@@ -0,0 +1,212 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers;
|
||||
|
||||
use App\Models\Bidders;
|
||||
use App\Models\Checkout;
|
||||
use App\Models\WinningBids;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Http;
|
||||
use Illuminate\Support\Facades\Log;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
|
||||
class NorthCheckoutController extends Controller
|
||||
{
|
||||
public function checkout(Request $request, $bidder_id)
|
||||
{
|
||||
$bidder = Bidders::where('idbidders', $bidder_id)->firstOrFail();
|
||||
|
||||
// Check if already checked out
|
||||
if (Checkout::where('bidder_num', $bidder->idbidders)->exists()) {
|
||||
return redirect('/mywinnings?bidder_number=' . $bidder->bidder_assigned_number)->with('error', 'Bidder has already checked out.');
|
||||
}
|
||||
|
||||
$winnings = WinningBids::where('winning_bidder_num', $bidder->idbidders)->get();
|
||||
$total_cost = $winnings->sum('winning_cost');
|
||||
|
||||
if ($total_cost <= 0) {
|
||||
return redirect('/mywinnings?bidder_number=' . $bidder->bidder_assigned_number)->with('error', 'No winnings found for this bidder.');
|
||||
}
|
||||
|
||||
return view('north_checkout', [
|
||||
'bidder' => $bidder,
|
||||
'total_cost' => $total_cost,
|
||||
]);
|
||||
}
|
||||
|
||||
public function createSession(Request $request, $bidder_id)
|
||||
{
|
||||
$bidder = Bidders::findOrFail($bidder_id);
|
||||
$winnings = WinningBids::with('items')->where('winning_bidder_num', $bidder->idbidders)->get();
|
||||
$total_cost = $winnings->sum('winning_cost');
|
||||
|
||||
$products = $winnings->map(function($winning) {
|
||||
return [
|
||||
'name' => $winning->items->item_desc ?? 'Auction Item',
|
||||
'price' => (float)$winning->winning_cost,
|
||||
'quantity' => 1
|
||||
];
|
||||
})->toArray();
|
||||
|
||||
$apiKey = config('services.north.private_api_key');
|
||||
$checkoutId = config('services.north.checkout_id');
|
||||
$profileId = config('services.north.profile_id');
|
||||
|
||||
if (!$apiKey || !$checkoutId || !$profileId) {
|
||||
return response()->json(['error' => 'North configuration missing.'], 500);
|
||||
}
|
||||
|
||||
$response = Http::withHeaders([
|
||||
'Authorization' => 'Bearer ' . $apiKey,
|
||||
'Accept' => 'application/json',
|
||||
'Content-Type' => 'application/json',
|
||||
])->post('https://checkout.north.com/api/sessions', [
|
||||
'checkoutId' => $checkoutId,
|
||||
'profileId' => $profileId,
|
||||
'amount' => (float)$total_cost,
|
||||
'products' => $products,
|
||||
]);
|
||||
|
||||
if ($response->failed()) {
|
||||
Log::error('North Session Creation Failed: ' . $response->status() . ' ' . $response->body());
|
||||
return response()->json([
|
||||
'error' => 'Failed to create checkout session: ' . ($response->json('message') ?? 'Unknown error'),
|
||||
'status' => $response->status(),
|
||||
'body' => $response->body()
|
||||
], 500);
|
||||
}
|
||||
|
||||
$data = $response->json();
|
||||
|
||||
// If json() is null but body is not empty, it might be a parsing error
|
||||
if (is_null($data) && !empty($response->body())) {
|
||||
Log::error('North Session Response is not JSON: ' . $response->body());
|
||||
return response()->json([
|
||||
'error' => 'Response from North is not valid JSON.',
|
||||
'raw_body' => $response->body()
|
||||
], 500);
|
||||
}
|
||||
|
||||
$token = $data['token'] ??
|
||||
$data['sessionToken'] ??
|
||||
$data['id'] ??
|
||||
$data['session_id'] ??
|
||||
($data['session']['id'] ?? null);
|
||||
|
||||
if (!$token) {
|
||||
Log::error('North Session Token Missing in Response: ' . json_encode($data));
|
||||
return response()->json([
|
||||
'error' => 'Session token not found in API response.',
|
||||
'debug_response' => $data,
|
||||
'raw_body' => $response->body()
|
||||
], 500);
|
||||
}
|
||||
|
||||
return response()->json(['sessionToken' => $token]);
|
||||
}
|
||||
|
||||
public function verify(Request $request, $bidder_id)
|
||||
{
|
||||
$bidder = Bidders::findOrFail($bidder_id);
|
||||
$sessionToken = $request->query('sessionToken');
|
||||
if (!$sessionToken) {
|
||||
return redirect('/mywinnings?bidder_number=' . $bidder->bidder_assigned_number)->with('error', 'Missing session token.');
|
||||
}
|
||||
|
||||
$apiKey = config('services.north.private_api_key');
|
||||
$checkoutId = config('services.north.checkout_id');
|
||||
$profileId = config('services.north.profile_id');
|
||||
|
||||
$response = Http::withHeaders([
|
||||
'Authorization' => 'Bearer ' . $apiKey,
|
||||
'SessionToken' => $sessionToken,
|
||||
'CheckoutId' => $checkoutId,
|
||||
'ProfileId' => $profileId,
|
||||
'Accept' => 'application/json',
|
||||
])->get('https://checkout.north.com/api/sessions/status');
|
||||
|
||||
if ($response->failed()) {
|
||||
Log::error('North Session Verification Failed: ' . $response->status() . ' ' . $response->body());
|
||||
return redirect('/mywinnings?bidder_number=' . $bidder->bidder_assigned_number)->with('error', 'Failed to verify payment status. Status: ' . $response->status());
|
||||
}
|
||||
|
||||
$status = $response->json();
|
||||
$currentStatus = $status['status'] ?? '';
|
||||
|
||||
// The North API status check might return Approved, completed, success, authorized, or captured.
|
||||
$successStatuses = ['approved', 'completed', 'success', 'authorized', 'captured'];
|
||||
|
||||
if (in_array(strtolower($currentStatus), $successStatuses)) {
|
||||
// Check if already checked out to avoid duplicates
|
||||
$existingCheckout = Checkout::where('bidder_num', $bidder->idbidders)->first();
|
||||
|
||||
if (!$existingCheckout) {
|
||||
// According to docs, when status is Approved, transaction details are in 'body'
|
||||
// Digital wallets might have these at the top level
|
||||
$body = $status['body'] ?? [];
|
||||
$winnertotal = $status['amount'] ??
|
||||
($body['amount'] ??
|
||||
($status['amount_total'] ??
|
||||
WinningBids::where('winning_bidder_num', $bidder->idbidders)->sum('winning_cost')));
|
||||
|
||||
$payment_method = 3; // Credit Card
|
||||
$cc_transaction = $body['auth_guid'] ??
|
||||
($status['transaction_id'] ??
|
||||
($status['transactionId'] ??
|
||||
($status['id'] ?? 'NORTH_EC')));
|
||||
|
||||
$cc_amount = $winnertotal;
|
||||
$check_number = null;
|
||||
|
||||
$checkout_id = DB::table('checkout')->insertGetID(
|
||||
[
|
||||
'bidder_num' => $bidder->idbidders,
|
||||
'winnertotal' => $winnertotal,
|
||||
'payment_method' => $payment_method,
|
||||
'check_number' => $check_number,
|
||||
'cc_transaction' => $cc_transaction,
|
||||
'cc_amount' => $cc_amount,
|
||||
'created_at' => now(),
|
||||
'updated_at' => now(),
|
||||
]
|
||||
);
|
||||
} else {
|
||||
$checkout_id = $existingCheckout->checkout_id;
|
||||
$payment_method = $existingCheckout->payment_method;
|
||||
$cc_transaction = $existingCheckout->cc_transaction;
|
||||
$check_number = $existingCheckout->check_number;
|
||||
}
|
||||
|
||||
// Replicate the data for checkout_complete view
|
||||
$checkout_list_results = DB::select("SELECT
|
||||
*, items.item_assigned_num, items.item_desc
|
||||
FROM winning_bids
|
||||
INNER JOIN items AS items
|
||||
ON winning_bids.winning_item_num=items.iditems
|
||||
WHERE winning_bidder_num = $bidder->idbidders
|
||||
");
|
||||
|
||||
$checkout_info_results = DB::select("SELECT
|
||||
winning_bids.*,
|
||||
bidders.*,
|
||||
sum(winning_cost) AS total_cost
|
||||
FROM winning_bids
|
||||
INNER JOIN bidders AS bidders
|
||||
ON winning_bids.winning_bidder_num=bidders.idbidders
|
||||
WHERE winning_bidder_num = $bidder->idbidders
|
||||
GROUP BY winning_bids.winning_bidder_num
|
||||
");
|
||||
|
||||
return view('checkout_complete', [
|
||||
'checkout_result' => $checkout_id,
|
||||
'checkout_list_results' => $checkout_list_results,
|
||||
'checkout_info_results' => $checkout_info_results,
|
||||
'payment_method' => $payment_method,
|
||||
'check_number' => $check_number,
|
||||
'cc_transaction' => $cc_transaction
|
||||
]);
|
||||
}
|
||||
|
||||
return redirect('/mywinnings?bidder_number=' . $bidder->bidder_assigned_number)->with('error', 'Payment not completed. Status: ' . ($status['status'] ?? 'unknown'));
|
||||
}
|
||||
}
|
||||
@@ -6,7 +6,7 @@ use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\DB;
|
||||
use View;
|
||||
use App\helpers;
|
||||
use PDF;
|
||||
use Spatie\LaravelPdf\Facades\Pdf;
|
||||
use App\Models\Bidders;
|
||||
use App\Models\Items;
|
||||
use App\Models\Checkout;
|
||||
@@ -19,6 +19,7 @@ use App\Models\CarShowCategory;
|
||||
use App\Models\Types;
|
||||
use App\Models\Vehicles;
|
||||
use App\Models\VehicleScores;
|
||||
use Dompdf\Dompdf;
|
||||
|
||||
class PagesController extends Controller
|
||||
{
|
||||
@@ -81,7 +82,8 @@ class PagesController extends Controller
|
||||
public function checkout(Request $checkout_req)
|
||||
{
|
||||
if (!$checkout_req->checkoutbiddernum) {
|
||||
return view('checkout_select_form');
|
||||
$bidders = \App\Models\Bidders::orderByRaw('CAST(bidder_assigned_number AS UNSIGNED) ASC')->get();
|
||||
return view('checkout_select_form', ['bidders' => $bidders]);
|
||||
} elseif (!$checkout_req->checkout_payment_method) {
|
||||
$checkout_bidder = $checkout_req->checkoutbiddernum;
|
||||
$checkout_list_results = DB::select("SELECT
|
||||
@@ -161,20 +163,32 @@ class PagesController extends Controller
|
||||
|
||||
public function editwinners(Request $edit_win_req)
|
||||
{
|
||||
if (!$edit_win_req->winid) {
|
||||
return view('editwinners');
|
||||
if ($edit_win_req->id) {
|
||||
$winner = WinningBids::with(['items', 'bidders'])->find($edit_win_req->id);
|
||||
$bidders = Bidders::all();
|
||||
$items = Items::all();
|
||||
return view('editwinners', ['winner' => $winner, 'bidders' => $bidders, 'items' => $items]);
|
||||
}
|
||||
|
||||
if (!$edit_win_req->winid) {
|
||||
$winners = WinningBids::with(['items', 'bidders'])->get();
|
||||
return view('winnersbyitem', ['winnersbyitem_results' => $winners]);
|
||||
}
|
||||
|
||||
$winning_bid_id = $edit_win_req->winid;
|
||||
$winner_bidder = $edit_win_req->winnerbiddernum;
|
||||
$winner_item = $edit_win_req->winneritemnum;
|
||||
$winner_cost = $edit_win_req->winnerbid;
|
||||
|
||||
$winner_insert = WinningBids::where('idwinning_bids', $winning_bid_id)
|
||||
->update(
|
||||
[
|
||||
'winning_bidder_num' => $winner_bidder,
|
||||
'winning_item_num' => $winner_item,
|
||||
'winning_cost' => $winner_cost
|
||||
]
|
||||
);
|
||||
return redirect('editwinners');
|
||||
return redirect('winnersbyitem');
|
||||
}
|
||||
|
||||
public function finaltally()
|
||||
@@ -250,10 +264,54 @@ class PagesController extends Controller
|
||||
return view('receiptpdf', $checkout_data);
|
||||
}
|
||||
|
||||
public function downloadReceiptPdf(Request $request)
|
||||
{
|
||||
$checkoutid = $request->checkout_id;
|
||||
$checkout_final_results = Checkout::where('checkout_id', '=', $checkoutid)->first();
|
||||
if (!$checkout_final_results) {
|
||||
return redirect('/mywinnings')->with('error', 'Checkout record not found.');
|
||||
}
|
||||
|
||||
$bidder_num = $checkout_final_results->bidder_num;
|
||||
$checkout_list_results = DB::select("SELECT
|
||||
*, items.item_assigned_num, items.item_desc
|
||||
FROM winning_bids
|
||||
INNER JOIN items AS items ON winning_bids.winning_item_num=items.iditems
|
||||
WHERE winning_bidder_num = $bidder_num
|
||||
");
|
||||
$checkout_info_results = DB::select("SELECT
|
||||
winning_bids.*,
|
||||
bidders.*,
|
||||
sum(winning_cost) AS total_cost
|
||||
FROM winning_bids
|
||||
INNER JOIN bidders AS bidders ON winning_bids.winning_bidder_num=bidders.idbidders
|
||||
WHERE winning_bidder_num = $bidder_num
|
||||
GROUP BY winning_bids.winning_bidder_num
|
||||
");
|
||||
|
||||
$options = new \Dompdf\Options();
|
||||
$options->set('isHtml5ParserEnabled', true);
|
||||
$options->set('isRemoteEnabled', true);
|
||||
$dompdf = new Dompdf($options);
|
||||
|
||||
$html = view('receiptpdf', [
|
||||
'checkout_final_results' => $checkout_final_results,
|
||||
'checkout_list_results' => $checkout_list_results,
|
||||
'checkout_info_results' => $checkout_info_results
|
||||
])->render();
|
||||
|
||||
$dompdf->loadHtml($html);
|
||||
$dompdf->setPaper('letter', 'portrait');
|
||||
$dompdf->render();
|
||||
|
||||
return $dompdf->stream('receipt-'.$checkoutid.'.pdf');
|
||||
}
|
||||
|
||||
public function reprintReceipt(Request $reprint_receipt_req)
|
||||
{
|
||||
if (!$reprint_receipt_req->reprintbiddernum) {
|
||||
return view('reprint_receipt_form');
|
||||
$bidders = Bidders::has('checkout')->get();
|
||||
return view('reprint_receipt_form', ['bidders' => $bidders]);
|
||||
} else {
|
||||
$bidnum=$reprint_receipt_req->reprintbiddernum;
|
||||
$checkout_result = Checkout::where('bidder_num', '=', $bidnum)
|
||||
@@ -274,7 +332,9 @@ class PagesController extends Controller
|
||||
public function winners(Request $winners_req)
|
||||
{
|
||||
if (!$winners_req->winnerbid) {
|
||||
return view('winners');
|
||||
$bidders = Bidders::all();
|
||||
$items = Items::all();
|
||||
return view('winners', ['bidders' => $bidders, 'items' => $items]);
|
||||
}
|
||||
$winner_item = $winners_req->winneritemnum;
|
||||
$winner_bidder = $winners_req->winnerbiddernum;
|
||||
@@ -291,22 +351,15 @@ class PagesController extends Controller
|
||||
|
||||
public function winnersbyitem()
|
||||
{
|
||||
$winnersbyitem_results = DB::select("SELECT
|
||||
*
|
||||
FROM winning_bids
|
||||
INNER JOIN items as items
|
||||
ON winning_bids.winning_item_num=items.iditems
|
||||
INNER JOIN bidders AS bidders
|
||||
ON winning_bids.winning_bidder_num=bidders.idbidders
|
||||
ORDER BY item_assigned_num ASC
|
||||
");
|
||||
$winnersbyitem_results = WinningBids::with(['items', 'bidders'])->get();
|
||||
return view('winnersbyitem', ['winnersbyitem_results' => $winnersbyitem_results]);
|
||||
}
|
||||
|
||||
public function winnertotal(Request $winnertotal_req)
|
||||
{
|
||||
if (!$winnertotal_req->winnerbiddernum) {
|
||||
return view('winnertotalform');
|
||||
$bidders = Bidders::all();
|
||||
return view('winnertotalform', ['bidders' => $bidders]);
|
||||
}
|
||||
$winner_total_bidder = $winnertotal_req->winnerbiddernum;
|
||||
$winnertotal_list_results = DB::select("SELECT
|
||||
@@ -334,37 +387,41 @@ class PagesController extends Controller
|
||||
|
||||
public function winningbidderlist()
|
||||
{
|
||||
$winnerlist_results = WinningBids::join('bidders', 'winning_bids.winning_bidder_num', '=', 'bidders.idbidders')
|
||||
->groupBy('winning_bidder_num')
|
||||
->orderBy('bidders.bidder_assigned_number')
|
||||
$winnerlist_results = Bidders::whereHas('winningBids')
|
||||
->orderBy('bidder_assigned_number')
|
||||
->get();
|
||||
return view('winningbidderlist', ['winnerlist_results' => $winnerlist_results]);
|
||||
return view('winningbidderlist', ['winning_bidders' => $winnerlist_results]);
|
||||
}
|
||||
|
||||
public function judgingentry(Request $judgingentry_req)
|
||||
{
|
||||
if (!$judgingentry_req->vehnum) {
|
||||
return view('judgingentry');
|
||||
}
|
||||
$vehicle = $judgingentry_req->vehnum;
|
||||
$judge = $judgingentry_req->judgenum;
|
||||
$score = $judgingentry_req->vehscore;
|
||||
$bidder_insert = VehicleScores::updateOrCreate(
|
||||
[
|
||||
'vehicle' => $vehicle,
|
||||
'judge' => $judge
|
||||
],
|
||||
[
|
||||
'overall_score' => $score
|
||||
]
|
||||
);
|
||||
$judges = \App\Models\Judges::all();
|
||||
$vehicles = \App\Models\Vehicles::select('vehicles.*')
|
||||
->leftJoin('bidders', 'vehicles.owner', '=', 'bidders.bidder_assigned_number')
|
||||
->orderByRaw('CAST(bidders.bidder_assigned_number AS UNSIGNED) ASC')
|
||||
->get();
|
||||
|
||||
return redirect('judgingentry');
|
||||
if ($judgingentry_req->isMethod('post')) {
|
||||
$vehicle = $judgingentry_req->vehnum;
|
||||
$judge = $judgingentry_req->judgenum;
|
||||
$score = $judgingentry_req->vehscore;
|
||||
|
||||
VehicleScores::updateOrCreate(
|
||||
['vehicle' => $vehicle, 'judge' => $judge],
|
||||
['overall_score' => $score]
|
||||
);
|
||||
|
||||
return redirect('judgingentry');
|
||||
}
|
||||
|
||||
return view('judgingentry', ['judges' => $judges, 'vehicles' => $vehicles]);
|
||||
}
|
||||
|
||||
public function showcars(Request $showcar_req)
|
||||
{
|
||||
if (!$showcar_req->bidderlname) {
|
||||
return view('showcars');
|
||||
$vehicles = \App\Models\Vehicles::with('vehicleOwner')->get();
|
||||
return view('showcars', ['vehicles' => $vehicles]);
|
||||
}
|
||||
$bidder_lname = $showcar_req->bidderlname;
|
||||
$bidder_fname = $showcar_req->bidderfname;
|
||||
@@ -423,7 +480,8 @@ class PagesController extends Controller
|
||||
public function pcentry(Request $pcentry_req)
|
||||
{
|
||||
if (!$pcentry_req->vehnum) {
|
||||
return view('pcentry');
|
||||
$vehicles = Vehicles::all();
|
||||
return view('pcentry', ['vehicles' => $vehicles]);
|
||||
}
|
||||
$vehicle=$pcentry_req->vehnum;
|
||||
$pc_count=$pcentry_req->pc_count;
|
||||
@@ -457,7 +515,8 @@ class PagesController extends Controller
|
||||
public function awardcategories(Request $category_req)
|
||||
{
|
||||
if (!$category_req->category) {
|
||||
return view('awardcategories');
|
||||
$categories = CarShowCategory::all();
|
||||
return view('awardcategories', ['categories' => $categories]);
|
||||
}
|
||||
$category = $category_req->category;
|
||||
if ($category_req->has('vehtype')) {
|
||||
@@ -479,17 +538,32 @@ class PagesController extends Controller
|
||||
public function showwinners()
|
||||
{
|
||||
$carshowwinner_results = CarShowWinner::with(['awardCategory', 'awardVehicle', 'awardVehicle.vehicleOwner'])->get();
|
||||
return view('carshowwinners', ['carshowwinner_results' => $carshowwinner_results]);
|
||||
return view('carshowwinners', ['winners' => $carshowwinner_results]);
|
||||
}
|
||||
public function showscores()
|
||||
{
|
||||
$carshowscore_results = VehicleScores::with(['scoredVehicle'])
|
||||
$carshowscore_results = VehicleScores::with(['scoredVehicle', 'scoredVehicle.vehicleOwner'])
|
||||
->groupBy('vehicle')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
->orderBy('totalscore', 'desc')
|
||||
->get();
|
||||
return view('carshowscores', ['carshowscore_results' => $carshowscore_results]);
|
||||
return view('carshowscores', ['scores_results' => $carshowscore_results]);
|
||||
}
|
||||
public function showscoresbycar()
|
||||
{
|
||||
$carshowscore2_results = VehicleScores::with(['scoredVehicle', 'scoredVehicle.vehicleOwner'])
|
||||
->groupBy('vehicle')
|
||||
->selectRaw('*, sum(vehicle_scores.overall_score) as totalscore')
|
||||
//->orderBy('scoredVehicle.vehicleOwner.bidder_assigned_number')
|
||||
->orderByRaw('CAST((
|
||||
SELECT owner
|
||||
FROM vehicles
|
||||
WHERE vehicles.id = vehicle_scores.vehicle
|
||||
LIMIT 1
|
||||
) AS UNSIGNED) ASC')
|
||||
->get();
|
||||
return view('carshowscores', ['scores_results' => $carshowscore2_results]);
|
||||
}
|
||||
public function showcarlist()
|
||||
{
|
||||
$showcarlist_results = Bidders::has('vehicles')
|
||||
@@ -500,4 +574,34 @@ 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');
|
||||
|
||||
$is_checked_out = \App\Models\Checkout::where('bidder_num', $bidder->idbidders)->exists();
|
||||
|
||||
return view('mywinnings_results', [
|
||||
'bidder' => $bidder,
|
||||
'winnings' => $winnings,
|
||||
'total_cost' => $total_cost,
|
||||
'is_checked_out' => $is_checked_out
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -24,10 +24,13 @@ class Bidders extends Model
|
||||
'updated_at'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function checkout()
|
||||
{
|
||||
|
||||
@@ -9,19 +9,19 @@ class CarShowCategory extends Model
|
||||
protected $table = 'car_show_categories';
|
||||
protected static ?string $recordTitleAttribute = 'category_name';
|
||||
|
||||
protected $casts = [
|
||||
'vehicle_type' => 'boolean',
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'category_name',
|
||||
'vehicle_type'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'vehicle_type' => 'boolean',
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function vehicle()
|
||||
{
|
||||
|
||||
@@ -10,21 +10,25 @@ class CarShowWinner extends Model
|
||||
protected $fillable = [
|
||||
'vehicle',
|
||||
'category',
|
||||
'place'
|
||||
'place',
|
||||
'total_score'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function awardVehicle()
|
||||
{
|
||||
return $this->hasMany('App\Models\Vehicles', 'id', 'vehicle');
|
||||
return $this->belongsTo('App\Models\Vehicles', 'vehicle', 'id');
|
||||
}
|
||||
|
||||
public function awardCategory()
|
||||
{
|
||||
return $this->hasMany('App\Models\CarShowCategory', 'id', 'category');
|
||||
return $this->belongsTo('App\Models\CarShowCategory', 'category', 'id');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -21,10 +21,14 @@ class Checkout extends Model
|
||||
'updated_at'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
'winnertotal' => 'integer',
|
||||
];
|
||||
}
|
||||
|
||||
public function bidders()
|
||||
{
|
||||
|
||||
@@ -19,10 +19,13 @@ class Items extends Model
|
||||
'updated_at'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function winningBids()
|
||||
{
|
||||
|
||||
@@ -13,10 +13,13 @@ class Judges extends Model
|
||||
'updated_at'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function vehicleScores()
|
||||
{
|
||||
|
||||
@@ -16,10 +16,13 @@ class PaymentMethods extends Model
|
||||
'updated_at'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function checkout()
|
||||
{
|
||||
|
||||
@@ -14,10 +14,13 @@ class PeoplesChoice extends Model
|
||||
'updated_at'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function vehicles()
|
||||
{
|
||||
|
||||
@@ -15,10 +15,13 @@ class VehicleScores extends Model
|
||||
'updated_at'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function judges()
|
||||
{
|
||||
@@ -27,6 +30,6 @@ class VehicleScores extends Model
|
||||
|
||||
public function scoredVehicle()
|
||||
{
|
||||
return $this->hasMany('App\Models\Vehicles', 'id', 'vehicle');
|
||||
return $this->belongsTo('App\Models\Vehicles', 'vehicle', 'id');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8,10 +8,6 @@ class Vehicles extends Model
|
||||
{
|
||||
protected $table = 'vehicles';
|
||||
|
||||
protected $casts = [
|
||||
'owner' => 'integer'
|
||||
];
|
||||
|
||||
protected $fillable = [
|
||||
'year',
|
||||
'make',
|
||||
@@ -21,10 +17,14 @@ class Vehicles extends Model
|
||||
'owner'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'owner' => 'integer',
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function vehicleType()
|
||||
{
|
||||
|
||||
@@ -18,14 +18,17 @@ class WinningBids extends Model
|
||||
'updated_at'
|
||||
];
|
||||
|
||||
protected $dates = [
|
||||
'created_at',
|
||||
'updated_at'
|
||||
];
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'created_at' => 'datetime',
|
||||
'updated_at' => 'datetime',
|
||||
];
|
||||
}
|
||||
|
||||
public function items()
|
||||
{
|
||||
return $this->hasMany(Items::class, 'iditems', 'winning_item_num');
|
||||
return $this->belongsTo(Items::class, 'winning_item_num', 'iditems');
|
||||
}
|
||||
|
||||
public function bidders()
|
||||
|
||||
@@ -16,6 +16,9 @@ class EventServiceProvider extends ServiceProvider
|
||||
'App\Events\Event' => [
|
||||
'App\Listeners\EventListener',
|
||||
],
|
||||
\SocialiteProviders\Manager\SocialiteWasCalled::class => [
|
||||
\SocialiteProviders\OIDC\OIDCExtendSocialite::class.'@handle',
|
||||
],
|
||||
];
|
||||
|
||||
/**
|
||||
|
||||
@@ -0,0 +1,100 @@
|
||||
<?php
|
||||
|
||||
namespace App\Providers\Filament;
|
||||
|
||||
use Filament\Http\Middleware\Authenticate;
|
||||
use Filament\Http\Middleware\AuthenticateSession;
|
||||
use Filament\Http\Middleware\DisableBladeIconComponents;
|
||||
use Filament\Http\Middleware\DispatchServingFilamentEvent;
|
||||
use Filament\Pages;
|
||||
use Filament\Panel;
|
||||
use Filament\PanelProvider;
|
||||
use Filament\Support\Colors\Color;
|
||||
use Filament\Widgets;
|
||||
use Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse;
|
||||
use Illuminate\Cookie\Middleware\EncryptCookies;
|
||||
use Illuminate\Foundation\Http\Middleware\VerifyCsrfToken;
|
||||
use Illuminate\Routing\Middleware\SubstituteBindings;
|
||||
use Illuminate\Session\Middleware\StartSession;
|
||||
use Illuminate\View\Middleware\ShareErrorsFromSession;
|
||||
|
||||
use Filament\Support\Facades\FilamentView;
|
||||
use Illuminate\Support\Facades\Blade;
|
||||
|
||||
use Filament\Navigation\MenuItem;
|
||||
|
||||
use Filament\Facades\Filament;
|
||||
|
||||
class AdminPanelProvider extends PanelProvider
|
||||
{
|
||||
public function boot()
|
||||
{
|
||||
FilamentView::registerRenderHook(
|
||||
'panels::auth.login.form.after',
|
||||
fn (): string => Blade::render('
|
||||
<div class="mt-4">
|
||||
<x-filament::button
|
||||
:href="url(\'auth/social/oidc\')"
|
||||
tag="a"
|
||||
color="info"
|
||||
class="w-full"
|
||||
>
|
||||
Login with OIDC
|
||||
</x-filament::button>
|
||||
</div>
|
||||
'),
|
||||
);
|
||||
|
||||
Filament::registerUserMenuItems([
|
||||
MenuItem::make()
|
||||
->label('Link OIDC Account')
|
||||
->icon('heroicon-o-link')
|
||||
->url(fn (): string => url('auth/social/oidc')),
|
||||
]);
|
||||
}
|
||||
|
||||
public function panel(Panel $panel): Panel
|
||||
{
|
||||
return $panel
|
||||
->default()
|
||||
->id('admin')
|
||||
->path('admin')
|
||||
->login()
|
||||
->profile()
|
||||
->userMenuItems([
|
||||
'oidc' => MenuItem::make()
|
||||
->label('Link OIDC Account')
|
||||
->icon('heroicon-o-link')
|
||||
->url(fn (): string => url('auth/social/oidc')),
|
||||
])
|
||||
->brandName(env('APP_NAME'))
|
||||
->homeUrl('/')
|
||||
->colors([
|
||||
'primary' => Color::Amber,
|
||||
])
|
||||
->discoverResources(in: app_path('Filament/Resources'), for: 'App\\Filament\\Resources')
|
||||
->discoverPages(in: app_path('Filament/Pages'), for: 'App\\Filament\\Pages')
|
||||
->pages([
|
||||
Pages\Dashboard::class,
|
||||
])
|
||||
->discoverWidgets(in: app_path('Filament/Widgets'), for: 'App\\Filament\\Widgets')
|
||||
->widgets([
|
||||
Widgets\AccountWidget::class,
|
||||
Widgets\FilamentInfoWidget::class,
|
||||
])
|
||||
->middleware([
|
||||
EncryptCookies::class,
|
||||
AddQueuedCookiesToResponse::class,
|
||||
StartSession::class,
|
||||
AuthenticateSession::class,
|
||||
ShareErrorsFromSession::class,
|
||||
VerifyCsrfToken::class,
|
||||
SubstituteBindings::class,
|
||||
DisableBladeIconComponents::class,
|
||||
DispatchServingFilamentEvent::class,
|
||||
])
|
||||
->authMiddleware([
|
||||
Authenticate::class,
|
||||
]);
|
||||
}
|
||||
}
|
||||
+19
-3
@@ -6,8 +6,9 @@ use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Filament\Models\Contracts\FilamentUser;
|
||||
use Filament\Models\Contracts\HasName;
|
||||
use Filament\Panel;
|
||||
|
||||
class User extends Authenticatable implements FilamentUser,HasName
|
||||
class User extends Authenticatable implements FilamentUser, HasName
|
||||
{
|
||||
use Notifiable;
|
||||
|
||||
@@ -17,7 +18,7 @@ class User extends Authenticatable implements FilamentUser,HasName
|
||||
* @var array
|
||||
*/
|
||||
protected $fillable = [
|
||||
'name', 'email', 'password',
|
||||
'name', 'email', 'password', 'provider_name', 'provider_id',
|
||||
];
|
||||
|
||||
/**
|
||||
@@ -28,10 +29,25 @@ class User extends Authenticatable implements FilamentUser,HasName
|
||||
protected $hidden = [
|
||||
'password', 'remember_token',
|
||||
];
|
||||
public function canAccessFilament(): bool
|
||||
|
||||
/**
|
||||
* Get the attributes that should be cast.
|
||||
*
|
||||
* @return array<string, string>
|
||||
*/
|
||||
protected function casts(): array
|
||||
{
|
||||
return [
|
||||
'email_verified_at' => 'datetime',
|
||||
'password' => 'hashed',
|
||||
];
|
||||
}
|
||||
|
||||
public function canAccessPanel(Panel $panel): bool
|
||||
{
|
||||
return str_ends_with($this->email, '@tfmm.co');
|
||||
}
|
||||
|
||||
public function getFilamentName(): string
|
||||
{
|
||||
return "{$this->name}";
|
||||
|
||||
+75
-65
@@ -1,68 +1,78 @@
|
||||
{
|
||||
"name": "laravel/laravel",
|
||||
"description": "The Laravel Framework.",
|
||||
"keywords": ["framework", "laravel"],
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": ">=7.0.0",
|
||||
"barryvdh/laravel-snappy": "^1.0",
|
||||
"carlos-meneses/laravel-mpdf": "^2.1",
|
||||
"filament/filament": "^2.0",
|
||||
"laravel/framework": "^9.0",
|
||||
"laravel/tinker": "^2.0",
|
||||
"laravel/ui": "^3.0"
|
||||
},
|
||||
"require-dev": {
|
||||
"barryvdh/laravel-debugbar": "^3.7",
|
||||
"filp/whoops": "~2.0",
|
||||
"mockery/mockery": "0.9.*",
|
||||
"phpunit/phpunit": "^9.0"
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"database"
|
||||
],
|
||||
"psr-4": {
|
||||
"App\\": "app/"
|
||||
}
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
"name": "laravel/laravel",
|
||||
"description": "The Laravel Framework.",
|
||||
"keywords": ["framework", "laravel"],
|
||||
"license": "MIT",
|
||||
"type": "project",
|
||||
"require": {
|
||||
"php": "^8.3",
|
||||
"barryvdh/laravel-snappy": "^1.0",
|
||||
"carlos-meneses/laravel-mpdf": "^2.1",
|
||||
"dompdf/dompdf": "^3.1",
|
||||
"filament/filament": "^5.0",
|
||||
"kovah/laravel-socialite-oidc": "^0.7.0",
|
||||
"laravel/framework": "^12.0",
|
||||
"laravel/socialite": "^5.26",
|
||||
"laravel/tinker": "^2.9",
|
||||
"laravel/ui": "^4.2",
|
||||
"socialiteproviders/manager": "^4.9",
|
||||
"spatie/laravel-pdf": "^2.8",
|
||||
"takielias/tablar": "^13.02"
|
||||
},
|
||||
"files": [
|
||||
"app/Helpers/BidderSelectList.php",
|
||||
"app/Helpers/CheckoutBidderSelectList.php",
|
||||
"app/Helpers/ItemSelectList.php",
|
||||
"app/Helpers/PaymentMethodSelectList.php",
|
||||
"app/Helpers/WinningBidderSelectList.php",
|
||||
"app/Helpers/WinningBidSelectList.php"
|
||||
]
|
||||
|
||||
},
|
||||
"scripts": {
|
||||
"post-root-package-install": [
|
||||
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||
],
|
||||
"post-create-project-cmd": [
|
||||
"php artisan key:generate"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postInstall"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
|
||||
"@php artisan filament:upgrade"
|
||||
],
|
||||
"post-autoload-dump": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||
"@php artisan package:discover"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"preferred-install": "dist",
|
||||
"sort-packages": true,
|
||||
"optimize-autoloader": true
|
||||
}
|
||||
"require-dev": {
|
||||
"barryvdh/laravel-debugbar": "^3.8",
|
||||
"filament/upgrade": "^5.0",
|
||||
"filp/whoops": "^2.14",
|
||||
"mockery/mockery": "^1.6",
|
||||
"nunomaduro/collision": "^8.1",
|
||||
"phpunit/phpunit": "^11.0"
|
||||
},
|
||||
"autoload": {
|
||||
"classmap": [
|
||||
"database"
|
||||
],
|
||||
"psr-4": {
|
||||
"App\\": "app/"
|
||||
},
|
||||
"files": [
|
||||
"app/Helpers/BidderSelectList.php",
|
||||
"app/Helpers/CheckoutBidderSelectList.php",
|
||||
"app/Helpers/ItemSelectList.php",
|
||||
"app/Helpers/PaymentMethodSelectList.php",
|
||||
"app/Helpers/WinningBidderSelectList.php",
|
||||
"app/Helpers/WinningBidSelectList.php"
|
||||
]
|
||||
},
|
||||
"autoload-dev": {
|
||||
"psr-4": {
|
||||
"Tests\\": "tests/"
|
||||
}
|
||||
},
|
||||
"scripts": {
|
||||
"post-root-package-install": [
|
||||
"php -r \"file_exists('.env') || copy('.env.example', '.env');\""
|
||||
],
|
||||
"post-create-project-cmd": [
|
||||
"php artisan key:generate"
|
||||
],
|
||||
"post-install-cmd": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postInstall"
|
||||
],
|
||||
"post-update-cmd": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postUpdate",
|
||||
"@php artisan filament:upgrade"
|
||||
],
|
||||
"post-autoload-dump": [
|
||||
"Illuminate\\Foundation\\ComposerScripts::postAutoloadDump",
|
||||
"@php artisan package:discover",
|
||||
"@php artisan filament:upgrade"
|
||||
]
|
||||
},
|
||||
"config": {
|
||||
"preferred-install": "dist",
|
||||
"sort-packages": true,
|
||||
"optimize-autoloader": true
|
||||
},
|
||||
"minimum-stability": "dev",
|
||||
"prefer-stable": true
|
||||
}
|
||||
|
||||
Generated
+5712
-1988
File diff suppressed because it is too large
Load Diff
+2
-1
@@ -175,7 +175,8 @@ return [
|
||||
App\Providers\AuthServiceProvider::class,
|
||||
// App\Providers\BroadcastServiceProvider::class,
|
||||
App\Providers\EventServiceProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
App\Providers\Filament\AdminPanelProvider::class,
|
||||
App\Providers\RouteServiceProvider::class,
|
||||
|
||||
],
|
||||
|
||||
|
||||
@@ -35,4 +35,17 @@ return [
|
||||
'secret' => env('STRIPE_SECRET'),
|
||||
],
|
||||
|
||||
'oidc' => [
|
||||
'base_url' => env('OIDC_BASE_URL'),
|
||||
'client_id' => env('OIDC_CLIENT_ID'),
|
||||
'client_secret' => env('OIDC_CLIENT_SECRET'),
|
||||
'redirect' => env('OIDC_REDIRECT_URI'),
|
||||
],
|
||||
|
||||
'north' => [
|
||||
'checkout_id' => env('NORTH_CHECKOUT_ID'),
|
||||
'profile_id' => env('NORTH_PROFILE_ID'),
|
||||
'private_api_key' => env('NORTH_PRIVATE_API_KEY'),
|
||||
],
|
||||
|
||||
];
|
||||
|
||||
@@ -0,0 +1,145 @@
|
||||
<?php
|
||||
|
||||
return [
|
||||
'title' => 'Silent Auction Dashboard',
|
||||
'logo' => '/assets/tablar-logo.png',
|
||||
'menu' => [
|
||||
[
|
||||
'text' => 'Home',
|
||||
'route' => 'home',
|
||||
'icon' => 'ti ti-home',
|
||||
],
|
||||
[
|
||||
'text' => 'Bidders',
|
||||
'icon' => 'ti ti-users',
|
||||
'submenu' => [
|
||||
[
|
||||
'text' => 'Add Bidder',
|
||||
'route' => 'bidders',
|
||||
],
|
||||
[
|
||||
'text' => 'List Bidders',
|
||||
'route' => 'bidderlist',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'text' => 'Items',
|
||||
'icon' => 'ti ti-box',
|
||||
'submenu' => [
|
||||
[
|
||||
'text' => 'Add Item',
|
||||
'route' => 'items',
|
||||
],
|
||||
[
|
||||
'text' => 'List Items',
|
||||
'route' => 'itemlist',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'text' => 'Winners',
|
||||
'icon' => 'ti ti-trophy',
|
||||
'submenu' => [
|
||||
[
|
||||
'text' => 'Add Winner',
|
||||
'route' => 'winners',
|
||||
],
|
||||
[
|
||||
'text' => 'Edit Winner',
|
||||
'route' => 'editwinners',
|
||||
],
|
||||
[
|
||||
'text' => 'List Winners',
|
||||
'route' => 'winnerlist',
|
||||
],
|
||||
[
|
||||
'text' => 'Winners by Item',
|
||||
'route' => 'winnersbyitem',
|
||||
],
|
||||
[
|
||||
'text' => 'Check My Winnings',
|
||||
'route' => 'mywinnings',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'text' => 'CarShow',
|
||||
'icon' => 'ti ti-car',
|
||||
'submenu' => [
|
||||
[
|
||||
'text' => 'Add Car',
|
||||
'route' => 'showcars',
|
||||
],
|
||||
[
|
||||
'text' => 'List Show Cars',
|
||||
'route' => 'showcarlist',
|
||||
],
|
||||
[
|
||||
'text' => 'Judging Entry',
|
||||
'route' => 'judgingentry',
|
||||
],
|
||||
[
|
||||
'text' => 'People\'s Choice Entry',
|
||||
'route' => 'pcentry',
|
||||
],
|
||||
[
|
||||
'text' => 'Add Judge',
|
||||
'route' => 'judges',
|
||||
],
|
||||
[
|
||||
'text' => 'Car Show Winners',
|
||||
'route' => 'showwinners',
|
||||
],
|
||||
[
|
||||
'text' => 'Vehicle Total Scores',
|
||||
'route' => 'showscores',
|
||||
],
|
||||
[
|
||||
'text' => 'Scores by Car',
|
||||
'route' => 'showscoresbycar',
|
||||
],
|
||||
[
|
||||
'text' => 'Tabulate Winners',
|
||||
'route' => 'tabulateshowwinners',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'text' => 'Reports',
|
||||
'icon' => 'ti ti-file-text',
|
||||
'submenu' => [
|
||||
[
|
||||
'text' => 'Bidder List',
|
||||
'route' => 'bidderlist',
|
||||
],
|
||||
[
|
||||
'text' => 'Completed Checkouts',
|
||||
'route' => 'checkout_complete_list',
|
||||
],
|
||||
[
|
||||
'text' => 'Items',
|
||||
'route' => 'itemlist',
|
||||
],
|
||||
[
|
||||
'text' => 'Winners',
|
||||
'route' => 'winnerlist',
|
||||
],
|
||||
],
|
||||
],
|
||||
[
|
||||
'text' => 'Checkout',
|
||||
'icon' => 'ti ti-credit-card',
|
||||
'submenu' => [
|
||||
[
|
||||
'text' => 'Checkout Bidder',
|
||||
'route' => 'checkout',
|
||||
],
|
||||
[
|
||||
'text' => 'Re-Print Receipt',
|
||||
'route' => 'reprint_receipt',
|
||||
],
|
||||
],
|
||||
],
|
||||
],
|
||||
];
|
||||
@@ -23,14 +23,131 @@ $factory->define(App\User::class, function (Faker\Generator $faker) {
|
||||
];
|
||||
});
|
||||
|
||||
//Bidder
|
||||
$factory->define(App\Models\Bidder::class, function (Faker\Generator $faker) {
|
||||
static $password;
|
||||
|
||||
// Bidders
|
||||
$factory->define(App\Models\Bidders::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'name' => $faker->name,
|
||||
'email' => $faker->unique()->safeEmail,
|
||||
'password' => $password ?: $password = bcrypt('secret'),
|
||||
'remember_token' => str_random(10),
|
||||
'bidder_fname' => $faker->firstName,
|
||||
'bidder_lname' => $faker->lastName,
|
||||
'bidder_addr' => $faker->streetAddress,
|
||||
'bidder_city' => $faker->city,
|
||||
'bidder_state' => $faker->stateAbbr,
|
||||
'bidder_zip' => $faker->postcode,
|
||||
'bidder_phone' => $faker->phoneNumber,
|
||||
'bidder_email' => $faker->unique()->safeEmail,
|
||||
'bidder_assigned_number' => $faker->unique()->numberBetween(1, 1000),
|
||||
];
|
||||
});
|
||||
|
||||
// Items
|
||||
$factory->define(App\Models\Items::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'item_desc' => $faker->sentence(3),
|
||||
'item_min_bid' => $faker->numberBetween(10, 100),
|
||||
'item_est_value' => $faker->numberBetween(50, 500),
|
||||
'item_assigned_num' => $faker->unique()->numberBetween(1, 500),
|
||||
];
|
||||
});
|
||||
|
||||
// CarShowCategory
|
||||
$factory->define(App\Models\CarShowCategory::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'category_name' => $faker->words(2, true),
|
||||
'vehicle_type' => $faker->boolean,
|
||||
];
|
||||
});
|
||||
|
||||
// Vehicles
|
||||
$factory->define(App\Models\Vehicles::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'year' => $faker->year,
|
||||
'make' => $faker->company,
|
||||
'model' => $faker->word,
|
||||
'type' => function () {
|
||||
return factory(App\Models\CarShowCategory::class)->create()->id;
|
||||
},
|
||||
'doNotJudge' => $faker->boolean,
|
||||
'owner' => function () {
|
||||
return factory(App\Models\Bidders::class)->create()->bidder_assigned_number;
|
||||
},
|
||||
];
|
||||
});
|
||||
|
||||
// PaymentMethods
|
||||
$factory->define(App\Models\PaymentMethods::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'pm_name' => $faker->randomElement(['Cash', 'Check', 'Credit Card']),
|
||||
];
|
||||
});
|
||||
|
||||
// Judges
|
||||
$factory->define(App\Models\Judges::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'judge_number' => $faker->unique()->numberBetween(1, 50),
|
||||
];
|
||||
});
|
||||
|
||||
// VehicleScores
|
||||
$factory->define(App\Models\VehicleScores::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'judge' => function () {
|
||||
return factory(App\Models\Judges::class)->create()->id;
|
||||
},
|
||||
'overall_score' => $faker->numberBetween(1, 100),
|
||||
'vehicle' => function () {
|
||||
return factory(App\Models\Vehicles::class)->create()->id;
|
||||
},
|
||||
];
|
||||
});
|
||||
|
||||
// PeoplesChoice
|
||||
$factory->define(App\Models\PeoplesChoice::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'vehicle' => function () {
|
||||
return factory(App\Models\Vehicles::class)->create()->id;
|
||||
},
|
||||
'pc_count' => $faker->numberBetween(0, 50),
|
||||
];
|
||||
});
|
||||
|
||||
// WinningBids
|
||||
$factory->define(App\Models\WinningBids::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'winning_bidder_num' => function () {
|
||||
return factory(App\Models\Bidders::class)->create()->idbidders;
|
||||
},
|
||||
'winning_cost' => $faker->numberBetween(10, 1000),
|
||||
'winning_item_num' => function () {
|
||||
return factory(App\Models\Items::class)->create()->iditems;
|
||||
},
|
||||
];
|
||||
});
|
||||
|
||||
// Checkout
|
||||
$factory->define(App\Models\Checkout::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'bidder_num' => function () {
|
||||
return factory(App\Models\Bidders::class)->create()->idbidders;
|
||||
},
|
||||
'winnertotal' => $faker->numberBetween(10, 2000),
|
||||
'payment_method' => function () {
|
||||
return factory(App\Models\PaymentMethods::class)->create()->pm_id;
|
||||
},
|
||||
'check_number' => $faker->optional()->numberBetween(100, 999),
|
||||
'cc_transaction' => $faker->optional()->uuid,
|
||||
'cc_amount' => $faker->optional()->numberBetween(10, 2000),
|
||||
];
|
||||
});
|
||||
|
||||
// CarShowWinner
|
||||
$factory->define(App\Models\CarShowWinner::class, function (Faker\Generator $faker) {
|
||||
return [
|
||||
'vehicle' => function () {
|
||||
return factory(App\Models\Vehicles::class)->create()->id;
|
||||
},
|
||||
'category' => function () {
|
||||
return factory(App\Models\CarShowCategory::class)->create()->id;
|
||||
},
|
||||
'place' => $faker->numberBetween(1, 3),
|
||||
'total_score' => $faker->numberBetween(50, 300),
|
||||
];
|
||||
});
|
||||
@@ -0,0 +1,32 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function up():
|
||||
void {
|
||||
Schema::table('car_show_winners', function (Blueprint $table) {
|
||||
$table->integer('total_score')->after('vehicle');
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function down():
|
||||
void {
|
||||
Schema::table('car_show_winners', function (Blueprint $table) {
|
||||
$table->dropColumn('total_score');
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::create('sessions', function (Blueprint $table) {
|
||||
$table->string('id')->primary();
|
||||
$table->foreignId('user_id')->nullable()->index();
|
||||
$table->string('ip_address', 45)->nullable();
|
||||
$table->text('user_agent')->nullable();
|
||||
$table->longText('payload');
|
||||
$table->integer('last_activity')->index();
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::dropIfExists('sessions');
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,31 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Migrations\Migration;
|
||||
use Illuminate\Database\Schema\Blueprint;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
|
||||
return new class extends Migration
|
||||
{
|
||||
/**
|
||||
* Run the migrations.
|
||||
*/
|
||||
public function up(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->string('provider_name')->nullable();
|
||||
$table->string('provider_id')->nullable();
|
||||
$table->unique(['provider_name', 'provider_id']);
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* Reverse the migrations.
|
||||
*/
|
||||
public function down(): void
|
||||
{
|
||||
Schema::table('users', function (Blueprint $table) {
|
||||
$table->dropUnique(['provider_name', 'provider_id']);
|
||||
$table->dropColumn(['provider_name', 'provider_id']);
|
||||
});
|
||||
}
|
||||
};
|
||||
@@ -0,0 +1,12 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Database\Seeder;
|
||||
use App\Models\Bidders;
|
||||
|
||||
class BiddersTableSeeder extends Seeder
|
||||
{
|
||||
public function run()
|
||||
{
|
||||
factory(Bidders::class, 50)->create();
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user