Add export entry data option

This commit is contained in:
Matt Young 2025-01-20 16:58:21 -06:00
parent b85afd032a
commit 23e466c2e6
3 changed files with 49 additions and 0 deletions

View File

@ -0,0 +1,46 @@
<?php
namespace App\Actions\Reports;
use App\Actions\Tabulation\RankAuditionEntries;
use App\Models\Room;
use Illuminate\Support\Facades\App;
class ExportEntryData
{
public function __construct()
{
}
public function __invoke(): void
{
$this->getData();
}
public function getData()
{
// Room, Audition, Draw Number, Name, School
$ranker = App::make(RankAuditionEntries::class);
$exportRows = [
'Room,Audition,Draw Number,Student Name,School',
];
$rooms = Room::all();
foreach ($rooms as $room) {
$auditions = $room->auditions()->orderBy('room_id')->orderBy('order_in_room')->get();
foreach ($auditions as $audition) {
$entries = $audition->entries()->orderBy('draw_number')->get();
foreach ($entries as $entry) {
$thisRow = $audition->room->name.',';
$thisRow .= $audition->name.',';
$thisRow .= $entry->draw_number.',';
$thisRow .= $entry->student->full_name().',';
$thisRow .= $entry->student->school->name.',';
$exportRows[] = $thisRow;
}
}
}
//dd($exportRows);
return $exportRows;
}
}

View File

@ -27,6 +27,7 @@
<a href="{{route('admin.entries.index')}}" class="block p-2 hover:text-indigo-600">Entries</a> <a href="{{route('admin.entries.index')}}" class="block p-2 hover:text-indigo-600">Entries</a>
<a href="{{route('admin.view_logs')}}" class="block p-2 hover:text-indigo-600">View Logs</a> <a href="{{route('admin.view_logs')}}" class="block p-2 hover:text-indigo-600">View Logs</a>
<a href="{{route('admin.export_results')}}" class="block p-2 hover:text-indigo-600">Export Results</a> <a href="{{route('admin.export_results')}}" class="block p-2 hover:text-indigo-600">Export Results</a>
<a href="{{route('admin.export_entries')}}" class="block p-2 hover:text-indigo-600">Export Entries</a>
<a href="{{route('admin.print_stand_name_tags')}}" class="block p-2 hover:text-indigo-600">Print Stand Name Tags</a> <a href="{{route('admin.print_stand_name_tags')}}" class="block p-2 hover:text-indigo-600">Print Stand Name Tags</a>
</div> </div>
</div> </div>

View File

@ -9,6 +9,7 @@ use App\Http\Controllers\Admin\DrawController;
use App\Http\Controllers\Admin\EnsembleController; use App\Http\Controllers\Admin\EnsembleController;
use App\Http\Controllers\Admin\EntryController; use App\Http\Controllers\Admin\EntryController;
use App\Http\Controllers\Admin\EventController; use App\Http\Controllers\Admin\EventController;
use App\Http\Controllers\Admin\ExportEntriesController;
use App\Http\Controllers\Admin\ExportResultsController; use App\Http\Controllers\Admin\ExportResultsController;
use App\Http\Controllers\Admin\PrintCards; use App\Http\Controllers\Admin\PrintCards;
use App\Http\Controllers\Admin\PrintRoomAssignmentsController; use App\Http\Controllers\Admin\PrintRoomAssignmentsController;
@ -27,6 +28,7 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')->
Route::view('/', 'admin.dashboard')->name('admin.dashboard'); Route::view('/', 'admin.dashboard')->name('admin.dashboard');
Route::get('/logs', App\Http\Controllers\Admin\LogViewer::class)->name('admin.view_logs'); Route::get('/logs', App\Http\Controllers\Admin\LogViewer::class)->name('admin.view_logs');
Route::get('/export_results', ExportResultsController::class)->name('admin.export_results'); Route::get('/export_results', ExportResultsController::class)->name('admin.export_results');
Route::get('/export_entries', ExportEntriesController::class)->name('admin.export_entries');
Route::get('/print_stand_name_tags', PrintStandNameTagsController::class)->name('admin.print_stand_name_tags'); Route::get('/print_stand_name_tags', PrintStandNameTagsController::class)->name('admin.print_stand_name_tags');
Route::get('/recap', [RecapController::class, 'selectAudition'])->name('admin.recap.selectAudition'); Route::get('/recap', [RecapController::class, 'selectAudition'])->name('admin.recap.selectAudition');
Route::get('/recap/{audition}', [RecapController::class, 'showRecap'])->name('admin.recap.recap'); Route::get('/recap/{audition}', [RecapController::class, 'showRecap'])->name('admin.recap.recap');