'from', 'type' => 'date', 'label' => 'Od', 'default' => now()->startOfMonth()->toDateString()], ['key' => 'to', 'type' => 'date', 'label' => 'Do', 'default' => now()->toDateString()], ['key' => 'user_id', 'type' => 'select:user', 'label' => 'Uporabnik', 'default' => null], ]; } public function columns(): array { return [ ['key' => 'id', 'label' => '#'], ['key' => 'contract_reference', 'label' => 'Pogodba'], ['key' => 'assigned_user_name', 'label' => 'Terenski'], ['key' => 'completed_at', 'label' => 'Zaključeno'], ['key' => 'notes', 'label' => 'Opombe'], ]; } /** * @param array $filters */ public function query(array $filters): EloquentBuilder { $from = isset($filters['from']) ? now()->parse($filters['from'])->startOfDay() : now()->startOfMonth(); $to = isset($filters['to']) ? now()->parse($filters['to'])->endOfDay() : now()->endOfDay(); return FieldJob::query() ->whereNull('cancelled_at') ->whereBetween('completed_at', [$from, $to]) ->when(! empty($filters['user_id']), fn ($q) => $q->where('assigned_user_id', $filters['user_id'])) ->with(['assignedUser:id,name', 'contract:id,reference']) ->select(['id', 'assigned_user_id', 'contract_id', 'completed_at', 'notes']); } }