Work on products, first completed broadband
This commit is contained in:
@@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use Illuminate\Database\Eloquent\Collection;
|
||||
use Illuminate\Database\Eloquent\Model;
|
||||
|
||||
class Tax extends Model
|
||||
@@ -14,4 +15,30 @@ class Tax extends Model
|
||||
{
|
||||
return $this->belongsTo(Country::class);
|
||||
}
|
||||
|
||||
/* METHODS */
|
||||
|
||||
/**
|
||||
* Calculate Tax on a value
|
||||
*
|
||||
* @param float $value
|
||||
* @param Collection $taxes
|
||||
* @return void
|
||||
*/
|
||||
public static function tax_calc(?float $value,Collection $taxes): float
|
||||
{
|
||||
if (! $value)
|
||||
$value = 0;
|
||||
$tax = 0;
|
||||
|
||||
foreach ($taxes as $o) {
|
||||
// Quick sanity check
|
||||
if (! $o instanceof self)
|
||||
abort(500,'Invalid object for tax calculation');
|
||||
|
||||
$tax += round($value*$o->rate,2);
|
||||
}
|
||||
|
||||
return round($value+$tax,2);
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user