private function saveAuthorsToDB($authorResults)
 {
     $authorDao = new AuthorDao();
     $authorDetailsDao = new AuthorDetailsDao();
     foreach ($authorResults as $authorResult) {
         $authorDetailsDao->insert($authorResult->details);
         $authorResult->detailsId = $authorResult->details->id;
         $authorDao->insert($authorResult);
     }
 }
 public function retrieveAffiliationsForAuthors()
 {
     // performance check
     print "INIT retrieveAffiliationsForAuthors";
     $affiliationDao = new AffiliationDao();
     $authorDetailsDao = new AuthorDetailsDao();
     // Papers without journal
     $authorDetails = $authorDetailsDao->findAuthorDetailsWithoutAffiliation();
     $recordIds = array();
     $count = 0;
     $flush = false;
     $batchCount = 0;
     foreach ($authorDetails as $authorDetail) {
         $AffiliationCurrentId = $affiliationDao->findIdByMsaId($authorDetail->msaAffiliationId);
         $flush = false;
         if (isset($AffiliationCurrentId) == false && $authorDetail->msaAffiliationId > 0) {
             $recordIds[$count] = $authorDetail->msaAffiliationId;
             if ($count >= QueryMsa::MAX_RECORDS_PER_QUERY) {
                 // performance check
                 print "PROCESS BATCH(" . $batchCount . ") retrieveAffiliationsForAuthors";
                 $recordIdsUnique = array_unique($recordIds, SORT_NUMERIC);
                 $this->searchAffiliationsByIds($batchCount, $recordIdsUnique);
                 $count = 0;
                 unset($recordIds);
                 $recordIds = array();
                 $flush = true;
                 $batchCount++;
             } else {
                 $count++;
             }
         }
     }
     if ($flush == false && count($recordIds) > 0) {
         // performance check
         print "PROCESS BATCH(" . $batchCount . ") LAST retrieveAffiliationsForAuthors";
         $recordIdsUnique = array_unique($recordIds, SORT_NUMERIC);
         $this->searchAffiliationsByIds($batchCount, $recordIdsUnique);
     }
     // performance check
     print "END retrieveAffiliationsForAuthors";
 }