Arkadaslar merhaba, manyToMany baglantisi olan modelden query yazmada sorun yasiyorum.
Product => id, name, price
Discount => id, percent, date_start, date_end
discount_products (Table) => product_id, discount_id
Product::leftJoin('discount_products', 'products.id', '=', 'discount_products.product_id')
->leftJoin('discounts', function ($join) {
$join->on('discounts.id', '=', 'discount_products.discount_id')
->where('date_start', '<=', Carbon::today()->toDateString())
->where('date_end', '>=', Carbon::today()->toDateString())
->orderBy('id', 'desc');
})
->selectRaw('products.*, SUM(products.price * (100 - discounts.percent) / 100) as new_price')
->groupBy('products.id')
->orderBy('new_price')
->get();
Urunleri fiyatina gore siralamam gerekiyor, urunun indirimi varsa indirimi hesaplanarak siralanmali.
Mesela:
id: 1, name: elma, price: 8
id: 2, name: karpuz, price: 10
id: 3, name: armut, price: 10 (%10 indirim var)
Urunler ucuzdan pahaliya siraladigim zaman:
Elma 8
Armut 9
Karpuz 10
olarak gelmesi gerekiyor, simdiden tesekkurler arkadaslar.