<?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]