48 lines
1.2 KiB
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;
|
|
}
|
|
}
|