public function convert(Number $number)
 {
     $rateFactor = $this->retrieveRateFactor();
     if ($this->to === 'EUR') {
         return $number->multiply($rateFactor);
     } else {
         return $this->convertToOther($rateFactor, $number);
     }
 }
Exemple #2
0
 /**
  * @param \Thelia\Math\Number $rateFactor
  * @param \Thelia\Math\Number $number
  * @return \Thelia\Math\Number
  * @throws \Thelia\CurrencyConverter\Exception\CurrencyNotFoundException if the `to` currency is not support
  */
 private function convertToOther(Number $rateFactor, Number $number)
 {
     $conversion = false;
     foreach ($this->data->Cube as $last) {
         $code = strtoupper($last["currency"]);
         if ($code === $this->to) {
             $rate = $rateFactor->multiply((string) $last['rate']);
             $conversion = $number->multiply($rate);
         }
     }
     if ($conversion === false) {
         throw new CurrencyNotFoundException($this->to);
     }
     return $conversion;
 }
 /**
  * @param \Thelia\Math\Number $rateFactor
  * @param \Thelia\Math\Number $number
  * @return \Thelia\Math\Number
  * @throws \Thelia\CurrencyConverter\Exception\CurrencyNotFoundException if the `to` currency is not support
  */
 private function convertToOther(Number $rateFactor, Number $number)
 {
     $rateStr = $this->getRateFromFeed($this->to);
     $rate = $rateFactor->multiply($rateStr);
     return $number->multiply($rate);
 }
Exemple #4
0
 public function testMult()
 {
     $numberA = new Number('1');
     $numberB = $numberA->multiply('1.2393');
     $this->assertEquals(1.2393, $numberB->getNumber(-1));
 }