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