original_string: public static function add_competency_to_plan($planid, $competencyid) {
          static::require_enabled();
          $plan = new plan($planid);
  
          // First we do a permissions check.
          if (!$plan->can_manage()) {
              throw new required_capability_exception($plan->get_context(), 'moodle/competency:planmanage', 'nopermissions', '');
  
          } else if ($plan->is_based_on_template()) {
              throw new coding_exception('A competency can not be added to a learning plan based on a template');
          }
  
          if (!$plan->can_be_edited()) {
              throw new coding_exception('A competency can not be added to a learning plan completed');
          }
  
          $competency = new competency($competencyid);
  
          // Can not add a competency that belong to a hidden framework.
          if ($competency->get_framework()->get('visible') == false) {
              throw new coding_exception('A competency belonging to hidden framework can not be added');
          }
  
          $exists = plan_competency::get_record(array('planid' => $planid, 'competencyid' => $competencyid));
          if (!$exists) {
              $record = new stdClass();
              $record->planid = $planid;
              $record->competencyid = $competencyid;
              $plancompetency = new plan_competency(0, $record);
              $plancompetency->create();
          }
  
          return true;
      }
code: public static function add_competency_to_plan($planid, $competencyid) {
          static::require_enabled();
          $plan = new plan($planid);
  
          // First we do a permissions check.
          if (!$plan->can_manage()) {
              throw new required_capability_exception($plan->get_context(), 'moodle/competency:planmanage', 'nopermissions', '');
  
          } else if ($plan->is_based_on_template()) {
              throw new coding_exception('A competency can not be added to a learning plan based on a template');
          }
  
          if (!$plan->can_be_edited()) {
              throw new coding_exception('A competency can not be added to a learning plan completed');
          }
  
          $competency = new competency($competencyid);
  
          // Can not add a competency that belong to a hidden framework.
          if ($competency->get_framework()->get('visible') == false) {
              throw new coding_exception('A competency belonging to hidden framework can not be added');
          }
  
          $exists = plan_competency::get_record(array('planid' => $planid, 'competencyid' => $competencyid));
          if (!$exists) {
              $record = new stdClass();
              $record->planid = $planid;
              $record->competencyid = $competencyid;
              $plancompetency = new plan_competency(0, $record);
              $plancompetency->create();
          }
  
          return true;
      }
code_tokens: public static function add_competency_to_plan ( $ planid , $ competencyid ) { static :: require_enabled ( ) ; $ plan = new plan ( $ planid ) ; // First we do a permissions check. if ( ! $ plan -> can_manage ( ) ) { throw new required_capability_exception ( $ plan -> get_context ( ) , 'moodle/competency:planmanage' , 'nopermissions' , '' ) ; } else if ( $ plan -> is_based_on_template ( ) ) { throw new coding_exception ( 'A competency can not be added to a learning plan based on a template' ) ; } if ( ! $ plan -> can_be_edited ( ) ) { throw new coding_exception ( 'A competency can not be added to a learning plan completed' ) ; } $ competency = new competency ( $ competencyid ) ; // Can not add a competency that belong to a hidden framework. if ( $ competency -> get_framework ( ) -> get ( 'visible' ) == false ) { throw new coding_exception ( 'A competency belonging to hidden framework can not be added' ) ; } $ exists = plan_competency :: get_record ( array ( 'planid' => $ planid , 'competencyid' => $ competencyid ) ) ; if ( ! $ exists ) { $ record = new stdClass ( ) ; $ record -> planid = $ planid ; $ record -> competencyid = $ competencyid ; $ plancompetency = new plan_competency ( 0 , $ record ) ; $ plancompetency -> create ( ) ; } return true ; }
docstring: Add a competency to a plan.
  
  @param int $planid The id of the plan
  @param int $competencyid The id of the competency
  @return bool
docstring_tokens: Add a competency to a plan .