Anons79 Mini Shell

Directory : /home/aplikasiposinfo/www/demo-catatan-keuangan.aplikasipos.info/app/Models/
Upload File :
Current File : /home/aplikasiposinfo/www/demo-catatan-keuangan.aplikasipos.info/app/Models/GroupItem.php

<?php

namespace App\Models;

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

class GroupItem extends Model
{
    use HasFactory;
    protected $fillable = [
        'total_bayaran',
        'row_index',
        'persenan_ppn',
        'persenan_pph',
        'pakai_persen_pph',
        'nominal_ppn',
        'nominal_pph',
        'surat_id',
        'biaya_materai'
    ];

    protected $appends = [
        'total'
    ];

    public function surat(){
        return $this->belongsTo(SuratPermintaan::class,'surat_id');
    }
    public function item(){
        return $this->hasMany(Item::class,'group_id');
    }

    public function rejectedItem(){
        return $this->hasMany(Item::class,'group_id')->where('status','0');
    }
    public function approvedItem(){
        return $this->hasMany(Item::class,'group_id');
    }

    public function getTotalAttribute()
    {   
        $itemTotal = $this->total_bayaran;
        $pph = ($this->persenan_pph / 100) * $itemTotal;
        $ppn = ($this->persenan_ppn / 100) * $itemTotal;
        return $itemTotal + $this->biaya_materai + $this->total_biaya_lainnya;
    }

    public function getTotalPermintaanAttribute()
    {   
        $itemTotal = 0;
        $items = $this->item;
        foreach($items as $item){
            $itemTotal += $item->nominal_disetujui ?? $item->nominal;
        }
        // $biayaLainnya = $this->biayaLainnyas->sum('jumlah_biaya');
        return $itemTotal+$this->nominal_ppn+$this->total_biaya_lainnya;
    }

    function biayaLainnyas() {
        return $this->hasMany(BiayaLainnya::class);
    }

    public function getTotalBiayaLainnyaAttribute()
    {
        return $this->biayaLainnyas->sum('jumlah_biaya');
    }
}

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