From 2155979eb9868081e645a3d3356be1d91422aa10 Mon Sep 17 00:00:00 2001 From: John Cheng Date: Sun, 9 Oct 2022 21:13:11 +0800 Subject: [PATCH] Patch currency subunit conversion (#1484) * added parentheses around the conversion * updated finance test updated the following test: - journal operations fixed the following tests: - pirep finances - pirep finances specific expense - pirep finances expenses multi airline --- app/Support/Money.php | 6 +++--- tests/FinanceTest.php | 16 ++++++++-------- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/app/Support/Money.php b/app/Support/Money.php index e22959b1..8165cbd4 100644 --- a/app/Support/Money.php +++ b/app/Support/Money.php @@ -33,7 +33,7 @@ class Money /** * Create from a dollar amount * - * @param mixed $amount The amount in pennies + * @param mixed $amount The amount in dollar * * @throws \UnexpectedValueException * @throws \InvalidArgumentException @@ -52,12 +52,12 @@ class Money * * @param mixed $amount * - * @return float|int + * @return int */ public static function convertToSubunit($amount) { $currency = setting('units.currency', 'USD'); - return (int) $amount * config('money.'.$currency.'.subunit'); + return (int) ($amount * config('money.'.$currency.'.subunit')); } /** diff --git a/tests/FinanceTest.php b/tests/FinanceTest.php index 57832802..521dfc12 100644 --- a/tests/FinanceTest.php +++ b/tests/FinanceTest.php @@ -712,20 +712,20 @@ class FinanceTest extends TestCase $journalRepo->post( $journal, - Money::createFromAmount(100), + Money::createFromAmount(100.5), null, $user ); $balance = $journalRepo->getBalance($journal); - $this->assertEquals(100, $balance->getValue()); - $this->assertEquals(100, $journal->balance->getValue()); + $this->assertEquals(100.5, $balance->getValue()); + $this->assertEquals(100.5, $journal->balance->getValue()); // add another transaction $journalRepo->post( $journal, - Money::createFromAmount(25), + Money::createFromAmount(24.5), null, $user ); @@ -912,7 +912,7 @@ class FinanceTest extends TestCase // $this->assertCount(9, $transactions['transactions']); $this->assertEquals(3020, $transactions['credits']->getValue()); - $this->assertEquals(2050.0, $transactions['debits']->getValue()); + $this->assertEquals(2050.4, $transactions['debits']->getValue()); // Check that all the different transaction types are there // test by the different groups that exist @@ -967,7 +967,7 @@ class FinanceTest extends TestCase // $this->assertCount(9, $transactions['transactions']); $this->assertEquals(3020, $transactions['credits']->getValue()); - $this->assertEquals(2050.0, $transactions['debits']->getValue()); + $this->assertEquals(2050.4, $transactions['debits']->getValue()); // Check that all the different transaction types are there // test by the different groups that exist @@ -1006,7 +1006,7 @@ class FinanceTest extends TestCase $transactions = $journalRepo->getAllForObject($pirep2); $this->assertEquals(3020, $transactions['credits']->getValue()); - $this->assertEquals(2150.0, $transactions['debits']->getValue()); + $this->assertEquals(2150.4, $transactions['debits']->getValue()); // Check that all the different transaction types are there // test by the different groups that exist @@ -1115,6 +1115,6 @@ class FinanceTest extends TestCase // $this->assertCount(9, $transactions['transactions']); $this->assertEquals(3020, $transactions['credits']->getValue()); - $this->assertEquals(2050.0, $transactions['debits']->getValue()); + $this->assertEquals(2050.4, $transactions['debits']->getValue()); } }