Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/griyaservis.fixmate.id/app/Models/
Upload File :
Current File : /home/aplikasiposinfo/public_html/griyaservis.fixmate.id/app/Models/ReturPembelian.php

<?php

namespace App\Models;

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

class ReturPembelian extends Model
{
    use HasFactory;

    protected $fillable = [
        "pengguna_id",
        "no_retur",
        "pembelian_id",
        "no_pembelian",
        "pelanggan_id",
        "keterangan",
        "tanggal",
        "supplier_id",
        "ket_tambahan",
        "bukti_retur",
        "status_retur"
    ];

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

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

    public function supplier()
    {
        return $this->belongsTo(Supplier::class);
    }
    
    public function detail()
    {
        return $this->hasMany(DetailReturPembelian::class);
    }

    public function tokos()
    {
        return $this->morphToMany(Toko::class, 'tokoable', 'tokoables', 'tokoable_id', 'toko_id')
            ->where('tokoable_type', ReturPembelian::class);
    }

    public function scopeFilterToko($query, $toko_id = null)
    {
        if ($toko_id == null) {
            return $query->whereHas("tokos", function ($q) {
                $q->whereIn('tokos.id',auth()->user()->role->tokos->pluck('id')->toArray());
            });
        } else {
            return $query->whereHas("tokos", function ($q)use ($toko_id) {
                $q->where('tokos.id',$toko_id);
            });
        }
    }

    public function getTotalAttribute()
    {
        $total = 0;
        foreach ($this->detail as $detail) {
            $total += $detail->qty * $detail->harga_item;
        }

        return $total;
    }
}

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