add reason in corporate, plan, service

This commit is contained in:
2023-06-05 09:01:43 +07:00
parent 4fb2bab64e
commit 4cc2ae24b8
34 changed files with 2037 additions and 87 deletions

View File

@@ -6,6 +6,11 @@ use App\Rules\NikRule;
use Illuminate\Support\Facades\Schema;
use Illuminate\Support\Facades\Validator;
use Illuminate\Support\ServiceProvider;
use App\Models\Corporate;
use App\Models\CorporateService;
use App\Models\CorporatePlan;
use App\Models\AuditTrail;
use Illuminate\Support\Facades\Auth;
use Str;
class AppServiceProvider extends ServiceProvider
@@ -32,5 +37,58 @@ class AppServiceProvider extends ServiceProvider
Str::macro('initials', fn($value, $sep = ' ', $glue = '') => trim(collect(explode($sep, $value))->map(function ($segment) {
return $segment[0] ?? '';
})->join($glue)));
// Menambahkan event listener untuk jejak audit pada model yang ingin di-audit
// Corporate::created(function ($model) {
// $this->logAuditTrail($model, 'created');
// });
Corporate::updated(function ($model) {
$this->logAuditTrail($model, 'updated');
});
Corporate::deleted(function ($model) {
$this->logAuditTrail($model, 'deleted');
});
// Corporate Service
CorporateService::updated(function ($model) {
$this->logAuditTrail($model, 'updated');
});
CorporateService::deleted(function ($model) {
$this->logAuditTrail($model, 'deleted');
});
// Corporate Plans
CorporatePlan::updated(function ($model) {
$this->logAuditTrail($model, 'updated');
});
CorporatePlan::deleted(function ($model) {
$this->logAuditTrail($model, 'deleted');
});
}
private function logAuditTrail($model, $action)
{
// Membuat jejak audit baru
$auditTrail = new AuditTrail([
'model' => get_class($model),
'model_id' => $model->getKey(),
'action' => $action,
'old_values' => json_encode($model->getOriginal()),
'new_values' => json_encode($model->getAttributes()),
'user_id' => Auth::id(),
]);
// Simpan jejak audit
$auditTrail->save();
}
}