PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 3.19.1
GiveWP – Donation Plugin and Fundraising Platform v3.19.1
4.16.3 4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / vendor / moneyphp / money / src / Converter.php
give / vendor / moneyphp / money / src Last commit date
Calculator 4 years ago Currencies 4 years ago Exception 4 years ago Exchange 4 years ago Formatter 4 years ago PHPUnit 4 years ago Parser 4 years ago Calculator.php 4 years ago Converter.php 4 years ago Currencies.php 4 years ago Currency.php 4 years ago CurrencyPair.php 4 years ago Exception.php 4 years ago Exchange.php 4 years ago Money.php 4 years ago MoneyFactory.php 4 years ago MoneyFormatter.php 4 years ago MoneyParser.php 4 years ago Number.php 4 years ago
Converter.php
55 lines
1 <?php
2
3 namespace Money;
4
5 /**
6 * Provides a way to convert Money to Money in another Currency using an exchange rate.
7 *
8 * @author Frederik Bosch <f.bosch@genkgo.nl>
9 */
10 final class Converter
11 {
12 /**
13 * @var Currencies
14 */
15 private $currencies;
16
17 /**
18 * @var Exchange
19 */
20 private $exchange;
21
22 /**
23 * @param Currencies $currencies
24 * @param Exchange $exchange
25 */
26 public function __construct(Currencies $currencies, Exchange $exchange)
27 {
28 $this->currencies = $currencies;
29 $this->exchange = $exchange;
30 }
31
32 /**
33 * @param Money $money
34 * @param Currency $counterCurrency
35 * @param int $roundingMode
36 *
37 * @return Money
38 */
39 public function convert(Money $money, Currency $counterCurrency, $roundingMode = Money::ROUND_HALF_UP)
40 {
41 $baseCurrency = $money->getCurrency();
42 $ratio = $this->exchange->quote($baseCurrency, $counterCurrency)->getConversionRatio();
43
44 $baseCurrencySubunit = $this->currencies->subunitFor($baseCurrency);
45 $counterCurrencySubunit = $this->currencies->subunitFor($counterCurrency);
46 $subunitDifference = $baseCurrencySubunit - $counterCurrencySubunit;
47
48 $ratio = (string) Number::fromFloat($ratio)->base10($subunitDifference);
49
50 $counterValue = $money->multiply($ratio, $roundingMode);
51
52 return new Money($counterValue->getAmount(), $counterCurrency);
53 }
54 }
55