phpvms/app/Support/Math.php

51 lines
1.1 KiB
PHP

<?php
namespace App\Support;
/**
* Helper math
* @package App\Support
*/
class Math
{
/**
* Determine from the base rate, if we want to return the overridden rate
* or if the overridden rate is a percentage, then return that amount
* @param $base_rate
* @param $override_rate
* @return float|null
*/
public static function applyAmountOrPercent($base_rate, $override_rate = null): ?float
{
if (!$override_rate) {
return $base_rate;
}
# Not a percentage override
if (substr_count($override_rate, '%') === 0) {
return $override_rate;
}
return static::addPercent($base_rate, $override_rate);
}
/**
* Add/subtract a percentage to a number
* @param $number
* @param $percent
* @return float
*/
public static function addPercent($number, $percent): float
{
if(!is_numeric($number)) {
$number = (float) $number;
}
if(!is_numeric($percent)) {
$percent = (float) $percent;
}
return $number + ($number * ($percent/100));
}
}