Hi,
1. Currency values in epesi are stored in special format "<value>__<currency_id>" and you should use Utils_CurrencyFieldCommon::get_values method to obtain array where zero indexed element is value, and next element is currency id. However in my opinion the most readable method is to use list clause.
To format human readable value with currency sign you should use Utils_CurrencyFieldCommon::format method.
list($value, $currency_id) = Utils_CurrencyFieldCommon::get_values($cash_amount);
$value += 100;
print Utils_CurrencyFieldCommon::format($value, $currency_id);
2. You have to use custom filters. At first enable filtering for your currency field.
Then in place where you display RB of your module create custom filter
$cur = Utils_CurrencyFieldCommon::get_currencies();
$args = array('all' => 'All'); // array of values to select
$trans = array('all' => array()); // array of crits for selected values - so called translation table
foreach ($cur as $id => $code) {
$args[$id] = $code;
$like_query_str = "%__$id";
$trans[$id] = array('~your_field_name' => $like_query_str);
}
$rb->set_custom_filter('your_field_name', array('type' => 'select', 'label' => __('Currency for Field Name'), 'args' => $args, 'trans' => $trans));
I think that such filter above can be useful in some circumstances, so I will opt to set such filter as default for currency field.
3. No, because of format used to encode currency into price.
Regards,
Adam