Example #1
0
 protected function save($xml)
 {
     $code = array(new \Nette\DateTime((string) $xml->Cube->Cube["time"]));
     $ex = explode(self::PIPE, self::ITEM_EUR);
     if (count($ex) === 2 && $ex[self::RATE] >= 0) {
         $currCode = Currency::code($ex[self::CODE]);
         $code[$currCode] = new Currency($currCode, $ex[self::RATE]);
     }
     foreach ($xml->Cube->Cube->Cube as $rate) {
         $currCode = Currency::code((string) $rate["currency"]);
         $rate = (string) $rate["rate"];
         $code[$currCode] = new Currency($currCode, $rate);
     }
     return $code;
 }
Example #2
0
 protected function save($data)
 {
     $code = array($data[0]);
     unset($data[0]);
     foreach ($data as $val) {
         $ex = explode(self::PIPE, $val);
         if (count($ex) != 5 || $ex[self::TO] <= 0 || isset($code[$ex[self::TO]])) {
             continue;
         }
         $currCode = Currency::code($ex[self::CODE]);
         $obj = $code[$currCode] = new Currency($currCode, $ex[self::TO]);
         $obj->country = $ex[self::COUNTRY];
         $obj->name = $ex[self::NAME];
     }
     return $code;
 }
Example #3
0
 /**
  * transfer number by exchange rate
  * @param double|int|string $price number
  * @param string|FALSE $from default currency, FALSE no transfer
  * @param string $to output currency
  * @param int $round number round
  * @return double
  */
 public function change($price, $from = NULL, $to = NULL, $round = NULL)
 {
     $price = (double) $price;
     $to = $to === NULL ? $from : ($to ? $to : $this->getDefault());
     if ($from !== FALSE && $to) {
         $from = $from ? $from : $this->getDefault();
         if (Currency::code($to) != Currency::code($from)) {
             $fromCurrency = $this->loadCurrency($from);
             $toCurrency = $this->loadCurrency($to);
             $price *= $toCurrency->getRate() / $fromCurrency->getRate();
         }
     }
     if ($round !== NULL) {
         $price = round($price, $round);
     }
     return $price;
 }