Do not send decimals when currency does not support them

This commit is contained in:
emilicastells 2021-07-21 15:20:35 +02:00
parent c3405cb464
commit 412dfbb7cf
2 changed files with 20 additions and 2 deletions

View file

@ -28,6 +28,13 @@ class Amount {
*/
private $breakdown;
/**
* Currencies that does not support decimals.
*
* @var array
*/
private $currencies_without_decimals = array( 'HUF', 'JPY', 'TWD' );
/**
* Amount constructor.
*
@ -74,7 +81,9 @@ class Amount {
public function to_array(): array {
$amount = array(
'currency_code' => $this->currency_code(),
'value' => number_format( $this->value(), 2, '.', '' ),
'value' => in_array( $this->currency_code(), $this->currencies_without_decimals, true )
? round( $this->value(), 0 )
: number_format( $this->value(), 2, '.', '' ),
);
if ( $this->breakdown() && count( $this->breakdown()->to_array() ) ) {
$amount['breakdown'] = $this->breakdown()->to_array();

View file

@ -28,6 +28,13 @@ class Money {
*/
private $value;
/**
* Currencies that does not support decimals.
*
* @var array
*/
private $currencies_without_decimals = array( 'HUF', 'JPY', 'TWD' );
/**
* Money constructor.
*
@ -65,7 +72,9 @@ class Money {
public function to_array(): array {
return array(
'currency_code' => $this->currency_code(),
'value' => number_format( $this->value(), 2, '.', '' ),
'value' => in_array( $this->currency_code(), $this->currencies_without_decimals, true )
? round( $this->value(), 0 )
: number_format( $this->value(), 2, '.', '' ),
);
}
}