Implement printing stand name tags

Closes #78
This commit is contained in:
Matt Young 2024-11-01 09:27:32 -05:00
parent abbf6d155b
commit 1628c3b071
4 changed files with 56 additions and 0 deletions

View File

@ -0,0 +1,37 @@
<?php
namespace App\Actions\Print;
use App\Models\Ensemble;
use Codedge\Fpdf\Fpdf\Fpdf;
class PrintStandNameTags
{
public function __construct()
{
}
public function __invoke(): void
{
$this->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');
}
}

View File

@ -0,0 +1,16 @@
<?php
namespace App\Http\Controllers\Admin;
use App\Actions\Print\PrintStandNameTags;
use App\Http\Controllers\Controller;
use Illuminate\Support\Facades\App;
class PrintStandNameTagsController extends Controller
{
public function __invoke()
{
$printer = App::make(PrintStandNameTags::class);
$printer->print();
}
}

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.print_stand_name_tags')}}" class="block p-2 hover:text-indigo-600">Print Stand Name Tags</a>
</div> </div>
</div> </div>
</div> </div>

View File

@ -13,6 +13,7 @@ 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;
use App\Http\Controllers\Admin\PrintSignInSheetsController; use App\Http\Controllers\Admin\PrintSignInSheetsController;
use App\Http\Controllers\Admin\PrintStandNameTagsController;
use App\Http\Controllers\Admin\RoomController; use App\Http\Controllers\Admin\RoomController;
use App\Http\Controllers\Admin\SchoolController; use App\Http\Controllers\Admin\SchoolController;
use App\Http\Controllers\Admin\ScoringGuideController; 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::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('/print_stand_name_tags', PrintStandNameTagsController::class)->name('admin.print_stand_name_tags');
Route::post('/auditions/roomUpdate', [ Route::post('/auditions/roomUpdate', [
AuditionController::class, 'roomUpdate', AuditionController::class, 'roomUpdate',