Index: uc_aac.module
===================================================================
RCS file: /cvs/drupal-contrib/contributions/modules/uc_aac/uc_aac.module,v
retrieving revision 1.3.2.8
diff -u -r1.3.2.8 uc_aac.module
--- uc_aac.module	30 Jun 2008 16:14:15 -0000	1.3.2.8
+++ uc_aac.module	7 Oct 2008 23:29:02 -0000
@@ -72,9 +72,14 @@
 function _uc_aac_markup($form_id, $nid) {
   $result = db_query('SELECT sell_price FROM {uc_products} WHERE nid=%d AND vid=(SELECT vid FROM {node} WHERE nid=%d)', $nid, $nid);
   $total_attributes = db_num_rows(db_query("SELECT * FROM {uc_product_attributes} WHERE nid = %d ORDER BY ordering", $nid));
-  $price = 0;
+  $price = array();
+  $price['full'] = 0;
+  $price['discount'] = 0;
   if ($product = db_fetch_object($result)) {
-    $price = $product->sell_price;
+    $price['full'] = $product->sell_price;
+  }
+  if (module_exists('uc_discounts')) {
+    $price['discount'] = uc_discounts_product_discount_price($product);
   }
   $update_attributes = 0;
   if (variable_get('uc_aac_attribute_reprice', '1') == 1 && (variable_get('uc_attribute_option_price_format', 'adjustment') == 'adjustment' || $total_attributes > 1) && (variable_get('uc_attribute_option_price_format', 'adjustment') != 'none')) {
@@ -90,7 +95,8 @@
    * divs as 'node-$nid'.
    */
   return '
-    var replace_price_'. $nid .' = "'. uc_currency_format($price) .'";
+    var replace_full_price_'. $nid .' = "'. uc_currency_format($price['full']) .'";
+    var replace_discount_price_'. $nid .' = "'. uc_currency_format($price['discount']) .'";
     var aac_'. $nid .'_update = 0;
 
     /**
@@ -202,16 +208,30 @@
                 }
               }
             }
-            var currentsellHTML= $("#node-'. $nid .' .sell_price").html();
+            var currentfullHTML = $("#node-'. $nid .' .full_price").html();
+            var currentsellHTML = $("#node-'. $nid .' .sell_price").html();
             var currentdisplayHTML = $("#node-'. $nid .' .display_price").html();
-            updated_price = json_results.updated_price;
-            if (currentdisplayHTML) {
-              $("#node-'. $nid .' .display_price").html(currentdisplayHTML.replace(replace_price_'. $nid .', updated_price));
+            updated_full_price = json_results.updated_full_price;
+            updated_discount_price = json_results.updated_discount_price;
+            if (currentfullHTML) {
+              $("#node-'. $nid .' .full_price").html(currentfullHTML.replace(replace_full_price_'. $nid .', updated_full_price));
+              if (currentdisplayHTML) {
+                $("#node-'. $nid .' .display_price").html(currentdisplayHTML.replace(replace_discount_price_'. $nid .', updated_discount_price));
+              }
+              if (currentsellHTML) {
+                $("#node-'. $nid .' .sell_price").html(currentsellHTML.replace(replace_discount_price_'. $nid .', updated_discount_price));
+              }
             }
-            if (currentsellHTML) {
-              $("#node-'. $nid .' .sell_price").html(currentsellHTML.replace(replace_price_'. $nid .', updated_price));
+            else {
+              if (currentdisplayHTML) {
+                $("#node-'. $nid .' .display_price").html(currentdisplayHTML.replace(replace_full_price_'. $nid .', updated_full_price));
+              }
+              if (currentsellHTML) {
+                $("#node-'. $nid .' .sell_price").html(currentsellHTML.replace(replace_full_price_'. $nid .', updated_full_price));
+              }
             }
-            replace_price_'. $nid .' = updated_price;
+            replace_full_price_'. $nid .' = updated_full_price;
+            replace_discount_price_'. $nid .' = updated_discount_price;
           }
         },
         error: function() {
@@ -232,8 +252,10 @@
   drupal_set_header("Content-Type: plain/text; charset=utf-8");
   $field_values = $_POST;
   $nid = $field_values['uc_aac_nid'];
-  $base_price = db_result(db_query('SELECT sell_price FROM {uc_products} WHERE nid=%d AND vid=(SELECT vid FROM {node} WHERE nid=%d)', $nid, $nid));
-  $updated_price = $base_price;
+  $product = db_fetch_object(db_query('SELECT sell_price FROM {uc_products} WHERE nid=%d AND vid=(SELECT vid FROM {node} WHERE nid=%d)', $nid, $nid));
+  $updated_full_price = $product->sell_price;
+  $updated_discount_price = $product->sell_price;
+  $uc_discounts = module_exists('uc_discounts');
   $attributes = $field_values['attributes'];
   $types = array(0 => "text", 1 => "select", 2 => "radio");
   if ($attributes) {
@@ -248,7 +270,14 @@
         $prices[$option->oid] = $option->price;
         if ($option->oid == $attribute) {
           $used_price[$aid] = $option->price;
-          $updated_price += $option->price;
+          $updated_full_price += $option->price;
+          // If uc_discounts module is installed
+          if($uc_discounts) {
+            // Update product price
+            $product->sell_price += $option->price;
+            // Update discount price
+            $updated_discount_price = uc_discounts_product_discount_price($product);
+          }
         }
       }
       $attribute_options = array();
@@ -266,7 +295,11 @@
       $output['attributes'][] = array('name' => 'attributes['. $aid .']', 'type' => $types[$display], 'options' => $attribute_options);
     }
   }
-  $output['updated_price'] = uc_currency_format($updated_price);
+  $output['updated_full_price'] = uc_currency_format($updated_full_price);
+  // If uc_discounts module is installed
+  if($uc_discounts) {
+    $output['updated_discount_price'] = uc_currency_format($updated_discount_price);
+  }
   print drupal_to_js($output);
   exit();
 }
