29 lines
701 B
PHP
29 lines
701 B
PHP
<?php
|
|
|
|
namespace App\Services\Finance;
|
|
|
|
use Illuminate\Support\Facades\DB;
|
|
|
|
class FinancialSchoolYearService
|
|
{
|
|
public function listYears(?string $fallbackYear = null): array
|
|
{
|
|
$years = DB::table('invoices')
|
|
->select('school_year')
|
|
->whereNotNull('school_year')
|
|
->distinct()
|
|
->orderBy('school_year', 'DESC')
|
|
->pluck('school_year')
|
|
->map(static fn ($val) => (string) $val)
|
|
->filter(static fn ($val) => $val !== '')
|
|
->values()
|
|
->all();
|
|
|
|
if (empty($years) && !empty($fallbackYear)) {
|
|
$years[] = (string) $fallbackYear;
|
|
}
|
|
|
|
return $years;
|
|
}
|
|
}
|