parent
							
								
									23f82bc5b8
								
							
						
					
					
						commit
						2d930800c6
					
				@ -0,0 +1,40 @@ | 
				
			||||
<?php | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
namespace Chamilo\PluginBundle\MigrationMoodle\Loader; | 
				
			||||
 | 
				
			||||
use Chamilo\PluginBundle\MigrationMoodle\Interfaces\LoaderInterface; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Class QuizzesScoresLoader. | 
				
			||||
 * | 
				
			||||
 * @package Chamilo\PluginBundle\MigrationMoodle\Loader | 
				
			||||
 */ | 
				
			||||
class QuizzesScoresLoader implements LoaderInterface | 
				
			||||
{ | 
				
			||||
    /** | 
				
			||||
     * @inheritDoc | 
				
			||||
     */ | 
				
			||||
    public function load(array $incomingData) | 
				
			||||
    { | 
				
			||||
        $tblQuizQuestion = \Database::get_course_table(TABLE_QUIZ_QUESTION); | 
				
			||||
        $tblQuizRelQuestion = \Database::get_course_table(TABLE_QUIZ_TEST_QUESTION); | 
				
			||||
        $tblLpItem = \Database::get_course_table(TABLE_LP_ITEM); | 
				
			||||
 | 
				
			||||
        $sql = "SELECT SUM(ponderation) | 
				
			||||
            FROM $tblQuizQuestion as quiz_question | 
				
			||||
            INNER JOIN $tblQuizRelQuestion as quiz_rel_question | 
				
			||||
            ON (quiz_question.id = quiz_rel_question.question_id AND quiz_question.c_id = quiz_rel_question.c_id) | 
				
			||||
            WHERE | 
				
			||||
                quiz_rel_question.exercice_id = {$incomingData['quiz_id']} | 
				
			||||
                AND quiz_question.c_id = {$incomingData['c_id']} | 
				
			||||
                AND quiz_rel_question.c_id = {$incomingData['c_id']}"; | 
				
			||||
 | 
				
			||||
        $rsQuiz = \Database::query($sql); | 
				
			||||
        $maxScore = \Database::result($rsQuiz, 0, 0); | 
				
			||||
 | 
				
			||||
        \Database::query("UPDATE $tblLpItem SET max_score = $maxScore WHERE iid = {$incomingData['item_id']}"); | 
				
			||||
 | 
				
			||||
        return $incomingData['item_id']; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
@ -0,0 +1,74 @@ | 
				
			||||
<?php | 
				
			||||
/* For licensing terms, see /license.txt */ | 
				
			||||
 | 
				
			||||
namespace Chamilo\PluginBundle\MigrationMoodle\Task; | 
				
			||||
 | 
				
			||||
use Chamilo\PluginBundle\MigrationMoodle\Extractor\CourseExtractor; | 
				
			||||
use Chamilo\PluginBundle\MigrationMoodle\Loader\QuizzesScoresLoader; | 
				
			||||
use Chamilo\PluginBundle\MigrationMoodle\Transformer\BaseTransformer; | 
				
			||||
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedCourseLookup; | 
				
			||||
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedCourseModuleQuizLookup; | 
				
			||||
use Chamilo\PluginBundle\MigrationMoodle\Transformer\Property\LoadedQuizLookup; | 
				
			||||
 | 
				
			||||
/** | 
				
			||||
 * Class QuizzesScoresTask. | 
				
			||||
 * | 
				
			||||
 * @package Chamilo\PluginBundle\MigrationMoodle\Task | 
				
			||||
 */ | 
				
			||||
class QuizzesScoresTask extends BaseTask | 
				
			||||
{ | 
				
			||||
    /** | 
				
			||||
     * @inheritDoc | 
				
			||||
     */ | 
				
			||||
    public function getExtractConfiguration() | 
				
			||||
    { | 
				
			||||
        return [ | 
				
			||||
            'class' => CourseExtractor::class, | 
				
			||||
            'query' => "SELECT | 
				
			||||
                    q.id, | 
				
			||||
                    q.course, | 
				
			||||
                    cm.section, | 
				
			||||
                    cm.id cm_id | 
				
			||||
                FROM mdl_quiz q | 
				
			||||
                INNER JOIN mdl_course_modules cm ON (q.course = cm.course AND cm.instance = q.id) | 
				
			||||
                INNER JOIN mdl_modules m ON cm.module = m.id | 
				
			||||
                INNER JOIN mdl_course_sections cs ON (cm.course = cs.course AND cm.section = cs.id ) | 
				
			||||
                WHERE m.name = 'quiz' | 
				
			||||
                ORDER BY cs.id, FIND_IN_SET(cm.id, cs.sequence)", | 
				
			||||
        ]; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * @inheritDoc | 
				
			||||
     */ | 
				
			||||
    public function getTransformConfiguration() | 
				
			||||
    { | 
				
			||||
        return [ | 
				
			||||
            'class' => BaseTransformer::class, | 
				
			||||
            'map' => [ | 
				
			||||
                'quiz_id' => [ | 
				
			||||
                    'class' => LoadedQuizLookup::class, | 
				
			||||
                    'properties' => ['id'], | 
				
			||||
                ], | 
				
			||||
                'c_id' => [ | 
				
			||||
                    'class' => LoadedCourseLookup::class, | 
				
			||||
                    'properties' => ['course'], | 
				
			||||
                ], | 
				
			||||
                'item_id' => [ | 
				
			||||
                    'class' => LoadedCourseModuleQuizLookup::class, | 
				
			||||
                    'properties' => ['cm_id'], | 
				
			||||
                ], | 
				
			||||
            ], | 
				
			||||
        ]; | 
				
			||||
    } | 
				
			||||
 | 
				
			||||
    /** | 
				
			||||
     * @inheritDoc | 
				
			||||
     */ | 
				
			||||
    public function getLoadConfiguration() | 
				
			||||
    { | 
				
			||||
        return [ | 
				
			||||
            'class' => QuizzesScoresLoader::class, | 
				
			||||
        ]; | 
				
			||||
    } | 
				
			||||
} | 
				
			||||
					Loading…
					
					
				
		Reference in new issue