/**
  * Save the objects to the database.
  * 
  * Save the default object being edited and return to the view page.
  * @global array
  */
 protected function save()
 {
     $persObj = $this->factory->createContainer("person");
     $persObj->load($this->post);
     $person_id = $persObj->getField("id")->getDBValue();
     $person_id = explode("|", $person_id);
     $person_id = $person_id[1];
     $regObj = $this->factory->createContainer("registration");
     $regObj->load($this->post);
     $registration_number = $regObj->getField("registration_number")->getDBValue();
     $training_institution = $regObj->getField("training_institution")->getDBValue();
     //save the new reg_number to institution form
     if ($person_id == 0) {
         $instObj = $this->factory->createContainer($training_institution);
         $instObj->populate();
         $reg_num = explode("-", $registration_number);
         $reg_num = $reg_num[2];
         $instObj->getField("last_reg_num")->setValue($reg_num);
         $instObj->save($this->user);
         $userObj = $this->factory->createContainer("user" . '|' . $registration_number);
         $userObj->getField("username")->setFromPost($registration_number);
         $userObj->getField("firstname")->setFromPost($persObj->getField("firstname")->getDBValue());
         $userObj->getField("lastname")->setFromPost($persObj->getField("surname")->getDBValue());
         $userObj->getField("role")->setFromDB("role|student");
         $userObj->getField("password")->setFromPost($persObj->getField("surname")->getDBValue());
         $userObj->save($this->user);
     }
     $persObj->save($this->user);
     $person_id = $persObj->getID();
     $regObj->setParent("person|" . $person_id);
     $regObj->save($this->user);
     $message = "This record has been saved.";
     I2CE::getConfig()->setIfIsSet($message, "/modules/forms/page_feedback_messages/person_save");
     $this->userMessage($message);
     if ($this->generated_regnum) {
         $ff = I2CE_FormFactory::instance();
         $usermapObj = $ff->createContainer("user_map");
         $usermapObj->getField("username")->setFromDB("user|" . $registration_number);
         $usermapObj->getField("parent")->setFromDB("person|" . $person_id);
         $usermapObj->save($this->user);
     }
     //register core courses for this students
     IHS_PageFormEnrollcourse::enroll_core_courses("person|" . $person_id);
     $this->setRedirect("view?id=person|" . $person_id);
 }