public function getSegments() { $dao = new Segments_SegmentDao(Database::obtain()); return $dao->getByChunkId($this->id, $this->password); }
private function updateJobPEE(array $old_translation, array $new_translation) { $segmentDao = new Segments_SegmentDao(Database::obtain()); $segment_original = $segmentDao->getById($this->id_segment); $segmentRawWordCount = $segment_original->raw_word_count; $segment = new EditLog_EditLogSegmentClientStruct(array('suggestion' => $old_translation['suggestion'], 'translation' => $old_translation['translation'], 'raw_word_count' => $segmentRawWordCount, 'time_to_edit' => $old_translation['time_to_edit'] + $new_translation['time_to_edit'])); $oldSegment = clone $segment; $oldSegment->time_to_edit = $old_translation['time_to_edit']; $oldPEE = $segment->getPeePerc(); $oldPee_weighted = $oldPEE * $segmentRawWordCount; $segment->translation = $new_translation['translation']; $segment->pe_effort_perc = null; $newPEE = $segment->getPeePerc(); $newPee_weighted = $newPEE * $segmentRawWordCount; if ($segment->isValidForEditLog()) { //if the segment was not valid for editlog and now it is, then just add the weighted pee if (!$oldSegment->isValidForEditLog()) { $newTotalJobPee = $this->jobData['avg_post_editing_effort'] + $newPee_weighted; } else { $newTotalJobPee = $this->jobData['avg_post_editing_effort'] - $oldPee_weighted + $newPee_weighted; } $queryUpdateJob = "update jobs\n set avg_post_editing_effort = %f\n where id = %d and password = '******'"; $db = Database::obtain(); $db->query(sprintf($queryUpdateJob, $newTotalJobPee, $this->id_job, $this->password)); } else { if ($oldSegment->isValidForEditLog()) { $newTotalJobPee = $this->jobData['avg_post_editing_effort'] - $oldPee_weighted; $queryUpdateJob = "update jobs\n set avg_post_editing_effort = %f\n where id = %d and password = '******'"; $db = Database::obtain(); $db->query(sprintf($queryUpdateJob, $newTotalJobPee, $this->id_job, $this->password)); } } }