public static function addCategory3($application, $schoolIds, $yArray, $dArray, $guardianNic, $ppo, $achievements, $donations, $siblings)
 {
     $db = Connection::getInstance();
     $mysqli = $db->getConnection();
     $mysqli->autocommit(FALSE);
     $applicantResult = DBApplicationController::addApplication($application);
     if ($applicantResult) {
         $resultSchoolSet = true;
         $isApplicanthasCSS = DBSchoolController::isApplicanthasCSS($application->getApplicant_id());
         if ($isApplicanthasCSS) {
             //do not need add school set
         } else {
             // return $schoolIds[1];
             $resultSchoolSet = DBSchoolController::addCloseSchoolSet($application->getApplicant_id(), $schoolIds);
         }
         if ($resultSchoolSet) {
             $resultEL = true;
             $isGuardianHasEL = DBGuardianController::isGuardianHasEL($guardianNic);
             if ($isGuardianHasEL) {
             } else {
                 $resultEL = DBElectrocalListController::addElectrocalListDetail($dArray, $yArray, $guardianNic);
             }
             if ($resultEL) {
                 for ($i = 0; $i < 3; $i++) {
                     $resultC = true;
                     $resultEA = true;
                     $resultD = true;
                     $resultS = true;
                     $resultCD = DBGuardianController::hasCategory3Detail($ppo[$i]->getAdmissionNumber(), $application->getSchool_id());
                     if ($resultCD == false) {
                         $resultC = DBCategory3Controller::addCategory3($ppo[$i]);
                         $resultEA = DBCPAchievementController::addCPAchievement($achievements[$i]);
                         $resultD = DBCurPupilDonationController::addCPDonation($donations[$i]);
                         $resultS = DBSiblingController::addSibling($siblings[$i]);
                     }
                     if ($resultD and $resultEA and $resultC and $resultS) {
                     } else {
                         $mysqli->rollback();
                         $mysqli->commit();
                         return false;
                     }
                 }
                 $mysqli->commit();
                 return true;
             } else {
                 $mysqli->rollback();
                 $mysqli->commit();
                 return FALSE;
             }
         } else {
             $mysqli->rollback();
             $mysqli->commit();
             return FALSE;
         }
     } else {
         $mysqli->rollback();
         $mysqli->commit();
         return FALSE;
     }
 }