protected function doSave($con)
 {
     $affectedRows = 0;
     if (!$this->alreadyInSave) {
         $this->alreadyInSave = true;
         if ($this->aAcademicCalendarRelatedByParent !== null) {
             if ($this->aAcademicCalendarRelatedByParent->isModified()) {
                 $affectedRows += $this->aAcademicCalendarRelatedByParent->save($con);
             }
             $this->setAcademicCalendarRelatedByParent($this->aAcademicCalendarRelatedByParent);
         }
         if ($this->aCurriculum !== null) {
             if ($this->aCurriculum->isModified()) {
                 $affectedRows += $this->aCurriculum->save($con);
             }
             $this->setCurriculum($this->aCurriculum);
         }
         if ($this->aClassGroup !== null) {
             if ($this->aClassGroup->isModified()) {
                 $affectedRows += $this->aClassGroup->save($con);
             }
             $this->setClassGroup($this->aClassGroup);
         }
         if ($this->aDepartment !== null) {
             if ($this->aDepartment->isModified()) {
                 $affectedRows += $this->aDepartment->save($con);
             }
             $this->setDepartment($this->aDepartment);
         }
         if ($this->aCurrSystem !== null) {
             if ($this->aCurrSystem->isModified()) {
                 $affectedRows += $this->aCurrSystem->save($con);
             }
             $this->setCurrSystem($this->aCurrSystem);
         }
         if ($this->isModified()) {
             if ($this->isNew()) {
                 $pk = AcademicCalendarPeer::doInsert($this, $con);
                 $affectedRows += 1;
                 $this->setId($pk);
                 $this->setNew(false);
             } else {
                 $affectedRows += AcademicCalendarPeer::doUpdate($this, $con);
             }
             $this->resetModified();
         }
         if ($this->collRegPeriods !== null) {
             foreach ($this->collRegPeriods as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collSubjectAccals !== null) {
             foreach ($this->collSubjectAccals as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collAcademicCosts !== null) {
             foreach ($this->collAcademicCosts as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collAcademicCalendarsRelatedByParent !== null) {
             foreach ($this->collAcademicCalendarsRelatedByParent as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVAcademicCalendars !== null) {
             foreach ($this->collVAcademicCalendars as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collStudents !== null) {
             foreach ($this->collStudents as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVStudents !== null) {
             foreach ($this->collVStudents as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVCourseSchedules !== null) {
             foreach ($this->collVCourseSchedules as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collCounselings !== null) {
             foreach ($this->collCounselings as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVCounselings !== null) {
             foreach ($this->collVCounselings as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collClassCourses !== null) {
             foreach ($this->collClassCourses as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collStudentLeaves !== null) {
             foreach ($this->collStudentLeaves as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collStudentThesiss !== null) {
             foreach ($this->collStudentThesiss as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collComprehensiveExams !== null) {
             foreach ($this->collComprehensiveExams as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collGradCeremonys !== null) {
             foreach ($this->collGradCeremonys as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVStudentScores !== null) {
             foreach ($this->collVStudentScores as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVRaports !== null) {
             foreach ($this->collVRaports as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVFinalRaports !== null) {
             foreach ($this->collVFinalRaports as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collStudentAbsences !== null) {
             foreach ($this->collStudentAbsences as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collStudentJobHistorys !== null) {
             foreach ($this->collStudentJobHistorys as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collStudentMedicals !== null) {
             foreach ($this->collStudentMedicals as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVSubjectAccalLectorStudents !== null) {
             foreach ($this->collVSubjectAccalLectorStudents as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         if ($this->collVSubjectAccalLectorStudentDetails !== null) {
             foreach ($this->collVSubjectAccalLectorStudentDetails as $referrerFK) {
                 if (!$referrerFK->isDeleted()) {
                     $affectedRows += $referrerFK->save($con);
                 }
             }
         }
         $this->alreadyInSave = false;
     }
     return $affectedRows;
 }