Merge branch '2013.10' into 2014.11
authorPhilipp Schüle <p.schuele@metaways.de>
Wed, 18 Feb 2015 16:36:11 +0000 (17:36 +0100)
committerPhilipp Schüle <p.schuele@metaways.de>
Wed, 18 Feb 2015 16:36:11 +0000 (17:36 +0100)
1  2 
tine20/Tinebase/Record/RecordSet.php

@@@ -104,8 -104,7 +104,8 @@@ class Tinebase_Record_RecordSet impleme
      public function addRecord(Tinebase_Record_Interface $_record, $_index = NULL)
      {
          if (! $_record instanceof $this->_recordClass) {
 -            throw new Tinebase_Exception_Record_NotAllowed('Attempt to add/set record of wrong record class. Should be ' . $this->_recordClass);
 +            throw new Tinebase_Exception_Record_NotAllowed('Attempt to add/set record of wrong record class ('
 +                . get_class($_record) . ') Should be ' . $this->_recordClass);
          }
          $this->_listOfRecords[] = $_record;
          end($this->_listOfRecords);
       *
       * @param string $_name property name
       * @param array  $_values index => property value
+      * @param boolean $skipMissing
       * @throws Tinebase_Exception_Record_NotDefined
       */
-     public function setByIndices($_name, array $_values)
+     public function setByIndices($_name, array $_values, $skipMissing = false)
      {
          foreach ($_values as $index => $value) {
              if (! (isset($this->_listOfRecords[$index]) || array_key_exists($index, $this->_listOfRecords))) {
-                 throw new Tinebase_Exception_Record_NotDefined('Could not find record with index ' . $index);
+                 if ($skipMissing) {
+                     if (Tinebase_Core::isLogLevel(Zend_Log::NOTICE)) Tinebase_Core::getLogger()->notice(__METHOD__ . '::' . __LINE__ 
+                         . ' Skip missing record ' . $index . ' => ' . $value . ' property: ' . $_name);
+                     continue;
+                 } else {
+                     throw new Tinebase_Exception_Record_NotDefined('Could not find record with index ' . $index);
+                 }
              }
              $this->_listOfRecords[$index]->$_name = $value;
          }