public function init()
    {
        // Send default settings according to locale
        $locale = i18n::get_locale();
        $symbols = Zend_Locale_Data::getList($locale, 'symbols');
        $currency = Currency::config()->currency_symbol;
        $decimals = $symbols['decimal'];
        $thousands = $decimals == ',' ? ' ' : ',';
        // Accouting needs to be initialized globally
        FormExtraJquery::include_accounting();
        Requirements::customScript(<<<EOT
    window.accounting.settings = {
        currency: {
            symbol : "{$currency}",
            format: "%s%v",
            decimal : "{$decimals}",
            thousand: "{$thousands}",
            precision : 2
        },
        number: {
            precision : 0,
            thousand: "{$thousands}",
            decimal : "{$decimals}"
        }
    }
EOT
, 'accountingInit');
    }
 /**
  * Init actions that happen globally to all commerce interfaces.
  *
  * At the moment this is used to set config where database access is required
  */
 public function init()
 {
     // Set the default currency symbol
     if ($siteconfig = SiteConfig::current_site_config()) {
         Currency::config()->currency_symbol = $siteconfig->Currency()->HTMLNotation;
     }
     parent::init();
 }
 public function onBeforeInit()
 {
     $controller = $this->owner->request->param("Controller");
     $action = $this->owner->request->param("Action");
     if ($controller != "DevelopmentAdmin" && $action != "build") {
         $config = SiteConfig::current_site_config();
         // Set the default currency symbol for this site
         Currency::config()->currency_symbol = Checkout::config()->currency_symbol;
         // Auto inject the order prefix to the orders module if it exists
         if (class_exists("Order") && class_exists("SiteConfig") && $config) {
             Order::config()->order_prefix = $config->PaymentNumberPrefix;
         }
     }
 }
示例#4
0
 /**
  * @deprecated 4.0 Use the "Currency.currency_symbol" config setting instead
  * @param [type] $value [description]
  */
 public static function setCurrencySymbol($value)
 {
     Deprecation::notice('4.0', 'Use the "Currency.currency_symbol" config setting instead');
     Currency::config()->currency_symbol = $value;
 }
    public static function include_accounting()
    {
        if (self::$disabled || in_array('accounting', self::$included)) {
            return;
        }
        if (Director::isDev()) {
            Requirements::block(FORM_EXTRAS_PATH . '/javascript/accounting/accounting.min.js');
            Requirements::javascript(FORM_EXTRAS_PATH . '/javascript/accounting/accounting.js');
        } else {
            Requirements::block(FORM_EXTRAS_PATH . '/javascript/accounting/accounting.js');
            Requirements::javascript(FORM_EXTRAS_PATH . '/javascript/accounting/accounting.min.js');
        }
        if (Controller::has_curr() && Controller::curr() instanceof LeftAndMain) {
            // In admin we rely on extension because of ajax architecture
            self::$included[] = 'accounting';
            return;
        }
        // Send default settings according to locale
        $locale = i18n::get_locale();
        $symbols = Zend_Locale_Data::getList($locale, 'symbols');
        $currency = Currency::config()->currency_symbol;
        $decimals = $symbols['decimal'];
        $thousands = $decimals == ',' ? ' ' : ',';
        Requirements::customScript(<<<JS
window.accounting.settings = {
    currency: {
        symbol : "{$currency}",
        format: "%s%v",
        decimal : "{$decimals}",
        thousand: "{$thousands}",
        precision : 2
    },
    number: {
        precision : 0,
        thousand: "{$thousands}",
        decimal : "{$decimals}"
    }
}
JS
, 'accountingInit');
        self::$included[] = 'accounting';
    }