Cost units can be edited
This commit is contained in:
35
app/ValueObjects/Amount.php
Normal file
35
app/ValueObjects/Amount.php
Normal file
@@ -0,0 +1,35 @@
|
||||
<?php
|
||||
|
||||
namespace App\ValueObjects;
|
||||
|
||||
class Amount {
|
||||
private string $currency;
|
||||
private float $amount;
|
||||
|
||||
public static function fromString(string $amountString, string $currency = ' Euro') : Amount {
|
||||
return new self(
|
||||
(float)str_replace(',', '.', $amountString)
|
||||
, $currency);
|
||||
}
|
||||
|
||||
|
||||
public function __construct(float $amount, string $currency) {
|
||||
$this->currency = $currency;
|
||||
$this->amount = $amount;
|
||||
}
|
||||
|
||||
public function getAmount() : float {
|
||||
return $this->amount;
|
||||
}
|
||||
|
||||
public function getCurrency() : string {
|
||||
return $this->currency;
|
||||
}
|
||||
|
||||
public function toString() : string {
|
||||
$value = number_format( round( $this->amount, 2 ), 2, ',', '.' );
|
||||
return sprintf('%1$s %2$s', $value, $this->currency)
|
||||
|> trim(...)
|
||||
|> function (string $value) : string { return str_replace('.', ',', $value); };
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user