diff --git a/app/Models/Wilayah/DesaKelurahan.php b/app/Models/Wilayah/DesaKelurahan.php index b0c5239..ac8beef 100644 --- a/app/Models/Wilayah/DesaKelurahan.php +++ b/app/Models/Wilayah/DesaKelurahan.php @@ -8,6 +8,7 @@ use App\Models\Wilayah\Kecamatan; use App\Models\Pertanian\Lahan; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Builder; class DesaKelurahan extends Model { @@ -29,4 +30,26 @@ class DesaKelurahan extends Model { return $this->hasMany(Lahan::class, 'desa_kelurahan_id'); } + + protected static function booted() + { + static::addGlobalScope('program', function (Builder $builder) { + + if (!app()->has('SystemProgram')) { + return; + } + + $programId = app('SystemProgram')->id; + + $builder->where(function ($query) use ($programId) { + + $query->whereIn('id', function ($q) use ($programId) { + $q->select('desa_kelurahan_id') + ->from('core_program_lokasi') + ->where('program_id', $programId) + ->whereNotNull('desa_kelurahan_id'); + }); + }); + }); + } } diff --git a/app/Models/Wilayah/KabupatenKota.php b/app/Models/Wilayah/KabupatenKota.php index bba4885..da4a5b8 100644 --- a/app/Models/Wilayah/KabupatenKota.php +++ b/app/Models/Wilayah/KabupatenKota.php @@ -8,6 +8,7 @@ use App\Models\Wilayah\Provinsi; use App\Models\Wilayah\Kecamatan; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Builder; class KabupatenKota extends Model { @@ -31,4 +32,26 @@ class KabupatenKota extends Model { return $this->hasMany(Kecamatan::class, 'kabupaten_kota_id'); } + + protected static function booted() + { + static::addGlobalScope('program', function (Builder $builder) { + + if (!app()->has('SystemProgram')) { + return; + } + + $programId = app('SystemProgram')->id; + + $builder->where(function ($query) use ($programId) { + + $query->whereIn('id', function ($q) use ($programId) { + $q->select('kabupaten_kota_id') + ->from('core_program_lokasi') + ->where('program_id', $programId) + ->whereNotNull('kabupaten_kota_id'); + }); + }); + }); + } } diff --git a/app/Models/Wilayah/Kecamatan.php b/app/Models/Wilayah/Kecamatan.php index 2ef5bcb..18ce66c 100644 --- a/app/Models/Wilayah/Kecamatan.php +++ b/app/Models/Wilayah/Kecamatan.php @@ -8,6 +8,7 @@ use App\Models\Wilayah\KabupatenKota; use App\Models\Wilayah\DesaKelurahan; use Illuminate\Database\Eloquent\Relations\BelongsTo; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Builder; class Kecamatan extends Model { @@ -30,4 +31,26 @@ class Kecamatan extends Model { return $this->hasMany(DesaKelurahan::class, 'kecamatan_id'); } + + protected static function booted() + { + static::addGlobalScope('program', function (Builder $builder) { + + if (!app()->has('SystemProgram')) { + return; + } + + $programId = app('SystemProgram')->id; + + $builder->where(function ($query) use ($programId) { + + $query->whereIn('id', function ($q) use ($programId) { + $q->select('kecamatan_id') + ->from('core_program_lokasi') + ->where('program_id', $programId) + ->whereNotNull('kecamatan_id'); + }); + }); + }); + } } diff --git a/app/Models/Wilayah/Provinsi.php b/app/Models/Wilayah/Provinsi.php index 8dba547..77c8079 100644 --- a/app/Models/Wilayah/Provinsi.php +++ b/app/Models/Wilayah/Provinsi.php @@ -7,6 +7,7 @@ use Illuminate\Database\Eloquent\SoftDeletes; use App\Models\Wilayah\KabupatenKota; use App\Models\Wilayah\DesaKelurahan; use Illuminate\Database\Eloquent\Relations\HasMany; +use Illuminate\Database\Eloquent\Builder; class Provinsi extends Model { @@ -28,4 +29,27 @@ class Provinsi extends Model { return $this->hasMany(KabupatenKota::class, 'provinsi_id'); } + + protected static function booted() + { + static::addGlobalScope('program', function (Builder $builder) { + + if (!app()->has('SystemProgram')) { + return; + } + + $programId = app('SystemProgram')->id; + + $builder->where(function ($query) use ($programId) { + + $query->whereIn('id', function ($q) use ($programId) { + $q->select('provinsi_id') + ->from('core_program_lokasi') + ->where('program_id', $programId) + ->whereNotNull('provinsi_id'); + }); + + }); + }); + } } diff --git a/resources/views/ekosistem/petani-cpm/index.blade.php b/resources/views/ekosistem/petani-cpm/index.blade.php index d7e6005..17e8192 100644 --- a/resources/views/ekosistem/petani-cpm/index.blade.php +++ b/resources/views/ekosistem/petani-cpm/index.blade.php @@ -114,7 +114,7 @@