. */ declare(strict_types=1); namespace FireflyIII\Support\Validation; trait ValidatesAmountsTrait { // 19-09-2020: my wedding day protected const string BIG_AMOUNT = '10019092020'; final protected function emptyString(string $value): bool { return '' === $value; } final protected function isValidNumber(string $value): bool { return is_numeric($value); } final protected function scientificNumber(string $value): bool { return str_contains(strtoupper($value), 'E'); } final protected function lessOrEqualToZero(string $value): bool { return -1 === bccomp($value, '0') || 0 === bccomp($value, '0'); } final protected function zeroOrMore(string $value): bool { return 1 === bccomp($value, '0') || 0 === bccomp($value, '0'); } final protected function moreThanLots(string $value): bool { return 1 === bccomp($value, self::BIG_AMOUNT) || 0 === bccomp($value, self::BIG_AMOUNT); } final protected function lessThanLots(string $value): bool { $amount = bcmul('-1', self::BIG_AMOUNT); return -1 === bccomp($value, $amount) || 0 === bccomp($value, $amount); } }