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(); }