Skip to content
Snippets Groups Projects
Select Git revision
  • 40793eaa041ad8216a09d29caeddb48f31ab637d
  • master default
  • disable-new-requests
  • fix-bulletin-view-missing-notes-error
  • add-missing-queue-managers
  • projects-task-53
  • projects-task-51
  • projects-task-43
  • projects-task-24
  • projects-task-31
  • projects-task-32
  • projects-task-8
  • project-setup-docs
  • projects-task-28
  • projects-task-27
  • projects-task-9
  • projects-task-7
  • mass-update-course-codes-in-sections
  • wdn-four
  • learning-outcomes
  • additional-bulletin-pages
  • svn-redesign
  • svn-popups
  • svn-trunk
  • svn-performance
  • svn-tim
26 results

CourseGeneration.php

Blame
  • CourseGeneration.php 6.58 KiB
    <?php
    
    /**
     *
     * @tableClass CourseGenerations
     * @foreignKey assetId
     *
     */
    class CourseGeneration extends Asset
    {
        /**
         * Home crosslisting
         *
         * @var CourseCrosslisting
         */
        protected $_homeCrosslisting;
    
        public function _init()
        {
            parent::_init();
    
            $this->_registerRelation(
                new Nmc_Db_Table_Relation_HasSubset(CourseDetails::getInstance(), $this, 'generation'));
            $this->_registerRelation(
                new Nmc_Db_Table_Relation_HasMany(CourseActivities::getInstance(), $this, 'generation', 'activities'));
            $this->_registerRelation(
                new Nmc_Db_Table_Relation_HasMany(CourseCredits::getInstance(), $this, 'generation', 'credits'));
            $this->_registerRelation(
                new Nmc_Db_Table_Relation_HasMany(CourseCrosslistings::getInstance(), $this, 'generation', 'crosslistings'));
            $this->_registerRelation(
                new Nmc_Db_Table_Relation_HasMany(CourseDfRemovals::getInstance(), $this, 'generation', 'dfRemovals'));
            $this->_registerRelation(
                new Nmc_Db_Table_Relation_HasMany(CoursePrerequisites::getInstance(), $this, 'generation', 'prerequisites'));
            $this->_registerRelation(
                new Nmc_Db_Table_Relation_HasOne(CourseGradTieIns::getInstance(), $this, 'generation', 'gradTieIn'));
    
            $this->_homeCrosslisting = $this->_getHomeCrosslisting();
        }
    
        public function _clone()
        {
            $parentId = $this->getPrimaryKey();
    
            // duplicate parent record
            parent::_clone();
    
            $this->_homeCrosslisting = clone $this->_homeCrosslisting;
    
            if($parentId) {
                $this->parent = $parentId;
            }
        }
    
        public function _get($name)
        {
            switch($name)
            {
                case 'subject':
                case 'courseNumber':
                case 'courseLetter':
                case 'integratedStudies':
                    return $this->_homeCrosslisting->$name;
                    break;
                default:
                    return parent::_get($name);
            }
        }
    
        public function _set($name, $value)
        {