diff --git a/app/Api/V1/Controllers/Chart/AccountController.php b/app/Api/V1/Controllers/Chart/AccountController.php index c097ec0372..00d0e8365d 100644 --- a/app/Api/V1/Controllers/Chart/AccountController.php +++ b/app/Api/V1/Controllers/Chart/AccountController.php @@ -24,7 +24,6 @@ declare(strict_types=1); namespace FireflyIII\Api\V1\Controllers\Chart; -use Illuminate\Http\Request; use FireflyIII\Api\V1\Controllers\Controller; use FireflyIII\Api\V1\Requests\Chart\ChartRequest; use FireflyIII\Enums\UserRoleEnum; @@ -32,11 +31,13 @@ use FireflyIII\Exceptions\FireflyException; use FireflyIII\Models\Account; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Repositories\Account\AccountRepositoryInterface; +use FireflyIII\Support\Facades\Navigation; use FireflyIII\Support\Facades\Steam; use FireflyIII\Support\Http\Api\ApiSupport; use FireflyIII\Support\Http\Api\CleansChartData; use FireflyIII\Support\Http\Api\CollectsAccountsFromFilter; use Illuminate\Http\JsonResponse; +use Illuminate\Http\Request; use Illuminate\Support\Facades\Log; /** @@ -48,9 +49,9 @@ class AccountController extends Controller use CleansChartData; use CollectsAccountsFromFilter; - protected array $acceptedRoles = [UserRoleEnum::READ_ONLY]; + protected array $acceptedRoles = [UserRoleEnum::READ_ONLY]; - private array $chartData = []; + private array $chartData = []; private AccountRepositoryInterface $repository; /** @@ -100,17 +101,17 @@ class AccountController extends Controller private function renderAccountData(array $params, Account $account): void { Log::debug(sprintf('Now in %s(array, #%d)', __METHOD__, $account->id)); - $currency = $this->repository->getAccountCurrency($account); - $currentStart = clone $params['start']; - $range = Steam::finalAccountBalanceInRange($account, $params['start'], clone $params['end'], $this->convertToPrimary); + $currency = $this->repository->getAccountCurrency($account); + $currentStart = clone $params['start']; + $range = Steam::finalAccountBalanceInRange($account, $params['start'], clone $params['end'], $this->convertToPrimary); + $period = $params['period'] ?? '1D'; - - $previous = array_values($range)[0]['balance']; - $pcPrevious = null; + $previous = array_values($range)[0]['balance']; + $pcPrevious = null; if (!$currency instanceof TransactionCurrency) { $currency = $this->primaryCurrency; } - $currentSet = [ + $currentSet = [ 'label' => $account->name, // the currency that belongs to the account. @@ -129,7 +130,7 @@ class AccountController extends Controller 'end_date' => $params['end']->toAtomString(), 'type' => 'line', 'yAxisID' => 0, - 'period' => '1D', + 'period' => $period, 'entries' => [], 'pc_entries' => [], ]; @@ -141,7 +142,7 @@ class AccountController extends Controller $currentSet['primary_currency_decimal_places'] = $this->primaryCurrency->decimal_places; $pcPrevious = array_values($range)[0]['pc_balance']; } - + // create array of values to collect. while ($currentStart <= $params['end']) { $format = $currentStart->format('Y-m-d'); @@ -152,14 +153,14 @@ class AccountController extends Controller // do the same for the primary currency balance, if relevant: - $pcBalance = null; + $pcBalance = null; if ($this->convertToPrimary) { $pcBalance = array_key_exists($format, $range) ? $range[$format]['pc_balance'] : $pcPrevious; $pcPrevious = $pcBalance; $currentSet['pc_entries'][$label] = $pcBalance; } - - $currentStart->addDay(); + $currentStart = Navigation::addPeriod($currentStart, $period); + // $currentStart->addDay(); } $this->chartData[] = $currentSet; } diff --git a/app/Http/Controllers/RuleGroup/ExecutionController.php b/app/Http/Controllers/RuleGroup/ExecutionController.php index f066f9f1a4..80628fd116 100644 --- a/app/Http/Controllers/RuleGroup/ExecutionController.php +++ b/app/Http/Controllers/RuleGroup/ExecutionController.php @@ -43,7 +43,7 @@ use Illuminate\View\View; */ class ExecutionController extends Controller { - private AccountRepositoryInterface $repository; + private readonly AccountRepositoryInterface $repository; /** * ExecutionController constructor. diff --git a/tests/unit/Support/Calendar/Periodicity/BimonthlyTest.php b/tests/unit/Support/Calendar/Periodicity/BimonthlyTest.php index b667107a3c..71bed2a545 100644 --- a/tests/unit/Support/Calendar/Periodicity/BimonthlyTest.php +++ b/tests/unit/Support/Calendar/Periodicity/BimonthlyTest.php @@ -27,7 +27,6 @@ namespace Tests\unit\Support\Calendar\Periodicity; use FireflyIII\Support\Calendar\Periodicity\Bimonthly; use Carbon\Carbon; use FireflyIII\Support\Calendar\Periodicity; -use FireflyIII\Support\Calendar\Periodicity\Interval; /** * @group unit-test @@ -41,7 +40,7 @@ use FireflyIII\Support\Calendar\Periodicity\Interval; */ final class BimonthlyTest extends IntervalTestCase { - public static function factory(): Interval + public static function factory(): Bimonthly { return new Bimonthly(); } diff --git a/tests/unit/Support/Calendar/Periodicity/DailyTest.php b/tests/unit/Support/Calendar/Periodicity/DailyTest.php index 1c5dd1560c..0921b3f0a1 100644 --- a/tests/unit/Support/Calendar/Periodicity/DailyTest.php +++ b/tests/unit/Support/Calendar/Periodicity/DailyTest.php @@ -27,7 +27,6 @@ namespace Tests\unit\Support\Calendar\Periodicity; use FireflyIII\Support\Calendar\Periodicity\Daily; use Carbon\Carbon; use FireflyIII\Support\Calendar\Periodicity; -use FireflyIII\Support\Calendar\Periodicity\Interval; /** * @group unit-test @@ -41,7 +40,7 @@ use FireflyIII\Support\Calendar\Periodicity\Interval; */ final class DailyTest extends IntervalTestCase { - public static function factory(): Interval + public static function factory(): Daily { return new Daily(); } diff --git a/tests/unit/Support/Calendar/Periodicity/FortnightlyTest.php b/tests/unit/Support/Calendar/Periodicity/FortnightlyTest.php index fdb8eac236..095b11b1ac 100644 --- a/tests/unit/Support/Calendar/Periodicity/FortnightlyTest.php +++ b/tests/unit/Support/Calendar/Periodicity/FortnightlyTest.php @@ -27,7 +27,6 @@ namespace Tests\unit\Support\Calendar\Periodicity; use FireflyIII\Support\Calendar\Periodicity\Fortnightly; use Carbon\Carbon; use FireflyIII\Support\Calendar\Periodicity; -use FireflyIII\Support\Calendar\Periodicity\Interval; /** * @group unit-test @@ -41,7 +40,7 @@ use FireflyIII\Support\Calendar\Periodicity\Interval; */ final class FortnightlyTest extends IntervalTestCase { - public static function factory(): Interval + public static function factory(): Fortnightly { return new Fortnightly(); } diff --git a/tests/unit/Support/Calendar/Periodicity/HalfYearlyTest.php b/tests/unit/Support/Calendar/Periodicity/HalfYearlyTest.php index f71779ce59..a30094e41f 100644 --- a/tests/unit/Support/Calendar/Periodicity/HalfYearlyTest.php +++ b/tests/unit/Support/Calendar/Periodicity/HalfYearlyTest.php @@ -27,7 +27,6 @@ namespace Tests\unit\Support\Calendar\Periodicity; use FireflyIII\Support\Calendar\Periodicity\HalfYearly; use Carbon\Carbon; use FireflyIII\Support\Calendar\Periodicity; -use FireflyIII\Support\Calendar\Periodicity\Interval; /** * @group unit-test @@ -41,7 +40,7 @@ use FireflyIII\Support\Calendar\Periodicity\Interval; */ final class HalfYearlyTest extends IntervalTestCase { - public static function factory(): Interval + public static function factory(): HalfYearly { return new HalfYearly(); } diff --git a/tests/unit/Support/Calendar/Periodicity/MonthlyTest.php b/tests/unit/Support/Calendar/Periodicity/MonthlyTest.php index afe440e976..1e224da5b6 100644 --- a/tests/unit/Support/Calendar/Periodicity/MonthlyTest.php +++ b/tests/unit/Support/Calendar/Periodicity/MonthlyTest.php @@ -27,7 +27,6 @@ namespace Tests\unit\Support\Calendar\Periodicity; use FireflyIII\Support\Calendar\Periodicity\Monthly; use Carbon\Carbon; use FireflyIII\Support\Calendar\Periodicity; -use FireflyIII\Support\Calendar\Periodicity\Interval; /** * @group unit-test @@ -41,7 +40,7 @@ use FireflyIII\Support\Calendar\Periodicity\Interval; */ final class MonthlyTest extends IntervalTestCase { - public static function factory(): Interval + public static function factory(): Monthly { return new Monthly(); } diff --git a/tests/unit/Support/Calendar/Periodicity/QuarterlyTest.php b/tests/unit/Support/Calendar/Periodicity/QuarterlyTest.php index 3e73794f24..4c27daea39 100644 --- a/tests/unit/Support/Calendar/Periodicity/QuarterlyTest.php +++ b/tests/unit/Support/Calendar/Periodicity/QuarterlyTest.php @@ -27,7 +27,6 @@ namespace Tests\unit\Support\Calendar\Periodicity; use FireflyIII\Support\Calendar\Periodicity\Quarterly; use Carbon\Carbon; use FireflyIII\Support\Calendar\Periodicity; -use FireflyIII\Support\Calendar\Periodicity\Interval; /** * @group unit-test @@ -41,7 +40,7 @@ use FireflyIII\Support\Calendar\Periodicity\Interval; */ final class QuarterlyTest extends IntervalTestCase { - public static function factory(): Interval + public static function factory(): Quarterly { return new Quarterly(); } diff --git a/tests/unit/Support/Calendar/Periodicity/WeeklyTest.php b/tests/unit/Support/Calendar/Periodicity/WeeklyTest.php index f347d11222..23020042ce 100644 --- a/tests/unit/Support/Calendar/Periodicity/WeeklyTest.php +++ b/tests/unit/Support/Calendar/Periodicity/WeeklyTest.php @@ -27,7 +27,6 @@ namespace Tests\unit\Support\Calendar\Periodicity; use FireflyIII\Support\Calendar\Periodicity\Weekly; use Carbon\Carbon; use FireflyIII\Support\Calendar\Periodicity; -use FireflyIII\Support\Calendar\Periodicity\Interval; /** * @group unit-test @@ -41,7 +40,7 @@ use FireflyIII\Support\Calendar\Periodicity\Interval; */ final class WeeklyTest extends IntervalTestCase { - public static function factory(): Interval + public static function factory(): Weekly { return new Weekly(); } diff --git a/tests/unit/Support/Calendar/Periodicity/YearlyTest.php b/tests/unit/Support/Calendar/Periodicity/YearlyTest.php index 27fbc1c56e..36464498a8 100644 --- a/tests/unit/Support/Calendar/Periodicity/YearlyTest.php +++ b/tests/unit/Support/Calendar/Periodicity/YearlyTest.php @@ -27,7 +27,6 @@ namespace Tests\unit\Support\Calendar\Periodicity; use FireflyIII\Support\Calendar\Periodicity\Yearly; use Carbon\Carbon; use FireflyIII\Support\Calendar\Periodicity; -use FireflyIII\Support\Calendar\Periodicity\Interval; /** * @group unit-test @@ -41,7 +40,7 @@ use FireflyIII\Support\Calendar\Periodicity\Interval; */ final class YearlyTest extends IntervalTestCase { - public static function factory(): Interval + public static function factory(): Yearly { return new Yearly(); }