original_string: protected static function archive_user_competencies_in_plan($plan) {
  
          // Check if the plan was already completed.
          if ($plan->get('status') == plan::STATUS_COMPLETE) {
              throw new coding_exception('The plan is already completed.');
          }
  
          $competencies = $plan->get_competencies();
          $usercompetencies = user_competency::get_multiple($plan->get('userid'), $competencies);
  
          $i = 0;
          foreach ($competencies as $competency) {
              $found = false;
  
              foreach ($usercompetencies as $uckey => $uc) {
                  if ($uc->get('competencyid') == $competency->get('id')) {
                      $found = true;
  
                      $ucprecord = $uc->to_record();
                      $ucprecord->planid = $plan->get('id');
                      $ucprecord->sortorder = $i;
                      unset($ucprecord->id);
                      unset($ucprecord->status);
                      unset($ucprecord->reviewerid);
  
                      $usercompetencyplan = new user_competency_plan(0, $ucprecord);
                      $usercompetencyplan->create();
  
                      unset($usercompetencies[$uckey]);
                      break;
                  }
              }
  
              // If the user competency doesn't exist, we create a new relation in user_competency_plan.
              if (!$found) {
                  $usercompetencyplan = user_competency_plan::create_relation($plan->get('userid'), $competency->get('id'),
                          $plan->get('id'));
                  $usercompetencyplan->set('sortorder', $i);
                  $usercompetencyplan->create();
              }
              $i++;
          }
      }
code: protected static function archive_user_competencies_in_plan($plan) {
  
          // Check if the plan was already completed.
          if ($plan->get('status') == plan::STATUS_COMPLETE) {
              throw new coding_exception('The plan is already completed.');
          }
  
          $competencies = $plan->get_competencies();
          $usercompetencies = user_competency::get_multiple($plan->get('userid'), $competencies);
  
          $i = 0;
          foreach ($competencies as $competency) {
              $found = false;
  
              foreach ($usercompetencies as $uckey => $uc) {
                  if ($uc->get('competencyid') == $competency->get('id')) {
                      $found = true;
  
                      $ucprecord = $uc->to_record();
                      $ucprecord->planid = $plan->get('id');
                      $ucprecord->sortorder = $i;
                      unset($ucprecord->id);
                      unset($ucprecord->status);
                      unset($ucprecord->reviewerid);
  
                      $usercompetencyplan = new user_competency_plan(0, $ucprecord);
                      $usercompetencyplan->create();
  
                      unset($usercompetencies[$uckey]);
                      break;
                  }
              }
  
              // If the user competency doesn't exist, we create a new relation in user_competency_plan.
              if (!$found) {
                  $usercompetencyplan = user_competency_plan::create_relation($plan->get('userid'), $competency->get('id'),
                          $plan->get('id'));
                  $usercompetencyplan->set('sortorder', $i);
                  $usercompetencyplan->create();
              }
              $i++;
          }
      }
code_tokens: protected static function archive_user_competencies_in_plan ( $ plan ) { // Check if the plan was already completed. if ( $ plan -> get ( 'status' ) == plan :: STATUS_COMPLETE ) { throw new coding_exception ( 'The plan is already completed.' ) ; } $ competencies = $ plan -> get_competencies ( ) ; $ usercompetencies = user_competency :: get_multiple ( $ plan -> get ( 'userid' ) , $ competencies ) ; $ i = 0 ; foreach ( $ competencies as $ competency ) { $ found = false ; foreach ( $ usercompetencies as $ uckey => $ uc ) { if ( $ uc -> get ( 'competencyid' ) == $ competency -> get ( 'id' ) ) { $ found = true ; $ ucprecord = $ uc -> to_record ( ) ; $ ucprecord -> planid = $ plan -> get ( 'id' ) ; $ ucprecord -> sortorder = $ i ; unset ( $ ucprecord -> id ) ; unset ( $ ucprecord -> status ) ; unset ( $ ucprecord -> reviewerid ) ; $ usercompetencyplan = new user_competency_plan ( 0 , $ ucprecord ) ; $ usercompetencyplan -> create ( ) ; unset ( $ usercompetencies [ $ uckey ] ) ; break ; } } // If the user competency doesn't exist, we create a new relation in user_competency_plan. if ( ! $ found ) { $ usercompetencyplan = user_competency_plan :: create_relation ( $ plan -> get ( 'userid' ) , $ competency -> get ( 'id' ) , $ plan -> get ( 'id' ) ) ; $ usercompetencyplan -> set ( 'sortorder' , $ i ) ; $ usercompetencyplan -> create ( ) ; } $ i ++ ; } }
docstring: Archive user competencies in a plan.
  
  @param int $plan The plan object.
  @return void
docstring_tokens: Archive user competencies in a plan .