? 738020.patch
? 738020_2.patch
Index: storminvoice/storminvoice.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/storm/storminvoice/storminvoice.module,v
retrieving revision 1.4.4.81
diff -u -p -r1.4.4.81 storminvoice.module
--- storminvoice/storminvoice.module	9 Sep 2010 22:16:36 -0000	1.4.4.81
+++ storminvoice/storminvoice.module	3 Oct 2010 18:55:23 -0000
@@ -548,6 +548,16 @@ function storminvoice_form(&$node) {
       '#size' => 20,
     );
 
+    $form['group4'][$i]['first']['items_'. $i .'_src_nid'] = array(
+      '#type' => 'hidden',
+      '#default_value' => isset($node->items[$i]->src_nid) ? $node->items[$i]->src_nid : NULL,
+    );
+
+    $form['group4'][$i]['first']['items_'. $i .'_src_vid'] = array(
+      '#type' => 'hidden',
+      '#default_value' => isset($node->items[$i]->src_vid) ? $node->items[$i]->src_vid : NULL,
+    );
+
     if (!variable_get('storm_tax_display', TRUE)) {
       $form['group4'][$i]['tax1']['#type'] = 'hidden';
       $form['group4'][$i]['tax2']['#type'] = 'hidden';
@@ -723,6 +733,12 @@ function _storminvoice_beforesave(&$node
     $variable = 'items_'. $j .'_tax2percent';
     $node->items[$j]->tax2percent = $node->$variable;
     $node->items[$j]->weight = $j;
+
+    $variable = 'items_'. $j .'_src_nid';
+    $node->items[$j]->src_nid = $node->$variable;
+
+    $variable = 'items_'. $j .'_src_vid';
+    $node->items[$j]->src_vid = $node->$variable;
     
     // Update taxes
     storm_taxation($node->items[$j]);
@@ -735,21 +751,28 @@ function _storminvoice_beforesave(&$node
 function _storminvoice_insert_items($node) {
   $j = 0;
   while (isset($node->items[$j])) { //removed is_object for 684016
+    $node->items[$j]->src_nid = (isset($node->items[$j]->src_nid)) ? $node->items[$j]->src_nid : $node->src_nid;
+    $node->items[$j]->src_vid = (isset($node->items[$j]->src_vid)) ? $node->items[$j]->src_vid : $node->src_vid;
+
     db_query("INSERT INTO {storminvoice_items}
       (invoice_nid, invoice_vid, amount, description,
       tax1app, tax1percent, tax1, 
       tax2app, tax2percent, tax2, 
-      total, weight
+      total, weight,
+      src_nid, src_vid
       ) VALUES
       (%d, %d, %f, '%s',
       %d, %f, %f,
       %d, %f, %f,
-      %f, %d
+      %f, %d,
+      %d, %d
       )",
       $node->nid, $node->vid, $node->items[$j]->amount, $node->items[$j]->description,
       $node->items[$j]->tax1app, $node->items[$j]->tax1percent, $node->items[$j]->tax1,
       $node->items[$j]->tax2app, $node->items[$j]->tax2percent, $node->items[$j]->tax2,
-      $node->items[$j]->total, $node->items[$j]->weight);
+      $node->items[$j]->total, $node->items[$j]->weight,
+      $node->items[$j]->src_nid, $node->items[$j]->src_vid
+      );
     $j++;
   }
 }
Index: storminvoice/storminvoice.theme.inc
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/storm/storminvoice/storminvoice.theme.inc,v
retrieving revision 1.2.4.55
diff -u -p -r1.2.4.55 storminvoice.theme.inc
--- storminvoice/storminvoice.theme.inc	28 Jul 2010 14:52:35 -0000	1.2.4.55
+++ storminvoice/storminvoice.theme.inc	3 Oct 2010 18:55:23 -0000
@@ -344,7 +344,7 @@ function theme_storminvoice_view($node, 
   if ($node->tax2) {
     $s .= "sit.tax2, ";
   }
-  $s .= "sit.total FROM {storminvoice_items} sit WHERE sit.invoice_vid=%d ORDER BY sit.weight ASC";
+  $s .= "sit.total, sit.src_nid FROM {storminvoice_items} sit WHERE sit.invoice_vid=%d ORDER BY sit.weight ASC";
   $r = db_query($s, $node->vid);
 
   $invoice_items = array();
@@ -364,6 +364,10 @@ function theme_storminvoice_view($node, 
     $invoice_items[$key]['tax2'] = sprintf("%.2f", $inv_item['tax2']);
     }
     $invoice_items[$key]['total'] = sprintf("%.2f", $inv_item['total']);
+    if ($invoice_items[$key]['src_nid'] != 0 AND $invoice_items[$key]['src_nid'] != NULL) {
+      $invoice_items[$key]['description'] = l(t($invoice_items[$key]['description']), 'node/'. $inv_item['src_nid']);
+    }
+    unset($invoice_items[$key]['src_nid']);
   }
   
   $node->content['group4'] = array(
