Merhaba,
Skus adında bir tablom var bunun üzerinden filtreler ile sorgular oluşturuyorum.
Burada "market_price" ve "price" adında iki sütun var. Eğer ürün indirimli ise price alanı market price alanından daha düşük yazılıyor. Eğer durum böyleyse bende aradaki indirim yüzdesini bulmak için ayrıca bir fonksiyon yazmıştım ve çalışıyor burada sorun yok fakat ben filtreleme yaparken örneğin %20'ye kadar %50'ye kadar gibi bir seçenek eklemem gerekiyor. Fakat bunu foreach içine sokmadığım için değerleri alıp nasıl fonksiyon içine sokup gelen yüzde değerini alıp filtreme yapabilirim?
Örnek kod;
$skus = Sku::with(['optionValue', 'product.category'])
->whereHas('product', function($q) {
$q->where('status', 'accepted');
if(count($this->filters)) {
if(!is_null($this->filters['brand'])) {
$q->where('brand_id', '=', $this->filters['brand']);
}
if($this->filters['freeShipping']) {
$q->where('free_shipping', 1);
}
}
})->whereColumn('market_price', '>', 'price');
Yani örnek veriyorum şöyle bir şey 😃
$skus->whereRaw(calculateDiscountPercentage($this->id), '>', 20 );
Gibi bir kullanım durumu nasıl olabilir?