Anons79 Mini Shell

Directory : /home/aplikasiposinfo/public_html/duriancell.fixmate.id/app/Models/
Upload File :
Current File : /home/aplikasiposinfo/public_html/duriancell.fixmate.id/app/Models/Item.php

<?php

namespace App\Models;

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

class Item extends Model
{

    use HasFactory;
    protected $fillable = [
        'pengguna_id',
        'kategori_item_id',
        'jenis_item_id',
        'nama_item',
        'harga_item',
        'biaya_item',
        'tipe_jual',
        'sku',
        'lacak_stok',
        'stok',
        'stok_gudang',
        'warna_item',
        'bentuk_item',
        'durasi_garansi',
        'ket_waktu',
        'gambar_item',
        'pakai_notif',
        'stok_minimal',
    ];

    public function kategoriItem()
    {
        return $this->belongsTo(KategoriItem::class)->withDefault([
            'nama_kategori' => 'Tidak Ada'
        ]);
    }

    public function jenis_item()
    {
        return $this->belongsTo(JenisItem::class);
    }
    public function detailServis()
    {
        return $this->hasMany(DetailService::class, 'item_id', 'id');
    }
    public function detailTransaksiBarangRusak()
    {
        return $this->hasMany(DetailTransaksiBarangRusak::class, 'item_id', 'id');
    }

    public function getMarginHargaAttribute()
    {
        //margin harga dalam persen
        if ($this->harga_item == 0) {
            return 0;
        }
        return ($this->biaya_item - $this->harga_item) / $this->harga_item * 100;
    }

    public function retur_penjualan()
    {
        return $this->hasMany(DetailReturPenjualan::class);
    }


    public function getTotalReturPenjualanAttribute()
    {
        $retur_penjualan = $this->retur_penjualan;
        $total = 0;

        foreach ($retur_penjualan as $data) {
            $total += $data->qty;
        }

        return $total;
    }
    public function scopeKategori($query, $name)
    {
        return $query->where("kategori_item_id", $name);
    }
    public function scopeCari($query, $name)
    {
        return $query->where("nama_item", "like", "%" . $name . "%");
    }
    public function scopeTanggal($query, $begin, $end)
    {
        return $query->whereBetween("created_at", [$begin->format('Y-m-d'), $end->format('Y-m-d')]);
    }

    public function stok_item_tokos()
    {
        return $this->hasMany(StokItemToko::class, 'item_id', 'id');
    }
}

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