/** * Retrieve evaluations where a student has results for * and return them as an array of Evaluation objects * @param int $cat_id parent category (use 'null' to retrieve them in all categories) * @param int $stud_id student id */ public static function get_evaluations_with_result_for_student($cat_id = null, $stud_id) { $em = Database::getManager(); $query = $em->createQuery(); $dql = ' SELECT ge FROM ChamiloCoreBundle:GradebookEvaluation ge WHERE gc IN ( SELECT gr.evaluationId FROM ChamiloCoreBundle:GradebookResult gr WHERE gr.userId = :user AND gr.score IS NOT NULL ) '; $queryParams = ['user' => intval($stud_id)]; if (!api_is_allowed_to_edit()) { $dql .= 'AND ge.visible = 1 '; } if (isset($cat_id)) { $dql .= 'AND ge.categoryId = :category '; $queryParams['category'] = intval($cat_id); } else { $dql .= 'AND ge.categoryId >= 0 '; } $result = $query->setParameters($queryParams)->getResult(); $alleval = Evaluation::createEvaluationObjectsFromEntities($result); return $alleval; }