Example #1
0
 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));
         }
     }
 }