From 067d17c09cf1f61e5caff009948e78c42ade3218 Mon Sep 17 00:00:00 2001 From: James Cole Date: Wed, 17 Dec 2014 21:20:23 +0100 Subject: [PATCH] New repair route [skip ci] --- app/controllers/HomeController.php | 62 ++++++++---------------------- app/routes.php | 4 +- 2 files changed, 18 insertions(+), 48 deletions(-) diff --git a/app/controllers/HomeController.php b/app/controllers/HomeController.php index 842e4ee1fb..aaf1a5e224 100644 --- a/app/controllers/HomeController.php +++ b/app/controllers/HomeController.php @@ -17,52 +17,6 @@ class HomeController extends BaseController return Redirect::route('index'); } - public function repair() { - Component::where('class', 'Budget')->get()->each( - function (Component $c) { - $entry = [ - 'user_id' => $c->user_id, - 'name' => $c->name - - ]; - $budget = Budget::firstOrCreate($entry); - Log::debug('Migrated budget #' . $budget->id . ': ' . $budget->name); - // create entry in budget_transaction_journal - $connections = DB::table('component_transaction_journal')->where('component_id', $c->id)->get(); - foreach ($connections as $connection) { - DB::table('budget_transaction_journal')->insert( - [ - 'budget_id' => $budget->id, - 'transaction_journal_id' => $connection->transaction_journal_id - ] - ); - } - } - ); - - Component::where('class', 'Category')->get()->each( - function (Component $c) { - $entry = [ - 'user_id' => $c->user_id, - 'name' => $c->name - - ]; - $category = Category::firstOrCreate($entry); - Log::debug('Migrated category #' . $category->id . ': ' . $category->name); - // create entry in category_transaction_journal - $connections = DB::table('component_transaction_journal')->where('component_id', $c->id)->get(); - foreach ($connections as $connection) { - DB::table('category_transaction_journal')->insert( - [ - 'category_id' => $category->id, - 'transaction_journal_id' => $connection->transaction_journal_id - ] - ); - } - } - ); - } - /** * @return $this|\Illuminate\View\View */ @@ -126,6 +80,22 @@ class HomeController extends BaseController return Redirect::back(); } + public function repair() + { + BudgetLimit::get()->each( + function (BudgetLimit $bl) { + $component = Component::find($bl->component_id); + if ($component) { + $budget = Budget::whereName($component->name)->whereUserId($component->user_id)->first(); + if ($budget) { + $bl->budget_id = $budget->id; + $bl->save(); + } + } + } + ); + } + /** * @return \Illuminate\Http\RedirectResponse */ diff --git a/app/routes.php b/app/routes.php index d1b4a61910..642de18cd7 100644 --- a/app/routes.php +++ b/app/routes.php @@ -100,8 +100,8 @@ Route::bind( if (Auth::check()) { return LimitRepetition:: where('limit_repetitions.id', $value)->leftjoin('budget_limits', 'budget_limits.id', '=', 'limit_repetitions.budget_limit_id')->leftJoin( - 'components', 'components.id', '=', 'budget_limits.component_id' - )->where('components.class', 'Budget')->where('components.user_id', Auth::user()->id)->first(['limit_repetitions.*']); + 'budgets', 'budgets.id', '=', 'budget_limits.budget_id' + )->where('budgets.user_id', Auth::user()->id)->first(['limit_repetitions.*']); } return null;