PluginProbe ʕ •ᴥ•ʔ
Tutor LMS – eLearning and online course solution / trunk
Tutor LMS – eLearning and online course solution vtrunk
4.0.7 4.0.6 4.0.5 4.0.4 4.0.3 4.0.2 4.0.1 4.0.0 3.9.15 3.9.14 3.9.13 3.9.12 3.9.11 trunk 1.0.0 1.0.0-alpha 1.0.1 1.0.2 1.0.3 1.0.4 1.0.5 1.0.6 1.0.7 1.0.8 1.0.9 1.1.0 1.1.1 1.2.0 1.2.1 1.2.11 1.2.12 1.2.13 1.2.20 1.3.0 1.3.1 1.3.2 1.3.3 1.3.4 1.3.5 1.3.6 1.3.7 1.3.8 1.3.9 1.4.0 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.6 1.4.7 1.4.8 1.4.9 1.5.0 1.5.1 1.5.2 1.5.3 1.5.4 1.5.5 1.5.6 1.5.7 1.5.8 1.5.9 1.6.0 1.6.1 1.6.2 1.6.3 1.6.4 1.6.5 1.6.6 1.6.7 1.6.8 1.6.9 1.7.0 1.7.1 1.7.2 1.7.3 1.7.4 1.7.5 1.7.6 1.7.7 1.7.8 1.7.9 1.8.0 1.8.1 1.8.10 1.8.2 1.8.3 1.8.4 1.8.5 1.8.6 1.8.7 1.8.8 1.8.9 1.9.0 1.9.1 1.9.10 1.9.11 1.9.12 1.9.13 1.9.14 1.9.15 1.9.16 1.9.2 1.9.3 1.9.4 1.9.5 1.9.6 1.9.7 1.9.8 1.9.9 2.0.0 2.0.1 2.0.10 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.0.8 2.0.9 2.1.0 2.1.1 2.1.10 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.1.9 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.3.0 2.4.0 2.5.0 2.6.0 2.6.1 2.6.2 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.7.6 2.7.7 3.0.0 3.0.1 3.0.2 3.1.0 3.2.0 3.2.1 3.2.2 3.2.3 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.6.0 3.6.1 3.6.2 3.6.3 3.6.4 3.7.0 3.7.1 3.7.2 3.7.3 3.7.4 3.8.0 3.8.1 3.8.2 3.8.3 3.9.0 3.9.1 3.9.10 3.9.2 3.9.3 3.9.4 3.9.5 3.9.6 3.9.7 3.9.8 3.9.9
tutor / ecommerce / PaymentGateways / Paypal / vendor / brick / money / src / Context.php
tutor / ecommerce / PaymentGateways / Paypal / vendor / brick / money / src Last commit date
Context 1 year ago Exception 1 year ago ExchangeRateProvider 1 year ago AbstractMoney.php 1 year ago Context.php 1 year ago Currency.php 1 year ago CurrencyConverter.php 1 year ago ExchangeRateProvider.php 1 year ago ISOCurrencyProvider.php 1 year ago Money.php 1 year ago MoneyBag.php 1 year ago MoneyComparator.php 1 year ago MoneyContainer.php 1 year ago RationalMoney.php 1 year ago
Context.php
56 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace Brick\Money;
6
7 use Brick\Math\BigDecimal;
8 use Brick\Math\BigNumber;
9 use Brick\Math\Exception\RoundingNecessaryException;
10 use Brick\Math\RoundingMode;
11
12 /**
13 * Adjusts a rational number to a decimal amount.
14 */
15 interface Context
16 {
17 /**
18 * Applies this context to a rational amount, and returns a decimal number.
19 *
20 * The given rounding mode MUST be respected; no default rounding mode must be applied.
21 * In case the rounding mode is irrelevant, for example in AutoContext, this method MUST throw an exception if a
22 * rounding mode other than RoundingMode::UNNECESSARY is used.
23 *
24 * @psalm-param RoundingMode::* $roundingMode
25 *
26 * @param BigNumber $amount The amount.
27 * @param Currency $currency The target currency.
28 * @param int $roundingMode The rounding mode.
29 *
30 * @return BigDecimal
31 *
32 * @throws RoundingNecessaryException If the result cannot be represented at the required scale without rounding.
33 */
34 public function applyTo(BigNumber $amount, Currency $currency, int $roundingMode) : BigDecimal;
35
36 /**
37 * Returns the step used by this context.
38 *
39 * If no cash rounding is involved, this must return 1.
40 * This value is used by money allocation methods that do not go through the applyTo() method.
41 *
42 * @return int
43 */
44 public function getStep() : int;
45
46 /**
47 * Returns whether this context uses a fixed scale and step.
48 *
49 * When the scale and step are fixed, it is considered safe to add or subtract monies amounts directly —as long as
50 * they are in the same context— without going through the applyTo() method, allowing for an optimization.
51 *
52 * @return bool
53 */
54 public function isFixedScale() : bool;
55 }
56