diff --git a/app/Helpers/Csv/Wizard.php b/app/Helpers/Csv/Wizard.php index f701e0a022..92d37af073 100644 --- a/app/Helpers/Csv/Wizard.php +++ b/app/Helpers/Csv/Wizard.php @@ -44,9 +44,7 @@ class Wizard implements WizardInterface /* * Make each one unique. */ - foreach ($values as $column => $found) { - $values[$column] = array_unique($found); - } + $values = $this->uniqueRecursive($values); return $values; } @@ -176,4 +174,18 @@ class Wizard implements WizardInterface { return ($hasHeaders && $index > 1) || !$hasHeaders; } + + /** + * @param array $array + * + * @return array + */ + protected function uniqueRecursive(array $array) + { + foreach ($array as $column => $found) { + $array[$column] = array_unique($found); + } + + return $array; + } } \ No newline at end of file diff --git a/app/Http/Controllers/JsonController.php b/app/Http/Controllers/JsonController.php index 5f53c708f7..72b4e8ed6e 100644 --- a/app/Http/Controllers/JsonController.php +++ b/app/Http/Controllers/JsonController.php @@ -36,6 +36,7 @@ class JsonController extends Controller { $start = Session::get('start', Carbon::now()->startOfMonth()); $end = Session::get('end', Carbon::now()->endOfMonth()); + $amount = 0; bcscale(2); // works for json too! @@ -46,12 +47,7 @@ class JsonController extends Controller if ($cache->has()) { return Response::json($cache->get()); // @codeCoverageIgnore } - - $amount = 0; - - - // these two functions are the same as the chart - $bills = $repository->getActiveBills(); + $bills = $repository->getActiveBills(); // these two functions are the same as the chart /** @var Bill $bill */ foreach ($bills as $bill) { @@ -59,14 +55,10 @@ class JsonController extends Controller } unset($bill, $bills); - /** - * Find credit card accounts and possibly unpaid credit card bills. - */ - $creditCards = $accountRepository->getCreditCards(); - // if the balance is not zero, the monthly payment is still underway. + $creditCards = $accountRepository->getCreditCards(); // Find credit card accounts and possibly unpaid credit card bills. /** @var Account $creditCard */ foreach ($creditCards as $creditCard) { - $balance = Steam::balance($creditCard, $end, true); + $balance = Steam::balance($creditCard, $end, true); // if the balance is not zero, the monthly payment is still underway. if ($balance == 0) { // find a transfer TO the credit card which should account for // anything paid. If not, the CC is not yet used. @@ -76,7 +68,6 @@ class JsonController extends Controller $data = ['box' => 'bills-paid', 'amount' => Amount::format($amount, false), 'amount_raw' => $amount]; $cache->store($data); - return Response::json($data); } diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index ad4ee43f01..3a497f6bb7 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -63,12 +63,19 @@ class AccountRepository implements AccountRepositoryInterface */ public function getAccounts(array $types) { + /** @var Collection $result */ $result = Auth::user()->accounts()->with( ['accountmeta' => function (HasMany $query) { $query->where('name', 'accountRole'); }] )->accountTypeIn($types)->orderBy('accounts.name', 'ASC')->get(['accounts.*']); + $result = $result->sortBy( + function (Account $account) { + return strtolower($account->name); + } + ); + return $result; }