Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/e-tepian.aplikasipos.info/app/Models/
Upload File :
Current File : /home/aplikasiposinfo/www/e-tepian.aplikasipos.info/app/Models/RincianSubBidang.php

<?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]