Get what? What is "them?"
Nov 3, 2021
8
Level 2
How to refactor query eloquent collection
Hello!
I have query which is heavily expanded and i wonder how i can refactor them. Any ideas? :-)
$controls = Control::with(['shop', 'coordinator'])
->where(function ($query) {
$query->whereDate('control_end_date', '>=', today()->subWeeks()->startOfWeek()->format('Y-m-d'));
$query->where(function (Builder $query) {
return $query->selectRaw('sum(gross_selling_price*quantity) AS sum_turnover')
->from('documents')
->where('doc_date', today())
->whereColumn('shop_id', 'controls.shop_id')
->whereIn('doc_type', [1, 4]);
}, '<=', DB::raw('turnover_during_control'));
})
->orWhere(function ($query) {
$query->whereDate('control_end_date', '<=', today()->subWeeks(1)->startOfWeek()->format('Y-m-d'));
$query->where('turnover_during_control', '>=', 'turnover_after_control');
})
->whereDate('created_at', '>=', today()->subWeeks()->startOfWeek())
->get();
Please or to participate in this conversation.