function commerce_sagepay_release_form in Drupal Commerce SagePay Integration 7
Form callback: allows the user to refund a transaction.
Parameters
array $form: The form array.
array $form_state: The form state array
commerce_order $order: The Commerce Order to process.
commerce_payment_transaction $transaction: The Commerce Payment Transaction to process.
Return value
mixed The form array.
1 string reference to 'commerce_sagepay_release_form'
- commerce_sagepay_menu in ./
commerce_sagepay.module - Implements hook_menu().
File
- includes/
commerce_sagepay_release.inc, line 26
Code
function commerce_sagepay_release_form($form, &$form_state, $order, $transaction) {
$form_state['order'] = $order;
$form_state['transaction'] = $transaction;
// Load and store the payment method instance for this transaction.
$payment_method = commerce_payment_method_instance_load($transaction->instance_id);
$form_state['payment_method'] = $payment_method;
$balance = commerce_payment_order_balance($order);
// Assume we are going to want to refund the whole transaction.
$default_amount = $transaction->amount;
// Convert the price amount to a user friendly decimal value.
$default_amount = commerce_currency_amount_to_decimal($default_amount, $transaction->currency_code);
$description = implode('<br />', array(
t('Release: @amount', array(
'@amount' => commerce_currency_format($transaction->amount, $transaction->currency_code),
)),
t('Order balance: @balance', array(
'@balance' => commerce_currency_format($balance['amount'], $balance['currency_code']),
)),
));
$form['amount'] = array(
'#type' => 'textfield',
'#title' => t('Release amount'),
'#description' => check_plain($description),
'#default_value' => $default_amount,
'#field_suffix' => check_plain($transaction->currency_code),
'#size' => 16,
);
$form = confirm_form($form, t('How much do you want to release?'), 'admin/commerce/orders/' . $order->order_id . '/payment', '', t('Release'), t('Cancel'), 'confirm');
return $form;
}