diff --git a/app/Helpers/Collector/GroupCollector.php b/app/Helpers/Collector/GroupCollector.php index 931daa3742..c364719f0e 100644 --- a/app/Helpers/Collector/GroupCollector.php +++ b/app/Helpers/Collector/GroupCollector.php @@ -939,7 +939,7 @@ class GroupCollector implements GroupCollectorInterface $groups[$groudId]['sums'][$currencyId]['currency_decimal_places'] = $transaction['currency_decimal_places']; $groups[$groudId]['sums'][$currencyId]['amount'] = '0'; } - $groups[$groudId]['sums'][$currencyId]['amount'] = bcadd($groups[$groudId]['sums'][$currencyId]['amount'], $transaction['amount']); + $groups[$groudId]['sums'][$currencyId]['amount'] = bcadd($groups[$groudId]['sums'][$currencyId]['amount'], $transaction['amount'] ?? '0'); if (null !== $transaction['foreign_amount'] && null !== $transaction['foreign_currency_id']) { $currencyId = (int)$transaction['foreign_currency_id']; @@ -952,7 +952,7 @@ class GroupCollector implements GroupCollectorInterface $groups[$groudId]['sums'][$currencyId]['currency_decimal_places'] = $transaction['foreign_currency_decimal_places']; $groups[$groudId]['sums'][$currencyId]['amount'] = '0'; } - $groups[$groudId]['sums'][$currencyId]['amount'] = bcadd($groups[$groudId]['sums'][$currencyId]['amount'], $transaction['foreign_amount']); + $groups[$groudId]['sums'][$currencyId]['amount'] = bcadd($groups[$groudId]['sums'][$currencyId]['amount'], $transaction['foreign_amount'] ?? '0'); } } } diff --git a/app/Import/Storage/ImportArrayStorage.php b/app/Import/Storage/ImportArrayStorage.php index 449ac9aeab..6eb084657b 100644 --- a/app/Import/Storage/ImportArrayStorage.php +++ b/app/Import/Storage/ImportArrayStorage.php @@ -94,7 +94,7 @@ class ImportArrayStorage // get language of user. /** @var Preference $pref */ - $pref = app('preferences')->get('language', config('firefly.default_language', 'en_US')); + $pref = app('preferences')->getForUser($importJob->user, 'language', config('firefly.default_language', 'en_US')); $this->language = $pref->data; Log::debug('Constructed ImportArrayStorage()'); diff --git a/app/Repositories/Tag/TagRepository.php b/app/Repositories/Tag/TagRepository.php index 90e311d3b2..208710f825 100644 --- a/app/Repositories/Tag/TagRepository.php +++ b/app/Repositories/Tag/TagRepository.php @@ -326,7 +326,8 @@ class TagRepository implements TagRepositoryInterface Log::debug(sprintf('Minimum is %s, maximum is %s, difference is %s', $min, $max, $diff)); - if (0 !== bccomp($diff, '0')) {// for each full coin in tag, add so many points + if (0 !== bccomp($diff, '0')) { // for each full coin in tag, add so many points + // minus the smallest tag. $pointsPerCoin = bcdiv($maxPoints, $diff); } @@ -335,7 +336,8 @@ class TagRepository implements TagRepositoryInterface foreach ($tags as $tag) { $amount = (string)$tag->amount_sum; $amount = '' === $amount ? '0' : $amount; - $pointsForTag = bcmul($amount, $pointsPerCoin); + $amountMin = bcsub($amount, $min); + $pointsForTag = bcmul($amountMin, $pointsPerCoin); $fontSize = bcadd($minimumFont, $pointsForTag); Log::debug(sprintf('Tag "%s": Amount is %s, so points is %s', $tag->tag, $amount, $fontSize)); diff --git a/app/Support/Http/Controllers/PeriodOverview.php b/app/Support/Http/Controllers/PeriodOverview.php index 3a66eaedd1..285d611040 100644 --- a/app/Support/Http/Controllers/PeriodOverview.php +++ b/app/Support/Http/Controllers/PeriodOverview.php @@ -573,7 +573,7 @@ trait PeriodOverview 'currency_decimal_places' => $journal['currency_decimal_places'], ]; } - $return[$currencyId]['amount'] = bcadd($return[$currencyId]['amount'], $journal['amount']); + $return[$currencyId]['amount'] = bcadd($return[$currencyId]['amount'], $journal['amount'] ?? '0'); $return[$currencyId]['count']++; diff --git a/app/Support/Preferences.php b/app/Support/Preferences.php index b8b65a07be..72bd3a2f03 100644 --- a/app/Support/Preferences.php +++ b/app/Support/Preferences.php @@ -104,7 +104,10 @@ class Preferences /** @var User $user */ $user = auth()->user(); if (null === $user) { - return $default; + $preference = new Preference; + $preference->data = $default; + + return $preference; } return $this->getForUser($user, $name, $default); diff --git a/resources/views/v1/errors/500.twig b/resources/views/v1/errors/500.twig index 88f8fe34e0..4d5cea9c04 100644 --- a/resources/views/v1/errors/500.twig +++ b/resources/views/v1/errors/500.twig @@ -38,12 +38,18 @@ font-size: 72px; margin-bottom: 40px; } + + .text { + font-size: 30px; + margin-bottom: 40px; + }
-
Be right back.
+
Whoops
+
There was a fatal error. Please check the log files.
diff --git a/tests/Feature/Controllers/BillControllerTest.php b/tests/Feature/Controllers/BillControllerTest.php index 281b6645e1..94c48b9dab 100644 --- a/tests/Feature/Controllers/BillControllerTest.php +++ b/tests/Feature/Controllers/BillControllerTest.php @@ -164,7 +164,7 @@ class BillControllerTest extends TestCase $repository = $this->mock(BillRepositoryInterface::class); $userRepos = $this->mock(UserRepositoryInterface::class); $transformer = $this->mock(BillTransformer::class); - + $euro = $this->getEuro(); $pref = new Preference; $pref->data = 50; Preferences::shouldReceive('get')->withArgs(['listPageSize', 50])->atLeast()->once()->andReturn($pref); @@ -174,6 +174,10 @@ class BillControllerTest extends TestCase $transformer->shouldReceive('transform')->atLeast()->once()->andReturn( ['id' => 5, 'active' => true, 'name' => 'x', 'next_expected_match' => '2018-01-01', 'currency' => $this->getEuro(), + 'currency_id' => $euro->id, + 'currency_code' => $euro->code, + 'currency_symbol' => $euro->symbol, + 'currency_decimal_places' => $euro->decimal_places, ] ); diff --git a/tests/Unit/Factory/TagFactoryTest.php b/tests/Unit/Factory/TagFactoryTest.php index f328bfda65..3acc979749 100644 --- a/tests/Unit/Factory/TagFactoryTest.php +++ b/tests/Unit/Factory/TagFactoryTest.php @@ -62,7 +62,7 @@ class TagFactoryTest extends TestCase */ public function testFindOrCreateNew(): void { - $tag = sprintf('§Some new tag #%d', $this->randomInt()); + $tag = sprintf('Some new tag %d', $this->randomInt()); /** @var TagFactory $factory */ $factory = app(TagFactory::class); $factory->setUser($this->user()); diff --git a/tests/Unit/Transformers/RecurrenceTransformerTest.php b/tests/Unit/Transformers/RecurrenceTransformerTest.php index f09be87ad5..467b0f8bef 100644 --- a/tests/Unit/Transformers/RecurrenceTransformerTest.php +++ b/tests/Unit/Transformers/RecurrenceTransformerTest.php @@ -79,7 +79,7 @@ class RecurrenceTransformerTest extends TestCase $recurrenceRepos->shouldReceive('getXOccurrences')->andReturn($ranges)->atLeast()->once(); $factory->shouldReceive('findOrCreate')->atLeast()->once()->withArgs([null,Mockery::any()])->andReturn($category); $budgetRepos->shouldReceive('findNull')->atLeast()->once()->andReturn($budget); - $piggyRepos->shouldReceive('findNull')->atLeast()->once()->andReturn($piggy); + $piggyRepos->shouldReceive('findNull')->andReturn($piggy); $billRepos->shouldReceive('find')->andReturn($bill); // basic transformation: