/**
  * Retrieve payment selection array
  * 
  * @return array
  */
 public function selection()
 {
     global $order;
     $display = array('id' => $this->code, 'module' => xtc_image(DIR_WS_IMAGES . '/' . $this->code . '_checkout_logo.png'));
     $neededFields = $this->_getNeededFields();
     if (!empty($neededFields)) {
         $display['fields'] = $neededFields;
     }
     $dob = rpDb::getCustomersDob(null, rpSession::getSessionEntry('customer_id'));
     if ($dob !== '0000-00-00' && !$this->_isAdult($dob)) {
         $display = null;
     }
     if ($order->billing['country']['iso_code_2'] != 'DE' && $order->billing['country']['iso_code_2'] != 'AT' && $order->billing['country']['iso_code_2'] != 'CH') {
         $display = null;
     }
     if (!rpData::isRatepayAvailable()) {
         $display = null;
     }
     $minVarName = 'min' . ucfirst(strtolower($order->billing['country']['iso_code_2']));
     $maxVarName = 'max' . ucfirst(strtolower($order->billing['country']['iso_code_2']));
     if (floatval($order->info['total']) < floatval($this->{$minVarName}) || floatval($order->info['total']) > floatval($this->{$maxVarName})) {
         $display = null;
     }
     $vatId = rpDb::getCustomersVatId(null, rpSession::getSessionEntry('customer_id'));
     $b2bVarName = 'b2b' . ucfirst(strtolower($order->billing['country']['iso_code_2']));
     if (!$this->{$b2bVarName} && (!empty($order->customer['company']) || !empty($order->billing['company']) || !empty($vatId))) {
         $display = null;
     }
     if (sizeof($order->delivery) != sizeof($order->billing)) {
         $display = null;
     } else {
         if (is_array($order->billing)) {
             foreach ($order->billing as $key => $val) {
                 if ($order->billing[$key] != $order->delivery[$key]) {
                     $display = null;
                 }
                 unset($val);
             }
         }
     }
     return $display;
 }