%PDF- %GIF98; %PNG;
Server : ApacheSystem : Linux host.digitalbabaji.in 4.18.0-513.11.1.el8_9.x86_64 #1 SMP Wed Jan 17 02:00:40 EST 2024 x86_64 User : addictionfreeind ( 1003) PHP Version : 7.2.34 Disable Function : exec,passthru,shell_exec,system Directory : /home/addictionfreeind/www/admin1/vendor/moneyphp/money/src/Exchange/ |
Upload File : |
<?php
declare(strict_types=1);
namespace Money\Exchange;
use Money\Currency;
use Money\CurrencyPair;
use Money\Exception\UnresolvableCurrencyPairException;
use Money\Exchange;
use Money\Money;
/**
* Tries the reverse of the currency pair if one is not available.
*
* Note: adding nested ReversedCurrenciesExchange could cause a huge performance hit.
*/
final class ReversedCurrenciesExchange implements Exchange
{
private Exchange $exchange;
public function __construct(Exchange $exchange)
{
$this->exchange = $exchange;
}
public function quote(Currency $baseCurrency, Currency $counterCurrency): CurrencyPair
{
try {
return $this->exchange->quote($baseCurrency, $counterCurrency);
} catch (UnresolvableCurrencyPairException $exception) {
$calculator = Money::getCalculator();
try {
$currencyPair = $this->exchange->quote($counterCurrency, $baseCurrency);
return new CurrencyPair(
$baseCurrency,
$counterCurrency,
$calculator::divide('1', $currencyPair->getConversionRatio())
);
} catch (UnresolvableCurrencyPairException) {
throw $exception;
}
}
}
}