diff --git a/app/controllers/HomeController.php b/app/controllers/HomeController.php index 9617608efc..f6db1ae8d6 100644 --- a/app/controllers/HomeController.php +++ b/app/controllers/HomeController.php @@ -6,6 +6,48 @@ */ class HomeController extends BaseController { + public function cleanup() + { + Auth::loginUsingId(1); + /** @var \FireflyIII\Database\TransactionJournal $repository */ + $repository = App::make('FireflyIII\Database\TransactionJournal'); + + /** @var \FireflyIII\Database\Account $acct */ + $acct = App::make('FireflyIII\Database\Account'); + + + $journals = $repository->get(); + + /** @var TransactionJournal $journal */ + foreach ($journals as $journal) { + + if ($journal->TransactionType->type == 'Withdrawal') { + echo '#' . $journal->id . ': ' . e($journal->description); + /** @var Transaction $transaction */ + foreach ($journal->transactions as $transaction) { + if (floatval($transaction->amount) > 0) { + // this is the one with the beneficiary account! + if ($transaction->account->accountType->type == 'Beneficiary account') { + echo ', should be an expense account'; + if (Input::get('update') == 'true') { + $newAccount = $acct->firstExpenseAccountOrCreate($transaction->account->name); + $transaction->account_id = $newAccount->id; + $transaction->save(); + + echo ', updated!'; + } + } + } + } + echo '
'; + } + + + } + + return ' '; + } + /** * @return \Illuminate\Http\RedirectResponse */ diff --git a/app/lib/FireflyIII/Database/TransactionJournal.php b/app/lib/FireflyIII/Database/TransactionJournal.php index aa6c8a8044..1f12855400 100644 --- a/app/lib/FireflyIII/Database/TransactionJournal.php +++ b/app/lib/FireflyIII/Database/TransactionJournal.php @@ -460,7 +460,7 @@ class TransactionJournal implements TransactionJournalInterface, CUD, CommonData */ public function get() { - return $this->getUser()->transactionjournals()->get(); + return $this->getUser()->transactionjournals()->with(['TransactionType','transactions','transactions.account','transactions.account.accountType'])->get(); } /** diff --git a/app/models/Account.php b/app/models/Account.php index 46324baab0..4cdf081f74 100644 --- a/app/models/Account.php +++ b/app/models/Account.php @@ -36,7 +36,7 @@ class Account extends Ardent */ public static $rules = [ - 'name' => ['required', 'between:1,100', 'alphabasic'], + 'name' => ['required', 'between:1,100'], 'user_id' => 'required|exists:users,id', 'account_type_id' => 'required|exists:account_types,id', 'active' => 'required|boolean' diff --git a/app/routes.php b/app/routes.php index 7c39fb1ae1..6538bdcd6b 100644 --- a/app/routes.php +++ b/app/routes.php @@ -125,6 +125,7 @@ Route::bind( } ); +Route::get('/cleanup', ['uses' => 'HomeController@cleanup', 'as' => 'cleanup']); // protected routes: Route::group( ['before' => 'auth'], function () { @@ -134,7 +135,7 @@ Route::group( Route::get('/prev', ['uses' => 'HomeController@sessionPrev', 'as' => 'sessionPrev']); Route::get('/next', ['uses' => 'HomeController@sessionNext', 'as' => 'sessionNext']); Route::get('/jump/{range}', ['uses' => 'HomeController@rangeJump', 'as' => 'rangeJump']); - Route::get('/cleanup', ['uses' => 'HomeController@cleanup', 'as' => 'cleanup']); + // account controller: Route::get('/accounts/{what}', ['uses' => 'AccountController@index', 'as' => 'accounts.index'])->where('what', 'revenue|asset|expense');