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/ProkerProgram.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 ProkerProgram extends Model
{
    use HasFactory;
    use \Staudenmeir\EloquentHasManyDeep\HasRelationships;
    use \Znck\Eloquent\Traits\BelongsToThrough;


    protected $guarded = [];

    protected $table = 'proker_programs';
    protected $fillable = ['proker_id','program_id'];

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

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

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

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

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

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

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

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

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

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

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

    public function prokersKegiatan(){
        return $this->belongsToMany(ProkerKegiatan::class,'proker_kegiatans','proker_program_id','kegiatan_id');
    }

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

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

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

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

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

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

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