public static function isChunkCompleted(Chunks_ChunkStruct $chunk)
 {
     // find the latest translation date for this chunk
     // if no date is returned then the chunk cannot be completed.
     $dao = new Translations_SegmentTranslationDao(Database::obtain());
     $latestTranslation = $dao->lastTranslationByJobOrChunk($chunk);
     if ($latestTranslation === false) {
         return false;
     }
     $conn = Database::obtain()->getConnection();
     $stmt = $conn->prepare("SELECT * FROM chunk_completion_events " . " WHERE id_job = :id_job AND password = :password " . " AND job_first_segment = :job_first_segment " . " AND job_last_segment = :job_last_segment " . " AND create_date >= :latest_translation_at ");
     $stmt->setFetchMode(PDO::FETCH_CLASS, 'Chunks_ChunkCompletionEventStruct');
     $stmt->execute(array('id_job' => $chunk->id, 'password' => $chunk->password, 'job_first_segment' => $chunk->job_first_segment, 'job_last_segment' => $chunk->job_last_segment, 'latest_translation_at' => $latestTranslation->translation_date));
     $fetched = $stmt->fetch();
     return $fetched != false;
 }
Exemple #2
0
 public function findLatestTranslation()
 {
     $dao = new Translations_SegmentTranslationDao(Database::obtain());
     return $dao->lastTranslationByJobOrChunk($this);
 }