first commit
This commit is contained in:
62
app/Support/MedicalReport/DepartmentSlugger.php
Normal file
62
app/Support/MedicalReport/DepartmentSlugger.php
Normal file
@@ -0,0 +1,62 @@
|
||||
<?php
|
||||
|
||||
namespace App\Support\MedicalReport;
|
||||
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class DepartmentSlugger
|
||||
{
|
||||
/**
|
||||
* @var list<string>
|
||||
*/
|
||||
private array $ignoredFragments = [
|
||||
'всего',
|
||||
'итого',
|
||||
'строка',
|
||||
'январ',
|
||||
'феврал',
|
||||
'март',
|
||||
'апрел',
|
||||
'май',
|
||||
'июн',
|
||||
'июл',
|
||||
'август',
|
||||
'сентябр',
|
||||
'октябр',
|
||||
'ноябр',
|
||||
'декабр',
|
||||
'квартал',
|
||||
'полугод',
|
||||
'год',
|
||||
'оплата',
|
||||
'расход',
|
||||
'выписано',
|
||||
'койко',
|
||||
'медикамент',
|
||||
'перевяз',
|
||||
'без бюджета',
|
||||
'сумма',
|
||||
'наименование',
|
||||
];
|
||||
|
||||
public function slug(?string $departmentName): ?string
|
||||
{
|
||||
$departmentName = trim((string) $departmentName);
|
||||
|
||||
if ($departmentName === '' || preg_match('/^\d+\.?$/', $departmentName) === 1) {
|
||||
return null;
|
||||
}
|
||||
|
||||
$normalized = mb_strtolower($departmentName);
|
||||
|
||||
foreach ($this->ignoredFragments as $fragment) {
|
||||
if (str_contains($normalized, $fragment)) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
$slug = Str::slug(Str::ascii($departmentName));
|
||||
|
||||
return $slug !== '' ? $slug : null;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user