<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class RincianBidang extends Model
{
use HasFactory;
use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
use \Znck\Eloquent\Traits\BelongsToThrough;
protected $guarded = [];
public function RincianSubBidang()
{
return $this->hasMany(RincianSubBidang::class);
}
public function subrincianSubBidang()
{
return $this->belongsTo(RincianSubBidang::class, 'rincian_sub_bidang_id');
}
public function RincianKegiatan(){
return $this->hasManyThrough(RincianKegiatan::class, RincianSubBidang::class);
}
public function RealisasiRincianKegiatan(){
return $this->hasManyDeep(RealisasiRincianKegiatan::class, [RincianSubBidang::class, RincianKegiatan::class]);
}
public function RealisasiFisik(){
return $this->hasManyDeep(RealisasiFisik::class, [RincianSubBidang::class, RincianKegiatan::class, RealisasiRincianKegiatan::class]);
}
public function RealisasiKeuangan(){
return $this->hasManyDeep(RealisasiKeuangan::class, [RincianSubBidang::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());
// return ($this->RincianSubBidang->map(function($item,$key){
// return ($item->PercentFisik);
// })->sum());
// Ensure it uses the full collection of RincianSubBidang, even if the main query was limited
return $this->RincianSubBidang->map(function($item){
return $item->PercentFisik; // Assuming PercentFisik is a valid attribute for RincianSubBidang
})->sum();
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]