diff --git a/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php new file mode 100644 index 0000000..7afda35 --- /dev/null +++ b/app/Http/Controllers/NominationEnsembles/MeobdaNominationAdminUtilitiesController.php @@ -0,0 +1,81 @@ + $this->printNameTags(), + default => $this->invalidAction(), + }; + } + + private function printNameTags() + { + $pdf = new Fpdf('P', 'in', 'letter'); + $pdf->SetFont('Arial', 'B', 36); + + $nominations = NominationEnsembleEntry::with('ensemble') + ->with('student.school') + ->orderBy('nomination_ensemble_id') + ->orderBy('data->split') + ->orderBy('data->instrument') + ->orderByRaw('CAST(data->"$.seat" AS UNSIGNED)') + ->get(); + + // echo ''; + // foreach ($nominations as $nomination) { + // if (! isset($nomination->data['split'])) { + // $temp = $nomination->data; + // $temp['split'] = '---'; + // $nomination->data = $temp; + // } + // if (! isset($nomination->data['seat'])) { + // $temp = $nomination->data; + // $temp['seat'] = '---'; + // $nomination->data = $temp; + // } + // echo ''; + // echo ''; + // echo ''; + // echo ''; + // echo ''; + // echo ''; + // echo ''; + // echo ''; + // } + // echo '
EnsembleSplitInstrumentSeatNameSchool
'.$nomination->ensemble->name.''.$nomination->data['split'] ?? 'none'.''.$nomination->data['instrument'].''.$nomination->data['seat'].''.$nomination->student->full_name().''.$nomination->student->school->name.'
'; + + foreach ($nominations as $nomination) { + if (! isset($nomination->data['split'])) { + $temp = $nomination->data; + $temp['split'] = '---'; + $nomination->data = $temp; + } + if (! isset($nomination->data['seat'])) { + $temp = $nomination->data; + $temp['seat'] = '---'; + $nomination->data = $temp; + } + $pdf->AddPage(); + $pdf->SetY('6'); + $pdf->Cell(0, .8, $nomination->student->full_name(), 0, 1, 'C'); + $pdf->Cell(0, .8, $nomination->student->school->name, 0, 1, 'C'); + $pdf->Cell(0, .8, $nomination->data['split'], 0, 1, 'C'); + $pdf->Cell(0, .8, $nomination->data['instrument'].' - '.$nomination->data['seat'], 0, 1, 'C'); + + } + $pdf->Output('D', 'StandNameTags.pdf'); + } + + private function invalidAction() + { + return redirect()->back()->with('error', 'Invalid Action'); + } +} diff --git a/app/Http/Controllers/NominationEnsembles/NominationAdminUtilitiesController.php b/app/Http/Controllers/NominationEnsembles/NominationAdminUtilitiesController.php new file mode 100644 index 0000000..a454d40 --- /dev/null +++ b/app/Http/Controllers/NominationEnsembles/NominationAdminUtilitiesController.php @@ -0,0 +1,8 @@ +app->bind(NominationAdminController::class, ScobdaNominationAdminController::class); $this->app->bind(NominationSeatingController::class, ScobdaNominationSeatingController::class); $this->app->bind(NominationExportController::class, ScobdaNominationExportController::class); + $this->app->bind(NominationAdminUtilitiesController::class, ScobdaNominationAdminUtilitiesController::class); } if (auditionSetting('nomination_ensemble_rules') === 'meobda') { @@ -49,6 +53,7 @@ class NominationEnsembleServiceProvider extends ServiceProvider $this->app->bind(NominationAdminController::class, MeobdaNominationAdminController::class); $this->app->bind(NominationSeatingController::class, MeobdaNominationSeatingController::class); $this->app->bind(NominationExportController::class, MeobdaNominationExportController::class); + $this->app->bind(NominationAdminUtilitiesController::class, MeobdaNominationAdminUtilitiesController::class); } } } diff --git a/resources/views/nomination_ensembles/meobda/admin/seating.blade.php b/resources/views/nomination_ensembles/meobda/admin/seating.blade.php index 49b4222..0655ecd 100644 --- a/resources/views/nomination_ensembles/meobda/admin/seating.blade.php +++ b/resources/views/nomination_ensembles/meobda/admin/seating.blade.php @@ -19,6 +19,11 @@ Export Nominations

+

+ + Print Stand Name Tags + +

diff --git a/routes/nominationEnsemble.php b/routes/nominationEnsemble.php index 45a6e51..5984f94 100644 --- a/routes/nominationEnsemble.php +++ b/routes/nominationEnsemble.php @@ -1,6 +1,7 @@ prefix('nomination/admin/')->group(function () { + Route::match(['get', 'post'], '/utilities/{action}', + NominationAdminUtilitiesController::class)->name('nomination.admin.utilities'); Route::get('export', NominationExportController::class)->name('nomination.admin.export'); Route::prefix('ensemble/')->controller(NominationEnsembleController::class)->group(function () { Route::get('/', 'index')->name('nomination.admin.ensemble.index');