CourseWork/app/Services/FileService.php
m.zargarov d4cabb23b7 Fix
2024-06-24 00:51:05 +04:00

48 lines
1.4 KiB
PHP

<?php
namespace App\Services;
use App\Models\Grade;
use Barryvdh\DomPDF\Facade\Pdf;
use Illuminate\Support\Facades\Auth;
class FileService
{
public function exportSubjects()
{
$listSubjects = collect();
$student = Auth::user()->userable;
$subjects = $student->grade->subjects;
$teachers = $student->grade->teachers;
$teachers->each(function ($teacher) use ($subjects, $listSubjects) {
$teacher->subjects->each(function ($subject) use ($subjects, $listSubjects, $teacher) {
if ($subjects->contains($subject)) {
$listSubjects->push(['subject' => $subject->name, 'teacher' => $teacher->fio]);
}
});
});
return Pdf::loadView('subjects.pdf', ['subjects' => $listSubjects])->download('Предметы.pdf');
}
public function exportStudents(Grade $grade)
{
$excellentStudents = $this->getMinScore($grade, 5);
$goodStudents = $this->getMinScore($grade, 4);
return Pdf::loadView('grades.list-students', [
'excellentStudents' => $excellentStudents,
'goodStudents' => $goodStudents,
])->download('Студенты.pdf');
}
public function getMinScore(Grade $grade, $minScore)
{
return $grade->students->filter(function ($student) use ($minScore) {
return $student->lessons->min('pivot.score') == $minScore;
});
}
}