From 1628c3b071930940053e4d0e0a0f42cdc482ccd3 Mon Sep 17 00:00:00 2001 From: Matt Young Date: Fri, 1 Nov 2024 09:27:32 -0500 Subject: [PATCH] Implement printing stand name tags Closes #78 --- app/Actions/Print/PrintStandNameTags.php | 37 +++++++++++++++++++ .../Admin/PrintStandNameTagsController.php | 16 ++++++++ .../layout/navbar/menus/admin.blade.php | 1 + routes/admin.php | 2 + 4 files changed, 56 insertions(+) create mode 100644 app/Actions/Print/PrintStandNameTags.php create mode 100644 app/Http/Controllers/Admin/PrintStandNameTagsController.php diff --git a/app/Actions/Print/PrintStandNameTags.php b/app/Actions/Print/PrintStandNameTags.php new file mode 100644 index 0000000..717227c --- /dev/null +++ b/app/Actions/Print/PrintStandNameTags.php @@ -0,0 +1,37 @@ +print(); + } + + public function print(): void + { + $pdf = new Fpdf('P', 'in', 'letter'); + $pdf->SetFont('Arial', 'B', 36); + $ensembles = Ensemble::all(); + foreach ($ensembles as $ensemble) { + $seats = $ensemble->seats; + foreach ($seats as $seat) { + $pdf->AddPage(); + $pdf->SetY('6'); + $pdf->Cell(0, .8, $seat->student->full_name(), 0, 1, 'C'); + $pdf->Cell(0, .8, $seat->student->school->name, 0, 1, 'C'); + $pdf->Cell(0, .8, $seat->audition->name, 0, 1, 'C'); + $pdf->Cell(0, .8, $seat->ensemble->name.' '.$seat->seat, 0, 1, 'C'); + } + } + $pdf->Output('D', 'StandNameTags.pdf'); + } +} diff --git a/app/Http/Controllers/Admin/PrintStandNameTagsController.php b/app/Http/Controllers/Admin/PrintStandNameTagsController.php new file mode 100644 index 0000000..954d806 --- /dev/null +++ b/app/Http/Controllers/Admin/PrintStandNameTagsController.php @@ -0,0 +1,16 @@ +print(); + } +} diff --git a/resources/views/components/layout/navbar/menus/admin.blade.php b/resources/views/components/layout/navbar/menus/admin.blade.php index b397127..973f229 100644 --- a/resources/views/components/layout/navbar/menus/admin.blade.php +++ b/resources/views/components/layout/navbar/menus/admin.blade.php @@ -27,6 +27,7 @@ Entries View Logs Export Results + Print Stand Name Tags diff --git a/routes/admin.php b/routes/admin.php index ad0af0a..a5a40f1 100644 --- a/routes/admin.php +++ b/routes/admin.php @@ -13,6 +13,7 @@ use App\Http\Controllers\Admin\ExportResultsController; use App\Http\Controllers\Admin\PrintCards; use App\Http\Controllers\Admin\PrintRoomAssignmentsController; use App\Http\Controllers\Admin\PrintSignInSheetsController; +use App\Http\Controllers\Admin\PrintStandNameTagsController; use App\Http\Controllers\Admin\RoomController; use App\Http\Controllers\Admin\SchoolController; use App\Http\Controllers\Admin\ScoringGuideController; @@ -25,6 +26,7 @@ Route::middleware(['auth', 'verified', CheckIfAdmin::class])->prefix('admin/')-> Route::view('/', 'admin.dashboard')->name('admin.dashboard'); 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('/print_stand_name_tags', PrintStandNameTagsController::class)->name('admin.print_stand_name_tags'); Route::post('/auditions/roomUpdate', [ AuditionController::class, 'roomUpdate',