<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class RincianSubBidang extends Model
{
use HasFactory;
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
use \Znck\Eloquent\Traits\BelongsToThrough;
protected $guarded = [];
protected $casts = [
'nomor' => 'integer',
];
public function rincianBidang()
{
return $this->belongsTo(RincianBidang::class);
}
public function RincianKegiatan(){
return $this->hasMany(RincianKegiatan::class);
}
public function ProkerSubKegiatan()
{
return $this->hasManyThrough(
ProkerSubKegiatan::class,
RincianKegiatan::class,
'rincian_sub_bidang_id',
'id',
'id',
'proker_sub_kegiatan_id'
);
}
// public function ProkerSubKegiatanLAgi() {
// return $this->hasMany(ProkerSubKegiatan::class);
// }
public function subrincianBidang()
{
return $this->belongsTo(RincianBidang::class, 'rincian_bidang_id');
}
public function subrincianKegiatans()
{
return $this->hasMany(RincianKegiatan::class, 'rincian_sub_bidang_id');
}
public function RealisasiRincianKegiatan(){
return $this->hasManyThrough(RealisasiRincianKegiatan::class, RincianKegiatan::class);
}
public function RealisasiFisik(){
return $this->hasManyDeep(RealisasiFisik::class, [RincianKegiatan::class, RealisasiRincianKegiatan::class]);
}
public function RealisasiKeuangan(){
return $this->hasManyDeep(RealisasiKeuangan::class, [RincianKegiatan::class, RealisasiRincianKegiatan::class]);
}
public function getPercentFisikAttribute(){
return ($this->RincianKegiatan->map(function($item,$key){
if($item->volume > 0){
return ($item->pagu * ($item->fisik/($item->volume))*100);
}else{
return 0;
}
})->sum());
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]