| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196 | 
							- <?php
 
- /**
 
-  *
 
-  * PHP Pro Bid $Id$ ccOaTUGWwug64yADwgVdcYD8vNvpFUaM/pJPVcmSW58=
 
-  *
 
-  * @link        http://www.phpprobid.com
 
-  * @copyright   Copyright (c) 2015 Online Ventures Software & CodeCube SRL
 
-  * @license     http://www.phpprobid.com/license Commercial License
 
-  *
 
-  * @version     7.6
 
-  */
 
- /**
 
-  * amount display view helper class
 
-  */
 
- namespace Ppb\View\Helper;
 
- use Cube\View\Helper\AbstractHelper,
 
-     Cube\Db\Table\Rowset,
 
-     Ppb\Service\Table\Currencies as CurrenciesService;
 
- class Amount extends AbstractHelper
 
- {
 
-     /**
 
-      * the maximum amount allowed for a decimal input value
 
-      */
 
-     const MAX_AMOUNT = 99999999999;
 
-     /**
 
-      * default display format
 
-      */
 
-     const DEFAULT_FORMAT = '%s';
 
-     /**
 
-      *
 
-      * currencies rowset
 
-      *
 
-      * @var \Cube\Db\Table\Rowset\AbstractRowset
 
-      */
 
-     protected $_currencies;
 
-     /**
 
-      *
 
-      * settings array
 
-      *
 
-      * @var array
 
-      */
 
-     protected $_settings;
 
-     /**
 
-      *
 
-      * zero display value
 
-      *
 
-      * @var bool
 
-      */
 
-     protected $_zero = null;
 
-     /**
 
-      *
 
-      * class constructor
 
-      *
 
-      * @param array $settings the settings array
 
-      */
 
-     public function __construct(array $settings)
 
-     {
 
-         $this->setSettings($settings);
 
-     }
 
-     /**
 
-      *
 
-      * set settings array
 
-      *
 
-      * @param array $settings
 
-      *
 
-      * @return \Ppb\View\Helper\Amount
 
-      */
 
-     public function setSettings(array $settings)
 
-     {
 
-         $this->_settings = $settings;
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * fetch currencies from table
 
-      *
 
-      * @param string $isoCode currency to fetch (by iso code)
 
-      *
 
-      * @return \Cube\Db\Table\Row\AbstractRow|null   selected or default currency row or null if requested currency cannot be found
 
-      */
 
-     public function getCurrency($isoCode = null)
 
-     {
 
-         if (!$this->_currencies instanceof Rowset) {
 
-             $service = new CurrenciesService();
 
-             $this->_currencies = $service->fetchAll();
 
-         }
 
-         if ($isoCode === null) {
 
-             $isoCode = $this->_settings['currency'];
 
-         }
 
-         foreach ($this->_currencies as $currency) {
 
-             if ($currency['iso_code'] == $isoCode) {
 
-                 return $currency;
 
-             }
 
-         }
 
-         return null;
 
-     }
 
-     /**
 
-      *
 
-      * set zero value
 
-      *
 
-      * @param string $zero
 
-      *
 
-      * @return \Ppb\View\Helper\Amount
 
-      */
 
-     public function setZero($zero)
 
-     {
 
-         $this->_zero = $zero;
 
-         return $this;
 
-     }
 
-     /**
 
-      *
 
-      * amount view helper
 
-      *
 
-      * @param float  $amount        the amount to be displayed
 
-      * @param string $currency      the currency - default currency used if this is null
 
-      * @param string $format        display format, used if custom outputs are needed
 
-      *                              eg: (+%s)
 
-      * @param bool   $overrideZero
 
-      *
 
-      * @return string|$this
 
-      */
 
-     public function amount($amount = null, $currency = null, $format = null, $overrideZero = false)
 
-     {
 
-         if ($amount === false) {
 
-             return $this;
 
-         }
 
-         $translate = $this->getTranslate();
 
-         if ($amount >= self::MAX_AMOUNT) {
 
-             return $translate->_('Above');
 
-         }
 
-         if ($format === null) {
 
-             $format = self::DEFAULT_FORMAT;
 
-         }
 
-         if ($amount == 0 && $overrideZero === false) {
 
-             if ($this->_settings['display_free_fees']) {
 
-                 return sprintf($format, $translate->_('Free'));
 
-             }
 
-             return $translate->_($this->_zero);
 
-         }
 
-         $data = $this->getCurrency($currency);
 
-         $symbol = $data['iso_code'];
 
-         $spacing = ' ';
 
-         if (!empty($data['symbol'])) {
 
-             $symbol = $data['symbol'];
 
-             $spacing = '';
 
-         }
 
-         switch ($this->_settings['currency_format']) {
 
-             case '1':
 
-                 $amount = number_format($amount, $this->_settings['currency_decimals'], '.', ',');
 
-                 break;
 
-             default:
 
-                 $amount = number_format($amount, $this->_settings['currency_decimals'], ',', '.');
 
-                 break;
 
-         }
 
-         switch ($this->_settings['currency_position']) {
 
-             case '1':
 
-                 $output = $symbol . $spacing . $amount;
 
-                 break;
 
-             default:
 
-                 $output = $amount . $spacing . $symbol;
 
-                 break;
 
-         }
 
-         return sprintf($format, $output);
 
-     }
 
- }
 
 
  |