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; }
public function findLatestTranslation() { $dao = new Translations_SegmentTranslationDao(Database::obtain()); return $dao->lastTranslationByJobOrChunk($this); }