163 Commits

Author SHA1 Message Date
rlong 2374d02670 upgrade to new versions 2026-04-20 12:56:52 -04:00
rlong 472cb78ffb cleanup old winner tabulation 2026-04-20 10:15:08 -04:00
rlong a99021587e add score to winner table 2026-04-20 10:08:56 -04:00
rlong 13837faaa5 add score to winner table 2026-04-20 10:07:36 -04:00
rlong 9954817c16 add score to winner table 2026-04-20 10:06:23 -04:00
rlong c13238014a add score to winner table 2026-04-20 10:03:36 -04:00
rlong f9d2fcfa06 add score to winner table 2026-04-20 10:01:21 -04:00
rlong 3431bef787 Fix sort 2026-04-20 09:51:39 -04:00
rlong 47bf882702 Fix sort 2026-04-20 09:41:49 -04:00
rlong 70c0e1f768 Fix sort 2026-04-20 09:39:54 -04:00
rlong 894fecf6b8 Fix sort 2026-04-20 09:39:30 -04:00
rlong 9051c8bd25 Fix sort 2026-04-20 09:35:55 -04:00
rlong efa24f90ce Fix sort 2026-04-20 09:34:55 -04:00
rlong eeb38a367e Fix sort 2026-04-20 09:32:35 -04:00
rlong d113d44463 Fix sort 2026-04-20 09:28:28 -04:00
rlong 085ae34e89 Fix sort 2026-04-20 09:27:41 -04:00
rlong 1969b7edc8 Fix sort 2026-04-20 09:25:41 -04:00
rlong 2fa2c0b9f7 Fix sort 2026-04-20 09:22:19 -04:00
rlong cb990adb2a Fix sort 2026-04-20 09:04:18 -04:00
rlong dae9f6f39e Fix sort 2026-04-20 08:48:24 -04:00
rlong a5e6b5f8d6 Fix sort 2026-04-20 08:46:46 -04:00
rlong e5097cf466 fix command 2026-04-16 16:05:25 -04:00
rlong ecb1dc2bcf fix route 2026-04-16 16:03:04 -04:00
rlong 3390f66226 update sort 2026-04-16 16:01:20 -04:00
rlong e7c539e4ef test new pages 2026-04-16 15:50:03 -04:00
rlong 330e210fde disable registration 2025-07-14 11:06:05 -04:00
rlong 7053ce029b composer update 2025-07-12 13:44:39 -04:00
rlong 2823e03793 update judging categories 2025-05-19 12:14:14 -04:00
rlong 42067a7b04 fix years for categories 2024-05-12 15:01:21 -04:00
rlong 9e65a3731c fix typo 2024-05-08 19:25:39 -04:00
rlong 4bdf14de83 fix typo 2024-05-08 19:09:44 -04:00
rlong 141d6c25fa adjust year categories 2024-03-16 13:39:58 -04:00
rlong 11ef29d89c remove stats dir 2024-03-16 13:24:54 -04:00
rlong a2ef1742af update vehicle registration form 2023-04-13 16:41:15 -04:00
rlong 4cc8296049 Fix typo 2023-04-12 19:39:09 -04:00
rlong d0dd8d35a9 Update tabulation for new year 2023-04-12 19:31:00 -04:00
rlong 4fb991e4c0 Merge branch 'upgrades-and-filament' into 'master'
Upgrades and filament

See merge request tfmm/Silent-Auction!1
2023-03-16 18:24:24 +00:00
rlong 925032b146 add show winner tabulation to menu 2023-03-16 14:22:11 -04:00
rlong 78715cc3ef auto truncate winner table 2023-03-16 14:13:40 -04:00
rlong 2ef2f216cb tabulate showwinners route 2023-03-16 14:09:54 -04:00
rlong fac607c57d add tabulate winner route 2023-03-16 14:02:19 -04:00
rlong b85754b888 typo 2023-03-16 13:49:34 -04:00
rlong bc7a52ab28 set resource order 2023-03-16 13:49:01 -04:00
rlong efa2e08c31 typo 2023-03-16 13:45:31 -04:00
rlong 5b814baaa7 bidder phn num 2023-03-16 13:44:41 -04:00
rlong 44fffdcc97 bidder phn num 2023-03-16 13:44:06 -04:00
rlong 25100251b7 bidder tel num 2023-03-16 13:41:50 -04:00
rlong a49bb5e218 veh score rel mgr 2023-03-16 13:37:56 -04:00
rlong 0d73255ee8 Fix typo 2023-03-16 13:30:34 -04:00
rlong a2f3b2c380 veh owner rel mgr form 2023-03-16 13:29:39 -04:00
rlong 5e7155457d vehicle resource reorder tabs 2023-03-16 13:19:31 -04:00
rlong aed20ddd00 typo 2023-03-16 13:17:13 -04:00
rlong e6e49ddfcb winning bids bidder select 2023-03-16 13:16:40 -04:00
rlong 082c110616 winning bid mask 2023-03-16 13:15:28 -04:00
rlong 24841b3b98 items 2023-03-16 13:13:42 -04:00
rlong b51e56ff6f winning bids fix 2023-03-16 13:07:06 -04:00
rlong eb2dee7c13 fix bids 2023-03-16 12:59:33 -04:00
rlong 99d8b9ec0a composer update 2023-03-16 12:52:38 -04:00
rlong 892bf2b09f fix money mask 2023-03-16 12:39:15 -04:00
rlong f4255621fe fix commas 2023-03-16 12:36:26 -04:00
rlong a13c9be41c more resource setup 2022-09-28 07:52:27 -04:00
rlong ef96dc7cd8 update sorting and composer 2022-09-26 19:12:15 -04:00
rlong 1629e22b63 resources and relation mgrs 2022-09-12 07:57:09 -04:00
rlong e484c0df98 resource setup 2022-09-04 13:57:38 -04:00
rlong 8f95e68e61 work on fixing bidders and vehicles filament 2022-09-03 12:49:20 -04:00
rlong bc6f3c05d8 typo 2022-08-28 15:30:40 -04:00
rlong d91e1703e7 try to fix vehownerrelmgr 2022-08-28 15:29:40 -04:00
rlong a588f397b2 vehownerrelmgr 2022-08-28 15:16:50 -04:00
rlong ee9d54eeff update vehscorerelationmgr 2022-08-28 15:14:06 -04:00
rlong 9ffb0cafc5 fix relation 2022-08-28 15:12:08 -04:00
rlong 6d38150b1d typo 2022-08-28 15:10:17 -04:00
rlong d4a3fb430b vehresource form 2022-08-28 15:08:15 -04:00
rlong f4a19837bb typo 2022-08-16 18:10:49 -04:00
rlong 60b526adf8 typo 2022-08-16 18:10:25 -04:00
rlong b6641efea7 sort fix 2022-08-16 18:10:01 -04:00
rlong a15f64253b test veh resource sort fix 2022-08-16 18:08:24 -04:00
rlong 2399774b52 sorting fix 2022-08-14 19:14:58 -04:00
rlong cf8cf1a00c code cleanup 2022-08-14 11:32:00 -04:00
rlong 0991c4b5eb typo 2022-08-14 11:27:26 -04:00
rlong 875ae802e2 vehicle resource 2022-08-14 11:26:59 -04:00
rlong bee1c9dd0d typos 2022-08-14 11:23:01 -04:00
rlong 65f5d194ed typo 2022-08-14 11:22:36 -04:00
rlong 7211867d1c vehicles resource 2022-08-14 11:22:14 -04:00
rlong 1a20df54a1 SVeh relation mgr display update 2022-08-14 11:15:36 -04:00
rlong cb7008a74f fix veh score form 2022-08-14 11:13:50 -04:00
rlong 8536fb0c7b scored veh relation veh scores 2022-08-14 11:11:02 -04:00
rlong 5249fff6f6 undo last 2022-08-11 17:21:47 -04:00
rlong 421b19b3e9 vscores resource updates 2022-08-11 17:20:14 -04:00
rlong ad3dbe3b42 vscore relation 2022-08-11 17:14:34 -04:00
rlong e0a5e98a6a vehicle relation 2022-08-11 17:09:03 -04:00
rlong c9843c6404 score relation 2022-08-08 21:22:43 -04:00
rlong 3382de51d5 score relation 2022-08-08 21:21:39 -04:00
rlong 401f432a96 score relation 2022-08-08 21:20:52 -04:00
rlong 1d3abb8b8d score relation 2022-08-08 21:16:39 -04:00
rlong b3e2909728 score relation 2022-08-08 21:15:22 -04:00
rlong 4f751c32b0 score relation 2022-08-08 21:13:18 -04:00
rlong 484e2c23ec scores relations 2022-08-08 21:11:30 -04:00
rlong 78c72d1937 scores sort 2022-08-08 21:07:15 -04:00
rlong 6a118fc047 relationmanager 2022-08-08 21:05:06 -04:00
rlong 910ab01712 score relation 2022-08-08 21:03:05 -04:00
rlong e23fe4eacf score relation 2022-08-08 21:01:59 -04:00
rlong 69bc4f3313 score relation 2022-08-08 21:00:52 -04:00
rlong 5cd5b84ebd score relation 2022-08-08 20:59:40 -04:00
rlong 4922235796 vehicle score relation 2022-08-08 20:58:29 -04:00
rlong be12b4756d vehicle relation manager 2022-08-08 20:56:55 -04:00
rlong 9bc97078fc vehicle scores setup 2022-08-08 20:56:28 -04:00
rlong 012a95bc36 winner relation 2022-08-08 20:50:05 -04:00
rlong eab6be34be award relation 2022-08-08 20:49:19 -04:00
rlong 0a826b5dfd winner relation 2022-08-08 20:47:01 -04:00
rlong dbb2821472 winner relation 2022-08-08 20:45:03 -04:00
rlong 3b93552ec7 winner relation 2022-08-08 20:43:32 -04:00
rlong 87be8975c0 winner relation 2022-08-08 20:42:37 -04:00
rlong 24ac516631 winner relation 2022-08-08 20:42:10 -04:00
rlong acf63aeb46 winner relation 2022-08-08 20:39:33 -04:00
rlong 10ce7b5224 Winner resource relation 2022-08-08 20:38:29 -04:00
rlong 3033006fd6 fix winner vehicle 2022-08-08 20:36:05 -04:00
rlong 82bfe4da3f fix winner category 2022-08-08 20:34:48 -04:00
rlong 5a330c6cda relationship update 2022-08-08 15:01:38 -04:00
rlong e618bd4b56 relation updates 2022-08-08 14:57:49 -04:00
rlong 6191923269 category relation 2022-08-08 14:55:05 -04:00
rlong 05d347914e fix category relation 2022-08-08 14:54:16 -04:00
rlong 2bbb10e55b remove failed sort 2022-08-07 13:55:31 -04:00
rlong ae21c17f60 sort test 2022-08-07 13:46:27 -04:00
rlong 56b6180432 Revert sorting 2022-08-07 13:37:33 -04:00
rlong 910a8f79fb composer install 2022-08-07 13:36:02 -04:00
rlong 3c6097a5b2 vehicle sort 2022-08-07 13:34:06 -04:00
rlong 7d4964e268 sort test 2022-08-07 13:26:20 -04:00
rlong eebffa5fa2 one more sort fix 2022-08-07 13:23:46 -04:00
rlong e0182f4127 fix sort 2022-08-07 13:23:18 -04:00
rlong b2c91d16f7 try ordering 2022-08-07 13:21:50 -04:00
rlong 0133c405a5 fix pc relation 2022-08-07 13:18:48 -04:00
rlong 9ac36b7ab8 fix vehicle relation 2022-08-07 13:18:06 -04:00
rlong e5b7b58cc8 peopleschoice setup 2022-08-07 13:17:10 -04:00
rlong 0ba081bb8c fix plural 2022-08-07 13:09:46 -04:00
rlong 31eb22c3c2 Item grouping 2022-08-07 13:07:31 -04:00
rlong afa1c78db4 winner resource 2022-08-07 12:54:40 -04:00
rlong d4d33e3267 winner resource update 2022-08-07 12:52:59 -04:00
rlong 6e2bdee1c6 resources and relations 2022-08-07 12:48:05 -04:00
rlong 83a89329b8 categoryrelation 2022-08-07 10:35:25 -04:00
rlong fb50e5624f category relation 2022-08-07 09:01:34 -04:00
rlong 8fbdcc2a2f category relation 2022-08-07 08:47:36 -04:00
rlong 7fdc4bbc42 category edit 2022-08-07 08:44:39 -04:00
rlong fde7c758d7 category relationship 2022-08-06 19:19:33 -04:00
rlong b6ff1755ad category relations 2022-08-06 19:13:29 -04:00
rlong 92daf26e8a category relations 2022-08-06 19:02:34 -04:00
rlong ef7aa5fe90 category relations 2022-08-06 19:02:21 -04:00
rlong c83921b40a judge resource 2022-08-06 18:50:26 -04:00
rlong 2068289064 category edit 2022-08-06 18:47:14 -04:00
rlong 2b735c9fbf move debugbar to dev req 2022-08-06 16:36:44 -04:00
rlong c63f4b6042 remove laravelhealth 2022-08-06 16:34:22 -04:00
rlong 7e001c7b56 add laravelhealth 2022-08-06 16:31:12 -04:00
rlong 5cd77faf79 category edit 2022-08-06 16:24:05 -04:00
rlong cef7923531 category edit 2022-08-06 16:17:54 -04:00
rlong 2192f9de7c category resource form setup 2022-08-06 16:16:32 -04:00
rlong de31581290 work on category resource 2022-08-06 16:11:15 -04:00
rlong 3ac8d12c15 update category model 2022-08-06 15:50:07 -04:00
rlong 003e686224 Update carshowcategory filament resource 2022-08-06 15:46:22 -04:00
rlong f54e41aef9 Add filament 2022-08-06 15:39:24 -04:00
rlong a3f751e8fa upgrade to l9 2022-08-06 14:35:30 -04:00
rlong 01ce1a4f58 update to l8 2022-08-06 14:03:59 -04:00
rlong 17f6924abb update to l7 2022-08-06 13:58:30 -04:00
rlong bc534f4d74 update php package 2022-08-06 13:26:47 -04:00
rlong dba67cec9c update to v6 2022-08-06 13:20:02 -04:00
130 changed files with 18404 additions and 7568 deletions
+99 -286
View File
@@ -3,306 +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;
}
CarShowWinner::truncate();
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;
}
$this->info('Starting tabulation...');
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;
}
// 2. BEST IN SHOW (Category 6)
$this->recordJudgedWinners(6, 'first', null, null, true);
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;
// 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);
}
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;
}
//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()
]
);
$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()
]
);
}
}
+30 -45
View File
@@ -2,64 +2,49 @@
namespace App\Exceptions;
use Exception;
use Illuminate\Auth\AuthenticationException;
use Illuminate\Foundation\Exceptions\Handler as ExceptionHandler;
use Throwable;
class Handler extends ExceptionHandler
{
/**
* A list of the exception types that should not be reported.
* A list of exception types with their corresponding custom log levels.
*
* @var array
* @var array<class-string<\Throwable>, \Psr\Log\LogLevel::*>
*/
protected $dontReport = [
\Illuminate\Auth\AuthenticationException::class,
\Illuminate\Auth\Access\AuthorizationException::class,
\Symfony\Component\HttpKernel\Exception\HttpException::class,
\Illuminate\Database\Eloquent\ModelNotFoundException::class,
\Illuminate\Session\TokenMismatchException::class,
\Illuminate\Validation\ValidationException::class,
protected $levels = [
//
];
/**
* Report or log an exception.
* A list of the exception types that are not reported.
*
* This is a great spot to send exceptions to Sentry, Bugsnag, etc.
* @var array<int, class-string<\Throwable>>
*/
protected $dontReport = [
//
];
/**
* A list of the inputs that are never flashed to the session on validation exceptions.
*
* @var array<int, string>
*/
protected $dontFlash = [
'current_password',
'password',
'password_confirmation',
];
/**
* Register the exception handling callbacks for the application.
*
* @param \Exception $exception
* @return void
*/
public function report(Exception $exception)
public function register()
{
parent::report($exception);
$this->reportable(function (Throwable $e) {
//
});
}
/**
* Render an exception into an HTTP response.
*
* @param \Illuminate\Http\Request $request
* @param \Exception $exception
* @return \Illuminate\Http\Response
*/
public function render($request, Exception $exception)
{
return parent::render($request, $exception);
}
/**
* Convert an authentication exception into an unauthenticated response.
*
* @param \Illuminate\Http\Request $request
* @param \Illuminate\Auth\AuthenticationException $exception
* @return \Illuminate\Http\Response
*/
protected function unauthenticated($request, AuthenticationException $exception)
{
if ($request->expectsJson()) {
return response()->json(['error' => 'Unauthenticated.'], 401);
}
return redirect()->guest(route('login'));
}
}
}
@@ -0,0 +1,90 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
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;
class BiddersResource extends Resource
{
protected static ?string $model = Bidders::class;
protected static ?string $recordTitleAttribute = 'idbidders';
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Silent Auction';
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('bidder_fname')->label('First Name'),
TextInput::make('bidder_lname')->label('Last Name'),
TextInput::make('bidder_addr')->label('Address'),
TextInput::make('bidder_city')->label('City'),
TextInput::make('bidder_state')->label('State'),
TextInput::make('bidder_zip')->label('Zip'),
TextInput::make('bidder_phone')->label('Phone Number')
->mask('(999) 999-9999'),
TextInput::make('bidder_email')->label('Email'),
TextInput::make('bidder_assigned_number')->label('Assigned Number'),
]);
}
public static function table(Table $table): Table
{
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'),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
])
->defaultSort('bidder_assigned_number');
}
public static function getRelations(): array
{
return [
RelationManagers\VehiclesRelationManager::class,
RelationManagers\CheckoutRelationManager::class,
RelationManagers\WinningBidsRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListBidders::route('/'),
'create' => Pages\CreateBidders::route('/create'),
'edit' => Pages\EditBidders::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\BiddersResource\Pages;
use App\Filament\Resources\BiddersResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateBidders extends CreateRecord
{
protected static string $resource = BiddersResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\BiddersResource\Pages;
use App\Filament\Resources\BiddersResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditBidders extends EditRecord
{
protected static string $resource = BiddersResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\BiddersResource\Pages;
use App\Filament\Resources\BiddersResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListBidders extends ListRecords
{
protected static string $resource = BiddersResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,60 @@
<?php
namespace App\Filament\Resources\BiddersResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class CheckoutRelationManager extends RelationManager
{
protected static string $relationship = 'checkout';
protected static ?string $recordTitleAttribute = 'bidder_num';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('bidder_num')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('bidders.bidder_assigned_number')
->label('Bidder Number')
->sortable(),
Tables\Columns\TextColumn::make('winnertotal')
->label('Total Amount')
->money('usd', 'true')
->sortable(),
Tables\Columns\TextColumn::make('paymentMethod.pm_name')
->label('Payment Method')
->sortable(),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,80 @@
<?php
namespace App\Filament\Resources\BiddersResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\CarShowCategory;
class VehiclesRelationManager extends RelationManager
{
protected static string $relationship = 'vehicles';
protected static ?string $recordTitleAttribute = 'owner';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('year')
->label('Year'),
Forms\Components\TextInput::make('make')
->label('Make'),
Forms\Components\TextInput::make('model')
->label('Model'),
Forms\Components\Select::make('type')
->label('Type')
->options(CarShowCategory::vehtype()->pluck('category_name', 'id'))
->searchable(),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('vehicleOwner.bidder_assigned_number')
->label('Number')
->sortable(),
Tables\Columns\TextColumn::make('year')
->label('Year')
->sortable(),
Tables\Columns\TextColumn::make('make')
->label('Make')
->sortable(),
Tables\Columns\TextColumn::make('model')
->label('Model')
->sortable(),
Tables\Columns\TextColumn::make('vehicleType.category_name')
->label('Type')
->sortable(),
Tables\Columns\BooleanColumn::make('doNotJudge')
->label('Judged?')
->sortable()
->falseIcon('heroicon-o-badge-check')
->trueIcon('heroicon-o-x-circle')
->trueColor('danger')
->falseColor('success'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,63 @@
<?php
namespace App\Filament\Resources\BiddersResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\Bidders;
class WinningBidsRelationManager extends RelationManager
{
protected static string $relationship = 'winningBids';
protected static ?string $recordTitleAttribute = 'winning_bidder_num';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Select::make('winning_bidder_num')
->label('Winning Bidder Number')
->options(Bidders::pluck('bidder_assigned_number', 'idbidders'))
->searchable(),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('items.item_assigned_num')
->label('Item Number')
->sortable(),
Tables\Columns\TextColumn::make('bidders.winning_bidder_num')
->label('Bidder Number')
->sortable(),
Tables\Columns\TextColumn::make('winning_cost')
->label('Winning Bid Amt')
->money('usd', 'true')
->sortable(),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,74 @@
<?php
namespace App\Filament\Resources;
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\Forms\Form;
use Filament\Resources\Resource;
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;
class CarShowCategoryResource extends Resource
{
protected static ?string $model = CarShowCategory::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Car Show';
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('category_name'),
Toggle::make('vehicle_type')->inline(false)
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('category_name')->sortable(),
BooleanColumn::make('vehicle_type')->sortable(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
])
->defaultSort('category_name');
}
public static function getRelations(): array
{
return [
RelationManagers\VehicleRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListCarShowCategories::route('/'),
'create' => Pages\CreateCarShowCategory::route('/create'),
'edit' => Pages\EditCarShowCategory::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
use App\Filament\Resources\CarShowCategoryResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateCarShowCategory extends CreateRecord
{
protected static string $resource = CarShowCategoryResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
use App\Filament\Resources\CarShowCategoryResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditCarShowCategory extends EditRecord
{
protected static string $resource = CarShowCategoryResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CarShowCategoryResource\Pages;
use App\Filament\Resources\CarShowCategoryResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListCarShowCategories extends ListRecords
{
protected static string $resource = CarShowCategoryResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,60 @@
<?php
namespace App\Filament\Resources\CarShowCategoryResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class VehicleRelationManager extends RelationManager
{
protected static string $relationship = 'vehicle';
protected static ?string $recordTitleAttribute = 'id';
protected static ?string $inverseRelationship = 'vehicleType';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('id')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('id'),
Tables\Columns\TextColumn::make('owner'),
Tables\Columns\TextColumn::make('year'),
Tables\Columns\TextColumn::make('make'),
Tables\Columns\TextColumn::make('model'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
Tables\Actions\AssociateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
Tables\Actions\DissociateAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
Tables\Actions\DissociateBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,82 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
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\Select;
use App\Models\Vehicles;
use App\Models\CarShowCategory;
class CarShowWinnerResource extends Resource
{
protected static ?string $model = CarShowWinner::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Car Show';
public static function form(Form $form): Form
{
return $form
->schema([
Select::make('vehicle')
->label('Vehicle')
->options(Vehicles::all()->pluck('owner', 'id'))
->searchable(),
Select::make('category')
->label('Category')
->options(CarShowCategory::all()->pluck('category_name', 'id'))
->searchable(),
]);
}
public static function table(Table $table): Table
{
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'),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
RelationManagers\AwardVehicleRelationManager::class,
RelationManagers\AwardCategoryRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListCarShowWinners::route('/'),
'create' => Pages\CreateCarShowWinner::route('/create'),
'edit' => Pages\EditCarShowWinner::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
use App\Filament\Resources\CarShowWinnerResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateCarShowWinner extends CreateRecord
{
protected static string $resource = CarShowWinnerResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
use App\Filament\Resources\CarShowWinnerResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditCarShowWinner extends EditRecord
{
protected static string $resource = CarShowWinnerResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\Pages;
use App\Filament\Resources\CarShowWinnerResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListCarShowWinners extends ListRecords
{
protected static string $resource = CarShowWinnerResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,52 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class AwardCategoryRelationManager extends RelationManager
{
protected static string $relationship = 'awardCategory';
protected static ?string $recordTitleAttribute = 'id';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('id')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('id'),
Tables\Columns\TextColumn::make('category_name'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,54 @@
<?php
namespace App\Filament\Resources\CarShowWinnerResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class AwardVehicleRelationManager extends RelationManager
{
protected static string $relationship = 'awardVehicle';
protected static ?string $recordTitleAttribute = 'id';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('id')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('owner'),
Tables\Columns\TextColumn::make('year'),
Tables\Columns\TextColumn::make('make'),
Tables\Columns\TextColumn::make('model'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,95 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
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;
class CheckoutResource extends Resource
{
protected static ?string $model = Checkout::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Silent Auction';
public static function form(Form $form): Form
{
return $form
->schema([
Select::make('bidder_num')
->label('Bidder')
->options(
Bidders::orderBy('bidder_assigned_number')
->pluck('bidder_assigned_number', 'idbidders')
)
->searchable(),
TextInput::make('winnertotal')
->label('Total Amount'),
Select::make('payment_method')
->label('Payment Method')
->options(PaymentMethods::all()->pluck('pm_name', 'pm_id'))
->searchable(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('bidders.bidder_assigned_number')
->label('Bidder Number')
->sortable(),
TextColumn::make('winnertotal')
->label('Total Amount')
->money('usd', 'true')
->sortable(),
TextColumn::make('paymentMethod.pm_name')
->label('Payment Method')
->sortable(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
])
->defaultSort('bidders.bidder_assigned_number');
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListCheckouts::route('/'),
'create' => Pages\CreateCheckout::route('/create'),
'edit' => Pages\EditCheckout::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\CheckoutResource\Pages;
use App\Filament\Resources\CheckoutResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateCheckout extends CreateRecord
{
protected static string $resource = CheckoutResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CheckoutResource\Pages;
use App\Filament\Resources\CheckoutResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditCheckout extends EditRecord
{
protected static string $resource = CheckoutResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\CheckoutResource\Pages;
use App\Filament\Resources\CheckoutResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListCheckouts extends ListRecords
{
protected static string $resource = CheckoutResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,64 @@
<?php
namespace App\Filament\Resources\CheckoutResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class BiddersRelationManager extends RelationManager
{
protected static string $relationship = 'bidders';
protected static ?string $recordTitleAttribute = 'bidder_num';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Select::make('bidder_num')
->label('Number')
->required()
->createOptionForm([
Forms\Components\TextInput::make('bidder_fname')->label('First Name'),
Forms\Components\TextInput::make('bidder_lname')->label('Last Name'),
Forms\Components\TextInput::make('bidder_addr')->label('Address'),
Forms\Components\TextInput::make('bidder_city')->label('City'),
Forms\Components\TextInput::make('bidder_state')->label('State'),
Forms\Components\TextInput::make('bidder_zip')->label('Zip'),
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 function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('bidder_fname')->label('First Name'),
Tables\Columns\TextColumn::make('bidder_lname')->label('Last Name'),
Tables\Columns\TextColumn::make('bidder_assigned_number')->label('Number'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\CheckoutResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class PaymentMethodRelationManager extends RelationManager
{
protected static string $relationship = 'paymentMethod';
protected static ?string $recordTitleAttribute = 'payment_method';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('payment_method')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('payment_method'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
+90
View File
@@ -0,0 +1,90 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
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;
class ItemsResource extends Resource
{
protected static ?string $model = Items::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Silent Auction';
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('item_assigned_num')
->label('Item Number'),
TextInput::make('item_desc')
->label('Description'),
TextInput::make('item_min_bid')
->label('Minimum Bid'),
TextInput::make('item_est_value')
->label('Estimated Value'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('item_assigned_num')
->label('Item Number')
->sortable(),
TextColumn::make('item_desc')
->label('Description'),
TextColumn::make('item_min_bid')
->label('Minimum Bid')
->money('usd', 'true')
->sortable(),
TextColumn::make('item_est_value')
->label('Estimated Value')
->money('usd', 'true')
->sortable(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
])
->defaultSort('item_assigned_num');
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListItems::route('/'),
'create' => Pages\CreateItems::route('/create'),
'edit' => Pages\EditItems::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\ItemsResource\Pages;
use App\Filament\Resources\ItemsResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateItems extends CreateRecord
{
protected static string $resource = ItemsResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\ItemsResource\Pages;
use App\Filament\Resources\ItemsResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditItems extends EditRecord
{
protected static string $resource = ItemsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\ItemsResource\Pages;
use App\Filament\Resources\ItemsResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListItems extends ListRecords
{
protected static string $resource = ItemsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\ItemsResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class WinningBidsRelationManager extends RelationManager
{
protected static string $relationship = 'winningBids';
protected static ?string $recordTitleAttribute = 'iditems';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('iditems')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('iditems'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
+68
View File
@@ -0,0 +1,68 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
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;
class JudgesResource extends Resource
{
protected static ?string $model = Judges::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Car Show';
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('judge_number'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('judge_number')->sortable(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListJudges::route('/'),
'create' => Pages\CreateJudges::route('/create'),
'edit' => Pages\EditJudges::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\JudgesResource\Pages;
use App\Filament\Resources\JudgesResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateJudges extends CreateRecord
{
protected static string $resource = JudgesResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\JudgesResource\Pages;
use App\Filament\Resources\JudgesResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditJudges extends EditRecord
{
protected static string $resource = JudgesResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\JudgesResource\Pages;
use App\Filament\Resources\JudgesResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListJudges extends ListRecords
{
protected static string $resource = JudgesResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\JudgesResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class VehicleScoresRelationManager extends RelationManager
{
protected static string $relationship = 'vehicleScores';
protected static ?string $recordTitleAttribute = 'judge';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('judge')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('judge'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,71 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
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;
class PaymentMethodsResource extends Resource
{
protected static ?string $model = PaymentMethods::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Silent Auction';
public static function form(Form $form): Form
{
return $form
->schema([
TextInput::make('pm_name')
->label('Method Name'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('pm_name')
->label('Method Name')
->sortable(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListPaymentMethods::route('/'),
'create' => Pages\CreatePaymentMethods::route('/create'),
'edit' => Pages\EditPaymentMethods::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
use App\Filament\Resources\PaymentMethodsResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreatePaymentMethods extends CreateRecord
{
protected static string $resource = PaymentMethodsResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
use App\Filament\Resources\PaymentMethodsResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditPaymentMethods extends EditRecord
{
protected static string $resource = PaymentMethodsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PaymentMethodsResource\Pages;
use App\Filament\Resources\PaymentMethodsResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListPaymentMethods extends ListRecords
{
protected static string $resource = PaymentMethodsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\PaymentMethodsResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class CheckoutRelationManager extends RelationManager
{
protected static string $relationship = 'checkout';
protected static ?string $recordTitleAttribute = 'payment_method';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('payment_method')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('payment_method'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,80 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
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 App\Models\Vehicles;
use Filament\Forms\Components\Select;
class PeoplesChoiceResource extends Resource
{
protected static ?string $model = PeoplesChoice::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Car Show';
protected static ?string $pluralModelLabel = 'Peoples Choice';
public static function form(Form $form): Form
{
return $form
->schema([
Select::make('vehicle')
->label('Vehicle')
->options(Vehicles::all()->pluck('owner', 'id'))
->searchable(),
TextInput::make('pc_count'),
]);
}
public static function table(Table $table): Table
{
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'),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListPeoplesChoices::route('/'),
'create' => Pages\CreatePeoplesChoice::route('/create'),
'edit' => Pages\EditPeoplesChoice::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
use App\Filament\Resources\PeoplesChoiceResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreatePeoplesChoice extends CreateRecord
{
protected static string $resource = PeoplesChoiceResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
use App\Filament\Resources\PeoplesChoiceResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditPeoplesChoice extends EditRecord
{
protected static string $resource = PeoplesChoiceResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\PeoplesChoiceResource\Pages;
use App\Filament\Resources\PeoplesChoiceResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListPeoplesChoices extends ListRecords
{
protected static string $resource = PeoplesChoiceResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\PeoplesChoiceResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class VehiclesRelationManager extends RelationManager
{
protected static string $relationship = 'vehicles';
protected static ?string $recordTitleAttribute = 'vehicle';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('vehicle')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('vehicle'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,84 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
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\Forms\Components\Select;
use App\Models\Vehicles;
use App\Models\Judges;
class VehicleScoresResource extends Resource
{
protected static ?string $model = VehicleScores::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Car Show';
public static function form(Form $form): Form
{
return $form
->schema([
Select::make('judge')
->label('Judge')
->options(Judges::all()->pluck('judge_number', 'id'))
->searchable(),
Select::make('vehicle')
->label('Vehicle')
->options(Vehicles::all()->pluck('owner', 'id'))
->searchable(),
TextInput::make('overall_score')
->label('Overall Score'),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('judges.judge_number')->label('Judge')->sortable(),
TextColumn::make('scoredVehicle.owner')->label('Vehicle Number')->sortable(),
TextColumn::make('overall_score')->label('Score')->sortable(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
public static function getRelations(): array
{
return [
RelationManagers\JudgeRelationManager::class,
RelationManagers\ScoredVehicleRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListVehicleScores::route('/'),
'create' => Pages\CreateVehicleScores::route('/create'),
'edit' => Pages\EditVehicleScores::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\Pages;
use App\Filament\Resources\VehicleScoresResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateVehicleScores extends CreateRecord
{
protected static string $resource = VehicleScoresResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\Pages;
use App\Filament\Resources\VehicleScoresResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditVehicleScores extends EditRecord
{
protected static string $resource = VehicleScoresResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\Pages;
use App\Filament\Resources\VehicleScoresResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListVehicleScores extends ListRecords
{
protected static string $resource = VehicleScoresResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class JudgeRelationManager extends RelationManager
{
protected static string $relationship = 'judges';
protected static ?string $recordTitleAttribute = 'judge_number';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('judge_number')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('judge_number'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,54 @@
<?php
namespace App\Filament\Resources\VehicleScoresResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class ScoredVehicleRelationManager extends RelationManager
{
protected static string $relationship = 'scoredVehicle';
protected static ?string $recordTitleAttribute = 'id';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('owner')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('owner'),
Tables\Columns\TextColumn::make('year')->label('Year'),
Tables\Columns\TextColumn::make('make')->label('Make'),
Tables\Columns\TextColumn::make('model')->label('Model'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
+118
View File
@@ -0,0 +1,118 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
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;
class VehiclesResource extends Resource
{
protected static ?string $model = Vehicles::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Car Show';
public static function form(Form $form): Form
{
return $form
->schema([
Select::make('owner')
->label('Owner')
->options(Bidders::orderBy('bidder_assigned_number')->pluck('bidder_assigned_number', 'idbidders'))
->searchable(),
TextInput::make('year')
->label('Year'),
TextInput::make('make')
->label('Make'),
TextInput::make('model')
->label('Model'),
Select::make('type')
->label('Type')
->options(CarShowCategory::vehtype()->pluck('category_name', 'id'))
->searchable(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('vehicleOwner.bidder_assigned_number')
->label('Number')
->sortable(),
TextColumn::make('year')
->label('Year')
->sortable(),
TextColumn::make('make')
->label('Make')
->sortable(),
TextColumn::make('model')
->label('Model')
->sortable(),
TextColumn::make('vehicleType.category_name')
->label('Type')
->sortable(),
IconColumn::make('doNotJudge')
->label('Judged?')
->sortable()
->boolean()
->falseIcon('heroicon-o-check-badge')
->trueIcon('heroicon-o-x-circle')
->trueColor('danger')
->falseColor('success'),
TextColumn::make('vehicleOwner.bidder_fname')
->label('First Name')
->sortable(),
TextColumn::make('vehicleOwner.bidder_lname')
->label('Last Name')
->sortable(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
])
->defaultSort('vehicleOwner.bidder_assigned_number');
}
public static function getRelations(): array
{
return [
RelationManagers\VehicleOwnerRelationManager::class,
RelationManagers\VehicleScoresRelationManager::class,
RelationManagers\VehicleTypeRelationManager::class,
RelationManagers\CarShowWinnerRelationManager::class,
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListVehicles::route('/'),
'create' => Pages\CreateVehicles::route('/create'),
'edit' => Pages\EditVehicles::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\VehiclesResource\Pages;
use App\Filament\Resources\VehiclesResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateVehicles extends CreateRecord
{
protected static string $resource = VehiclesResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\VehiclesResource\Pages;
use App\Filament\Resources\VehiclesResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditVehicles extends EditRecord
{
protected static string $resource = VehiclesResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\VehiclesResource\Pages;
use App\Filament\Resources\VehiclesResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListVehicles extends ListRecords
{
protected static string $resource = VehiclesResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
@@ -0,0 +1,51 @@
<?php
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
class CarShowWinnerRelationManager extends RelationManager
{
protected static string $relationship = 'CarShowWinner';
protected static ?string $recordTitleAttribute = 'id';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\TextInput::make('id')
->required()
->maxLength(255),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('id'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,70 @@
<?php
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\Bidders;
class VehicleOwnerRelationManager extends RelationManager
{
protected static string $relationship = 'vehicleOwner';
protected static ?string $recordTitleAttribute = 'owner';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Select::make('owner')
->label('Owner Assigned Number')
->required()
->searchable()
->options(
Bidders::orderBy('bidder_assigned_number')
->pluck('bidder_assigned_number', 'idbidders'
))
->createOptionForm([
Forms\Components\TextInput::make('bidder_fname')->label('First Name'),
Forms\Components\TextInput::make('bidder_lname')->label('Last Name'),
Forms\Components\TextInput::make('bidder_addr')->label('Address'),
Forms\Components\TextInput::make('bidder_city')->label('City'),
Forms\Components\TextInput::make('bidder_state')->label('State'),
Forms\Components\TextInput::make('bidder_zip')->label('Zip'),
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 function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('bidder_fname')->label('First Name'),
Tables\Columns\TextColumn::make('bidder_lname')->label('Last Name'),
Tables\Columns\TextColumn::make('bidder_assigned_number')->label('Number'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,61 @@
<?php
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
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;
class VehicleScoresRelationManager extends RelationManager
{
protected static string $relationship = 'vehicleScores';
protected static ?string $recordTitleAttribute = 'id';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Select::make('judge')
->label('Judge')
->options(Judges::all()->pluck('judge_number', 'id'))
->searchable(),
Forms\Components\Select::make('vehicle')
->label('Vehicle')
->options(Vehicles::all()->pluck('owner', 'id'))
->searchable(),
Forms\Components\TextInput::make('overall_score')
->label('Overall Score'),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('judge'),
Tables\Columns\TextColumn::make('overall_score'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,57 @@
<?php
namespace App\Filament\Resources\VehiclesResource\RelationManagers;
use Filament\Forms;
use Filament\Forms\Form;
use Filament\Resources\RelationManagers\RelationManager;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
use App\Models\CarShowCategory;
class VehicleTypeRelationManager extends RelationManager
{
protected static string $relationship = 'vehicleType';
protected static ?string $recordTitleAttribute = 'id';
public function form(Form $form): Form
{
return $form
->schema([
Forms\Components\Select::make('category_name')
->required()
->searchable()
->options(CarShowCategory::vehtype()->pluck('category_name', 'id'))
->createOptionForm([
Forms\Components\TextInput::make('category_name'),
Forms\Components\Toggle::make('vehicle_type')->inline(false),
]),
]);
}
public function table(Table $table): Table
{
return $table
->columns([
Tables\Columns\TextColumn::make('category_name'),
])
->filters([
//
])
->headerActions([
Tables\Actions\CreateAction::make(),
])
->actions([
Tables\Actions\EditAction::make(),
Tables\Actions\DeleteAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
]);
}
}
@@ -0,0 +1,100 @@
<?php
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\Forms\Form;
use Filament\Resources\Resource;
use Filament\Tables\Table;
use Filament\Tables;
use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingScope;
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;
class WinningBidsResource extends Resource
{
protected static ?string $model = WinningBids::class;
protected static ?string $navigationIcon = 'heroicon-o-rectangle-stack';
protected static ?string $navigationGroup = 'Silent Auction';
public static function form(Form $form): Form
{
return $form
->schema([
Select::make('winning_item_num')
->label('Item')
->options(Items::orderBy('item_assigned_num')->pluck('item_assigned_num', 'iditems'))
->searchable(),
Select::make('winning_bidder_num')
->label('Bidder')
->options(
Bidders::orderBy('bidder_assigned_number')
->pluck('bidder_assigned_number', 'idbidders')
)
->searchable(),
TextInput::make('winning_cost')
->label('Winning Bid')
->prefix('$')
->numeric(),
]);
}
public static function table(Table $table): Table
{
return $table
->columns([
TextColumn::make('items.item_assigned_num')
->label('Item')
->sortable(),
TextColumn::make('items.item_desc')
->label('Item Description')
->limit(15),
TextColumn::make('bidders.bidder_assigned_number')
->label('Bidder Number')
->sortable(),
TextColumn::make('winning_cost')
->label('Winning Bid Amt')
->money('usd')
->sortable(),
])
->filters([
//
])
->actions([
Tables\Actions\EditAction::make(),
])
->bulkActions([
Tables\Actions\BulkActionGroup::make([
Tables\Actions\DeleteBulkAction::make(),
]),
])
->defaultSort('items.item_assigned_num');
}
public static function getRelations(): array
{
return [
//
];
}
public static function getPages(): array
{
return [
'index' => Pages\ListWinningBids::route('/'),
'create' => Pages\CreateWinningBids::route('/create'),
'edit' => Pages\EditWinningBids::route('/{record}/edit'),
];
}
}
@@ -0,0 +1,12 @@
<?php
namespace App\Filament\Resources\WinningBidsResource\Pages;
use App\Filament\Resources\WinningBidsResource;
use Filament\Actions;
use Filament\Resources\Pages\CreateRecord;
class CreateWinningBids extends CreateRecord
{
protected static string $resource = WinningBidsResource::class;
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\WinningBidsResource\Pages;
use App\Filament\Resources\WinningBidsResource;
use Filament\Actions;
use Filament\Resources\Pages\EditRecord;
class EditWinningBids extends EditRecord
{
protected static string $resource = WinningBidsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\DeleteAction::make(),
];
}
}
@@ -0,0 +1,19 @@
<?php
namespace App\Filament\Resources\WinningBidsResource\Pages;
use App\Filament\Resources\WinningBidsResource;
use Filament\Actions;
use Filament\Resources\Pages\ListRecords;
class ListWinningBids extends ListRecords
{
protected static string $resource = WinningBidsResource::class;
protected function getHeaderActions(): array
{
return [
Actions\CreateAction::make(),
];
}
}
+15
View File
@@ -490,6 +490,21 @@ class PagesController extends Controller
->get();
return view('carshowscores', ['carshowscore_results' => $carshowscore_results]);
}
public function showscoresbycar()
{
$carshowscore2_results = VehicleScores::with(['scoredVehicle'])
->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', ['carshowscore_results' => $carshowscore2_results]);
}
public function showcarlist()
{
$showcarlist_results = Bidders::has('vehicles')
+11 -5
View File
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class Bidders extends Model
{
protected $table = 'bidders';
protected $primaryKey = 'idbidders';
protected $fillable = [
'bidder_fname',
'bidder_lname',
@@ -21,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()
{
@@ -38,6 +44,6 @@ class Bidders extends Model
public function vehicles()
{
return $this->hasMany('App\Models\Vehicles', 'owner', 'bidder_assigned_number');
return $this->hasMany(Vehicles::class, 'owner', 'bidder_assigned_number');
}
}
+17 -6
View File
@@ -7,22 +7,33 @@ use Illuminate\Database\Eloquent\Model;
class CarShowCategory extends Model
{
protected $table = 'car_show_categories';
protected static ?string $recordTitleAttribute = 'category_name';
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()
{
return $this->hasMany('App\Models\Vehicles', 'id', 'type');
return $this->hasMany(Vehicles::class, 'type');
}
public function showWinner()
{
return $this->hasMany('App\Models\CarShowWinner', 'id', 'category');
return $this->hasMany(CarShowWinner::class, 'category');
}
public function scopeVehtype($query)
{
return $query->where('vehicle_type', 1)->orderBy('category_name');
}
}
+9 -5
View File
@@ -10,13 +10,17 @@ 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()
{
+12 -6
View File
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class Checkout extends Model
{
protected $table = 'checkout';
protected $primaryKey = 'checkout_id';
protected $fillable = [
'bidder_num',
'winnertotal',
@@ -18,18 +21,21 @@ class Checkout extends Model
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function bidders()
{
return $this->belongsTo('App\Models\Bidders', 'bidder_num', 'idbidders');
return $this->belongsTo(Bidders::class, 'bidder_num', 'idbidders');
}
public function paymentMethod()
{
return $this->hasMany('App\Models\PaymentMethods', 'payment_method', 'pm_id');
return $this->hasMany(PaymentMethods::class, 'pm_id', 'payment_method');
}
}
+11 -5
View File
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class Items extends Model
{
protected $table = 'items';
protected $primaryKey = 'iditems';
protected $fillable = [
'item_desc',
'item_min_bid',
@@ -16,13 +19,16 @@ 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()
{
return $this->belongsTo('App\Models\WinningBids', 'iditems', 'winning_item_num');
return $this->belongsTo(WinningBids::class, 'iditems', 'winning_item_num');
}
}
+8 -5
View File
@@ -13,13 +13,16 @@ 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()
{
return $this->hasMany('App\Models\VehicleScores', 'judge', 'id');
return $this->hasMany(VehicleScores::class, 'judge', 'id');
}
}
+11 -5
View File
@@ -7,19 +7,25 @@ use Illuminate\Database\Eloquent\Model;
class PaymentMethods extends Model
{
protected $table = 'payment_methods';
protected $primaryKey = 'pm_id';
protected $fillable = [
'pm_name',
'created_at',
'updated_at'
];
protected $dates = [
'created_at',
'updated_at'
];
protected function casts(): array
{
return [
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function checkout()
{
return $this->belongsTo('App\Models\Checkout', 'payment_method', 'pm_id');
return $this->belongsTo(Checkout::class, 'payment_method', 'pm_id');
}
}
+8 -5
View File
@@ -14,13 +14,16 @@ 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()
{
return $this->belongsTo('App\Models\Vehicles', 'vehicle', 'id');
return $this->belongsTo(Vehicles::class, 'vehicle', 'id');
}
}
+8 -5
View File
@@ -15,12 +15,15 @@ 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 judge()
public function judges()
{
return $this->belongsTo('App\Models\Judges', 'judge', 'id');
}
+35 -30
View File
@@ -4,40 +4,45 @@ namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class vehicles extends Model
class Vehicles extends Model
{
protected $table = 'vehicles';
protected $fillable = [
'year',
'make',
'model',
'type',
'doNotJudge',
'owner'
];
protected $table = 'vehicles';
protected $dates = [
'created_at',
'updated_at'
];
protected $fillable = [
'year',
'make',
'model',
'type',
'doNotJudge',
'owner'
];
public function vehicleType()
{
return $this->belongsTo('App\Models\CarShowCategory', 'type', 'id');
}
protected function casts(): array
{
return [
'owner' => 'integer',
'created_at' => 'datetime',
'updated_at' => 'datetime',
];
}
public function vehicleOwner()
{
return $this->belongsTo('App\Models\Bidders', 'owner', 'bidder_assigned_number');
}
public function vehicleType()
{
return $this->belongsTo(CarShowCategory::class, 'type', 'id');
}
public function vehicleScores()
{
return $this->hasMany('App\Models\VechicleScores', 'id', 'vehicle');
}
public function vehicleOwner()
{
return $this->belongsTo(Bidders::class, 'owner', 'bidder_assigned_number');
}
public function CarShowWinner()
{
return $this->belongsTo('App\Models\CarShowWinner', 'id', 'vehicle');
}
public function vehicleScores()
{
return $this->hasMany(VehicleScores::class, 'vehicle');
}
public function CarShowWinner()
{
return $this->belongsTo(CarShowWinner::class, 'vehicle');
}
}
+12 -6
View File
@@ -7,6 +7,9 @@ use Illuminate\Database\Eloquent\Model;
class WinningBids extends Model
{
protected $table = 'winning_bids';
protected $primaryKey = 'idwinning_bids';
protected $fillable = [
'winning_bidder_num',
'winning_cost',
@@ -15,18 +18,21 @@ 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('App\Models\Items', 'iditems', 'winning_item_num');
return $this->hasMany(Items::class, 'iditems', 'winning_item_num');
}
public function bidders()
{
return $this->belongsTo('App\Models\Bidders', 'winning_bidder_num', 'idbidders');
return $this->belongsTo(Bidders::class, 'winning_bidder_num', 'idbidders');
}
}
@@ -0,0 +1,60 @@
<?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;
class AdminPanelProvider extends PanelProvider
{
public function panel(Panel $panel): Panel
{
return $panel
->default()
->id('admin')
->path('admin')
->login()
->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,
]);
}
}
+27 -1
View File
@@ -4,8 +4,11 @@ namespace App;
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
class User extends Authenticatable implements FilamentUser, HasName
{
use Notifiable;
@@ -26,4 +29,27 @@ class User extends Authenticatable
protected $hidden = [
'password', 'remember_token',
];
/**
* 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}";
}
}
+66 -63
View File
@@ -1,66 +1,69 @@
{
"name": "laravel/laravel",
"description": "The Laravel Framework.",
"keywords": ["framework", "laravel"],
"license": "MIT",
"type": "project",
"require": {
"php": ">=7.0.0",
"barryvdh/laravel-snappy": "^0.4.1",
"laravel/framework": "5.6.*",
"laravel/tinker": "~1.0",
"niklasravnsborg/laravel-pdf": "^2.0"
},
"require-dev": {
"barryvdh/laravel-debugbar": "^3.2",
"filp/whoops": "~2.0",
"fzaninotto/faker": "~1.4",
"mockery/mockery": "0.9.*",
"phpunit/phpunit": "~7.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.2",
"barryvdh/laravel-snappy": "^1.0",
"carlos-meneses/laravel-mpdf": "^2.1",
"filament/filament": "^3.2",
"laravel/framework": "^11.0",
"laravel/tinker": "^2.9",
"laravel/ui": "^4.2"
},
"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"
],
"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",
"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
}
}
Generated
+7372 -1835
View File
File diff suppressed because it is too large Load Diff
+6558
View File
File diff suppressed because it is too large Load Diff
+2 -1
View File
@@ -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,
],
+14
View File
@@ -0,0 +1,14 @@
<?php
return [
/*
* Which column will be used as the order column.
*/
'order_column_name' => 'order_column',
/*
* Define if the models should sort when creating.
* When true, the package will automatically assign the highest order number to a new mode
*/
'sort_when_creating' => true,
];
+294
View File
@@ -0,0 +1,294 @@
<?php
use Filament\Http\Middleware\Authenticate;
use Filament\Http\Middleware\DispatchServingFilamentEvent;
use Filament\Http\Middleware\MirrorConfigToSubpackages;
use Filament\Pages;
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\AuthenticateSession;
use Illuminate\Session\Middleware\StartSession;
use Illuminate\View\Middleware\ShareErrorsFromSession;
return [
/*
|--------------------------------------------------------------------------
| Filament Path
|--------------------------------------------------------------------------
|
| The default is `admin` but you can change it to whatever works best and
| doesn't conflict with the routing in your application.
|
*/
'path' => env('FILAMENT_PATH', 'admin'),
/*
|--------------------------------------------------------------------------
| Filament Core Path
|--------------------------------------------------------------------------
|
| This is the path which Filament will use to load its core routes and assets.
| You may change it if it conflicts with your other routes.
|
*/
'core_path' => env('FILAMENT_CORE_PATH', 'filament'),
/*
|--------------------------------------------------------------------------
| Filament Domain
|--------------------------------------------------------------------------
|
| You may change the domain where Filament should be active. If the domain
| is empty, all domains will be valid.
|
*/
'domain' => env('FILAMENT_DOMAIN'),
/*
|--------------------------------------------------------------------------
| Homepage URL
|--------------------------------------------------------------------------
|
| This is the URL that Filament will redirect the user to when they click
| on the sidebar's header.
|
*/
'home_url' => '/',
/*
|--------------------------------------------------------------------------
| Brand Name
|--------------------------------------------------------------------------
|
| This will be displayed on the login page and in the sidebar's header.
|
*/
'brand' => env('APP_NAME'),
/*
|--------------------------------------------------------------------------
| Auth
|--------------------------------------------------------------------------
|
| This is the configuration that Filament will use to handle authentication
| into the admin panel.
|
*/
'auth' => [
'guard' => env('FILAMENT_AUTH_GUARD', 'web'),
'pages' => [
'login' => \Filament\Http\Livewire\Auth\Login::class,
],
],
/*
|--------------------------------------------------------------------------
| Pages
|--------------------------------------------------------------------------
|
| This is the namespace and directory that Filament will automatically
| register pages from. You may also register pages here.
|
*/
'pages' => [
'namespace' => 'App\\Filament\\Pages',
'path' => app_path('Filament/Pages'),
'register' => [
Pages\Dashboard::class,
],
],
/*
|--------------------------------------------------------------------------
| Resources
|--------------------------------------------------------------------------
|
| This is the namespace and directory that Filament will automatically
| register resources from. You may also register resources here.
|
*/
'resources' => [
'namespace' => 'App\\Filament\\Resources',
'path' => app_path('Filament/Resources'),
'register' => [],
],
/*
|--------------------------------------------------------------------------
| Widgets
|--------------------------------------------------------------------------
|
| This is the namespace and directory that Filament will automatically
| register dashboard widgets from. You may also register widgets here.
|
*/
'widgets' => [
'namespace' => 'App\\Filament\\Widgets',
'path' => app_path('Filament/Widgets'),
'register' => [
Widgets\AccountWidget::class,
Widgets\FilamentInfoWidget::class,
],
],
/*
|--------------------------------------------------------------------------
| Livewire
|--------------------------------------------------------------------------
|
| This is the namespace and directory that Filament will automatically
| register Livewire components inside.
|
*/
'livewire' => [
'namespace' => 'App\\Filament',
'path' => app_path('Filament'),
],
/*
|--------------------------------------------------------------------------
| Dark mode
|--------------------------------------------------------------------------
|
| By enabling this feature, your users are able to select between a light
| and dark appearance for the admin panel, or let their system decide.
|
*/
'dark_mode' => false,
/*
|--------------------------------------------------------------------------
| Layout
|--------------------------------------------------------------------------
|
| This is the configuration for the general layout of the admin panel.
|
| You may configure the max content width from `xl` to `7xl`, or `full`
| for no max width.
|
*/
'layout' => [
'actions' => [
'modal' => [
'actions' => [
'alignment' => 'left',
],
],
],
'forms' => [
'actions' => [
'alignment' => 'left',
],
'have_inline_labels' => false,
],
'footer' => [
'should_show_logo' => true,
],
'max_content_width' => null,
'notifications' => [
'vertical_alignment' => 'top',
'alignment' => 'right',
],
'sidebar' => [
'is_collapsible_on_desktop' => false,
'groups' => [
'are_collapsible' => true,
],
'width' => null,
],
],
/*
|--------------------------------------------------------------------------
| Favicon
|--------------------------------------------------------------------------
|
| This is the path to the favicon used for pages in the admin panel.
|
*/
'favicon' => null,
/*
|--------------------------------------------------------------------------
| Default Avatar Provider
|--------------------------------------------------------------------------
|
| This is the service that will be used to retrieve default avatars if one
| has not been uploaded.
|
*/
'default_avatar_provider' => \Filament\AvatarProviders\UiAvatarsProvider::class,
/*
|--------------------------------------------------------------------------
| Default Filesystem Disk
|--------------------------------------------------------------------------
|
| This is the storage disk Filament will use to put media. You may use any
| of the disks defined in the `config/filesystems.php`.
|
*/
'default_filesystem_disk' => env('FILAMENT_FILESYSTEM_DRIVER', 'public'),
/*
|--------------------------------------------------------------------------
| Google Fonts
|--------------------------------------------------------------------------
|
| This is the URL for Google Fonts that should be loaded. You may use any
| font, or set to `null` to prevent any Google Fonts from loading.
|
| When using a custom font, you should also set the font family in your
| custom theme's `tailwind.config.js` file.
|
*/
'google_fonts' => 'https://fonts.googleapis.com/css2?family=DM+Sans:ital,wght@0,400;0,500;0,700;1,400;1,500;1,700&display=swap',
/*
|--------------------------------------------------------------------------
| Middleware
|--------------------------------------------------------------------------
|
| You may customise the middleware stack that Filament uses to handle
| requests.
|
*/
'middleware' => [
'auth' => [
Authenticate::class,
],
'base' => [
EncryptCookies::class,
AddQueuedCookiesToResponse::class,
StartSession::class,
AuthenticateSession::class,
ShareErrorsFromSession::class,
VerifyCsrfToken::class,
SubstituteBindings::class,
DispatchServingFilamentEvent::class,
MirrorConfigToSubpackages::class,
],
],
];
+1 -1
View File
@@ -161,7 +161,7 @@ return [
|
*/
'secure' => env('SESSION_SECURE_COOKIE', false),
'secure' => env('SESSION_SECURE_COOKIE', null),
/*
|--------------------------------------------------------------------------
@@ -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');
});
}
};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
.fi-pagination-items,.fi-pagination-overview,.fi-pagination-records-per-page-select:not(.fi-compact){display:none}@supports (container-type:inline-size){.fi-pagination{container-type:inline-size}@container (min-width: 28rem){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@container (min-width: 56rem){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}@supports not (container-type:inline-size){@media (min-width:640px){.fi-pagination-records-per-page-select.fi-compact{display:none}.fi-pagination-records-per-page-select:not(.fi-compact){display:inline}}@media (min-width:768px){.fi-pagination:not(.fi-simple)>.fi-pagination-previous-btn{display:none}.fi-pagination-overview{display:inline}.fi-pagination:not(.fi-simple)>.fi-pagination-next-btn{display:none}.fi-pagination-items{display:flex}}}.tippy-box[data-animation=fade][data-state=hidden]{opacity:0}[data-tippy-root]{max-width:calc(100vw - 10px)}.tippy-box{background-color:#333;border-radius:4px;color:#fff;font-size:14px;line-height:1.4;outline:0;position:relative;transition-property:transform,visibility,opacity;white-space:normal}.tippy-box[data-placement^=top]>.tippy-arrow{bottom:0}.tippy-box[data-placement^=top]>.tippy-arrow:before{border-top-color:initial;border-width:8px 8px 0;bottom:-7px;left:0;transform-origin:center top}.tippy-box[data-placement^=bottom]>.tippy-arrow{top:0}.tippy-box[data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:initial;border-width:0 8px 8px;left:0;top:-7px;transform-origin:center bottom}.tippy-box[data-placement^=left]>.tippy-arrow{right:0}.tippy-box[data-placement^=left]>.tippy-arrow:before{border-left-color:initial;border-width:8px 0 8px 8px;right:-7px;transform-origin:center left}.tippy-box[data-placement^=right]>.tippy-arrow{left:0}.tippy-box[data-placement^=right]>.tippy-arrow:before{border-right-color:initial;border-width:8px 8px 8px 0;left:-7px;transform-origin:center right}.tippy-box[data-inertia][data-state=visible]{transition-timing-function:cubic-bezier(.54,1.5,.38,1.11)}.tippy-arrow{color:#333;height:16px;width:16px}.tippy-arrow:before{border-color:transparent;border-style:solid;content:"";position:absolute}.tippy-content{padding:5px 9px;position:relative;z-index:1}.tippy-box[data-theme~=light]{background-color:#fff;box-shadow:0 0 20px 4px #9aa1b126,0 4px 80px -8px #24282f40,0 4px 4px -2px #5b5e6926;color:#26323d}.tippy-box[data-theme~=light][data-placement^=top]>.tippy-arrow:before{border-top-color:#fff}.tippy-box[data-theme~=light][data-placement^=bottom]>.tippy-arrow:before{border-bottom-color:#fff}.tippy-box[data-theme~=light][data-placement^=left]>.tippy-arrow:before{border-left-color:#fff}.tippy-box[data-theme~=light][data-placement^=right]>.tippy-arrow:before{border-right-color:#fff}.tippy-box[data-theme~=light]>.tippy-backdrop{background-color:#fff}.tippy-box[data-theme~=light]>.tippy-svg-arrow{fill:#fff}.fi-sortable-ghost{opacity:.3}
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
+1
View File
@@ -0,0 +1 @@
function r({state:o}){return{state:o,rows:[],shouldUpdateRows:!0,init:function(){this.updateRows(),this.rows.length<=0?this.rows.push({key:"",value:""}):this.updateState(),this.$watch("state",(t,e)=>{let s=i=>i===null?0:Array.isArray(i)?i.length:typeof i!="object"?0:Object.keys(i).length;s(t)===0&&s(e)===0||this.updateRows()})},addRow:function(){this.rows.push({key:"",value:""}),this.updateState()},deleteRow:function(t){this.rows.splice(t,1),this.rows.length<=0&&this.addRow(),this.updateState()},reorderRows:function(t){let e=Alpine.raw(this.rows);this.rows=[];let s=e.splice(t.oldIndex,1)[0];e.splice(t.newIndex,0,s),this.$nextTick(()=>{this.rows=e,this.updateState()})},updateRows:function(){if(!this.shouldUpdateRows){this.shouldUpdateRows=!0;return}let t=[];for(let[e,s]of Object.entries(this.state??{}))t.push({key:e,value:s});this.rows=t},updateState:function(){let t={};this.rows.forEach(e=>{e.key===""||e.key===null||(t[e.key]=e.value)}),this.shouldUpdateRows=!1,this.state=t}}}export{r as default};
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long

Some files were not shown because too many files have changed in this diff Show More