Meobda stand tags #110
|
|
@ -0,0 +1,81 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\NominationEnsembles;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\NominationEnsembleEntry;
|
||||
use Codedge\Fpdf\Fpdf\Fpdf;
|
||||
|
||||
class MeobdaNominationAdminUtilitiesController extends Controller implements NominationAdminUtilitiesController
|
||||
{
|
||||
public function __invoke(string $action)
|
||||
{
|
||||
match ($action) {
|
||||
'name_tags' => $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 '<table><tr><th>Ensemble</th><th>Split</th><th>Instrument</th><th>Seat</th><th>Name</th><th>School</th></tr>';
|
||||
// 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 '<tr>';
|
||||
// echo '<td>'.$nomination->ensemble->name.'</td>';
|
||||
// echo '<td>'.$nomination->data['split'] ?? 'none'.'</td>';
|
||||
// echo '<td>'.$nomination->data['instrument'].'</td>';
|
||||
// echo '<td>'.$nomination->data['seat'].'</td>';
|
||||
// echo '<td>'.$nomination->student->full_name().'</td>';
|
||||
// echo '<td>'.$nomination->student->school->name.'</td>';
|
||||
// echo '</tr>';
|
||||
// }
|
||||
// echo '</table>';
|
||||
|
||||
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');
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,8 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\NominationEnsembles;
|
||||
|
||||
interface NominationAdminUtilitiesController
|
||||
{
|
||||
public function __invoke(string $action);
|
||||
}
|
||||
|
|
@ -0,0 +1,13 @@
|
|||
<?php
|
||||
|
||||
namespace App\Http\Controllers\NominationEnsembles;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
class ScobdaNominationAdminUtilitiesController extends Controller implements NominationAdminUtilitiesController
|
||||
{
|
||||
public function __invoke(string $action)
|
||||
{
|
||||
// TODO: Implement __invoke() method.
|
||||
}
|
||||
}
|
||||
|
|
@ -3,16 +3,19 @@
|
|||
namespace App\Providers;
|
||||
|
||||
use App\Http\Controllers\NominationEnsembles\MeobdaNominationAdminController;
|
||||
use App\Http\Controllers\NominationEnsembles\MeobdaNominationAdminUtilitiesController;
|
||||
use App\Http\Controllers\NominationEnsembles\MeobdaNominationEnsembleController;
|
||||
use App\Http\Controllers\NominationEnsembles\MeobdaNominationEnsembleEntryController;
|
||||
use App\Http\Controllers\NominationEnsembles\MeobdaNominationExportController;
|
||||
use App\Http\Controllers\NominationEnsembles\MeobdaNominationSeatingController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationAdminController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationAdminUtilitiesController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationEnsembleController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationEnsembleEntryController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationExportController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationSeatingController;
|
||||
use App\Http\Controllers\NominationEnsembles\ScobdaNominationAdminController;
|
||||
use App\Http\Controllers\NominationEnsembles\ScobdaNominationAdminUtilitiesController;
|
||||
use App\Http\Controllers\NominationEnsembles\ScobdaNominationEnsembleController;
|
||||
use App\Http\Controllers\NominationEnsembles\ScobdaNominationEnsembleEntryController;
|
||||
use App\Http\Controllers\NominationEnsembles\ScobdaNominationExportController;
|
||||
|
|
@ -39,6 +42,7 @@ class NominationEnsembleServiceProvider extends ServiceProvider
|
|||
$this->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);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -19,6 +19,11 @@
|
|||
Export Nominations
|
||||
</a>
|
||||
</p>
|
||||
<p class="text-md/6 font-semibold text-gray-800 mb-3 mt-3">
|
||||
<a href="{{ route('nomination.admin.utilities',['action'=>'name_tags']) }}">
|
||||
Print Stand Name Tags
|
||||
</a>
|
||||
</p>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
<?php
|
||||
|
||||
use App\Http\Controllers\NominationEnsembles\NominationAdminController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationAdminUtilitiesController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationEnsembleController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationEnsembleEntryController;
|
||||
use App\Http\Controllers\NominationEnsembles\NominationExportController;
|
||||
|
|
@ -9,6 +10,8 @@ use App\Http\Middleware\CheckIfAdmin;
|
|||
use Illuminate\Support\Facades\Route;
|
||||
|
||||
Route::middleware(['auth', 'verified', CheckIfAdmin::class])->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');
|
||||
|
|
|
|||
Loading…
Reference in New Issue