Example #1
0
 /**
  * Process checkout
  *
  * @param Order $objOrder
  *
  * @return bool
  */
 public function trackOrder(Order $objOrder)
 {
     $objConfig = Config::findByPk($objOrder->config_id);
     if (null !== $objConfig) {
         if ($objConfig->ga_enable) {
             $this->trackGATransaction($objConfig, $objOrder);
         }
     }
     return true;
 }
Example #2
0
 protected function formatValues($arrData, $arrCurrencies)
 {
     // Format row totals
     foreach ($arrData['rows'] as $dateGroup => $arrRow) {
         if (is_array($arrRow['columns'][4]['value'])) {
             foreach ($arrRow['columns'][4]['value'] as $currency => $varValue) {
                 Isotope::setConfig(Config::findByPk($arrCurrencies[$currency]));
                 $arrData['rows'][$dateGroup]['columns'][4]['value'][$currency] = Isotope::formatPriceWithCurrency($varValue);
             }
         }
     }
     // Format footer totals
     foreach ($arrData['footer'][4]['value'] as $currency => $varValue) {
         Isotope::setConfig(Config::findByPk($arrCurrencies[$currency]));
         $arrData['footer'][4]['value'][$currency] = Isotope::formatPriceWithCurrency($varValue);
     }
     if (empty($arrData['footer'][4]['value'])) {
         $arrData['footer'][4]['value'] = 0;
     }
     return $arrData;
 }
 public function modifyDC(&$arrDca = null)
 {
     // get the product
     switch ($this->iso_direct_checkout_product_mode) {
         case 'product_type':
             if (($objTypes = FieldPaletteModel::findByPidAndTableAndField($this->objModule->id, 'tl_module', 'iso_direct_checkout_product_types')) !== null) {
                 while ($objTypes->next()) {
                     $arrColumns = array('type=?');
                     $arrValues = array($objTypes->iso_direct_checkout_product_type);
                     if ($this->iso_listingSortField) {
                         $arrSorting = array($this->iso_listingSortField => $this->iso_listingSortDirection == 'DESC' ? Sort::descending() : Sort::ascending());
                     } else {
                         $arrSorting = array();
                     }
                     $objProducts = Product::findPublishedBy($arrColumns, $arrValues, array('sorting' => $arrSorting));
                     if ($objProducts->count() > 0) {
                         $objProduct = $objProducts->current();
                         $this->arrProducts[] = array('product' => $objProduct, 'useQuantity' => $objTypes->iso_use_quantity);
                         $this->addProductFields($objProduct, $objTypes->iso_use_quantity, $objTypes->iso_addSubscriptionCheckbox, $arrDca);
                     }
                 }
             }
             break;
         default:
             if (($objProducts = FieldPaletteModel::findByPidAndTableAndField($this->objModule->id, 'tl_module', 'iso_direct_checkout_products')) !== null) {
                 while ($objProducts->next()) {
                     $objProduct = Product::findByPk($objProducts->iso_direct_checkout_product);
                     $this->arrProducts[] = array('product' => $objProduct, 'useQuantity' => $objProducts->iso_use_quantity);
                     $this->addProductFields($objProduct, $objProducts->iso_use_quantity, $objProducts->iso_addSubscriptionCheckbox, $arrDca);
                 }
             }
             break;
     }
     // add address fields
     \Controller::loadDataContainer('tl_iso_address');
     \System::loadLanguageFile('tl_iso_address');
     $arrAddressFields = deserialize(Config::findByPk($this->iso_config_id)->address_fields, true);
     // add billing address fields
     foreach ($arrAddressFields as $strName => $arrAddressField) {
         $arrData = $GLOBALS['TL_DCA']['tl_iso_address']['fields'][$strName];
         if (!is_array($arrData) || $arrAddressField['billing'] == 'disabled') {
             continue;
         }
         $arrData['eval']['mandatory'] = $arrAddressField['billing'] == 'mandatory';
         $this->arrBillingAddressFields[] = $strName;
         $this->addEditableField($strName, $arrData);
     }
     if ($this->iso_use_notes) {
         $this->addEditableField('notes', array('label' => &$GLOBALS['TL_LANG']['MSC']['iso_note'], 'exclude' => true, 'inputType' => 'textarea', 'eval' => array('tl_class' => 'clr w50'), 'sql' => "text NULL"));
     }
     $this->addEditableField('shippingaddress', array('label' => array($GLOBALS['TL_LANG']['MSC']['differentShippingAddress'], $GLOBALS['TL_LANG']['MSC']['differentShippingAddress']), 'inputType' => 'checkbox', 'eval' => array('submitOnChange' => true)));
     // add shipping address fields
     $arrShippingAddressFields = array();
     foreach ($arrAddressFields as $strName => $arrAddressField) {
         $arrData = $GLOBALS['TL_DCA']['tl_iso_address']['fields'][$strName];
         if (!is_array($arrData) || $arrAddressField['shipping'] == 'disabled') {
             continue;
         }
         $arrData['eval']['mandatory'] = $arrAddressField['shipping'] == 'mandatory';
         $this->addEditableField('shippingaddress_' . $strName, $arrData);
         $arrShippingAddressFields[] = 'shippingaddress_' . $strName;
     }
     $this->dca['palettes']['__selector__'][] = 'shippingaddress';
     $this->dca['subpalettes']['shippingaddress'] = implode(',', $arrShippingAddressFields);
     $this->arrShippingAddressFields = $arrShippingAddressFields;
 }
Example #4
0
 /**
  * Store if we need to update the currencies
  * @param   mixed
  * @param   \DataContainer
  */
 public function checkNeedToConvertCurrencies($varValue, \DataContainer $dc)
 {
     $objConfig = Config::findByPk($dc->id);
     if ($objConfig !== null && $varValue != $objConfig->{$dc->field}) {
         $GLOBALS['ISOTOPE_CONFIG_UPDATE_CURRENCIES'] = true;
     }
     return $varValue;
 }
Example #5
0
 /**
  * Get the currently active Isotope configuration
  *
  * @return Config
  */
 public static function getConfig()
 {
     if (null === static::$objConfig) {
         static::initialize();
         if (($objCart = static::getCart()) !== null) {
             static::$objConfig = Config::findByPk($objCart->config_id);
         }
         // If cart was null or still did not find a config
         if (null === static::$objConfig) {
             global $objPage;
             static::$objConfig = TL_MODE == 'FE' ? Config::findByRootPageOrFallback($objPage->rootId) : Config::findByFallback();
         }
         // No config at all, create empty model as fallback
         if (null === static::$objConfig) {
             static::$objConfig = new Config();
             trigger_error($GLOBALS['TL_LANG']['ERR']['noDefaultStoreConfiguration']);
         }
     }
     return static::$objConfig;
 }
Example #6
0
 /**
  * List all records with formatted currency
  * @param array
  * @return string
  */
 public function listRow($row)
 {
     $arrRate = deserialize($row['rate']);
     if ($row['config'] && !$arrRate['unit']) {
         Isotope::setConfig(Config::findByPk($row['config']));
         $strRate = Isotope::formatPriceWithCurrency($arrRate['value'], false);
     } else {
         $strRate = $arrRate['value'] . '%';
     }
     return sprintf('%s <span style="color:#b3b3b3; padding-left:3px;">[%s]</span>', $row['name'], $strRate);
 }