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/ProkerKegiatan.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
use Illuminate\Support\LazyCollection;

class ProkerKegiatan extends Model
{
    use HasFactory;
    use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
    use \Znck\Eloquent\Traits\BelongsToThrough;

    protected $guarded = [];

    public function ProkerProgram(){
    	return $this->belongsTo(ProkerProgram::class,'proker_program_id');
    }

    public function Kegiatan(){
    	return $this->belongsTo(Kegiatan::class);
    }

    public function ProkerSubKegiatan(){
    	return $this->hasMany(ProkerSubKegiatan::class);
    }

    public function RincianKegiatan()
    {
        return $this->hasManyThrough(RincianKegiatan::class, ProkerSubKegiatan::class);
    }

    public function RealisasiRincianKegiatan(){
        return $this->hasManyDeep(RealisasiRincianKegiatan::class, [ProkerSubKegiatan::class, RincianKegiatan::class]);
    }

    public function RealisasiFisik(){
        return $this->hasManyDeep(RealisasiFisik::class, [ProkerSubKegiatan::class, RincianKegiatan::class, RealisasiRincianKegiatan::class]);
    }

    public function RealisasiKeuangan(){
        return $this->hasManyDeep(RealisasiKeuangan::class, [ProkerSubKegiatan::class, RincianKegiatan::class, RealisasiRincianKegiatan::class]);
    }

    public function Opd(){
    	return $this->belongsToThrough(Opd::class, [Proker::class, ProkerProgram::class]);
    }

    public function getPersentaseFisikAttribute(){
        return ($this->ProkerSubKegiatan->map(function($item,$key){
            return ($item->PersentaseFisik);
        })->sum());
    }

    public function getAnggaranAttribute(){
    	$result = 0;
        foreach ($this->ProkerSubKegiatan as $data) {
            $result += $data->anggaran;
        }
        return $result;
    }
    public function getFisikAttribute(){
        $result = 0;
        foreach ($this->ProkerSubKegiatan as $data) {
            $result += $data->fisik;
        }
        return $result;
    }
    public function getKeuanganAttribute(){
        $result = 0;
        foreach ($this->ProkerSubKegiatan as $data) {
            $result += $data->keuangan;
        }
        return $result;
    }
    public function getKontrakAttribute(){
        $result = 0;
        foreach ($this->ProkerSubKegiatan as $data) {
            $result += $data->kontrak;
        }
        return $result;
    }

    public function getPercentFisikAttribute(){
        return ($this->ProkerSubKegiatan->map(function($item,$key){
            return ($item->percentfisik);
        })->sum());
        
    }

    public function getPaguBerjalanAttribute(){
        return $this->ProkerSubKegiatan->map(function($item,$key){
            return $item->paguberjalan;
        })->filter()->sum();
    }

    public function getCustomNilaiKontrakAttribute(){
        return $this->ProkerSubKegiatan->map(function($item,$key){
            return $item->customnilaikontrak;
        })->filter()->sum();
    }

    public function getPaguBelumBerjalanAttribute(){
        return $this->ProkerSubKegiatan->map(function($item,$key){
            return $item->pagubelumberjalan;
        })->filter()->sum();
    }

    public function getVolumeAttribute(){
        return $this->ProkerSubKegiatan->sum('volume');
    }

    public function getTkdnAkumulasiAttribute()
    {
        return $this->ProkerSubKegiatan->sum('TkdnAkumulasi');
    }
}

Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]