Update Log aktivitas
This commit is contained in:
@@ -0,0 +1,76 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Web\Konfigurasi;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Requests\Konfigurasi\FilterLogAktivitasRequest;
|
||||
use App\Models\Pertanian\Petani;
|
||||
use App\Models\User;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Spatie\Activitylog\Models\Activity;
|
||||
|
||||
class LogAktivitasController extends Controller
|
||||
{
|
||||
public const JENIS = [
|
||||
'auth' => ['label' => 'Login', 'warna' => 'info'],
|
||||
'petani' => ['label' => 'Profil Petani', 'warna' => 'primary'],
|
||||
'verifikasi' => ['label' => 'Status Petani', 'warna' => 'success'],
|
||||
'pertanian' => ['label' => 'Data Pertanian', 'warna' => 'primary'],
|
||||
'map' => ['label' => 'Peta & Panen', 'warna' => 'primary'],
|
||||
'user' => ['label' => 'Pengguna', 'warna' => 'warning'],
|
||||
'profile' => ['label' => 'Profil Pengguna', 'warna' => 'warning'],
|
||||
'konfigurasi' => ['label' => 'Konfigurasi', 'warna' => 'warning'],
|
||||
'program' => ['label' => 'Program', 'warna' => 'danger'],
|
||||
'core' => ['label' => 'Program (Inti)', 'warna' => 'danger'],
|
||||
'bumdes' => ['label' => 'BUMDes', 'warna' => 'dark'],
|
||||
'koperasi' => ['label' => 'Koperasi', 'warna' => 'dark'],
|
||||
'ekosistem' => ['label' => 'Ekosistem', 'warna' => 'dark'],
|
||||
'master' => ['label' => 'Master Data', 'warna' => 'secondary'],
|
||||
'wilayah' => ['label' => 'Wilayah', 'warna' => 'secondary'],
|
||||
'penduduk' => ['label' => 'Penduduk', 'warna' => 'secondary'],
|
||||
'distribusi' => ['label' => 'Distribusi', 'warna' => 'secondary'],
|
||||
'facilitator' => ['label' => 'Fasilitator', 'warna' => 'secondary'],
|
||||
];
|
||||
|
||||
public const PER_PAGE = [25, 50, 100];
|
||||
|
||||
public function index(FilterLogAktivitasRequest $request)
|
||||
{
|
||||
$filter = $request->validated();
|
||||
|
||||
// Ambil log sesuai filter
|
||||
$aktivitas = Activity::query()
|
||||
->with(['causer', 'subject'])
|
||||
->when($filter['jenis'] ?? null, fn ($q, $jenis) => $q->where('log_name', $jenis))
|
||||
->when($filter['dari'] ?? null, fn ($q, $tgl) => $q->where('created_at', '>=', $tgl))
|
||||
->when($filter['sampai'] ?? null, fn ($q, $tgl) => $q->where('created_at', '<', Carbon::parse($tgl)->addDay()))
|
||||
->when($filter['search'] ?? null, fn ($q, $cari) => $this->cari($q, '%' . mb_strtolower($cari) . '%'))
|
||||
->latest('id')
|
||||
->paginate((int) ($filter['per_page'] ?? self::PER_PAGE[0]))
|
||||
->withQueryString();
|
||||
|
||||
// Nama petani untuk log tab petani (satu query)
|
||||
$namaPetani = Petani::withoutGlobalScopes()->withTrashed()
|
||||
->whereIn('id', $aktivitas->getCollection()->pluck('properties.petani_id')->filter()->unique())
|
||||
->pluck('nama', 'id');
|
||||
|
||||
return view('konfigurasi.log-aktivitas.index', [
|
||||
'aktivitas' => $aktivitas,
|
||||
'jenis' => self::JENIS,
|
||||
'perPage' => self::PER_PAGE,
|
||||
'namaPetani' => $namaPetani,
|
||||
]);
|
||||
}
|
||||
|
||||
// Cari di aktivitas, nama pengguna, dan nama petani
|
||||
private function cari($query, string $cari): void
|
||||
{
|
||||
$query->where(fn ($q) => $q
|
||||
->whereRaw('lower(description) like ?', [$cari])
|
||||
->orWhereHasMorph('causer', [User::class], fn ($q) => $q->whereRaw('lower(name) like ?', [$cari]))
|
||||
->orWhereRaw(
|
||||
"coalesce((properties->>'petani_id')::bigint, case when subject_type = ? then subject_id end) in (select id from petani where lower(nama) like ?)",
|
||||
[Petani::class, $cari]
|
||||
));
|
||||
}
|
||||
}
|
||||
@@ -47,10 +47,15 @@ class PetaniStatusController extends Controller
|
||||
return back()->with('status_petani_error', 'Data petani masih berstatus draf.');
|
||||
}
|
||||
|
||||
$dari = $petani->status;
|
||||
$petani->status = $tujuan;
|
||||
$petani->updated_by = $request->user()->id;
|
||||
$petani->save();
|
||||
|
||||
$petani->catatPerubahanStatus($dari, $tujuan === StatusDataPetani::LENGKAP
|
||||
? 'Ditandai lengkap oleh enumerator'
|
||||
: 'Tanda lengkap dibatalkan oleh enumerator');
|
||||
|
||||
return back()->with('status_petani_success', $tujuan === StatusDataPetani::LENGKAP
|
||||
? 'Data petani berhasil ditandai lengkap.'
|
||||
: 'Tanda lengkap berhasil dibatalkan. Status kembali ke draf.');
|
||||
|
||||
@@ -96,6 +96,8 @@ class VerifikasiPetaniController extends Controller
|
||||
$petani->updated_by = auth()->id();
|
||||
$petani->save();
|
||||
|
||||
$petani->catatPerubahanStatus(StatusDataPetani::LENGKAP, 'Diverifikasi');
|
||||
|
||||
return $kembali->with('verifikasi_success', "Data petani {$petani->nama} berhasil diverifikasi.");
|
||||
}
|
||||
|
||||
@@ -120,11 +122,14 @@ class VerifikasiPetaniController extends Controller
|
||||
return $kembali->with('verifikasi_error', "Data petani {$petani->nama} sudah berstatus Draf.");
|
||||
}
|
||||
|
||||
$dari = $petani->status;
|
||||
$petani->status = StatusDataPetani::DRAFT;
|
||||
$petani->catatan = trim($data['catatan']);
|
||||
$petani->updated_by = auth()->id();
|
||||
$petani->save();
|
||||
|
||||
$petani->catatPerubahanStatus($dari, 'Dikembalikan ke draf oleh verifikator', ['catatan' => $petani->catatan]);
|
||||
|
||||
return $kembali->with('verifikasi_success', "Data petani {$petani->nama} dikembalikan ke Draf dengan catatan untuk enumerator.");
|
||||
}
|
||||
}
|
||||
|
||||
@@ -0,0 +1,45 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Requests\Konfigurasi;
|
||||
|
||||
use App\Http\Controllers\Web\Konfigurasi\LogAktivitasController;
|
||||
use Illuminate\Foundation\Http\FormRequest;
|
||||
use Illuminate\Support\Facades\Gate;
|
||||
use Illuminate\Validation\Rule;
|
||||
|
||||
class FilterLogAktivitasRequest extends FormRequest
|
||||
{
|
||||
public function authorize(): bool
|
||||
{
|
||||
return Gate::any(['super_admin', 'admin']);
|
||||
}
|
||||
|
||||
public function rules(): array
|
||||
{
|
||||
return [
|
||||
'jenis' => ['nullable', Rule::in(array_keys(LogAktivitasController::JENIS))],
|
||||
'search' => ['nullable', 'string', 'max:100'],
|
||||
'dari' => ['nullable', 'date'],
|
||||
'sampai' => ['nullable', 'date', 'after_or_equal:dari'],
|
||||
'per_page' => ['nullable', 'integer', Rule::in(LogAktivitasController::PER_PAGE)],
|
||||
];
|
||||
}
|
||||
|
||||
public function messages(): array
|
||||
{
|
||||
return [
|
||||
'sampai.after_or_equal' => 'Tanggal akhir tidak boleh sebelum tanggal awal.',
|
||||
'per_page.in' => 'Jumlah data per halaman tidak valid.',
|
||||
];
|
||||
}
|
||||
|
||||
public function attributes(): array
|
||||
{
|
||||
return [
|
||||
'jenis' => 'jenis aktivitas',
|
||||
'search' => 'kata kunci',
|
||||
'dari' => 'tanggal awal',
|
||||
'sampai' => 'tanggal akhir',
|
||||
];
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Listeners;
|
||||
|
||||
use Illuminate\Auth\Events\Failed;
|
||||
use Illuminate\Auth\Events\Login;
|
||||
use Illuminate\Auth\Events\Logout;
|
||||
use Illuminate\Contracts\Auth\Authenticatable;
|
||||
|
||||
class CatatAktivitasAuth
|
||||
{
|
||||
// Log login berhasil
|
||||
public function handleLogin(Login $event): void
|
||||
{
|
||||
$this->catat('login', $event->remember ? 'Login (ingat saya)' : 'Login', $event->user, $event->guard);
|
||||
}
|
||||
|
||||
// Log logout
|
||||
public function handleLogout(Logout $event): void
|
||||
{
|
||||
if ($event->user) {
|
||||
$this->catat('logout', 'Logout', $event->user, $event->guard);
|
||||
}
|
||||
}
|
||||
|
||||
// Log login gagal (tanpa password)
|
||||
public function handleFailed(Failed $event): void
|
||||
{
|
||||
$identitas = collect($event->credentials)->except('password')->first();
|
||||
|
||||
$this->catat('login_gagal', 'Login gagal', $event->user, $event->guard, ['identitas' => $identitas]);
|
||||
}
|
||||
|
||||
private function catat(string $event, string $keterangan, ?Authenticatable $user, ?string $guard, array $tambahan = []): void
|
||||
{
|
||||
activity('auth')
|
||||
->causedBy($user)
|
||||
->event($event)
|
||||
->withProperties([
|
||||
'ip' => request()->ip(),
|
||||
'user_agent' => str(request()->userAgent())->limit(250)->toString(),
|
||||
'guard' => $guard,
|
||||
...$tambahan,
|
||||
])
|
||||
->log($keterangan);
|
||||
}
|
||||
}
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Bumdes;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\User;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -9,7 +10,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class KelembagaanAktorBumdes extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'bumdes_kelembagaan_aktor';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Bumdes;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Enums\Bumdes\JabatanBumdes;
|
||||
use App\Enums\Pendidikan;
|
||||
use App\Models\User;
|
||||
@@ -14,7 +15,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class PengurusBumdes extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'bumdes_pengurus';
|
||||
|
||||
|
||||
@@ -0,0 +1,50 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models\Concerns;
|
||||
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Str;
|
||||
use Spatie\Activitylog\Models\Concerns\LogsActivity;
|
||||
use Spatie\Activitylog\Support\LogOptions;
|
||||
|
||||
trait CatatAktivitas
|
||||
{
|
||||
use LogsActivity;
|
||||
|
||||
protected static array $kolomTidakDicatat = [
|
||||
'created_by', 'updated_by', 'deleted_by', 'created_at', 'updated_at', 'deleted_at',
|
||||
'password', 'remember_token', 'sync_status',
|
||||
'foto', 'foto_url', 'path', 'path_kk', 'path_ktp', 'file_kk', 'file_ktp',
|
||||
];
|
||||
|
||||
protected static array $kataEvent = [
|
||||
'created' => 'ditambahkan',
|
||||
'updated' => 'diubah',
|
||||
'deleted' => 'dihapus',
|
||||
'restored' => 'dipulihkan',
|
||||
];
|
||||
|
||||
// Aturan log: kolom fillable yang berubah saja
|
||||
public function getActivitylogOptions(): LogOptions
|
||||
{
|
||||
$label = property_exists($this, 'labelAktivitas') ? $this->labelAktivitas : Str::headline(class_basename($this));
|
||||
$logName = property_exists($this, 'logAktivitas') ? $this->logAktivitas : Str::snake(explode('\\', static::class)[2]);
|
||||
|
||||
return LogOptions::defaults()
|
||||
->useLogName($logName)
|
||||
->logFillable()
|
||||
->logExcept([...self::$kolomTidakDicatat, ...$this->getHidden()])
|
||||
->dontLogIfAttributesChangedOnly(self::$kolomTidakDicatat)
|
||||
->logOnlyDirty()
|
||||
->dontLogEmptyChanges()
|
||||
->setDescriptionForEvent(fn (string $event) => $label . ' ' . (self::$kataEvent[$event] ?? $event));
|
||||
}
|
||||
|
||||
// Tandai petani terkait
|
||||
public function beforeActivityLogged(Model $activity, string $event): void
|
||||
{
|
||||
if ($petaniId = $this->getAttribute('petani_id')) {
|
||||
$activity->properties = $activity->properties->put('petani_id', (int) $petaniId);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -54,7 +54,15 @@ trait KembalikanStatusPetaniKeDraf
|
||||
->where('status', StatusDataPetani::LENGKAP->value)
|
||||
->update(['status' => StatusDataPetani::DRAFT->value]);
|
||||
|
||||
if ($diubah && request()->hasSession()) {
|
||||
if (! $diubah) {
|
||||
return true;
|
||||
}
|
||||
|
||||
// Log status (tanpa query ulang petani)
|
||||
(new Petani)->forceFill(['id' => $petaniId, 'status' => StatusDataPetani::DRAFT])
|
||||
->catatPerubahanStatus(StatusDataPetani::LENGKAP, 'Otomatis kembali ke draf karena data diubah', ['sumber' => class_basename($this)]);
|
||||
|
||||
if (request()->hasSession()) {
|
||||
request()->session()->flash('status_petani_info', 'Data petani diubah, status kembali ke Draf. Tandai lengkap lagi setelah selesai.');
|
||||
}
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Core;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -10,7 +11,7 @@ use App\Models\Pertanian\Komoditas;
|
||||
|
||||
class KomoditasProgram extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'core_program_komoditas';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Core;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -13,7 +14,7 @@ use App\Models\Wilayah\DesaKelurahan;
|
||||
|
||||
class LokasiProgram extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'core_program_lokasi';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Core;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
@@ -11,7 +12,7 @@ use App\Models\Core\LokasiProgram;
|
||||
|
||||
class Program extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'core_program';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Distribusi;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class Distribution extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'distribusi';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Ekosistem;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -15,7 +16,7 @@ use App\Enums\LayoutForm;
|
||||
|
||||
class FormBasisData extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'ekosistem_basis_data_form';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Ekosistem;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
@@ -10,7 +11,7 @@ use App\Models\Ekosistem\TabelBasisData;
|
||||
|
||||
class GroupBasisData extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'ekosistem_basis_data_group';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Ekosistem;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -11,7 +12,7 @@ use App\Models\Ekosistem\TabelBasisData;
|
||||
|
||||
class KolomBasisData extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'ekosistem_basis_data_kolom';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Ekosistem;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
@@ -11,7 +12,7 @@ use Enums\StatusLahan;
|
||||
|
||||
class LahanCPCL extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'ekosistem_lahan_cpcl';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Ekosistem;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -17,7 +18,7 @@ use App\Enums\HubunganDalamKeluarga;
|
||||
|
||||
class PetaniCPM extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'ekosistem_petani_cpm';
|
||||
protected $appends = ['umur'];
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Ekosistem;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -13,7 +14,7 @@ use App\Models\Core\Program;
|
||||
|
||||
class RingkasanBasisData extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'ekosistem_basis_data_ringkasan';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Ekosistem;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
@@ -18,7 +19,7 @@ use App\Models\Ekosistem\FormBasisData;
|
||||
|
||||
class TabelBasisData extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'ekosistem_basis_data_tabel';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Ekosistem;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -11,7 +12,7 @@ use App\Models\Ekosistem\KolomBasisData;
|
||||
|
||||
class ValueBasisData extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'ekosistem_basis_data_value';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Facilitator;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class Facilitator extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use HasFactory, CatatAktivitas;
|
||||
|
||||
// Menentukan nama tabel jika tidak jamak (optional)
|
||||
protected $table = 'facilitator';
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Konfigurasi;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\HasDeletedBy;
|
||||
use App\Models\Pertanian\Komoditas;
|
||||
use App\Models\User;
|
||||
@@ -11,7 +12,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class KoordinatorKomoditas extends Model
|
||||
{
|
||||
use SoftDeletes, HasDeletedBy;
|
||||
use SoftDeletes, HasDeletedBy, CatatAktivitas;
|
||||
|
||||
protected $table = 'koordinator_komoditas';
|
||||
|
||||
|
||||
@@ -2,10 +2,13 @@
|
||||
|
||||
namespace App\Models\Koperasi;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class PengurusKoperasi extends Model
|
||||
{
|
||||
use CatatAktivitas;
|
||||
|
||||
protected $table = 'pengurus_koperasi';
|
||||
|
||||
protected $fillable = [
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
|
||||
namespace App\Models\Map;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class InsLahan extends Model
|
||||
{
|
||||
use HasFactory;
|
||||
use HasFactory, CatatAktivitas;
|
||||
|
||||
protected $table = 'lahan_inspeksi';
|
||||
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
|
||||
namespace App\Models\Map;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
|
||||
class Inspeksi extends Model{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'tanaman_inspeksi';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Map;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
class Lahan extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'map_lahan';
|
||||
|
||||
|
||||
@@ -1,13 +1,14 @@
|
||||
<?php
|
||||
namespace App\Models\Map;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes; // Wajib diimport
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class Offtaker extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'offtakers';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Map;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -11,7 +12,7 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Panen extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
// Nama tabel sesuai DDL sebelumnya
|
||||
protected $table = 'map_panen';
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Map;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Relations\Pivot;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PanenKomoditas extends Pivot
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'panen_komoditas';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Map;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PanenTanaman extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
protected $table = 'panen_tanaman';
|
||||
protected $fillable = [
|
||||
"panen_id",
|
||||
|
||||
@@ -2,12 +2,13 @@
|
||||
|
||||
namespace App\Models\Map;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Tanaman extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'map_tanaman';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Master;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -9,7 +10,7 @@ use App\Models\Pertanian\Komoditas;
|
||||
|
||||
class JenisKomoditas extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'jenis_komoditas';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Master;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
|
||||
class JenisTanaman extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'master_jenis_tanaman';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Master;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -10,6 +11,8 @@ use App\Models\Master\JenisKomoditas;
|
||||
|
||||
class Varietas extends Model
|
||||
{
|
||||
use CatatAktivitas;
|
||||
|
||||
protected $table = 'master_varietas';
|
||||
|
||||
protected $fillable = [
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Penduduk;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Wilayah\DesaKelurahan;
|
||||
@@ -9,7 +10,7 @@ use App\Models\Pertanian\Adat;
|
||||
|
||||
class Keluarga extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'keluarga';
|
||||
|
||||
|
||||
@@ -2,9 +2,12 @@
|
||||
|
||||
namespace App\Models\Penduduk;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Profile extends Model
|
||||
{
|
||||
use CatatAktivitas;
|
||||
|
||||
//
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Wilayah\DesaKelurahan;
|
||||
@@ -9,7 +10,7 @@ use App\Models\Pertanian\Lahan;
|
||||
|
||||
class Adat extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'adat';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -16,7 +17,7 @@ use App\Enums\AksesPasar\SkorKesadaranPremium;
|
||||
|
||||
class AksesPasar extends Model
|
||||
{
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'akses_pasar';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -9,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class AsetKelompokTani extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'survey_aset_kelompok_tani';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -9,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class BantuanKelompokTani extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'survey_bantuan_kelompok_tani';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Models\User;
|
||||
@@ -9,7 +10,7 @@ use App\Models\Pertanian\Petani;
|
||||
|
||||
class HargaJualPanen extends Model
|
||||
{
|
||||
use KembalikanStatusPetaniKeDraf;
|
||||
use KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'harga_jual_panen';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -9,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
class JenisKomoditas extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
/**
|
||||
* Nama tabel yang terkait dengan model ini.
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -12,7 +13,7 @@ use App\Models\Wilayah\DesaKelurahan;
|
||||
|
||||
class KelompokTani extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
public const STATUS_LEGALITAS_DENGAN_SK = [
|
||||
'Sudah ada SK dari desa/kecamatan',
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Builder;
|
||||
@@ -12,7 +13,7 @@ use App\Models\Pertanian\Petani;
|
||||
|
||||
class Komoditas extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'master_komoditas';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -23,7 +24,7 @@ use App\Models\Pertanian\Petani;
|
||||
|
||||
class Lahan extends Model
|
||||
{
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'map_lahan';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PendapatanKomoditas extends Model
|
||||
{
|
||||
use KembalikanStatusPetaniKeDraf;
|
||||
use KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'pendapatan_komoditas';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PendapatanLuarPertanian extends Model
|
||||
{
|
||||
use KembalikanStatusPetaniKeDraf;
|
||||
use KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'pendapatan_luar_pertanian';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -9,7 +10,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PengurusKelompokTani extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'survey_pengurus_kelompok_tani';
|
||||
|
||||
|
||||
@@ -28,10 +28,14 @@ use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Support\Facades\Schema;
|
||||
use Illuminate\Support\Str;
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
|
||||
class Petani extends Model
|
||||
{
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected string $logAktivitas = 'petani';
|
||||
protected string $labelAktivitas = 'Data petani';
|
||||
|
||||
protected $table = 'petani';
|
||||
|
||||
@@ -81,6 +85,16 @@ class Petani extends Model
|
||||
'status' => 'draft',
|
||||
];
|
||||
|
||||
// Log perpindahan status petani
|
||||
public function catatPerubahanStatus(StatusDataPetani $dari, string $keterangan, array $tambahan = []): void
|
||||
{
|
||||
activity('verifikasi')
|
||||
->performedOn($this)
|
||||
->event('status')
|
||||
->withProperties(array_filter(['dari' => $dari->value, 'ke' => $this->status?->value, ...$tambahan]))
|
||||
->log($keterangan);
|
||||
}
|
||||
|
||||
public function getUmurAttribute(): ?int
|
||||
{
|
||||
if (! $this->tanggal_lahir) {
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -19,7 +20,7 @@ use App\Models\Pertanian\Lahan;
|
||||
|
||||
class PraktikBudidaya extends Model
|
||||
{
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'praktik_budidaya';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Profile;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
class Produksi extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'produksi';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use App\Enums\SosialEkonomi\AlasanKreditDitolak;
|
||||
use App\Enums\SosialEkonomi\BisaBeliPupukBersubsidi;
|
||||
@@ -52,7 +53,7 @@ use Illuminate\Support\Str;
|
||||
|
||||
class SosialEkonomi extends Model
|
||||
{
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'sosial_ekonomi';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -12,7 +13,7 @@ use App\Models\Pertanian\Petani;
|
||||
|
||||
class SurveyPanen extends Model
|
||||
{
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'survey_panen';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
@@ -12,7 +13,7 @@ use App\Models\Pertanian\Petani;
|
||||
|
||||
class SurveyPelatihan extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use HasFactory, SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'survey_pelatihan';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -10,7 +11,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class SurveyProduktivitas extends Model
|
||||
{
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'survey_produktivitas';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
@@ -10,7 +11,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class SurveySertifikasi extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use HasFactory, SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'survey_sertifikasi';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Pertanian;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use App\Models\Concerns\KembalikanStatusPetaniKeDraf;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -18,7 +19,7 @@ use App\Enums\KeparahanSerangan;
|
||||
|
||||
class Tanaman extends Model
|
||||
{
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf;
|
||||
use SoftDeletes, KembalikanStatusPetaniKeDraf, CatatAktivitas;
|
||||
|
||||
protected $table = 'map_tanaman';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
@@ -11,7 +12,7 @@ use App\Models\Pertanian\Lahan;
|
||||
|
||||
class Profile extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $fillable = [
|
||||
'user_id',
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -12,7 +13,7 @@ use App\Models\Program\Target;
|
||||
|
||||
class Aktivitas extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'program_aktivitas';
|
||||
|
||||
|
||||
@@ -2,11 +2,14 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use App\Models\User;
|
||||
|
||||
class DetailKelompok extends Model
|
||||
{
|
||||
use CatatAktivitas;
|
||||
|
||||
protected $table = 'detail_kelompok';
|
||||
|
||||
protected $fillable = [
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -12,7 +13,7 @@ use App\Models\Program\Transformasi;
|
||||
|
||||
class Framework extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'program_framework';
|
||||
|
||||
|
||||
@@ -2,13 +2,14 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Program\DetailKelompok;
|
||||
|
||||
class KelompokBelajarTani extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'kelompok_belajar_tani';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -11,7 +12,7 @@ use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
|
||||
class PesertaWorkshop extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'peserta_workshop';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -11,7 +12,7 @@ use App\Models\Program\Target;
|
||||
|
||||
class Realisasi extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'program_realisasi';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -12,7 +13,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
class SesiWorkshop extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'sesi_workshop';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -12,7 +13,7 @@ use App\Models\Program\Aktivitas;
|
||||
|
||||
class Target extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'program_target';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -12,7 +13,7 @@ use App\Models\Program\Aktivitas;
|
||||
|
||||
class Transformasi extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'program_transformasi';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\BelongsTo;
|
||||
@@ -10,7 +11,7 @@ use App\Models\Program\Realisasi;
|
||||
|
||||
class Verifikasi extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'program_verifikasi';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Program;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\Factories\HasFactory;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
@@ -14,7 +15,7 @@ use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
|
||||
class Workshop extends Model
|
||||
{
|
||||
use HasFactory, SoftDeletes;
|
||||
use HasFactory, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'workshop';
|
||||
|
||||
|
||||
+11
-1
@@ -11,13 +11,16 @@ use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use Illuminate\Database\Eloquent\Relations\HasOne;
|
||||
use Illuminate\Database\Eloquent\Relations\HasMany;
|
||||
use Laravel\Sanctum\HasApiTokens;
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
|
||||
use App\Models\Konfigurasi\KoordinatorKomoditas;
|
||||
use App\Models\Pertanian\Petani;
|
||||
|
||||
class User extends Authenticatable
|
||||
{
|
||||
use HasFactory, Notifiable, HasApiTokens, SoftDeletes;
|
||||
use HasFactory, Notifiable, HasApiTokens, SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected string $labelAktivitas = 'Pengguna';
|
||||
|
||||
protected $fillable = [
|
||||
'name',
|
||||
@@ -63,6 +66,13 @@ class User extends Authenticatable
|
||||
|
||||
$user->koordinatorKomoditas()->get()->each->delete();
|
||||
});
|
||||
|
||||
// Log ganti password (tanpa isi)
|
||||
static::updated(function (User $user) {
|
||||
if ($user->wasChanged('password')) {
|
||||
activity('user')->performedOn($user)->event('password')->log('Password diubah');
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public function koordinatorKomoditas(): HasMany
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Wilayah;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Wilayah\Kecamatan;
|
||||
@@ -12,7 +13,7 @@ use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class DesaKelurahan extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'master_desa_kelurahan';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Wilayah;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Wilayah\Provinsi;
|
||||
@@ -12,7 +13,7 @@ use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class KabupatenKota extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'master_kabupaten_kota';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Wilayah;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Wilayah\KabupatenKota;
|
||||
@@ -12,7 +13,7 @@ use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class Kecamatan extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'master_kecamatan';
|
||||
|
||||
|
||||
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models\Wilayah;
|
||||
|
||||
use App\Models\Concerns\CatatAktivitas;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
use App\Models\Wilayah\KabupatenKota;
|
||||
@@ -11,7 +12,7 @@ use Illuminate\Database\Eloquent\Builder;
|
||||
|
||||
class Provinsi extends Model
|
||||
{
|
||||
use SoftDeletes;
|
||||
use SoftDeletes, CatatAktivitas;
|
||||
|
||||
protected $table = 'master_provinsi';
|
||||
|
||||
|
||||
@@ -15,6 +15,7 @@ use Dedoc\Scramble\Support\Generator\OpenApi;
|
||||
use Dedoc\Scramble\Support\Generator\SecurityScheme;
|
||||
|
||||
use App\Models\Ekosistem\TabelBasisData;
|
||||
use Spatie\Activitylog\Support\ActivityLogStatus;
|
||||
|
||||
class AppServiceProvider extends ServiceProvider
|
||||
{
|
||||
@@ -31,6 +32,11 @@ class AppServiceProvider extends ServiceProvider
|
||||
*/
|
||||
public function boot(): void
|
||||
{
|
||||
// Matikan log aktivitas saat seeding
|
||||
if ($this->app->runningConsoleCommand('db:seed', 'migrate:fresh', 'migrate:refresh', 'migrate:reset')) {
|
||||
app(ActivityLogStatus::class)->disable();
|
||||
}
|
||||
|
||||
Scramble::configure()
|
||||
->withDocumentTransformers(function (OpenApi $openApi) {
|
||||
$openApi->secure(
|
||||
|
||||
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
|
||||
namespace App\Services\Konfigurasi;
|
||||
|
||||
use App\Enums\StatusDataPetani;
|
||||
use Illuminate\Support\Carbon;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class FormatLogAktivitas
|
||||
{
|
||||
private const LABEL_KOLOM = [
|
||||
'nomor_telepon' => 'No. Telepon',
|
||||
'kk' => 'No. KK',
|
||||
'ktp' => 'No. KTP',
|
||||
'uid' => 'UID',
|
||||
];
|
||||
|
||||
// Nama kolom → label (desa_kelurahan_id → Desa Kelurahan (ID))
|
||||
public static function kolom(string $kolom): string
|
||||
{
|
||||
return self::LABEL_KOLOM[$kolom]
|
||||
?? (str_ends_with($kolom, '_id') ? Str::headline(substr($kolom, 0, -3)) . ' (ID)' : Str::headline($kolom));
|
||||
}
|
||||
|
||||
// Nilai kolom → teks tampilan
|
||||
public static function nilai(string $kolom, mixed $nilai): string
|
||||
{
|
||||
return match (true) {
|
||||
$nilai === null || $nilai === '' => '-',
|
||||
$kolom === 'jenis_kelamin' => $nilai ? 'Laki-laki' : 'Perempuan',
|
||||
is_bool($nilai) => $nilai ? 'Ya' : 'Tidak',
|
||||
self::kolomTanggal($kolom, $nilai) => Carbon::parse($nilai)->translatedFormat('d M Y'),
|
||||
default => Str::limit(is_scalar($nilai) ? (string) $nilai : json_encode($nilai, JSON_UNESCAPED_UNICODE), 120),
|
||||
};
|
||||
}
|
||||
|
||||
public static function status(?string $nilai): string
|
||||
{
|
||||
return StatusDataPetani::tryFrom((string) $nilai)?->label() ?? '-';
|
||||
}
|
||||
|
||||
private static function kolomTanggal(string $kolom, mixed $nilai): bool
|
||||
{
|
||||
return (str_starts_with($kolom, 'tanggal') || str_starts_with($kolom, 'tgl_'))
|
||||
&& is_string($nilai) && strtotime($nilai) !== false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user