/**
  * Render this step with the default template
  *
  * @return void
  *
  * @author Sascha Koehler <*****@*****.**>
  * @copyright 2011 pixeltricks GmbH
  * @since 06.04.2011
  */
 public function init()
 {
     $paymentConfirmationText = '';
     $checkoutData = $this->controller->getCombinedStepData();
     if (isset($checkoutData['PaymentMethod'])) {
         $this->paymentMethodObj = SilvercartPaymentMethod::get()->byID($checkoutData['PaymentMethod']);
         if ($this->paymentMethodObj) {
             if (isset($checkoutData['orderId'])) {
                 $orderObj = SilvercartOrder::get()->byID($checkoutData['orderId']);
                 if ($orderObj) {
                     $paymentConfirmationText = $this->paymentMethodObj->processPaymentConfirmationText($orderObj);
                     $this->paymentMethodObj->processPaymentAfterOrder($orderObj);
                 }
             }
         }
     }
     $templateVariables = array('PaymentConfirmationText' => $paymentConfirmationText);
     $output = $this->customise($templateVariables)->renderWith('SilvercartCheckoutFormStepDefaultOrderConfirmation');
     return $output;
 }
 /**
  * Here we set some preferences.
  *
  * @return void
  *
  * @author Sascha Koehler <*****@*****.**>, Sebastian Diel <*****@*****.**>
  * @since 11.03.2013
  */
 public function preferences()
 {
     $paymentMethods = SilvercartPaymentMethod::get()->filter("isActive", 1);
     $stepIsVisible = true;
     if ($paymentMethods->count() == 0) {
         $this->addMessage('Keine Zahlungsarten definiert!');
     } else {
         if ($this->SkipPaymentStep()) {
             $stepIsVisible = false;
         }
         $this->preferences['stepIsVisible'] = $stepIsVisible;
         $this->preferences['stepTitle'] = _t('SilvercartCheckoutFormStep4.TITLE', 'Payment');
         $this->preferences['submitButtonTitle'] = _t('SilvercartCheckoutFormStep.FORWARD', 'Next');
         $this->preferences['fillInRequestValues'] = true;
         $this->preferences['loadShoppingcartModules'] = false;
         $this->preferences['createShoppingcartForms'] = false;
         $this->preferences['doJsValidationScrolling'] = false;
     }
     parent::preferences();
 }
 /**
  * Creates the upload folder for payment images if it doesn't exist.
  *
  * @param array  $paymentLogos      The payment logos as associative array:
  *                                  ['LogoName' => 'PATH_TO_FILE', ....]
  * @param string $paymentModuleName The name of the payment module
  *
  * @return void
  *
  * @author Sebastian Diel <*****@*****.**>,
  *         Sascha Koehler <*****@*****.**>
  * @since 16.06.2014
  */
 public function createLogoImageObjects($paymentLogos, $paymentModuleName)
 {
     //make sure that the folder "Uploads" exists
     Folder::find_or_make('Uploads');
     $paymentModule = SilvercartPaymentMethod::get()->filter(array("ClassName" => $paymentModuleName))->sort(array("ID" => "ASC"))->first();
     if ($paymentModule) {
         if (count($this->getPossiblePaymentChannels()) > 0) {
             // Multiple payment channels
             foreach ($paymentLogos as $paymentChannel => $logos) {
                 $paymentChannelMethod = DataObject::get_one($paymentModuleName, sprintf("\"PaymentChannel\"='%s'", $paymentChannel), true, $paymentModuleName . ".ID");
                 if ($paymentChannelMethod) {
                     if (!$paymentChannelMethod->PaymentLogos()->exists()) {
                         foreach ($logos as $title => $logo) {
                             $paymentLogo = new SilvercartImage();
                             $paymentLogo->Title = $title;
                             $storedLogo = Image::get()->filter('Name', basename($logo))->first();
                             if ($storedLogo) {
                                 $paymentLogo->ImageID = $storedLogo->ID;
                             } else {
                                 file_put_contents(Director::baseFolder() . '/' . $this->uploadsFolder->Filename . basename($logo), file_get_contents(Director::baseFolder() . $logo));
                                 $image = new Image();
                                 $image->setFilename($this->uploadsFolder->Filename . basename($logo));
                                 $image->setName(basename($logo));
                                 $image->Title = basename($logo, '.png');
                                 $image->ParentID = $this->uploadsFolder->ID;
                                 $image->write();
                                 $paymentLogo->ImageID = $image->ID;
                             }
                             $paymentLogo->write();
                             $paymentChannelMethod->PaymentLogos()->add($paymentLogo);
                         }
                     }
                 }
             }
         } else {
             // Single payment channels
             foreach ($paymentLogos as $title => $logo) {
                 if (!$paymentModule->PaymentLogos()->exists()) {
                     $paymentLogo = new SilvercartImage();
                     $paymentLogo->Title = $title;
                     $storedLogo = Image::get()->filter('Name', basename($logo))->first();
                     if ($storedLogo) {
                         $paymentLogo->ImageID = $storedLogo->ID;
                     } else {
                         file_put_contents(Director::baseFolder() . '/' . $this->uploadsFolder->Filename . basename($logo), file_get_contents(Director::baseFolder() . $logo));
                         $image = new Image();
                         $image->setFilename($this->uploadsFolder->Filename . basename($logo));
                         $image->setName(basename($logo));
                         $image->Title = basename($logo, '.png');
                         $image->ParentID = $this->uploadsFolder->ID;
                         $image->write();
                         $paymentLogo->ImageID = $image->ID;
                     }
                     $paymentLogo->write();
                     $paymentModule->PaymentLogos()->add($paymentLogo);
                 }
             }
         }
     }
 }