PluginProbe ʕ •ᴥ•ʔ
Booking for Appointments and Events Calendar – Amelia / trunk
Booking for Appointments and Events Calendar – Amelia vtrunk
2.4.4 2.4.3 2.4.2 2.4.1 2.4 trunk 1.2.1 1.2.10 1.2.11 1.2.12 1.2.13 1.2.14 1.2.15 1.2.16 1.2.17 1.2.18 1.2.19 1.2.2 1.2.20 1.2.21 1.2.22 1.2.23 1.2.24 1.2.25 1.2.26 1.2.27 1.2.28 1.2.29 1.2.3 1.2.30 1.2.31 1.2.32 1.2.33 1.2.34 1.2.35 1.2.36 1.2.37 1.2.38 1.2.4 1.2.5 1.2.6 1.2.7 1.2.8 1.2.9 2.0 2.0.1 2.0.2 2.1 2.1.1 2.1.2 2.1.3 2.2 2.2.1 2.3
ameliabooking / src / Infrastructure / Services / Payment / CurrencyService.php
ameliabooking / src / Infrastructure / Services / Payment Last commit date
CurrencyService.php 6 months ago SquareMiddlewareService.php 3 months ago SquareService.php 6 months ago StarterPaymentService.php 6 months ago
CurrencyService.php
55 lines
1 <?php
2
3 /**
4 * @copyright © Melograno Ventures. All rights reserved.
5 * @licence See LICENCE.md for license details.
6 */
7
8 namespace AmeliaBooking\Infrastructure\Services\Payment;
9
10 use AmeliaBooking\Domain\Services\Settings\SettingsService;
11 use AmeliaBooking\Domain\ValueObjects\Number\Float\Price;
12 use Money\Currencies\ISOCurrencies;
13 use Money\Exception\ParserException;
14 use Money\Parser\DecimalMoneyParser;
15
16 /**
17 * Class CurrencyService
18 */
19 class CurrencyService
20 {
21 /**
22 * @var SettingsService $settingsService
23 */
24 protected $settingsService;
25
26 /**
27 * CurrencyService constructor.
28 *
29 * @param SettingsService $settingsService
30 */
31 public function __construct(
32 SettingsService $settingsService
33 ) {
34 $this->settingsService = $settingsService;
35 }
36
37 /**
38 * @param Price $amount
39 *
40 * @return string
41 * @throws ParserException
42 */
43 public function getAmountInFractionalUnit($amount)
44 {
45 $currencies = new ISOCurrencies();
46
47 $moneyParser = new DecimalMoneyParser($currencies);
48
49 return $moneyParser->parse(
50 (string)$amount->getValue(),
51 $this->settingsService->getCategorySettings('payments')['currency']
52 )->getAmount();
53 }
54 }
55