Anons79 Mini Shell

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

<?php

namespace App\Models;

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

class Pembayaran extends Model
{
    use HasFactory;
    protected $fillable = [
        'user_id',
        'surat_permintaan_id',
        'tanggal_pembayaran',
        'nomor_pembayaran',
        'total_pembayaran',
        'bukti_pembayaran',
        'keterangan_pembayaran'

    ];

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

    public function scopeFilter($query,$request){
        if ($request->pemohon  != "") {
            $query->whereHas('suratPermintaan.peminta',function($query)use($request){
                $query->where('name','like','%'.$request->pemohon.'%');
            });
        }
        if ($request->dari_tanggal != "" && $request->sampai_tanggal != "") {
            $query->whereBetween('tanggal_pembayaran',[$request->dari_tanggal,$request->sampai_tanggal]);
        }

        if ($request->divisi_id != "") {
            $query->whereHas('suratPermintaan',function($query)use($request){
                $query->where('divisi_id',$request->divisi_id);
            });
        }

        if ($request->cari != "") {
            $query->where(function($ws)use($request){
                $ws->where('keterangan_pembayaran','like','%'.$request->cari.'%')
                ->orWhereHas('suratPermintaan',function($query)use($request){
                    $query->where('perihal','like','%'.$request->cari.'%')
                    ->orWhere('tmp_nomor_surat','like','%'.$request->cari.'%')
                    ->orWhere('status','like','%'.$request->cari.'%')
                    ->orWhereHas('peminta',function($query)use($request){
                        $query->where('name','like','%'.$request->cari.'%');
                    })->orWhereHas('groupItem',function($wgi)use($request){
                        $wgi->where('total_bayaran','like','%'.$request->cari.'%')
                        ->orWhereHas('item',function($wi)use($request){
                            $wi->where('label','like','%'.$request->cari.'%')
                            ->orWhere('keterangan','like','%'.$request->cari.'%')
                            ->orWhereHas('bank',function($wb)use($request){
                                $wb->where('nama_bank','like','%'.$request->cari.'%');
                            });
                        });
                    });
                });
            });
        }
        return $query;
    }

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

    public function getSisaAnggaranAttribute()
    {   
        $total = 0;
        foreach ($this->suratPermintaan->groupItem as $group) {
            foreach ($group->item as $item) {
                if($item->budget){
                    $total += $item->budget->sisa_anggaran;
                }
                
            }
        }
        return $total;
    }

    public function getSisaAnggaranBudgetAttribute()
    {   
        $_arr = [];
        foreach ($this->suratPermintaan->groupItem as $group) {
            foreach ($group->item as $item) {
                if($item->budget){
                    $_arr[] = $item->budget->kode_budget." | ".number_format($item->budget->sisa_anggaran);
                }
                
            }
        }
        return implode(",",$_arr);
    }

    public function getKodeBudgetAttribute()
    {   
        $_arr = [];
        foreach ($this->suratPermintaan->groupItem as $group) {
            foreach ($group->item as $item) {
                if($item->budget){
                    $_arr[] = $item->budget->kode_budget;
                }
                
            }
        }
        return implode(",",$_arr);
    }

    public function getSisaBayarAttribute(){
        $sumG = $this->suratPermintaan->groupItem->sum('total_permintaan');
        $sumPembayaran = $this->suratPermintaan->pembayarans->sum('total_pembayaran');
        return $sumG - $sumPembayaran;
    }
}

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