/**
  *
  */
 private function _setCurrent($pm_rel_table_name_or_num, $pn_rel_id)
 {
     switch ($this->tableName()) {
         case 'ca_movements':
             // Calcuate current flag for relationships to storage locations and objects
             if (($vs_date_element = $this->getAppConfig()->get('movement_storage_location_date_element')) && ($vs_rel_table = $this->getAppDatamodel()->getTableName($pm_rel_table_name_or_num)) == 'ca_objects') {
                 // get all other movements for this object
                 $t_object = new ca_objects();
                 $t_object->setTransaction($this->getTransaction());
                 if ($t_object->load($pn_rel_id)) {
                     if ($qr_movements_for_object = ca_movements_x_objects::find(array('object_id' => $pn_rel_id), array('returnAs' => 'SearchResult'))) {
                         $va_list = array();
                         while ($qr_movements_for_object->nextHit()) {
                             $va_list[$qr_movements_for_object->get("ca_movements.{$vs_date_element}", array('sortable' => true))] = $qr_movements_for_object->get('ca_movements_x_objects.relation_id');
                         }
                         ksort($va_list, SORT_NUMERIC);
                         $vn_current = array_pop($va_list);
                         if (sizeof($va_list)) {
                             $t_object->getDb()->query("UPDATE ca_movements_x_objects SET source_info = '' WHERE relation_id IN (?)", array(array_values($va_list)));
                             $t_object->getDb()->query("UPDATE ca_movements_x_storage_locations SET source_info = '' WHERE movement_id IN (SELECT movement_id FROM ca_movements_x_objects WHERE relation_id IN (?))", array(array_values($va_list)));
                         }
                         if ($vn_current) {
                             $t_object->getDb()->query("UPDATE ca_movements_x_objects SET source_info = 'current' WHERE relation_id = ?", array($vn_current));
                             $t_object->getDb()->query("UPDATE ca_movements_x_storage_locations SET source_info = 'current' WHERE movement_id IN (SELECT movement_id FROM ca_movements_x_objects WHERE relation_id = ?)", array($vn_current));
                         }
                     }
                 }
             }
             break;
     }
 }
 public function testGetAttributeCount()
 {
     $t_element = ca_attributes::getElementInstance('internal_notes');
     $this->opt_object->getDb()->dieOnError(true);
     $this->assertEquals(2, ca_attributes::getAttributeCount($this->opt_object->getDb(), $this->opt_object->tableNum(), $this->opt_object->getPrimaryKey(), $t_element->getPrimaryKey()));
 }