Files
hr/app/Models/Concerns/LogsHrActivity.php

48 lines
1.2 KiB
PHP

<?php
declare(strict_types=1);
namespace App\Models\Concerns;
use BokshornIt\FilamentActivityTimeline\Contracts\ProvidesActivityTitle;
use Spatie\Activitylog\LogOptions;
use Spatie\Activitylog\Traits\LogsActivity;
trait LogsHrActivity
{
use LogsActivity;
public function getActivitylogOptions(): LogOptions
{
return LogOptions::defaults()
->logFillable()
->logOnlyDirty()
->dontSubmitEmptyLogs();
}
public function activityTitle(): ?string
{
foreach (['full_name', 'name', 'title', 'gift_name', 'employee_number'] as $attribute) {
$value = $this->getAttribute($attribute);
if (filled($value)) {
return (string) $value;
}
}
if ($this->getAttribute('employee_id')) {
$employeeName = $this->relationLoaded('employee')
? $this->employee?->full_name
: $this->employee()->value('full_name');
if (filled($employeeName)) {
return (string) $employeeName;
}
}
$key = $this->getKey();
return $key !== null ? '#'.$key : null;
}
}