From a2a980e3de76959f7aa576377ea43aafa586d7e1 Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 8 Jan 2020 06:05:00 +0100 Subject: [PATCH] Fix #2966 --- .../Json/AutoCompleteController.php | 81 ++++++++++--------- 1 file changed, 44 insertions(+), 37 deletions(-) diff --git a/app/Http/Controllers/Json/AutoCompleteController.php b/app/Http/Controllers/Json/AutoCompleteController.php index d57aa9ea24..9fe3cacfe3 100644 --- a/app/Http/Controllers/Json/AutoCompleteController.php +++ b/app/Http/Controllers/Json/AutoCompleteController.php @@ -125,6 +125,14 @@ class AutoCompleteController extends Controller $filtered = $result->unique('description'); $limited = $filtered->slice(0, 15); $array = $limited->toArray(); + // duplicate 'description' value into 'name': + $array = array_map( + static function (array $journal) { + $journal['name'] = $journal['description']; + + return $journal; + }, $array + ); return response()->json(array_values($array)); } @@ -174,6 +182,38 @@ class AutoCompleteController extends Controller return response()->json($array); } + /** + * An auto-complete specifically for asset accounts and liabilities, used when mass updating and for rules mostly. + * + * @param Request $request + * + * @return JsonResponse + */ + public function assetAccounts(Request $request): JsonResponse + { + $search = $request->get('search'); + /** @var AccountRepositoryInterface $repository */ + $repository = app(AccountRepositoryInterface::class); + + // filter the account types: + $allowedAccountTypes = [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]; + Log::debug(sprintf('Now in expenseAccounts(%s). Filtering results.', $search), $allowedAccountTypes); + + $return = []; + $result = $repository->searchAccount((string)$search, $allowedAccountTypes); + + /** @var Account $account */ + foreach ($result as $account) { + $return[] = [ + 'id' => $account->id, + 'name' => $account->name, + 'type' => $account->accountType->type, + ]; + } + + return response()->json($return); + } + /** * @param Request $request * @@ -283,39 +323,6 @@ class AutoCompleteController extends Controller return response()->json($return); } - - /** - * An auto-complete specifically for asset accounts and liabilities, used when mass updating and for rules mostly. - * - * @param Request $request - * - * @return JsonResponse - */ - public function assetAccounts(Request $request): JsonResponse - { - $search = $request->get('search'); - /** @var AccountRepositoryInterface $repository */ - $repository = app(AccountRepositoryInterface::class); - - // filter the account types: - $allowedAccountTypes = [AccountType::ASSET, AccountType::LOAN, AccountType::DEBT, AccountType::MORTGAGE]; - Log::debug(sprintf('Now in expenseAccounts(%s). Filtering results.', $search), $allowedAccountTypes); - - $return = []; - $result = $repository->searchAccount((string)$search, $allowedAccountTypes); - - /** @var Account $account */ - foreach ($result as $account) { - $return[] = [ - 'id' => $account->id, - 'name' => $account->name, - 'type' => $account->accountType->type, - ]; - } - - return response()->json($return); - } - /** * @return JsonResponse * @codeCoverageIgnore @@ -328,12 +335,12 @@ class AutoCompleteController extends Controller /** @var AccountRepositoryInterface $accountRepos */ $accountRepos = app(AccountRepositoryInterface::class); - $piggies = $repository->getPiggyBanks(); + $piggies = $repository->getPiggyBanks(); $defaultCurrency = \Amount::getDefaultCurrency(); - $response = []; + $response = []; /** @var PiggyBank $piggy */ foreach ($piggies as $piggy) { - $currency = $accountRepos->getAccountCurrency($piggy->account) ?? $defaultCurrency; + $currency = $accountRepos->getAccountCurrency($piggy->account) ?? $defaultCurrency; $currentAmount = $repository->getRepetition($piggy)->currentamount ?? '0'; $piggy->name_with_amount = sprintf( '%s (%s / %s)', @@ -341,7 +348,7 @@ class AutoCompleteController extends Controller app('amount')->formatAnything($currency, $currentAmount, false), app('amount')->formatAnything($currency, $piggy->targetamount, false), ); - $response[] = $piggy->toArray(); + $response[] = $piggy->toArray(); } return response()->json($response);