Beispiel #1
0
 /**
  * Saves a logbook record
  * 
  * @param   Tinebase_Model_ModificationLog _modification 
  * @return  string id;
  * @throws  Tinebase_Exception_Record_Validation
  */
 public function setModification(Tinebase_Model_ModificationLog $_modification)
 {
     if ($_modification->isValid()) {
         $id = $_modification->generateUID();
         $_modification->setId($id);
         $_modification->convertDates = true;
         $modificationArray = $_modification->toArray();
         if (is_array($modificationArray['new_value'])) {
             throw new Tinebase_Exception_Record_Validation("New value is an array! \n" . print_r($modificationArray['new_value'], true));
         }
         $this->_table->insert($modificationArray);
     } else {
         throw new Tinebase_Exception_Record_Validation("_modification data is not valid! \n" . print_r($_modification->getValidationErrors(), true));
     }
     return $id;
 }
 /**
  * Saves a logbook record
  * 
  * @param Tinebase_Model_ModificationLog $modification
  * @return string id
  */
 public function setModification(Tinebase_Model_ModificationLog $modification)
 {
     $modification->isValid(TRUE);
     $id = $modification->generateUID();
     $modification->setId($id);
     $modification->convertDates = true;
     $modificationArray = $modification->toArray();
     if (is_array($modificationArray['new_value'])) {
         throw new Tinebase_Exception_Record_Validation("New value is an array! \n" . print_r($modificationArray['new_value'], true));
     }
     if (Tinebase_Core::isLogLevel(Zend_Log::TRACE)) {
         Tinebase_Core::getLogger()->trace(__METHOD__ . '::' . __LINE__ . " Inserting modlog: " . print_r($modificationArray, TRUE));
     }
     try {
         $this->_table->insert($modificationArray);
     } catch (Zend_Db_Statement_Exception $zdse) {
         if (Tinebase_Core::isLogLevel(Zend_Log::DEBUG)) {
             Tinebase_Core::getLogger()->debug(__METHOD__ . '::' . __LINE__ . $zdse->getMessage() . ' ' . print_r($modification->toArray(), TRUE));
         }
         // check if unique key constraint failed
         $filter = new Tinebase_Model_ModificationLogFilter(array(array('field' => 'seq', 'operator' => 'equals', 'value' => $modification->seq), array('field' => 'record_type', 'operator' => 'equals', 'value' => $modification->record_type), array('field' => 'record_id', 'operator' => 'equals', 'value' => $modification->record_id), array('field' => 'modified_attribute', 'operator' => 'equals', 'value' => $modification->modified_attribute)));
         $result = $this->_backend->search($filter);
         if (count($result) > 0) {
             throw new Tinebase_Timemachine_Exception_ConcurrencyConflict('Seq ' . $modification->seq . ' for record ' . $modification->record_id . ' already exists');
         } else {
             throw $zdse;
         }
     }
     return $id;
 }