|  | @@ -54,10 +54,10 @@ function chado_stock_load($nodes) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    $new_nodes = array();
 | 
	
		
			
				|  |  |    foreach ($nodes as $nid => $node) {
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      // get the stock details from chado
 | 
	
		
			
				|  |  |      $stock_id = chado_get_id_from_nid('stock', $nid);
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      // if the nid does not have a matching record then skip this node.
 | 
	
		
			
				|  |  |      // this can happen with orphaned nodes.
 | 
	
		
			
				|  |  |      if (!$stock_id) {
 | 
	
	
		
			
				|  | @@ -67,7 +67,7 @@ function chado_stock_load($nodes) {
 | 
	
		
			
				|  |  |      // build the variable with all the stock details
 | 
	
		
			
				|  |  |      $values = array('stock_id' => $stock_id);
 | 
	
		
			
				|  |  |      $stock = chado_generate_var('stock', $values);
 | 
	
		
			
				|  |  | -    
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      // add in the uniquename and the description as these are both text fields
 | 
	
		
			
				|  |  |      $stock = chado_expand_var($stock, 'field', 'stock.uniquename');
 | 
	
		
			
				|  |  |      $stock = chado_expand_var($stock, 'field', 'stock.description');
 | 
	
	
		
			
				|  | @@ -204,7 +204,7 @@ function chado_stock_form($node, $form_state) {
 | 
	
		
			
				|  |  |      $dbxref_description = $form_state['input']['db_description'];
 | 
	
		
			
				|  |  |      $dbxref_database = $form_state['input']['database'];
 | 
	
		
			
				|  |  |    }
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    $form['names'] = array(
 | 
	
		
			
				|  |  |      '#type' => 'fieldset',
 | 
	
		
			
				|  |  |      '#title' => t('Stock Name')
 | 
	
	
		
			
				|  | @@ -224,10 +224,12 @@ function chado_stock_form($node, $form_state) {
 | 
	
		
			
				|  |  |      '#required'       => TRUE
 | 
	
		
			
				|  |  |    );
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -  $form['names']['stock_id'] = array(
 | 
	
		
			
				|  |  | -    '#type' => 'hidden',
 | 
	
		
			
				|  |  | -    '#value' => $stock_id,
 | 
	
		
			
				|  |  | -  );
 | 
	
		
			
				|  |  | +  if ($stock_id > 0) {
 | 
	
		
			
				|  |  | +    $form['names']['stock_id'] = array(
 | 
	
		
			
				|  |  | +      '#type' => 'hidden',
 | 
	
		
			
				|  |  | +      '#value' => $stock_id,
 | 
	
		
			
				|  |  | +    );
 | 
	
		
			
				|  |  | +  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    $form['details'] = array(
 | 
	
		
			
				|  |  |      '#type' => 'fieldset',
 | 
	
	
		
			
				|  | @@ -236,7 +238,7 @@ function chado_stock_form($node, $form_state) {
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    $type_options = tripal_get_cvterm_default_select_options('stock', 'type_id', 'stock types');
 | 
	
		
			
				|  |  |    $type_options[0] = 'Select a Type';
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    $form['details']['type_id'] = array(
 | 
	
		
			
				|  |  |      '#type' => 'select',
 | 
	
		
			
				|  |  |      '#title' => t('Type of Stock'),
 | 
	
	
		
			
				|  | @@ -364,14 +366,14 @@ function chado_stock_validate(&$node, $form, &$form_state) {
 | 
	
		
			
				|  |  |    $node->stock_description = trim($node->stock_description);
 | 
	
		
			
				|  |  |    $node->accession = trim($node->accession);
 | 
	
		
			
				|  |  |    $node->db_description = trim($node->db_description);
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    $int_in_chado_sql = "SELECT count(*) as count FROM {:table} WHERE :column = :value";
 | 
	
		
			
				|  |  |    $string_in_chado_sql = "SELECT count(*) as count FROM {:table} WHERE :column = :value";
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |    // if this is an update, we want to make sure that a different stock for
 | 
	
		
			
				|  |  |    // the organism doesn't already have this uniquename. We don't want to give
 | 
	
		
			
				|  |  |    // two sequences the same uniquename
 | 
	
		
			
				|  |  | -  if (property_exists($node, 'nid')) {
 | 
	
		
			
				|  |  | +  if (property_exists($node, 'nid') and property_exists($node, 'stock_id')) {
 | 
	
		
			
				|  |  |      $sql = "
 | 
	
		
			
				|  |  |        SELECT *
 | 
	
		
			
				|  |  |        FROM {stock} S
 | 
	
	
		
			
				|  | @@ -465,7 +467,7 @@ function chado_stock_validate(&$node, $form, &$form_state) {
 | 
	
		
			
				|  |  |   * @ingroup tripal_stock
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function chado_stock_insert($node) {
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    $node->uniquename   = trim($node->uniquename);
 | 
	
		
			
				|  |  |    $node->sname        = trim($node->sname);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -473,7 +475,7 @@ function chado_stock_insert($node) {
 | 
	
		
			
				|  |  |    // we can skip adding the stock to chado as it is already there, although
 | 
	
		
			
				|  |  |    // we do need to proceed with the rest of the insert
 | 
	
		
			
				|  |  |    if (!property_exists($node, 'stock_id')) {
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |      // before we can add the stock, we must add the dbxref if one has been
 | 
	
		
			
				|  |  |      // provided by the user.
 | 
	
		
			
				|  |  |      $dbxref_status = 0;
 | 
	
	
		
			
				|  | @@ -558,7 +560,7 @@ function chado_stock_insert($node) {
 | 
	
		
			
				|  |  |        // Now add in relationships
 | 
	
		
			
				|  |  |        $details = array(
 | 
	
		
			
				|  |  |          'relationship_table' => 'stock_relationship',
 | 
	
		
			
				|  |  | -        'foreignkey_value' => $node->stock_id
 | 
	
		
			
				|  |  | +        'foreignkey_value' => $stock_id
 | 
	
		
			
				|  |  |        );
 | 
	
		
			
				|  |  |        chado_update_node_form_relationships($node, $details);
 | 
	
		
			
				|  |  |      }
 | 
	
	
		
			
				|  | @@ -605,7 +607,7 @@ function chado_stock_insert($node) {
 | 
	
		
			
				|  |  |   * @ingroup tripal_stock
 | 
	
		
			
				|  |  |   */
 | 
	
		
			
				|  |  |  function chado_stock_update($node) {
 | 
	
		
			
				|  |  | -  
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |    $node->uniquename   = trim($node->uniquename);
 | 
	
		
			
				|  |  |    $node->sname        = trim($node->sname);
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -898,7 +900,7 @@ function tripal_stock_node_insert($node) {
 | 
	
		
			
				|  |  |        // on an insert we need to add the stock_id to the node object
 | 
	
		
			
				|  |  |        // so that the tripal_stock_get_stock_url function can set the URL properly
 | 
	
		
			
				|  |  |        $node->stock_id = chado_get_id_from_nid('stock', $node->nid);
 | 
	
		
			
				|  |  | -      
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        // remove any previous alias
 | 
	
		
			
				|  |  |        db_query("DELETE FROM {url_alias} WHERE source = :source", array(':source' => "node/$node->nid"));
 | 
	
		
			
				|  |  |  
 | 
	
	
		
			
				|  | @@ -1042,7 +1044,7 @@ function tripal_stock_set_urls($na = NULL, $job = NULL) {
 | 
	
		
			
				|  |  |      $sql = "SELECT * FROM {chado_stock}";
 | 
	
		
			
				|  |  |      $nodes = db_query($sql);
 | 
	
		
			
				|  |  |      foreach ($nodes as $node) {
 | 
	
		
			
				|  |  | -       
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |        // get the URL alias
 | 
	
		
			
				|  |  |        $src = "node/$node->nid";
 | 
	
		
			
				|  |  |        $dst = tripal_stock_get_stock_url($node, $url_alias);
 |