From abb1095cefda19d0da6ff00ffb6680faaa680961 Mon Sep 17 00:00:00 2001 From: James Cole Date: Mon, 28 Mar 2022 12:24:16 +0200 Subject: [PATCH] Fix summary and dates, also fix #5770 --- .../Controllers/Summary/BasicController.php | 4 +- .../Controllers/Chart/AccountController.php | 45 ++++++------- app/Http/Controllers/Controller.php | 2 +- app/Http/Controllers/Json/BoxController.php | 2 +- .../Budget/OperationsRepository.php | 54 +++++++++++----- .../Chart/Budget/FrontpageChartGenerator.php | 2 +- .../Http/Controllers/PeriodOverview.php | 2 +- app/Support/Navigation.php | 32 +++++----- routes/breadcrumbs.php | 64 +++++++++---------- 9 files changed, 114 insertions(+), 93 deletions(-) diff --git a/app/Api/V1/Controllers/Summary/BasicController.php b/app/Api/V1/Controllers/Summary/BasicController.php index e596549bb9..362d6802e0 100644 --- a/app/Api/V1/Controllers/Summary/BasicController.php +++ b/app/Api/V1/Controllers/Summary/BasicController.php @@ -150,7 +150,9 @@ class BasicController extends Controller foreach ($set as $transactionJournal) { $currencyId = (int)$transactionJournal['currency_id']; $incomes[$currencyId] = $incomes[$currencyId] ?? '0'; - $incomes[$currencyId] = bcadd($incomes[$currencyId], bcmul($transactionJournal['amount'], '-1')); + $incomes[$currencyId] = bcadd($incomes[$currencyId], + bcmul($transactionJournal['amount'], '-1') + ); $sums[$currencyId] = $sums[$currencyId] ?? '0'; $sums[$currencyId] = bcadd($sums[$currencyId], bcmul($transactionJournal['amount'], '-1')); } diff --git a/app/Http/Controllers/Chart/AccountController.php b/app/Http/Controllers/Chart/AccountController.php index 16d12aec1f..c227cf8ba6 100644 --- a/app/Http/Controllers/Chart/AccountController.php +++ b/app/Http/Controllers/Chart/AccountController.php @@ -50,14 +50,9 @@ class AccountController extends Controller { use DateCalculation, AugumentData, ChartGeneration; - /** @var GeneratorInterface Chart generation methods. */ - protected $generator; - - /** @var AccountRepositoryInterface Account repository. */ - private $accountRepository; - - /** @var CurrencyRepositoryInterface */ - private $currencyRepository; + protected GeneratorInterface $generator; + private AccountRepositoryInterface $accountRepository; + private CurrencyRepositoryInterface $currencyRepository; /** * AccountController constructor. @@ -117,10 +112,10 @@ class AccountController extends Controller // loop the end balances. This is an array for each account ($expenses) foreach ($endBalances as $accountId => $expenses) { - $accountId = (int)$accountId; + $accountId = (int) $accountId; // loop each expense entry (each entry can be a different currency). foreach ($expenses as $currencyId => $endAmount) { - $currencyId = (int)$currencyId; + $currencyId = (int) $currencyId; // see if there is an accompanying start amount. // grab the difference and find the currency. @@ -132,7 +127,7 @@ class AccountController extends Controller $tempData[] = [ 'name' => $accountNames[$accountId], 'difference' => $diff, - 'diff_float' => (float)$diff, + 'diff_float' => (float) $diff, 'currency_id' => $currencyId, ]; } @@ -151,7 +146,7 @@ class AccountController extends Controller foreach ($currencies as $currencyId => $currency) { $dataSet = [ - 'label' => (string)trans('firefly.spent'), + 'label' => (string) trans('firefly.spent'), 'type' => 'bar', 'currency_symbol' => $currency->symbol, 'currency_code' => $currency->code, @@ -218,7 +213,7 @@ class AccountController extends Controller $budgetIds = []; /** @var array $journal */ foreach ($journals as $journal) { - $budgetId = (int)$journal['budget_id']; + $budgetId = (int) $journal['budget_id']; $key = sprintf('%d-%d', $budgetId, $journal['currency_id']); $budgetIds[] = $budgetId; if (!array_key_exists($key, $result)) { @@ -238,7 +233,7 @@ class AccountController extends Controller foreach ($result as $row) { $budgetId = $row['budget_id']; $name = $names[$budgetId]; - $label = (string)trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); + $label = (string) trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); $chartData[$label] = ['amount' => $row['total'], 'currency_symbol' => $row['currency_symbol'], 'currency_code' => $row['currency_code']]; } @@ -298,7 +293,7 @@ class AccountController extends Controller if (!array_key_exists($key, $result)) { $result[$key] = [ 'total' => '0', - 'category_id' => (int)$journal['category_id'], + 'category_id' => (int) $journal['category_id'], 'currency_name' => $journal['currency_name'], 'currency_symbol' => $journal['currency_symbol'], 'currency_code' => $journal['currency_code'], @@ -311,7 +306,7 @@ class AccountController extends Controller foreach ($result as $row) { $categoryId = $row['category_id']; $name = $names[$categoryId] ?? '(unknown)'; - $label = (string)trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); + $label = (string) trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); $chartData[$label] = ['amount' => $row['total'], 'currency_symbol' => $row['currency_symbol'], 'currency_code' => $row['currency_code']]; } @@ -410,7 +405,7 @@ class AccountController extends Controller foreach ($result as $row) { $categoryId = $row['category_id']; $name = $names[$categoryId] ?? '(unknown)'; - $label = (string)trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); + $label = (string) trans('firefly.name_in_currency', ['name' => $name, 'currency' => $row['currency_name']]); $chartData[$label] = ['amount' => $row['total'], 'currency_symbol' => $row['currency_symbol'], 'currency_code' => $row['currency_code']]; } $data = $this->generator->multiCurrencyPieChart($chartData); @@ -440,7 +435,7 @@ class AccountController extends Controller $cache->addProperty($end); $cache->addProperty($account->id); if ($cache->has()) { - return response()->json($cache->get()); + //return response()->json($cache->get()); } $currencies = $this->accountRepository->getUsedCurrencies($account); @@ -487,14 +482,14 @@ class AccountController extends Controller break; case '1D': // per day the entire period, balance for every day. - $format = (string)trans('config.month_and_day', [], $locale); + $format = (string) trans('config.month_and_day_js', [], $locale); $range = app('steam')->balanceInRange($account, $start, $end, $currency); $previous = array_values($range)[0]; while ($end >= $current) { $theDate = $current->format('Y-m-d'); $balance = $range[$theDate] ?? $previous; $label = $current->isoFormat($format); - $entries[$label] = (float)$balance; + $entries[$label] = (float) $balance; $previous = $balance; $current->addDay(); } @@ -504,7 +499,7 @@ class AccountController extends Controller case '1M': case '1Y': while ($end >= $current) { - $balance = (float)app('steam')->balance($account, $current, $currency); + $balance = (float) app('steam')->balance($account, $current, $currency); $label = app('navigation')->periodShow($current, $step); $entries[$label] = $balance; $current = app('navigation')->addPeriod($current, $step, 0); @@ -571,10 +566,10 @@ class AccountController extends Controller // loop the end balances. This is an array for each account ($expenses) foreach ($endBalances as $accountId => $expenses) { - $accountId = (int)$accountId; + $accountId = (int) $accountId; // loop each expense entry (each entry can be a different currency). foreach ($expenses as $currencyId => $endAmount) { - $currencyId = (int)$currencyId; + $currencyId = (int) $currencyId; // see if there is an accompanying start amount. // grab the difference and find the currency. @@ -586,7 +581,7 @@ class AccountController extends Controller $tempData[] = [ 'name' => $accountNames[$accountId], 'difference' => $diff, - 'diff_float' => (float)$diff, + 'diff_float' => (float) $diff, 'currency_id' => $currencyId, ]; } @@ -605,7 +600,7 @@ class AccountController extends Controller foreach ($currencies as $currencyId => $currency) { $dataSet = [ - 'label' => (string)trans('firefly.earned'), + 'label' => (string) trans('firefly.earned'), 'type' => 'bar', 'currency_symbol' => $currency->symbol, 'currency_code' => $currency->code, diff --git a/app/Http/Controllers/Controller.php b/app/Http/Controllers/Controller.php index 445c2021c2..22751a9377 100644 --- a/app/Http/Controllers/Controller.php +++ b/app/Http/Controllers/Controller.php @@ -93,7 +93,7 @@ abstract class Controller extends BaseController $locale = app('steam')->getLocale(); // translations for specific strings: $this->monthFormat = (string)trans('config.month_js', [], $locale); - $this->monthAndDayFormat = (string)trans('config.month_and_day_moment_js', [], $locale); + $this->monthAndDayFormat = (string)trans('config.month_and_day_js', [], $locale); $this->dateTimeFormat = (string)trans('config.date_time_js', [], $locale); // get shown-intro-preference: diff --git a/app/Http/Controllers/Json/BoxController.php b/app/Http/Controllers/Json/BoxController.php index 07cc1c0b75..db99a2c402 100644 --- a/app/Http/Controllers/Json/BoxController.php +++ b/app/Http/Controllers/Json/BoxController.php @@ -74,7 +74,7 @@ class BoxController extends Controller $cache->addProperty($today); $cache->addProperty('box-available'); if ($cache->has()) { - return response()->json($cache->get()); + //return response()->json($cache->get()); } $leftPerDayAmount = '0'; $leftToSpendAmount = '0'; diff --git a/app/Repositories/Budget/OperationsRepository.php b/app/Repositories/Budget/OperationsRepository.php index ea82a15aa0..52b9648fb5 100644 --- a/app/Repositories/Budget/OperationsRepository.php +++ b/app/Repositories/Budget/OperationsRepository.php @@ -25,9 +25,11 @@ namespace FireflyIII\Repositories\Budget; use Carbon\Carbon; use FireflyIII\Helpers\Collector\GroupCollectorInterface; +use FireflyIII\Models\Account; use FireflyIII\Models\Budget; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionType; +use FireflyIII\Repositories\Account\AccountRepositoryInterface; use FireflyIII\User; use Illuminate\Support\Collection; use Log; @@ -56,15 +58,15 @@ class OperationsRepository implements OperationsRepositoryInterface foreach ($budget->budgetlimits as $limit) { $diff = $limit->start_date->diffInDays($limit->end_date); $diff = 0 === $diff ? 1 : $diff; - $amount = (string)$limit->amount; - $perDay = bcdiv($amount, (string)$diff); + $amount = (string) $limit->amount; + $perDay = bcdiv($amount, (string) $diff); $total = bcadd($total, $perDay); $count++; Log::debug(sprintf('Found %d budget limits. Per day is %s, total is %s', $count, $perDay, $total)); } $avg = $total; if ($count > 0) { - $avg = bcdiv($total, (string)$count); + $avg = bcdiv($total, (string) $count); } Log::debug(sprintf('%s / %d = %s = average.', $total, $count, $avg)); @@ -98,9 +100,9 @@ class OperationsRepository implements OperationsRepositoryInterface /** @var array $journal */ foreach ($journals as $journal) { // prep data array for currency: - $budgetId = (int)$journal['budget_id']; + $budgetId = (int) $journal['budget_id']; $budgetName = $journal['budget_name']; - $currencyId = (int)$journal['currency_id']; + $currencyId = (int) $journal['currency_id']; $key = sprintf('%d-%d', $budgetId, $currencyId); $data[$key] = $data[$key] ?? [ @@ -152,9 +154,9 @@ class OperationsRepository implements OperationsRepositoryInterface $array = []; foreach ($journals as $journal) { - $currencyId = (int)$journal['currency_id']; - $budgetId = (int)$journal['budget_id']; - $budgetName = (string)$journal['budget_name']; + $currencyId = (int) $journal['currency_id']; + $budgetId = (int) $journal['budget_id']; + $budgetName = (string) $journal['budget_name']; // catch "no category" entries. if (0 === $budgetId) { @@ -180,7 +182,7 @@ class OperationsRepository implements OperationsRepositoryInterface // add journal to array: // only a subset of the fields. - $journalId = (int)$journal['transaction_journal_id']; + $journalId = (int) $journal['transaction_journal_id']; $array[$currencyId]['budgets'][$budgetId]['transaction_journals'][$journalId] = [ 'amount' => app('steam')->negative($journal['amount']), 'destination_account_id' => $journal['destination_account_id'], @@ -257,12 +259,12 @@ class OperationsRepository implements OperationsRepositoryInterface /** @var TransactionCurrency $currency */ $currency = $currencies[$code]; $return[] = [ - 'currency_id' => (string)$currency['id'], + 'currency_id' => (string) $currency['id'], 'currency_code' => $code, 'currency_name' => $currency['name'], 'currency_symbol' => $currency['symbol'], 'currency_decimal_places' => $currency['decimal_places'], - 'amount' => number_format((float)$spent, $currency['decimal_places'], '.', ''), + 'amount' => number_format((float) $spent, $currency['decimal_places'], '.', ''), ]; } @@ -279,13 +281,35 @@ class OperationsRepository implements OperationsRepositoryInterface * @return array */ public function sumExpenses(Carbon $start, Carbon $end, ?Collection $accounts = null, ?Collection $budgets = null, ?TransactionCurrency $currency = null - ): array { + ): array + { Log::debug(sprintf('Now in %s', __METHOD__)); $start->startOfDay(); $end->endOfDay(); + + // this collector excludes all transfers TO + // liabilities (which are also withdrawals) + // because those expenses only become expenses + // once they move from the liability to the friend. + // TODO this filter must be somewhere in AccountRepositoryInterface because I suspect its needed more often (A113) + $repository = app(AccountRepositoryInterface::class); + $repository->setUser($this->user); + $accounts = $repository->getAccountsByType(config('firefly.valid_liabilities')); + $selection = new Collection; + /** @var Account $account */ + foreach ($accounts as $account) { + if ('credit' === $repository->getMetaValue($account, 'liability_direction')) { + $selection->push($account); + } + } + + /** @var GroupCollectorInterface $collector */ $collector = app(GroupCollectorInterface::class); - $collector->setUser($this->user)->setRange($start, $end)->setTypes([TransactionType::WITHDRAWAL]); + $collector->setUser($this->user) + ->setRange($start, $end) + ->excludeDestinationAccounts($selection) + ->setTypes([TransactionType::WITHDRAWAL]); if (null !== $accounts) { $collector->setAccounts($accounts); @@ -318,7 +342,7 @@ class OperationsRepository implements OperationsRepositoryInterface $array = []; foreach ($journals as $journal) { - $currencyId = (int)$journal['currency_id']; + $currencyId = (int) $journal['currency_id']; $array[$currencyId] = $array[$currencyId] ?? [ 'sum' => '0', 'currency_id' => $currencyId, @@ -330,7 +354,7 @@ class OperationsRepository implements OperationsRepositoryInterface $array[$currencyId]['sum'] = bcadd($array[$currencyId]['sum'], app('steam')->negative($journal['amount'])); // also do foreign amount: - $foreignId = (int)$journal['foreign_currency_id']; + $foreignId = (int) $journal['foreign_currency_id']; if (0 !== $foreignId) { $array[$foreignId] = $array[$foreignId] ?? [ 'sum' => '0', diff --git a/app/Support/Chart/Budget/FrontpageChartGenerator.php b/app/Support/Chart/Budget/FrontpageChartGenerator.php index 26ee353122..8e3468e400 100644 --- a/app/Support/Chart/Budget/FrontpageChartGenerator.php +++ b/app/Support/Chart/Budget/FrontpageChartGenerator.php @@ -229,6 +229,6 @@ class FrontpageChartGenerator $this->opsRepository->setUser($user); $locale = app('steam')->getLocale(); - $this->monthAndDayFormat = (string)trans('config.month_and_day', [], $locale); + $this->monthAndDayFormat = (string)trans('config.month_and_day_js', [], $locale); } } diff --git a/app/Support/Http/Controllers/PeriodOverview.php b/app/Support/Http/Controllers/PeriodOverview.php index f67ed67074..8286ead5ae 100644 --- a/app/Support/Http/Controllers/PeriodOverview.php +++ b/app/Support/Http/Controllers/PeriodOverview.php @@ -93,7 +93,7 @@ trait PeriodOverview $cache->addProperty('account-show-period-entries'); $cache->addProperty($account->id); if ($cache->has()) { - return $cache->get(); + // return $cache->get(); } /** @var array $dates */ $dates = app('navigation')->blockPeriods($start, $end, $range); diff --git a/app/Support/Navigation.php b/app/Support/Navigation.php index 1cac73859e..1b7388957e 100644 --- a/app/Support/Navigation.php +++ b/app/Support/Navigation.php @@ -340,17 +340,17 @@ class Navigation // define period to increment $increment = 'addDay'; $format = $this->preferredCarbonFormat($start, $end); - $displayFormat = (string)trans('config.month_and_day', [], $locale); + $displayFormat = (string)trans('config.month_and_day_js', [], $locale); // increment by month (for year) if ($start->diffInMonths($end) > 1) { $increment = 'addMonth'; - $displayFormat = (string)trans('config.month'); + $displayFormat = (string)trans('config.month_js'); } // increment by year (for multi year) if ($start->diffInMonths($end) > 12) { $increment = 'addYear'; - $displayFormat = (string)trans('config.year'); + $displayFormat = (string)trans('config.year_js'); } $begin = clone $start; $entries = []; @@ -397,19 +397,19 @@ class Navigation { $date = clone $theDate; $formatMap = [ - '1D' => (string)trans('config.specific_day'), - 'daily' => (string)trans('config.specific_day'), - 'custom' => (string)trans('config.specific_day'), - '1W' => (string)trans('config.week_in_year'), - 'week' => (string)trans('config.week_in_year'), - 'weekly' => (string)trans('config.week_in_year'), - '1M' => (string)trans('config.month'), - 'month' => (string)trans('config.month'), - 'monthly' => (string)trans('config.month'), - '1Y' => (string)trans('config.year'), - 'year' => (string)trans('config.year'), - 'yearly' => (string)trans('config.year'), - '6M' => (string)trans('config.half_year'), + '1D' => (string)trans('config.specific_day_js'), + 'daily' => (string)trans('config.specific_day_js'), + 'custom' => (string)trans('config.specific_day_js'), + '1W' => (string)trans('config.week_in_year_js'), + 'week' => (string)trans('config.week_in_year_js'), + 'weekly' => (string)trans('config.week_in_year_js'), + '1M' => (string)trans('config.month_js'), + 'month' => (string)trans('config.month_js'), + 'monthly' => (string)trans('config.month_js'), + '1Y' => (string)trans('config.year_js'), + 'year' => (string)trans('config.year_js'), + 'yearly' => (string)trans('config.year_js'), + '6M' => (string)trans('config.half_year_js'), ]; if (array_key_exists($repeatFrequency, $formatMap)) { diff --git a/routes/breadcrumbs.php b/routes/breadcrumbs.php index d07ea80b30..ff7f4df4a4 100644 --- a/routes/breadcrumbs.php +++ b/routes/breadcrumbs.php @@ -114,8 +114,8 @@ try { if (null !== $start && null !== $end) { $title = trans( 'firefly.between_dates_breadcrumb', - ['start' => $start->formatLocalized((string)trans('config.month_and_day')), - 'end' => $end->formatLocalized((string)trans('config.month_and_day')),] + ['start' => $start->isoFormat((string)trans('config.month_and_day_js')), + 'end' => $end->isoFormat((string)trans('config.month_and_day_js')),] ); $breadcrumbs->push($title, route('accounts.show', $account)); } @@ -443,8 +443,8 @@ try { if (null !== $start && null !== $end) { $title = trans( 'firefly.between_dates_breadcrumb', - ['start' => $start->formatLocalized((string)trans('config.month_and_day')), - 'end' => $end->formatLocalized((string)trans('config.month_and_day')),] + ['start' => $start->isoFormat((string)trans('config.month_and_day_js')), + 'end' => $end->isoFormat((string)trans('config.month_and_day_js')),] ); $breadcrumbs->push($title, route('budgets.no-budget')); } @@ -477,8 +477,8 @@ try { $title = trans( 'firefly.between_dates_breadcrumb', - ['start' => $budgetLimit->start_date->formatLocalized((string)trans('config.month_and_day')), - 'end' => $budgetLimit->end_date->formatLocalized((string)trans('config.month_and_day')),] + ['start' => $budgetLimit->start_date->isoFormat((string)trans('config.month_and_day_js')), + 'end' => $budgetLimit->end_date->isoFormat((string)trans('config.month_and_day_js')),] ); $breadcrumbs->push( @@ -527,8 +527,8 @@ try { if (null !== $start && null !== $end) { $title = trans( 'firefly.between_dates_breadcrumb', - ['start' => $start->formatLocalized((string)trans('config.month_and_day')), - 'end' => $end->formatLocalized((string)trans('config.month_and_day')),] + ['start' => $start->isoFormat((string)trans('config.month_and_day_js')), + 'end' => $end->isoFormat((string)trans('config.month_and_day_js')),] ); $breadcrumbs->push($title, route('categories.show', [$category->id])); } @@ -552,8 +552,8 @@ try { if (null !== $start && null !== $end) { $title = trans( 'firefly.between_dates_breadcrumb', - ['start' => $start->formatLocalized((string)trans('config.month_and_day')), - 'end' => $end->formatLocalized((string)trans('config.month_and_day')),] + ['start' => $start->isoFormat((string)trans('config.month_and_day_js')), + 'end' => $end->isoFormat((string)trans('config.month_and_day_js')),] ); $breadcrumbs->push($title, route('categories.no-category')); } @@ -747,9 +747,9 @@ try { static function (Generator $breadcrumbs, string $accountIds, Carbon $start, Carbon $end) { $breadcrumbs->parent('reports.index'); - $monthFormat = (string)trans('config.month_and_day'); - $startString = $start->formatLocalized($monthFormat); - $endString = $end->formatLocalized($monthFormat); + $monthFormat = (string)trans('config.month_and_day_js'); + $startString = $start->isoFormat($monthFormat); + $endString = $end->isoFormat($monthFormat); $title = (string)trans('firefly.report_audit', ['start' => $startString, 'end' => $endString]); $breadcrumbs->push($title, route('reports.report.audit', [$accountIds, $start->format('Ymd'), $end->format('Ymd')])); @@ -760,9 +760,9 @@ try { static function (Generator $breadcrumbs, string $accountIds, string $budgetIds, Carbon $start, Carbon $end) { $breadcrumbs->parent('reports.index'); - $monthFormat = (string)trans('config.month_and_day'); - $startString = $start->formatLocalized($monthFormat); - $endString = $end->formatLocalized($monthFormat); + $monthFormat = (string)trans('config.month_and_day_js'); + $startString = $start->isoFormat($monthFormat); + $endString = $end->isoFormat($monthFormat); $title = (string)trans('firefly.report_budget', ['start' => $startString, 'end' => $endString]); $breadcrumbs->push($title, route('reports.report.budget', [$accountIds, $budgetIds, $start->format('Ymd'), $end->format('Ymd')])); @@ -774,9 +774,9 @@ try { static function (Generator $breadcrumbs, string $accountIds, string $tagTags, Carbon $start, Carbon $end) { $breadcrumbs->parent('reports.index'); - $monthFormat = (string)trans('config.month_and_day'); - $startString = $start->formatLocalized($monthFormat); - $endString = $end->formatLocalized($monthFormat); + $monthFormat = (string)trans('config.month_and_day_js'); + $startString = $start->isoFormat($monthFormat); + $endString = $end->isoFormat($monthFormat); $title = (string)trans('firefly.report_tag', ['start' => $startString, 'end' => $endString]); $breadcrumbs->push($title, route('reports.report.tag', [$accountIds, $tagTags, $start->format('Ymd'), $end->format('Ymd')])); @@ -788,9 +788,9 @@ try { static function (Generator $breadcrumbs, string $accountIds, string $categoryIds, Carbon $start, Carbon $end) { $breadcrumbs->parent('reports.index'); - $monthFormat = (string)trans('config.month_and_day'); - $startString = $start->formatLocalized($monthFormat); - $endString = $end->formatLocalized($monthFormat); + $monthFormat = (string)trans('config.month_and_day_js'); + $startString = $start->isoFormat($monthFormat); + $endString = $end->isoFormat($monthFormat); $title = (string)trans('firefly.report_category', ['start' => $startString, 'end' => $endString]); $breadcrumbs->push($title, route('reports.report.category', [$accountIds, $categoryIds, $start->format('Ymd'), $end->format('Ymd')])); @@ -802,9 +802,9 @@ try { static function (Generator $breadcrumbs, string $accountIds, string $doubleIds, Carbon $start, Carbon $end) { $breadcrumbs->parent('reports.index'); - $monthFormat = (string)trans('config.month_and_day'); - $startString = $start->formatLocalized($monthFormat); - $endString = $end->formatLocalized($monthFormat); + $monthFormat = (string)trans('config.month_and_day_js'); + $startString = $start->isoFormat($monthFormat); + $endString = $end->isoFormat($monthFormat); $title = (string)trans('firefly.report_double', ['start' => $startString, 'end' => $endString]); $breadcrumbs->push($title, route('reports.report.double', [$accountIds, $doubleIds, $start->format('Ymd'), $end->format('Ymd')])); @@ -816,9 +816,9 @@ try { static function (Generator $breadcrumbs, string $accountIds, Carbon $start, Carbon $end) { $breadcrumbs->parent('reports.index'); - $monthFormat = (string)trans('config.month_and_day'); - $startString = $start->formatLocalized($monthFormat); - $endString = $end->formatLocalized($monthFormat); + $monthFormat = (string)trans('config.month_and_day_js'); + $startString = $start->isoFormat($monthFormat); + $endString = $end->isoFormat($monthFormat); $title = (string)trans('firefly.report_default', ['start' => $startString, 'end' => $endString]); $breadcrumbs->push($title, route('reports.report.default', [$accountIds, $start->format('Ymd'), $end->format('Ymd')])); @@ -1029,8 +1029,8 @@ try { if (null !== $start && null !== $end) { $title = trans( 'firefly.between_dates_breadcrumb', - ['start' => $start->formatLocalized((string)trans('config.month_and_day')), - 'end' => $end->formatLocalized((string)trans('config.month_and_day')),] + ['start' => $start->isoFormat((string)trans('config.month_and_day_js')), + 'end' => $end->isoFormat((string)trans('config.month_and_day_js')),] ); $breadcrumbs->push($title, route('tags.show', [$tag->id, $start, $end])); } @@ -1059,8 +1059,8 @@ try { // add date range: $title = trans( 'firefly.between_dates_breadcrumb', - ['start' => $start->formatLocalized((string)trans('config.month_and_day')), - 'end' => $end->formatLocalized((string)trans('config.month_and_day')),] + ['start' => $start->isoFormat((string)trans('config.month_and_day_js')), + 'end' => $end->isoFormat((string)trans('config.month_and_day_js')),] ); $breadcrumbs->push($title, route('transactions.index', [$what, $start, $end])); }