82 lines
3.1 KiB
PHP
82 lines
3.1 KiB
PHP
<?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');
|
|
}
|
|
}
|