/**
  * Is called after checkout_payment.php is confirmed,
  * checks if all needed customer data available or 
  * redirect the customer to the checkout_payment.php
  * with a error message otherwise the user get to the
  * ratepay terms page
  * 
  * @global order $order
  */
 public function pre_confirmation_check()
 {
     global $order;
     if (strtoupper($this->code) == 'RATEPAY_SEPA' && !rpGlobals::hasPostEntry($this->code . '_conditions')) {
         $this->error['CONDITIONS'] = 'MISSING';
     }
     if ($this->_isPhoneNeeded()) {
         if (rpGlobals::hasPostEntry($this->code . '_phone') && !rpData::betterEmpty(rpGlobals::getPostEntry($this->code . '_phone'))) {
             rpDb::setXtCustomerEntry(rpSession::getSessionEntry('customer_id'), 'customers_telephone', rpGlobals::getPostEntry($this->code . '_phone'));
             $order->customer['telephone'] = rpGlobals::getPostEntry($this->code . '_phone');
         } else {
             $this->error['PHONE'] = 'MISSING';
         }
     }
     if ($this->_isDobNeeded()) {
         if (rpGlobals::hasPostEntry($this->code . '_birthdate') && !rpData::betterEmpty(rpGlobals::getPostEntry($this->code . '_birthdate'))) {
             if (!$this->_isDobValid(rpGlobals::getPostEntry($this->code . '_birthdate'))) {
                 $this->error['DOB'] = 'INVALID';
             } else {
                 $dob = rpGlobals::getPostEntry($this->code . '_birthdate');
                 $dateStr = substr(xtc_date_raw($dob), 6, 2) . "." . substr(xtc_date_raw($dob), 4, 2) . "." . substr(xtc_date_raw($dob), 0, 4) . " 00:00:00";
                 $dateStr = substr(xtc_date_raw($dob), 0, 4) . '-' . substr(xtc_date_raw($dob), 4, 2) . '-' . substr(xtc_date_raw($dob), 6, 2) . ' 00:00:00';
                 rpDb::setXtCustomerEntry(rpSession::getSessionEntry('customer_id'), 'customers_dob', $dateStr);
             }
         } else {
             $this->error['DOB'] = 'MISSING';
         }
     }
     if ($this->_isCompanyNeeded()) {
         if (rpGlobals::hasPostEntry($this->code . '_company') && !rpData::betterEmpty(rpGlobals::getPostEntry($this->code . '_company'))) {
             $company = rpGlobals::getPostEntry($this->code . '_company');
             $order->customer['company'] = $company;
             $order->billing['company'] = $company;
             $dbInput = xtc_db_input(rpDb::getXtCustomerEntry(rpSession::getSessionEntry('customer_id'), 'customers_default_address_id'));
             xtc_db_query("UPDATE " . TABLE_ADDRESS_BOOK . " " . "SET entry_company = '" . xtc_db_prepare_input($company) . "' " . "WHERE address_book_id = '" . $dbInput . "'");
         } else {
             $this->error['VATID'] = 'MISSING';
         }
     }
     if ($this->_isVatIdNeeded()) {
         if (rpGlobals::hasPostEntry($this->code . '_vatid') && !rpData::betterEmpty(rpGlobals::getPostEntry($this->code . '_vatid'))) {
             rpDb::setXtCustomerEntry(rpSession::getSessionEntry('customer_id'), 'customers_vat_id', rpGlobals::getPostEntry($this->code . '_vatid'));
         } else {
             $this->error['VATID'] = 'MISSING';
         }
     }
     if (!$this->_isAdult(rpDb::getCustomersDob(null, rpSession::getSessionEntry('customer_id')))) {
         $this->error['DOB'] = 'YOUNGER';
     }
     if (!empty($this->error)) {
         $error = urlencode($this->_getErrorString($this->error));
         $url = xtc_href_link(FILENAME_CHECKOUT_PAYMENT, 'error_message=' . $error, 'SSL');
         xtc_redirect($url);
     }
 }
Пример #2
0
 /**
  * Insert ratepay order data
  *
  * @param order $order
  * @param int $orderId
  */
 public static function setRatepayOrderData(order $order, $orderId)
 {
     $payment = $order->info['payment_method'];
     $sql = "INSERT INTO " . $payment . "_orders (" . "order_number, " . "transaction_id, " . "transaction_short_id, " . "descriptor," . "customers_birth," . "fax," . "customers_country_code," . "gender" . ") VALUES ('" . xtc_db_input($orderId) . "', '" . xtc_db_input(rpSession::getRpSessionEntry('transactionId')) . "', '" . xtc_db_input(rpSession::getRpSessionEntry('transactionShortId')) . "','" . xtc_db_input(rpSession::getRpSessionEntry('descriptor')) . "','" . xtc_db_input(rpDb::getCustomersDob(null, rpSession::getSessionEntry('customer_id'))) . "','" . xtc_db_input(rpDb::getCustomersFax(null, rpSession::getSessionEntry('customer_id'))) . "','" . xtc_db_input(rpSession::getRpSessionEntry('customers_country_code')) . "','" . xtc_db_input(rpDb::getXtCustomerEntry(rpSession::getSessionEntry('customer_id'), 'customers_gender')) . "')";
     xtc_db_query($sql);
     self::setRpOrderItems($order, $orderId, $payment);
 }