<?php
namespace App\Models;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\SoftDeletes;
class Pelanggan extends Model
{
use HasFactory;
use SoftDeletes;
protected $fillable = [
"nama_pelanggan",
"telp_pelanggan",
"alamat_pelanggan",
"kecamatan_pelanggan",
"pengguna_id"
];
public function scopeRiwayatSum($query){
return $query->join('riwayat_transaksis','riwayat_transaksis.pelanggan_id','=','pelanggans.id')
->select('pelanggans.*')
->selectRaw('SUM(riwayat_transaksis.biaya) as total');
}
public function penjualan()
{
return $this->hasMany(Penjualan::class);
}
public function retur_penjualan()
{
return $this->hasMany(ReturPenjualan::class);
}
public function riwayat()
{
return $this->hasMany(RiwayatTransaksi::class);
}
public function service()
{
return $this->hasMany(Service::class);
}
public function scopeCari($query, $name)
{
return $query->where("nama_pelanggan", "like", "%" . $name . "%")
->orWhere("telp_pelanggan", "like", "%" . $name . "%")
->orWhere("alamat_pelanggan", "like", "%" . $name . "%");
}
public function scopeKecamatan($query, $kecamatan)
{
return $query->where("kecamatan_pelanggan", "like", "%" . $kecamatan . "%");
}
public function scopeTanggal($query, $begin, $end)
{
return $query->whereBetween("created_at", [$begin->format('Y-m-d H:i:s'), $end->format('Y-m-d H:i:s')]);
}
public static function boot()
{
parent::boot();
self::deleting(function ($pelanggan) {
$pelanggan->penjualan()->each(function ($penjualan) {
$penjualan->delete();
});
$pelanggan->service()->each(function ($service) {
$service->delete();
});
$pelanggan->retur_penjualan()->each(function ($retur_penjualan) {
$retur_penjualan->delete();
});
$pelanggan->riwayat()->each(function ($riwayat) {
$riwayat->delete();
});
});
}
}
Anons79 File Manager Version 1.0, Coded By Anons79
Email: [email protected]