In order to get price-by-role that works with views and can display the old price along with the discounted price, I'm using the solution proposed here:
www.ubercart.org/forum/support/12436/price_pulled_cck_field_depending_role
I've only added isset to check if the field is used.
Using Calculate Product Discounts, and an Execute custom PHP code action, it looks like this:
if (isset($product->field_dealer[0]['value'])) {
$product->sell_price = $product->field_dealer[0]['value'];
}
and... it works!
Unfortunately, the change in price does not show up in the subtotal excluding taxes on checkout, nor on the review page.
Any ideas?