diff --git a/.env.backup b/.env.backup deleted file mode 100755 index 6e6fd0fa1a..0000000000 --- a/.env.backup +++ /dev/null @@ -1,18 +0,0 @@ -APP_ENV=local -APP_DEBUG=true -APP_KEY=SomeRandomString - -DB_CONNECTION=mysql -DB_HOST=localhost -DB_DATABASE=homestead -DB_USERNAME=homestead -DB_PASSWORD=secret - -CACHE_DRIVER=file -SESSION_DRIVER=file - -EMAIL_SMTP= -EMAIL_DRIVER=smtp -EMAIL_USERNAME= -EMAIL_PASSWORD= -ANALYTICS_ID= \ No newline at end of file diff --git a/.env.local b/.env.local deleted file mode 100755 index 6e6fd0fa1a..0000000000 --- a/.env.local +++ /dev/null @@ -1,18 +0,0 @@ -APP_ENV=local -APP_DEBUG=true -APP_KEY=SomeRandomString - -DB_CONNECTION=mysql -DB_HOST=localhost -DB_DATABASE=homestead -DB_USERNAME=homestead -DB_PASSWORD=secret - -CACHE_DRIVER=file -SESSION_DRIVER=file - -EMAIL_SMTP= -EMAIL_DRIVER=smtp -EMAIL_USERNAME= -EMAIL_PASSWORD= -ANALYTICS_ID= \ No newline at end of file diff --git a/.gitignore b/.gitignore index 2b3beddc88..45baab7ce0 100644 --- a/.gitignore +++ b/.gitignore @@ -29,3 +29,5 @@ clover.xml node_modules/ addNewLines.php .phpstorm.meta.php +.env.backup +.env.local diff --git a/README.md b/README.md index 39e07788ad..12f92844b6 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -Firefly III (v3.4) +Firefly III (v3.4.0.1) =========== [](https://travis-ci.org/JC5/firefly-iii) @@ -6,7 +6,7 @@ Firefly III (v3.4) [](https://insight.sensiolabs.com/projects/d44c7012-5f50-41ad-add8-8445330e4102) [](https://codeclimate.com/github/JC5/firefly-iii) [](https://coveralls.io/r/JC5/firefly-iii?branch=master) -[](https://coveralls.io/r/JC5/firefly-iii?branch=develop) +[](https://coveralls.io/r/JC5/firefly-iii?branch=develop) [](https://packagist.org/packages/grumpydictator/firefly-iii) [](https://packagist.org/packages/grumpydictator/firefly-iii) diff --git a/app/Events/JournalCreated.php b/app/Events/JournalCreated.php index 0fc11fb491..65c8929d4b 100644 --- a/app/Events/JournalCreated.php +++ b/app/Events/JournalCreated.php @@ -19,7 +19,8 @@ class JournalCreated extends Event /** * Create a new event instance. * - * @return void + * @param TransactionJournal $journal + * @param $piggyBankId */ public function __construct(TransactionJournal $journal, $piggyBankId) { diff --git a/app/Events/JournalDeleted.php b/app/Events/JournalDeleted.php index d19937a9cd..eadf06bb81 100644 --- a/app/Events/JournalDeleted.php +++ b/app/Events/JournalDeleted.php @@ -2,6 +2,11 @@ use Illuminate\Queue\SerializesModels; +/** + * Class JournalDeleted + * + * @package FireflyIII\Events + */ class JournalDeleted extends Event { @@ -10,7 +15,6 @@ class JournalDeleted extends Event /** * Create a new event instance. * - * @return void */ public function __construct() { diff --git a/app/Events/JournalSaved.php b/app/Events/JournalSaved.php index 25471ca809..e3a8a37da0 100644 --- a/app/Events/JournalSaved.php +++ b/app/Events/JournalSaved.php @@ -3,6 +3,11 @@ use FireflyIII\Models\TransactionJournal; use Illuminate\Queue\SerializesModels; +/** + * Class JournalSaved + * + * @package FireflyIII\Events + */ class JournalSaved extends Event { @@ -13,7 +18,7 @@ class JournalSaved extends Event /** * Create a new event instance. * - * @return void + * @param TransactionJournal $journal */ public function __construct(TransactionJournal $journal) { diff --git a/app/Exceptions/Handler.php b/app/Exceptions/Handler.php index 87333e1669..23521f7c0f 100644 --- a/app/Exceptions/Handler.php +++ b/app/Exceptions/Handler.php @@ -49,8 +49,7 @@ class Handler extends ExceptionHandler */ public function report(Exception $e) { - /** @noinspection PhpInconsistentReturnPointsInspection */ - return parent::report($e); + parent::report($e); } } diff --git a/app/Handlers/Events/ConnectJournalToPiggyBank.php b/app/Handlers/Events/ConnectJournalToPiggyBank.php index 7278d49691..7d19f28521 100644 --- a/app/Handlers/Events/ConnectJournalToPiggyBank.php +++ b/app/Handlers/Events/ConnectJournalToPiggyBank.php @@ -19,7 +19,6 @@ class ConnectJournalToPiggyBank /** * Create the event handler. * - * @return void */ public function __construct() { diff --git a/app/Handlers/Events/RescanJournal.php b/app/Handlers/Events/RescanJournal.php index 226ae01a3c..aaa21b515a 100644 --- a/app/Handlers/Events/RescanJournal.php +++ b/app/Handlers/Events/RescanJournal.php @@ -15,7 +15,6 @@ class RescanJournal /** * Create the event handler. * - * @return void */ public function __construct() { @@ -41,7 +40,7 @@ class RescanJournal Log::debug('Found ' . $list->count() . ' bills to check.'); - /** @var Bill $bill */ + /** @var \FireflyIII\Models\Bill $bill */ foreach ($list as $bill) { Log::debug('Now calling bill #' . $bill->id . ' (' . $bill->name . ')'); $repository->scan($bill, $journal); diff --git a/app/Handlers/Events/UpdateJournalConnection.php b/app/Handlers/Events/UpdateJournalConnection.php index ad79e70551..20803aacf4 100644 --- a/app/Handlers/Events/UpdateJournalConnection.php +++ b/app/Handlers/Events/UpdateJournalConnection.php @@ -15,7 +15,6 @@ class UpdateJournalConnection /** * Create the event handler. * - * @return void */ public function __construct() { diff --git a/app/Helpers/Help/Help.php b/app/Helpers/Help/Help.php index f7bf4a7690..c7e77a5d2d 100644 --- a/app/Helpers/Help/Help.php +++ b/app/Helpers/Help/Help.php @@ -54,7 +54,9 @@ class Help implements HelpInterface } /** - * @return boolean + * @param $route + * + * @return bool */ public function hasRoute($route) { @@ -62,10 +64,10 @@ class Help implements HelpInterface } /** - * @param $title + * @param $route * @param array $content * - * @return void + * @internal param $title */ public function putInCache($route, array $content) { diff --git a/app/Helpers/Help/HelpInterface.php b/app/Helpers/Help/HelpInterface.php index c550a9faf5..b11e29b4ab 100644 --- a/app/Helpers/Help/HelpInterface.php +++ b/app/Helpers/Help/HelpInterface.php @@ -18,16 +18,25 @@ interface HelpInterface public function getFromCache($key); /** - * @return boolean + * @param $route + * + * @return array + */ + public function getFromGithub($route); + + /** + * @param $route + * + * @return bool */ public function hasRoute($route); /** * @param $route * - * @return array + * @return bool */ - public function getFromGithub($route); + public function inCache($route); /** * @param $route @@ -36,11 +45,4 @@ interface HelpInterface * @return void */ public function putInCache($route, array $content); - - /** - * @param $route - * - * @return bool - */ - public function inCache($route); } \ No newline at end of file diff --git a/app/Helpers/Report/ReportHelper.php b/app/Helpers/Report/ReportHelper.php index 40bd302e40..55026e0620 100644 --- a/app/Helpers/Report/ReportHelper.php +++ b/app/Helpers/Report/ReportHelper.php @@ -91,11 +91,11 @@ class ReportHelper implements ReportHelperInterface $end = Carbon::now(); $months = []; while ($start <= $end) { - $year = $start->format('Y'); + $year = $start->year; $months[$year][] = [ 'formatted' => $start->format('F Y'), - 'month' => intval($start->format('m')), - 'year' => intval($start->format('Y')), + 'month' => $start->month, + 'year' => $year, ]; $start->addMonth(); } @@ -114,10 +114,10 @@ class ReportHelper implements ReportHelperInterface $end = Carbon::now(); $years = []; while ($start <= $end) { - $years[] = $start->format('Y'); + $years[] = $start->year; $start->addYear(); } - $years[] = Carbon::now()->format('Y'); + $years[] = Carbon::now()->year; // force the current year. $years = array_unique($years); diff --git a/app/Helpers/Report/ReportQuery.php b/app/Helpers/Report/ReportQuery.php index 908c2c546b..e481387cae 100644 --- a/app/Helpers/Report/ReportQuery.php +++ b/app/Helpers/Report/ReportQuery.php @@ -150,8 +150,16 @@ class ReportQuery implements ReportQueryInterface $set = $query->get(['accounts.*']); $set->each( function (Account $account) use ($start, $end) { + /** + * The balance for today always incorporates transactions + * made on today. So to get todays "start" balance, we sub one + * day. + */ + $yesterday = clone $start; + $yesterday->subDay(); + /** @noinspection PhpParamsInspection */ - $account->startBalance = Steam::balance($account, $start); + $account->startBalance = Steam::balance($account, $yesterday); $account->endBalance = Steam::balance($account, $end); } ); diff --git a/app/Http/Controllers/AccountController.php b/app/Http/Controllers/AccountController.php index 3bd0736110..74a9966476 100644 --- a/app/Http/Controllers/AccountController.php +++ b/app/Http/Controllers/AccountController.php @@ -67,11 +67,12 @@ class AccountController extends Controller } /** - * @param Account $account + * @param AccountRepositoryInterface $repository + * @param Account $account * * @return \Illuminate\Http\RedirectResponse */ - public function destroy(Account $account, AccountRepositoryInterface $repository) + public function destroy(AccountRepositoryInterface $repository, Account $account) { $type = $account->accountType->type; @@ -86,12 +87,12 @@ class AccountController extends Controller } /** - * @param Account $account * @param AccountRepositoryInterface $repository + * @param Account $account * * @return View */ - public function edit(Account $account, AccountRepositoryInterface $repository) + public function edit(AccountRepositoryInterface $repository, Account $account) { $what = Config::get('firefly.shortNamesByFullName')[$account->accountType->type]; @@ -129,12 +130,12 @@ class AccountController extends Controller } /** - * @param $what * @param AccountRepositoryInterface $repository + * @param $what * * @return View */ - public function index($what, AccountRepositoryInterface $repository) + public function index(AccountRepositoryInterface $repository, $what) { $subTitle = Config::get('firefly.subTitlesByIdentifier.' . $what); $subTitleIcon = Config::get('firefly.subIconsByIdentifier.' . $what); @@ -158,12 +159,12 @@ class AccountController extends Controller } /** - * @param Account $account * @param AccountRepositoryInterface $repository + * @param Account $account * * @return View */ - public function show(Account $account, AccountRepositoryInterface $repository) + public function show(AccountRepositoryInterface $repository, Account $account) { $page = intval(Input::get('page')) == 0 ? 1 : intval(Input::get('page')); $subTitleIcon = Config::get('firefly.subTitlesByIdentifier.' . $account->accountType->type); @@ -214,13 +215,13 @@ class AccountController extends Controller } /** - * @param Account $account * @param AccountFormRequest $request * @param AccountRepositoryInterface $repository + * @param Account $account * - * @return \Illuminate\Http\RedirectResponse + * @return $this|\Illuminate\Http\RedirectResponse */ - public function update(Account $account, AccountFormRequest $request, AccountRepositoryInterface $repository) + public function update(AccountFormRequest $request, AccountRepositoryInterface $repository, Account $account) { $accountData = [ diff --git a/app/Http/Controllers/BillController.php b/app/Http/Controllers/BillController.php index c26d595a93..8b21054389 100644 --- a/app/Http/Controllers/BillController.php +++ b/app/Http/Controllers/BillController.php @@ -35,11 +35,12 @@ class BillController extends Controller } /** - * @param Bill $bill + * @param AccountRepositoryInterface $repository + * @param Bill $bill * * @return \Illuminate\Http\RedirectResponse */ - public function add(Bill $bill, AccountRepositoryInterface $repository) + public function add(AccountRepositoryInterface $repository, Bill $bill) { $matches = explode(',', $bill->match); $description = []; @@ -89,8 +90,9 @@ class BillController extends Controller Session::put('bills.create.url', URL::previous()); } Session::forget('bills.create.fromStore'); + $subTitle = 'Create new bill'; - return view('bills.create')->with('periods', $periods)->with('subTitle', 'Create new'); + return view('bills.create', compact('periods', 'subTitle')); } /** @@ -102,16 +104,18 @@ class BillController extends Controller { // put previous url in session Session::put('bills.delete.url', URL::previous()); + $subTitle = 'Delete "' . e($bill->name) . '"'; - return view('bills.delete')->with('bill', $bill)->with('subTitle', 'Delete "' . e($bill->name) . '"'); + return view('bills.delete', compact('bill', 'subTitle')); } /** - * @param Bill $bill + * @param BillRepositoryInterface $repository + * @param Bill $bill * * @return \Illuminate\Http\RedirectResponse */ - public function destroy(Bill $bill, BillRepositoryInterface $repository) + public function destroy(BillRepositoryInterface $repository, Bill $bill) { $repository->destroy($bill); @@ -128,7 +132,8 @@ class BillController extends Controller */ public function edit(Bill $bill) { - $periods = Config::get('firefly.periods_to_text'); + $periods = Config::get('firefly.periods_to_text'); + $subTitle = 'Edit "' . e($bill->name) . '"'; // put previous url in session if not redirect from store (not "return_to_edit"). if (Session::get('bills.edit.fromUpdate') !== true) { @@ -136,7 +141,7 @@ class BillController extends Controller } Session::forget('bills.edit.fromUpdate'); - return view('bills.edit')->with('periods', $periods)->with('bill', $bill)->with('subTitle', 'Edit "' . e($bill->name) . '"'); + return view('bills.edit', compact('subTitle', 'periods', 'bill')); } /** @@ -158,11 +163,12 @@ class BillController extends Controller } /** - * @param Bill $bill + * @param BillRepositoryInterface $repository + * @param Bill $bill * - * @return mixed + * @return \Illuminate\Http\RedirectResponse */ - public function rescan(Bill $bill, BillRepositoryInterface $repository) + public function rescan(BillRepositoryInterface $repository, Bill $bill) { if (intval($bill->active) == 0) { Session::flash('warning', 'Inactive bills cannot be scanned.'); @@ -183,21 +189,26 @@ class BillController extends Controller } /** - * @param Bill $bill + * @param BillRepositoryInterface $repository + * @param Bill $bill * * @return mixed */ - public function show(Bill $bill, BillRepositoryInterface $repository) + public function show(BillRepositoryInterface $repository, Bill $bill) { $journals = $repository->getJournals($bill); $bill->nextExpectedMatch = $repository->nextExpectedMatch($bill); $hideBill = true; + $subTitle = e($bill->name); - return view('bills.show', compact('journals', 'hideBill', 'bill'))->with('subTitle', e($bill->name)); + return view('bills.show', compact('journals', 'hideBill', 'bill', 'subTitle')); } /** - * @return $this + * @param BillFormRequest $request + * @param BillRepositoryInterface $repository + * + * @return $this|\Illuminate\Http\RedirectResponse */ public function store(BillFormRequest $request, BillRepositoryInterface $repository) { @@ -218,11 +229,13 @@ class BillController extends Controller } /** - * @param Bill $bill + * @param BillFormRequest $request + * @param BillRepositoryInterface $repository + * @param Bill $bill * - * @return $this + * @return $this|\Illuminate\Http\RedirectResponse */ - public function update(Bill $bill, BillFormRequest $request, BillRepositoryInterface $repository) + public function update(BillFormRequest $request, BillRepositoryInterface $repository, Bill $bill) { $billData = $request->getBillData(); $bill = $repository->update($bill, $billData); diff --git a/app/Http/Controllers/BudgetController.php b/app/Http/Controllers/BudgetController.php index 9fb31e661e..5dcca9fc59 100644 --- a/app/Http/Controllers/BudgetController.php +++ b/app/Http/Controllers/BudgetController.php @@ -36,11 +36,12 @@ class BudgetController extends Controller } /** - * @param Budget $budget + * @param BudgetRepositoryInterface $repository + * @param Budget $budget * - * @return \Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function amount(Budget $budget, BudgetRepositoryInterface $repository) + public function amount(BudgetRepositoryInterface $repository, Budget $budget) { $amount = intval(Input::get('amount')); $date = Session::get('start', Carbon::now()->startOfMonth()); @@ -60,8 +61,9 @@ class BudgetController extends Controller Session::put('budgets.create.url', URL::previous()); } Session::forget('budgets.create.fromStore'); + $subTitle = 'Create a new budget'; - return view('budgets.create')->with('subTitle', 'Create a new budget'); + return view('budgets.create', compact('subTitle')); } /** @@ -80,7 +82,8 @@ class BudgetController extends Controller } /** - * @param Budget $budget + * @param Budget $budget + * @param BudgetRepositoryInterface $repository * * @return \Illuminate\Http\RedirectResponse */ @@ -116,7 +119,9 @@ class BudgetController extends Controller } /** - * @return mixed + * @param BudgetRepositoryInterface $repository + * + * @return View */ public function index(BudgetRepositoryInterface $repository) { @@ -150,7 +155,9 @@ class BudgetController extends Controller } /** - * @return \Illuminate\View\View + * @param BudgetRepositoryInterface $repository + * + * @return View */ public function noBudget(BudgetRepositoryInterface $repository) { @@ -163,7 +170,7 @@ class BudgetController extends Controller } /** - * @return mixed + * @return \Illuminate\Http\RedirectResponse */ public function postUpdateIncome() { @@ -175,16 +182,18 @@ class BudgetController extends Controller } /** + * @param BudgetRepositoryInterface $repository + * @param Budget $budget + * @param LimitRepetition $repetition * - * @param Budget $budget - * @param LimitRepetition $repetition - * - * @return \Illuminate\View\View + * @return View */ - public function show(Budget $budget, LimitRepetition $repetition = null, BudgetRepositoryInterface $repository) + public function show(BudgetRepositoryInterface $repository, Budget $budget, LimitRepetition $repetition = null) { if (!is_null($repetition->id) && $repetition->budgetLimit->budget->id != $budget->id) { - return view('error')->with('message', 'Invalid selection.'); + $message = 'Invalid selection.'; + + return view('error', compact('message')); } $journals = $repository->getJournals($budget, $repetition); @@ -224,13 +233,13 @@ class BudgetController extends Controller } /** - * @param Budget $budget * @param BudgetFormRequest $request * @param BudgetRepositoryInterface $repository + * @param Budget $budget * - * @return \Illuminate\Http\RedirectResponse + * @return $this|\Illuminate\Http\RedirectResponse */ - public function update(Budget $budget, BudgetFormRequest $request, BudgetRepositoryInterface $repository) + public function update(BudgetFormRequest $request, BudgetRepositoryInterface $repository, Budget $budget) { $budgetData = [ 'name' => $request->input('name'), @@ -254,14 +263,14 @@ class BudgetController extends Controller } /** - * @return $this + * @return View */ public function updateIncome() { - $date = Session::get('start', Carbon::now()->startOfMonth())->format('FY'); - $budgetAmount = Preferences::get('budgetIncomeTotal' . $date, 1000); + $date = Session::get('start', Carbon::now()->startOfMonth())->format('FY'); + $amount = Preferences::get('budgetIncomeTotal' . $date, 1000); - return view('budgets.income')->with('amount', $budgetAmount); + return view('budgets.income', compact('amount')); } } diff --git a/app/Http/Controllers/CategoryController.php b/app/Http/Controllers/CategoryController.php index 6b864f11f2..3b54d2fe1d 100644 --- a/app/Http/Controllers/CategoryController.php +++ b/app/Http/Controllers/CategoryController.php @@ -2,7 +2,6 @@ use Auth; use Carbon\Carbon; -use FireflyIII\Http\Requests; use FireflyIII\Http\Requests\CategoryFormRequest; use FireflyIII\Models\Category; use FireflyIII\Repositories\Category\CategoryRepositoryInterface; @@ -41,8 +40,9 @@ class CategoryController extends Controller Session::put('categories.create.url', URL::previous()); } Session::forget('categories.create.fromStore'); + $subTitle = 'Create a new category'; - return view('categories.create')->with('subTitle', 'Create a new category'); + return view('categories.create', compact('subTitle')); } /** @@ -61,11 +61,12 @@ class CategoryController extends Controller } /** - * @param Category $category + * @param CategoryRepositoryInterface $repository + * @param Category $category * * @return \Illuminate\Http\RedirectResponse */ - public function destroy(Category $category, CategoryRepositoryInterface $repository) + public function destroy(CategoryRepositoryInterface $repository, Category $category) { $name = $category->name; @@ -96,8 +97,9 @@ class CategoryController extends Controller } /** - * @return $this + * @param CategoryRepositoryInterface $repository * + * @return $this */ public function index(CategoryRepositoryInterface $repository) { @@ -113,6 +115,8 @@ class CategoryController extends Controller } /** + * @param CategoryRepositoryInterface $repository + * * @return \Illuminate\View\View */ public function noCategory(CategoryRepositoryInterface $repository) @@ -126,11 +130,12 @@ class CategoryController extends Controller } /** - * @param Category $category + * @param CategoryRepositoryInterface $repository + * @param Category $category * - * @return $this + * @return View */ - public function show(Category $category, CategoryRepositoryInterface $repository) + public function show(CategoryRepositoryInterface $repository, Category $category) { $hideCategory = true; // used in list. $page = intval(Input::get('page')); @@ -169,13 +174,13 @@ class CategoryController extends Controller /** - * @param Category $category * @param CategoryFormRequest $request * @param CategoryRepositoryInterface $repository + * @param Category $category * * @return \Illuminate\Http\RedirectResponse */ - public function update(Category $category, CategoryFormRequest $request, CategoryRepositoryInterface $repository) + public function update(CategoryFormRequest $request, CategoryRepositoryInterface $repository, Category $category) { $categoryData = [ 'name' => $request->input('name'), diff --git a/app/Http/Controllers/CurrencyController.php b/app/Http/Controllers/CurrencyController.php index 33e100ca6d..7c0e33404e 100644 --- a/app/Http/Controllers/CurrencyController.php +++ b/app/Http/Controllers/CurrencyController.php @@ -68,11 +68,12 @@ class CurrencyController extends Controller } /** - * @param TransactionCurrency $currency + * @param CurrencyRepositoryInterface $repository + * @param TransactionCurrency $currency * - * @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View + * @return \Illuminate\Http\RedirectResponse|View */ - public function delete(TransactionCurrency $currency, CurrencyRepositoryInterface $repository) + public function delete(CurrencyRepositoryInterface $repository, TransactionCurrency $currency) { if ($repository->countJournals($currency) > 0) { @@ -89,11 +90,13 @@ class CurrencyController extends Controller } /** - * @param TransactionCurrency $currency + * @param CurrencyRepositoryInterface $repository + * @param TransactionCurrency $currency * * @return \Illuminate\Http\RedirectResponse + * @throws \Exception */ - public function destroy(TransactionCurrency $currency, CurrencyRepositoryInterface $repository) + public function destroy(CurrencyRepositoryInterface $repository, TransactionCurrency $currency) { if ($repository->countJournals($currency) > 0) { Session::flash('error', 'Cannot destroy ' . e($currency->name) . ' because there are still transactions attached to it.'); @@ -130,6 +133,8 @@ class CurrencyController extends Controller } /** + * @param CurrencyRepositoryInterface $repository + * * @return \Illuminate\View\View */ public function index(CurrencyRepositoryInterface $repository) @@ -141,7 +146,9 @@ class CurrencyController extends Controller } /** - * @SuppressWarnings("CyclomaticComplexity") // It's exactly 5. So I don't mind. + * + * @param CurrencyFormRequest $request + * @param CurrencyRepositoryInterface $repository * * @return $this|\Illuminate\Http\RedirectResponse */ @@ -166,11 +173,13 @@ class CurrencyController extends Controller } /** - * @param TransactionCurrency $currency + * @param CurrencyFormRequest $request + * @param CurrencyRepositoryInterface $repository + * @param TransactionCurrency $currency * - * @return $this|\Illuminate\Http\RedirectResponse + * @return \Illuminate\Http\RedirectResponse */ - public function update(TransactionCurrency $currency, CurrencyFormRequest $request, CurrencyRepositoryInterface $repository) + public function update(CurrencyFormRequest $request, CurrencyRepositoryInterface $repository, TransactionCurrency $currency) { $data = $request->getCurrencyData(); $currency = $repository->update($currency, $data); diff --git a/app/Http/Controllers/GoogleChartController.php b/app/Http/Controllers/GoogleChartController.php index b377231d67..ffb8a5439e 100644 --- a/app/Http/Controllers/GoogleChartController.php +++ b/app/Http/Controllers/GoogleChartController.php @@ -35,12 +35,12 @@ class GoogleChartController extends Controller /** + * @param GChart $chart * @param Account $account - * @param string $view * - * @return \Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function accountBalanceChart(Account $account, GChart $chart) + public function accountBalanceChart(GChart $chart, Account $account) { $chart->addColumn('Day of month', 'date'); $chart->addColumn('Balance for ' . $account->name, 'number'); @@ -64,7 +64,8 @@ class GoogleChartController extends Controller } /** - * @param GChart $chart + * @param GChart $chart + * @param AccountRepositoryInterface $repository * * @return \Symfony\Component\HttpFoundation\Response */ @@ -104,11 +105,13 @@ class GoogleChartController extends Controller } /** - * @param int $year + * @param GChart $chart + * @param BudgetRepositoryInterface $repository + * @param $year * - * @return $this|\Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function allBudgetsAndSpending($year, GChart $chart, BudgetRepositoryInterface $repository) + public function allBudgetsAndSpending(GChart $chart, BudgetRepositoryInterface $repository, $year) { $budgets = $repository->getBudgets(); $chart->addColumn('Month', 'date'); @@ -137,7 +140,8 @@ class GoogleChartController extends Controller } /** - * @param GChart $chart + * @param GChart $chart + * @param BudgetRepositoryInterface $repository * * @return \Symfony\Component\HttpFoundation\Response */ @@ -145,7 +149,7 @@ class GoogleChartController extends Controller { $chart->addColumn('Budget', 'string'); $chart->addColumn('Left', 'number'); - //$chart->addColumn('Spent', 'number'); + $chart->addColumn('Overspent', 'number'); $budgets = $repository->getBudgets(); $start = Session::get('start', Carbon::now()->startOfMonth()); @@ -172,7 +176,14 @@ class GoogleChartController extends Controller foreach ($allEntries as $entry) { if ($entry[2] > 0) { $left = $entry[1] - $entry[2]; - $chart->addRow($entry[0], $left); + if ($left > 0) { + $chart->addRow($entry[0], $left, null); + } else { + if ($left < 0) { + $chart->addRow($entry[0], null, $left); + } + } + } } @@ -183,7 +194,8 @@ class GoogleChartController extends Controller } /** - * @param GChart $chart + * @param GChart $chart + * @param CategoryRepositoryInterface $repository * * @return \Symfony\Component\HttpFoundation\Response */ @@ -210,12 +222,13 @@ class GoogleChartController extends Controller } /** - * @param Bill $bill - * @param GChart $chart + * @param GChart $chart + * @param BillRepositoryInterface $repository + * @param Bill $bill * * @return \Symfony\Component\HttpFoundation\Response */ - public function billOverview(Bill $bill, GChart $chart, BillRepositoryInterface $repository) + public function billOverview(GChart $chart, BillRepositoryInterface $repository, Bill $bill) { $chart->addColumn('Date', 'date'); @@ -237,7 +250,10 @@ class GoogleChartController extends Controller } /** - * @param GChart $chart + * @param GChart $chart + * + * @param BillRepositoryInterface $repository + * @param AccountRepositoryInterface $accounts * * @return \Symfony\Component\HttpFoundation\Response */ @@ -319,13 +335,14 @@ class GoogleChartController extends Controller } /** + * @param GChart $chart + * @param BudgetRepositoryInterface $repository + * @param Budget $budget + * @param LimitRepetition $repetition * - * @param Budget $budget - * @param LimitRepetition $repetition - * - * @return \Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function budgetLimitSpending(Budget $budget, LimitRepetition $repetition, GChart $chart, BudgetRepositoryInterface $repository) + public function budgetLimitSpending(GChart $chart, BudgetRepositoryInterface $repository, Budget $budget, LimitRepetition $repetition) { $start = clone $repetition->startdate; $end = $repetition->enddate; @@ -352,10 +369,10 @@ class GoogleChartController extends Controller } /** - * @param Budget $budget - * @param int $year * @param GChart $chart * @param BudgetRepositoryInterface $repository + * @param Budget $budget + * @param int $year * * @return \Symfony\Component\HttpFoundation\Response */ @@ -389,12 +406,13 @@ class GoogleChartController extends Controller } /** + * @param GChart $chart + * @param CategoryRepositoryInterface $repository + * @param Category $category * - * @param Category $category - * - * @return \Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function categoryOverviewChart(Category $category, GChart $chart, CategoryRepositoryInterface $repository) + public function categoryOverviewChart(GChart $chart, CategoryRepositoryInterface $repository, Category $category) { // oldest transaction in category: $start = $repository->getFirstActivityDate($category); @@ -425,12 +443,13 @@ class GoogleChartController extends Controller } /** + * @param GChart $chart + * @param CategoryRepositoryInterface $repository + * @param Category $category * - * @param Category $category - * - * @return \Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function categoryPeriodChart(Category $category, GChart $chart, CategoryRepositoryInterface $repository) + public function categoryPeriodChart(GChart $chart, CategoryRepositoryInterface $repository, Category $category) { $start = clone Session::get('start', Carbon::now()->startOfMonth()); $chart->addColumn('Period', 'date'); @@ -452,11 +471,13 @@ class GoogleChartController extends Controller /** - * @param PiggyBank $piggyBank + * @param GChart $chart + * @param PiggyBankRepositoryInterface $repository + * @param PiggyBank $piggyBank * - * @return \Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function piggyBankHistory(PiggyBank $piggyBank, GChart $chart, PiggyBankRepositoryInterface $repository) + public function piggyBankHistory(GChart $chart, PiggyBankRepositoryInterface $repository, PiggyBank $piggyBank) { $chart->addColumn('Date', 'date'); $chart->addColumn('Balance', 'number'); @@ -477,12 +498,13 @@ class GoogleChartController extends Controller } /** + * @param GChart $chart + * @param ReportQueryInterface $query + * @param $year * - * @param $year - * - * @return \Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function yearInExp($year, GChart $chart, ReportQueryInterface $query) + public function yearInExp(GChart $chart, ReportQueryInterface $query, $year) { $start = new Carbon('01-01-' . $year); $chart->addColumn('Month', 'date'); @@ -515,12 +537,13 @@ class GoogleChartController extends Controller } /** + * @param GChart $chart + * @param ReportQueryInterface $query + * @param $year * - * @param $year - * - * @return \Illuminate\Http\JsonResponse + * @return \Symfony\Component\HttpFoundation\Response */ - public function yearInExpSum($year, GChart $chart, ReportQueryInterface $query) + public function yearInExpSum(GChart $chart, ReportQueryInterface $query, $year) { $start = new Carbon('01-01-' . $year); $chart->addColumn('Summary', 'string'); diff --git a/app/Http/Controllers/HelpController.php b/app/Http/Controllers/HelpController.php index d8072669a8..7220742700 100644 --- a/app/Http/Controllers/HelpController.php +++ b/app/Http/Controllers/HelpController.php @@ -13,11 +13,12 @@ class HelpController extends Controller { /** - * @param $route + * @param HelpInterface $help + * @param $route * * @return \Illuminate\Http\JsonResponse */ - public function show($route, HelpInterface $help) + public function show(HelpInterface $help, $route) { $content = [ 'text' => '
There is no help for this route!
', diff --git a/app/Http/Controllers/JsonController.php b/app/Http/Controllers/JsonController.php index a58356cfd7..02c326d2fd 100644 --- a/app/Http/Controllers/JsonController.php +++ b/app/Http/Controllers/JsonController.php @@ -5,6 +5,7 @@ use Carbon\Carbon; use FireflyIII\Helpers\Report\ReportQueryInterface; use FireflyIII\Models\Account; use FireflyIII\Models\Bill; +use FireflyIII\Models\Preference; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionType; use FireflyIII\Repositories\Account\AccountRepositoryInterface; @@ -28,7 +29,9 @@ class JsonController extends Controller /** - * @param BillRepositoryInterface $repository + * @param BillRepositoryInterface $repository + * + * @param AccountRepositoryInterface $accountRepository * * @return \Symfony\Component\HttpFoundation\Response */ @@ -149,6 +152,8 @@ class JsonController extends Controller /** * Returns a list of categories. * + * @param CategoryRepositoryInterface $repository + * * @return \Illuminate\Http\JsonResponse */ public function categories(CategoryRepositoryInterface $repository) @@ -166,6 +171,8 @@ class JsonController extends Controller /** * Returns a JSON list of all beneficiaries. * + * @param AccountRepositoryInterface $accountRepository + * * @return \Illuminate\Http\JsonResponse */ public function expenseAccounts(AccountRepositoryInterface $accountRepository) @@ -183,6 +190,8 @@ class JsonController extends Controller /** * Returns a JSON list of all beneficiaries. * + * @param TagRepositoryInterface $tagRepository + * * @return \Illuminate\Http\JsonResponse */ public function tags(TagRepositoryInterface $tagRepository) @@ -198,6 +207,8 @@ class JsonController extends Controller } /** + * @param AccountRepositoryInterface $accountRepository + * * @return \Illuminate\Http\JsonResponse */ public function revenueAccounts(AccountRepositoryInterface $accountRepository) @@ -217,6 +228,7 @@ class JsonController extends Controller */ public function setSharedReports() { + /** @var Preference $pref */ $pref = Preferences::get('showSharedReports', false); $new = !$pref->data; Preferences::set('showSharedReports', $new); @@ -236,11 +248,12 @@ class JsonController extends Controller } /** - * @param $what + * @param JournalRepositoryInterface $repository + * @param $what * * @return \Symfony\Component\HttpFoundation\Response */ - public function transactionJournals($what, JournalRepositoryInterface $repository) + public function transactionJournals(JournalRepositoryInterface $repository, $what) { $descriptions = []; $dbType = $repository->getTransactionType($what); diff --git a/app/Http/Controllers/PiggyBankController.php b/app/Http/Controllers/PiggyBankController.php index ffd878d59f..6799f4d8d3 100644 --- a/app/Http/Controllers/PiggyBankController.php +++ b/app/Http/Controllers/PiggyBankController.php @@ -40,11 +40,12 @@ class PiggyBankController extends Controller /** * Add money to piggy bank * - * @param PiggyBank $piggyBank + * @param AccountRepositoryInterface $repository + * @param PiggyBank $piggyBank * * @return $this */ - public function add(PiggyBank $piggyBank, AccountRepositoryInterface $repository) + public function add(AccountRepositoryInterface $repository, PiggyBank $piggyBank) { $leftOnAccount = $repository->leftOnAccount($piggyBank->account); $savedSoFar = $piggyBank->currentRelevantRep()->currentamount; @@ -55,15 +56,15 @@ class PiggyBankController extends Controller } /** + * @param AccountRepositoryInterface $repository + * * @return mixed */ public function create(AccountRepositoryInterface $repository) { - $periods = Config::get('firefly.piggy_bank_periods'); - $accounts = ExpandedForm::makeSelectList($repository->getAccounts(['Default account', 'Asset account'])); - //Auth::user()->accounts()->orderBy('accounts.name', 'ASC')->accountTypeIn(['Default account', 'Asset account'])->get(['accounts.*']) - // ); + $periods = Config::get('firefly.piggy_bank_periods'); + $accounts = ExpandedForm::makeSelectList($repository->getAccounts(['Default account', 'Asset account'])); $subTitle = 'Create new piggy bank'; $subTitleIcon = 'fa-plus'; @@ -92,11 +93,12 @@ class PiggyBankController extends Controller } /** - * @param PiggyBank $piggyBank + * @param PiggyBankRepositoryInterface $repository + * @param PiggyBank $piggyBank * * @return \Illuminate\Http\RedirectResponse */ - public function destroy(PiggyBank $piggyBank, PiggyBankRepositoryInterface $repository) + public function destroy(PiggyBankRepositoryInterface $repository, PiggyBank $piggyBank) { @@ -107,13 +109,12 @@ class PiggyBankController extends Controller } /** - * @SuppressWarnings("CyclomaticComplexity") // It's exactly 5. So I don't mind. + * @param AccountRepositoryInterface $repository + * @param PiggyBank $piggyBank * - * @param PiggyBank $piggyBank - * - * @return $this + * @return View */ - public function edit(PiggyBank $piggyBank, AccountRepositoryInterface $repository) + public function edit(AccountRepositoryInterface $repository, PiggyBank $piggyBank) { $periods = Config::get('firefly.piggy_bank_periods'); @@ -149,7 +150,10 @@ class PiggyBankController extends Controller } /** - * @return $this + * @param AccountRepositoryInterface $repository + * @param PiggyBankRepositoryInterface $piggyRepository + * + * @return View */ public function index(AccountRepositoryInterface $repository, PiggyBankRepositoryInterface $piggyRepository) { @@ -187,7 +191,7 @@ class PiggyBankController extends Controller } /** - * Allow user to order piggy banks. + * @param PiggyBankRepositoryInterface $repository */ public function order(PiggyBankRepositoryInterface $repository) { @@ -204,13 +208,13 @@ class PiggyBankController extends Controller } /** - * POST add money to piggy bank - * - * @param PiggyBank $piggyBank + * @param PiggyBankRepositoryInterface $repository + * @param AccountRepositoryInterface $accounts + * @param PiggyBank $piggyBank * * @return \Illuminate\Http\RedirectResponse */ - public function postAdd(PiggyBank $piggyBank, PiggyBankRepositoryInterface $repository, AccountRepositoryInterface $accounts) + public function postAdd(PiggyBankRepositoryInterface $repository, AccountRepositoryInterface $accounts, PiggyBank $piggyBank) { $amount = round(floatval(Input::get('amount')), 2); $leftOnAccount = $accounts->leftOnAccount($piggyBank->account); @@ -240,11 +244,12 @@ class PiggyBankController extends Controller } /** - * @param PiggyBank $piggyBank + * @param PiggyBankRepositoryInterface $repository + * @param PiggyBank $piggyBank * * @return \Illuminate\Http\RedirectResponse */ - public function postRemove(PiggyBank $piggyBank, PiggyBankRepositoryInterface $repository) + public function postRemove(PiggyBankRepositoryInterface $repository, PiggyBank $piggyBank) { $amount = floatval(Input::get('amount')); @@ -269,7 +274,6 @@ class PiggyBankController extends Controller /** * @param PiggyBank $piggyBank * - * @SuppressWarnings("Unused") * * @return \Illuminate\View\View */ @@ -279,11 +283,12 @@ class PiggyBankController extends Controller } /** - * @param PiggyBank $piggyBank + * @param PiggyBankRepositoryInterface $repository + * @param PiggyBank $piggyBank * - * @return $this + * @return View */ - public function show(PiggyBank $piggyBank, PiggyBankRepositoryInterface $repository) + public function show(PiggyBankRepositoryInterface $repository, PiggyBank $piggyBank) { $events = $repository->getEvents($piggyBank); @@ -332,13 +337,13 @@ class PiggyBankController extends Controller } /** - * @param PiggyBank $piggyBank - * - * @SuppressWarnings("CyclomaticComplexity") // It's exactly 5. So I don't mind. + * @param PiggyBankRepositoryInterface $repository + * @param PiggyBankFormRequest $request + * @param PiggyBank $piggyBank * * @return $this */ - public function update(PiggyBank $piggyBank, PiggyBankRepositoryInterface $repository, PiggyBankFormRequest $request) + public function update(PiggyBankRepositoryInterface $repository, PiggyBankFormRequest $request, PiggyBank $piggyBank) { $piggyBankData = [ 'name' => $request->get('name'), diff --git a/app/Http/Controllers/PreferencesController.php b/app/Http/Controllers/PreferencesController.php index 84d2901104..88aba3e124 100644 --- a/app/Http/Controllers/PreferencesController.php +++ b/app/Http/Controllers/PreferencesController.php @@ -26,20 +26,20 @@ class PreferencesController extends Controller } /** + * @param AccountRepositoryInterface $repository + * * @return $this|\Illuminate\View\View */ public function index(AccountRepositoryInterface $repository) { - $accounts = $repository->getAccounts(['Default account', 'Asset account']); - $viewRange = Preferences::get('viewRange', '1M'); - $viewRangeValue = $viewRange->data; - $frontPage = Preferences::get('frontPageAccounts', []); - $budgetMax = Preferences::get('budgetMaximum', 1000); - $budgetMaximum = $budgetMax->data; + $accounts = $repository->getAccounts(['Default account', 'Asset account']); + $viewRangePref = Preferences::get('viewRange', '1M'); + $viewRange = $viewRangePref->data; + $frontPageAccounts = Preferences::get('frontPageAccounts', []); + $budgetMax = Preferences::get('budgetMaximum', 1000); + $budgetMaximum = $budgetMax->data; - return view('preferences.index', compact('budgetMaximum'))->with('accounts', $accounts)->with('frontPageAccounts', $frontPage)->with( - 'viewRange', $viewRangeValue - ); + return view('preferences.index', compact('budgetMaximum', 'accounts', 'frontPageAccounts', 'viewRange')); } /** diff --git a/app/Http/Controllers/ProfileController.php b/app/Http/Controllers/ProfileController.php index 227ca9fbe4..af7c07bdd5 100644 --- a/app/Http/Controllers/ProfileController.php +++ b/app/Http/Controllers/ProfileController.php @@ -26,16 +26,6 @@ class ProfileController extends Controller ); } - /** - * @return \Illuminate\View\View - * - */ - public function index() - { - return view('profile.index')->with('title', 'Profile')->with('subTitle', Auth::user()->email)->with('mainTitleIcon', 'fa-user'); - } - - /** * @return \Illuminate\View\View */ @@ -47,8 +37,66 @@ class ProfileController extends Controller } /** + * @return \Illuminate\View\View * */ + public function index() + { + return view('profile.index')->with('title', 'Profile')->with('subTitle', Auth::user()->email)->with('mainTitleIcon', 'fa-user'); + } + + /** + * @param ProfileFormRequest $request + * + * @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View + */ + public function postChangePassword(ProfileFormRequest $request) + { + // old, new1, new2 + if (!Hash::check($request->get('current_password'), Auth::user()->password)) { + Session::flash('error', 'Invalid current password!'); + + return Redirect::route('change-password'); + } + $result = $this->validatePassword($request->get('current_password'), $request->get('new_password')); + if (!($result === true)) { + Session::flash('error', $result); + + return Redirect::route('change-password'); + } + + // update the user with the new password. + Auth::user()->password = $request->get('new_password'); + Auth::user()->save(); + + Session::flash('success', 'Password changed!'); + + return Redirect::route('profile'); + } + + /** + * + * @param string $old + * @param string $new1 + * + * @return string|bool + */ + protected function validatePassword($old, $new1) + { + if ($new1 == $old) { + return 'The idea is to change your password.'; + } + + return true; + + } + + /** + * @param DeleteAccountFormRequest $request + * + * @return \Illuminate\Http\RedirectResponse + * @throws \Exception + */ public function postDeleteAccount(DeleteAccountFormRequest $request) { // old, new1, new2 @@ -66,57 +114,4 @@ class ProfileController extends Controller } - /** - * @return \Illuminate\Http\RedirectResponse|\Illuminate\View\View - */ - public function postChangePassword(ProfileFormRequest $request) - { - // old, new1, new2 - if (!Hash::check($request->get('current_password'), Auth::user()->password)) { - Session::flash('error', 'Invalid current password!'); - - return Redirect::route('change-password'); - } - $result = $this->validatePassword($request->get('current_password'), $request->get('new_password'), $request->get('new_password_confirmation')); - if (!($result === true)) { - Session::flash('error', $result); - - return Redirect::route('change-password'); - } - - // update the user with the new password. - Auth::user()->password = $request->get('new_password'); - Auth::user()->save(); - - Session::flash('success', 'Password changed!'); - - return Redirect::route('profile'); - } - - /** - * @SuppressWarnings("CyclomaticComplexity") // It's exactly 5. So I don't mind. - * - * @param string $old - * @param string $new1 - * @param string $new2 - * - * @return string|bool - */ - protected function validatePassword($old, $new1, $new2) - { - if (strlen($new1) == 0 || strlen($new2) == 0) { - return 'Do fill in a password!'; - - } - if ($new1 == $old) { - return 'The idea is to change your password.'; - } - - if ($new1 !== $new2) { - return 'New passwords do not match!'; - } - - return true; - - } } diff --git a/app/Http/Controllers/ReminderController.php b/app/Http/Controllers/ReminderController.php index 4f4ec5fe94..9e80c5acd0 100644 --- a/app/Http/Controllers/ReminderController.php +++ b/app/Http/Controllers/ReminderController.php @@ -1,9 +1,7 @@ reminders()->get(); - $reminders->each( - function (Reminder $reminder) use ($helper) { - $reminder->description = $helper->getReminderText($reminder); - } - ); - - $today = new Carbon; - // active reminders: - $active = $reminders->filter( - function (Reminder $reminder) use ($today) { - if ($reminder->notnow === false && $reminder->active === true && $reminder->startdate <= $today && $reminder->enddate >= $today) { - return $reminder; - } - } - ); - - // expired reminders: - $expired = $reminders->filter( - function (Reminder $reminder) use ($today) { - if ($reminder->notnow === false && $reminder->active === true && $reminder->startdate > $today || $reminder->enddate < $today) { - return $reminder; - } - } - ); - - // inactive reminders - $inactive = $reminders->filter( - function (Reminder $reminder) { - if ($reminder->active === false) { - return $reminder; - } - } - ); - - // dismissed reminders - $dismissed = $reminders->filter( - function (Reminder $reminder) { - if ($reminder->notnow === true) { - return $reminder; - } - } - ); + $active = $repository->getActiveReminders(); + $expired = $repository->getExpiredReminders(); + $inactive = $repository->getInactiveReminders(); + $dismissed = $repository->getDismissedReminders(); $title = 'Reminders'; $mainTitleIcon = 'fa-clock-o'; @@ -106,6 +71,8 @@ class ReminderController extends Controller /** * @param Reminder $reminder + * + * @return \Illuminate\View\View */ public function show(Reminder $reminder) { diff --git a/app/Http/Controllers/ReportController.php b/app/Http/Controllers/ReportController.php index 6799c3f3a4..22090e77e5 100644 --- a/app/Http/Controllers/ReportController.php +++ b/app/Http/Controllers/ReportController.php @@ -1,7 +1,6 @@ id); $data = $budget->toArray(); @@ -107,9 +107,9 @@ class ReportController extends Controller } /** - * @param ReportHelperInterface $helper - * * @return View + * @internal param ReportHelperInterface $helper + * */ public function index() { @@ -132,11 +132,6 @@ class ReportController extends Controller public function modalBalancedTransfers(Account $account, $year = '2014', $month = '1') { - try { - new Carbon($year . '-' . $month . '-01'); - } catch (Exception $e) { - return view('error')->with('message', 'Invalid date'); - } $start = new Carbon($year . '-' . $month . '-01'); $end = clone $start; $end->endOfMonth(); @@ -149,20 +144,16 @@ class ReportController extends Controller } /** - * @param Account $account - * @param string $year - * @param string $month - * @param ReportQueryInterface $query + * @param Account $account + * @param string $year + * @param string $month * * @return View + * @internal param ReportQueryInterface $query + * */ public function modalLeftUnbalanced(Account $account, $year = '2014', $month = '1') { - try { - new Carbon($year . '-' . $month . '-01'); - } catch (Exception $e) { - return view('error')->with('message', 'Invalid date'); - } $start = new Carbon($year . '-' . $month . '-01'); $end = clone $start; $end->endOfMonth(); @@ -174,6 +165,8 @@ class ReportController extends Controller if ($count == 0) { return $journal; } + + return null; } ); @@ -189,11 +182,6 @@ class ReportController extends Controller */ public function modalNoBudget(Account $account, $year = '2014', $month = '1') { - try { - new Carbon($year . '-' . $month . '-01'); - } catch (Exception $e) { - return view('error')->with('message', 'Invalid date'); - } $start = new Carbon($year . '-' . $month . '-01'); $end = clone $start; $end->endOfMonth(); @@ -211,11 +199,6 @@ class ReportController extends Controller */ public function month($year = '2014', $month = '1') { - try { - new Carbon($year . '-' . $month . '-01'); - } catch (Exception $e) { - return view('error')->with('message', 'Invalid date.'); - } $date = new Carbon($year . '-' . $month . '-01'); $subTitle = 'Report for ' . $date->format('F Y'); $subTitleIcon = 'fa-calendar'; @@ -327,11 +310,6 @@ class ReportController extends Controller */ public function year($year) { - try { - new Carbon('01-01-' . $year); - } catch (Exception $e) { - return view('error')->with('message', 'Invalid date.'); - } /** @var Preference $pref */ $pref = Preferences::get('showSharedReports', false); $showSharedReports = $pref->data; diff --git a/app/Http/Controllers/SearchController.php b/app/Http/Controllers/SearchController.php index 4a6016fadd..09b8527c37 100644 --- a/app/Http/Controllers/SearchController.php +++ b/app/Http/Controllers/SearchController.php @@ -12,6 +12,10 @@ class SearchController extends Controller { /** * Results always come in the form of an array [results, count, fullCount] + * + * @param SearchInterface $searcher + * + * @return $this */ public function index(SearchInterface $searcher) { diff --git a/app/Http/Controllers/TagController.php b/app/Http/Controllers/TagController.php index c0e5e23eb8..5d54937c4e 100644 --- a/app/Http/Controllers/TagController.php +++ b/app/Http/Controllers/TagController.php @@ -87,11 +87,12 @@ class TagController extends Controller } /** - * @param Tag $tag + * @param TagRepositoryInterface $repository + * @param Tag $tag * * @return \Illuminate\Http\RedirectResponse */ - public function destroy(Tag $tag, TagRepositoryInterface $repository) + public function destroy(TagRepositoryInterface $repository, Tag $tag) { $tagName = $tag->tag; @@ -149,7 +150,7 @@ class TagController extends Controller $count++; } } - if($count > 1) { + if ($count > 1) { $allowToAdvancePayment = false; } @@ -169,12 +170,12 @@ class TagController extends Controller $count++; } } - if($count > 0) { + if ($count > 0) { $allowToBalancingAct = false; } - // edit tagoptions: + // edit tag options: if ($allowToAdvancePayment === false) { unset($tagOptions['advancePayment']); } @@ -194,6 +195,8 @@ class TagController extends Controller /** * @param $state + * + * @return \Symfony\Component\HttpFoundation\Response */ public function hideTagHelp($state) { @@ -233,7 +236,11 @@ class TagController extends Controller } /** - * @param TagFormRequest $request + * @param TagFormRequest $request + * + * @param TagRepositoryInterface $repository + * + * @return $this|\Illuminate\Http\RedirectResponse */ public function store(TagFormRequest $request, TagRepositoryInterface $repository) { @@ -273,9 +280,13 @@ class TagController extends Controller } /** - * @param Tag $tag + * @param TagFormRequest $request + * @param TagRepositoryInterface $repository + * @param Tag $tag + * + * @return $this|\Illuminate\Http\RedirectResponse */ - public function update(Tag $tag, TagFormRequest $request, TagRepositoryInterface $repository) + public function update(TagFormRequest $request, TagRepositoryInterface $repository, Tag $tag) { if (Input::get('setTag') == 'true') { $latitude = strlen($request->get('latitude')) > 0 ? $request->get('latitude') : null; diff --git a/app/Http/Controllers/TransactionController.php b/app/Http/Controllers/TransactionController.php index 3621bd0440..5ee2a7a690 100644 --- a/app/Http/Controllers/TransactionController.php +++ b/app/Http/Controllers/TransactionController.php @@ -1,6 +1,7 @@ accounts()->accountTypeIn(['Default account', 'Asset account'])->orderBy('accounts.name', 'ASC')->orderBy('name', 'ASC')->where( - 'active', 1 - )->orderBy('name', 'DESC')->get(['accounts.*']) - ); + $accounts = ExpandedForm::makeSelectList($repository->getAccounts(['Default account', 'Asset account'])); $budgets = ExpandedForm::makeSelectList(Auth::user()->budgets()->get()); $budgets[0] = '(no budget)'; $piggies = ExpandedForm::makeSelectList(Auth::user()->piggyBanks()->get()); @@ -95,15 +91,16 @@ class TransactionController extends Controller } /** - * @param TransactionJournal $transactionJournal + * @param JournalRepositoryInterface $repository + * @param TransactionJournal $transactionJournal * * @return \Illuminate\Http\RedirectResponse */ - public function destroy(TransactionJournal $transactionJournal) + public function destroy(JournalRepositoryInterface $repository, TransactionJournal $transactionJournal) { Session::flash('success', 'Transaction "' . e($transactionJournal->description) . '" destroyed.'); - $transactionJournal->delete(); + $repository->delete($transactionJournal); // redirect to previous URL: return Redirect::to(Session::get('transactions.delete.url')); @@ -112,18 +109,15 @@ class TransactionController extends Controller /** * Shows the view to edit a transaction. * - * @param TransactionJournal $journal + * @param AccountRepositoryInterface $repository + * @param TransactionJournal $journal * * @return $this */ - public function edit(TransactionJournal $journal, JournalRepositoryInterface $repository) + public function edit(AccountRepositoryInterface $repository, TransactionJournal $journal) { $what = strtolower($journal->transactiontype->type); - $accounts = ExpandedForm::makeSelectList( - Auth::user()->accounts()->accountTypeIn(['Default account', 'Asset account'])->orderBy('accounts.name', 'ASC')->where('active', 1)->orderBy( - 'name', 'DESC' - )->get(['accounts.*']) - ); + $accounts = ExpandedForm::makeSelectList($repository->getAccounts(['Default account', 'Asset account'])); $budgets = ExpandedForm::makeSelectList(Auth::user()->budgets()->get()); $budgets[0] = '(no budget)'; $transactions = $journal->transactions()->orderBy('amount', 'DESC')->get(); @@ -176,12 +170,14 @@ class TransactionController extends Controller } /** - * @param $what + * @param JournalRepositoryInterface $repository + * @param $what * - * @return $this + * @return View */ - public function index($what) + public function index(JournalRepositoryInterface $repository, $what) { + $types = []; switch ($what) { case 'expenses': case 'withdrawal': @@ -203,18 +199,10 @@ class TransactionController extends Controller break; } - $page = intval(\Input::get('page')); - $offset = $page > 0 ? ($page - 1) * 50 : 0; + $page = intval(Input::get('page')); + $offset = $page > 0 ? ($page - 1) * 50 : 0; + $journals = $repository->getJournalsOfTypes($types, $offset, $page); - $set = Auth::user()->transactionJournals()->transactionTypes($types)->withRelevantData()->take(50)->offset($offset) - ->orderBy('date', 'DESC') - ->orderBy('order', 'ASC') - ->orderBy('id', 'DESC') - ->get( - ['transaction_journals.*'] - ); - $count = Auth::user()->transactionJournals()->transactionTypes($types)->count(); - $journals = new LengthAwarePaginator($set, $count, 50, $page); $journals->setPath('transactions/' . $what); return view('transactions.index', compact('subTitle', 'what', 'subTitleIcon', 'journals')); @@ -222,15 +210,19 @@ class TransactionController extends Controller } /** - * Reorder transactions (which all must have the same date) + * @param JournalRepositoryInterface $repository + * + * @return \Symfony\Component\HttpFoundation\Response */ - public function reorder() + public function reorder(JournalRepositoryInterface $repository) { - $ids = Input::get('items'); + $ids = Input::get('items'); + $date = new Carbon(Input::get('date')); if (count($ids) > 0) { $order = 0; foreach ($ids as $id) { - $journal = Auth::user()->transactionjournals()->where('id', $id)->where('date', Input::get('date'))->first(); + + $journal = $repository->getWithDate($id, $date); if ($journal) { $journal->order = $order; $order++; @@ -244,31 +236,22 @@ class TransactionController extends Controller } /** - * @param TransactionJournal $journal + * @param JournalRepositoryInterface $repository + * @param TransactionJournal $journal * * @return $this */ - public function show(TransactionJournal $journal) + public function show(JournalRepositoryInterface $repository, TransactionJournal $journal) { $journal->transactions->each( - function (Transaction $t) use ($journal) { - $t->before = floatval( - $t->account->transactions()->leftJoin( - 'transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id' - ) - ->where('transaction_journals.date', '<=', $journal->date->format('Y-m-d')) - ->where('transaction_journals.order', '>=', $journal->order) - ->where('transaction_journals.id', '!=', $journal->id) - ->sum('transactions.amount') - ); + function (Transaction $t) use ($journal, $repository) { + $t->before = $repository->getAmountBefore($journal, $t); $t->after = $t->before + $t->amount; } ); + $subTitle = e($journal->transactiontype->type) . ' "' . e($journal->description) . '"'; - - return view('transactions.show', compact('journal'))->with( - 'subTitle', e($journal->transactiontype->type) . ' "' . e($journal->description) . '"' - ); + return view('transactions.show', compact('journal', 'subTitle')); } /** @@ -280,7 +263,6 @@ class TransactionController extends Controller public function store(JournalFormRequest $request, JournalRepositoryInterface $repository) { - $journalData = $request->getJournalData(); $journal = $repository->store($journalData); @@ -289,11 +271,7 @@ class TransactionController extends Controller // ConnectJournalToPiggyBank event(new JournalCreated($journal, intval($request->get('piggy_bank_id')))); - if (intval($request->get('reminder_id')) > 0) { - $reminder = Auth::user()->reminders()->find($request->get('reminder_id')); - $reminder->active = 0; - $reminder->save(); - } + $repository->deactivateReminder($request->get('reminder_id')); Session::flash('success', 'New transaction "' . $journal->description . '" stored!'); @@ -309,14 +287,15 @@ class TransactionController extends Controller } + /** - * @param TransactionJournal $journal + * @param JournalFormRequest $request + * @param JournalRepositoryInterface $repository + * @param TransactionJournal $journal * - * @SuppressWarnings("CyclomaticComplexity") // It's exactly 5. So I don't mind. - * - * @return $this + * @return $this|\Illuminate\Http\RedirectResponse */ - public function update(TransactionJournal $journal, JournalFormRequest $request, JournalRepositoryInterface $repository) + public function update(JournalFormRequest $request, JournalRepositoryInterface $repository, TransactionJournal $journal) { $journalData = $request->getJournalData(); diff --git a/app/Http/Requests/DeleteAccountFormRequest.php b/app/Http/Requests/DeleteAccountFormRequest.php index 05f928ab8b..68dbe811a3 100644 --- a/app/Http/Requests/DeleteAccountFormRequest.php +++ b/app/Http/Requests/DeleteAccountFormRequest.php @@ -26,7 +26,7 @@ class DeleteAccountFormRequest extends Request public function rules() { return [ - 'password' => 'required', + 'password' => 'required', ]; } } diff --git a/app/Http/Requests/JournalFormRequest.php b/app/Http/Requests/JournalFormRequest.php index 1bae744518..47db30f2b9 100644 --- a/app/Http/Requests/JournalFormRequest.php +++ b/app/Http/Requests/JournalFormRequest.php @@ -57,7 +57,7 @@ class JournalFormRequest extends Request $rules = [ 'description' => 'required|min:1,max:255', - 'what' => 'required|in:withdrawal,deposit,transfer|exists:transaction_types,type', + 'what' => 'required|in:withdrawal,deposit,transfer', 'amount' => 'numeric|required|min:0.01', 'date' => 'required|date', 'reminder_id' => 'numeric|exists:reminders,id', diff --git a/app/Http/Requests/TagFormRequest.php b/app/Http/Requests/TagFormRequest.php index f82b055478..ad04f50a29 100644 --- a/app/Http/Requests/TagFormRequest.php +++ b/app/Http/Requests/TagFormRequest.php @@ -33,7 +33,7 @@ class TagFormRequest extends Request */ public function rules() { - $idRule = ''; + $idRule = ''; $tagRule = 'required|min:1|uniqueObjectForUser:tags,tag,TRUE'; if (Tag::find(Input::get('id'))) { $idRule = 'belongsToUser:tags'; diff --git a/app/Http/breadcrumbs.php b/app/Http/breadcrumbs.php index ad18780bcb..672ae8ff5a 100644 --- a/app/Http/breadcrumbs.php +++ b/app/Http/breadcrumbs.php @@ -9,9 +9,10 @@ use FireflyIII\Models\Category; use FireflyIII\Models\LimitRepetition; use FireflyIII\Models\PiggyBank; use FireflyIII\Models\Reminder; +use FireflyIII\Models\Tag; use FireflyIII\Models\TransactionCurrency; use FireflyIII\Models\TransactionJournal; -use FireflyIII\Models\Tag; + /* * Back home. */ @@ -176,13 +177,13 @@ Breadcrumbs::register( Breadcrumbs::register( 'currency.edit', function (Generator $breadcrumbs, TransactionCurrency $currency) { $breadcrumbs->parent('currency.index'); - $breadcrumbs->push('Edit '.$currency->name, route('currency.edit', $currency->id)); + $breadcrumbs->push('Edit ' . $currency->name, route('currency.edit', $currency->id)); } ); Breadcrumbs::register( 'currency.delete', function (Generator $breadcrumbs, TransactionCurrency $currency) { $breadcrumbs->parent('currency.index'); - $breadcrumbs->push('Delete '.$currency->name, route('currency.delete', $currency->id)); + $breadcrumbs->push('Delete ' . $currency->name, route('currency.delete', $currency->id)); } ); @@ -312,21 +313,21 @@ Breadcrumbs::register( Breadcrumbs::register( 'reports.year', function (Generator $breadcrumbs, Carbon $date) { $breadcrumbs->parent('reports.index'); - $breadcrumbs->push($date->format('Y'), route('reports.year', $date->format('Y'))); + $breadcrumbs->push($date->year, route('reports.year', $date->year)); } ); Breadcrumbs::register( 'reports.month', function (Generator $breadcrumbs, Carbon $date) { $breadcrumbs->parent('reports.index'); - $breadcrumbs->push('Monthly report for ' . $date->format('F Y'), route('reports.month', $date)); + $breadcrumbs->push('Monthly report for ' . $date->format('F Y'), route('reports.month', [$date->year, $date->month])); } ); Breadcrumbs::register( 'reports.budget', function (Generator $breadcrumbs, Carbon $date) { $breadcrumbs->parent('reports.index'); - $breadcrumbs->push('Budget report for ' . $date->format('F Y'), route('reports.budget', $date)); + $breadcrumbs->push('Budget report for ' . $date->format('F Y'), route('reports.budget', [$date->year, $date->month])); } ); @@ -412,6 +413,6 @@ Breadcrumbs::register( Breadcrumbs::register( 'tags.show', function (Generator $breadcrumbs, Tag $tag) { $breadcrumbs->parent('tags.index'); - $breadcrumbs->push(e($tag->tag), route('tags.show', $tag)); + $breadcrumbs->push(e($tag->tag), route('tags.show', $tag->id)); } ); \ No newline at end of file diff --git a/app/Http/routes.php b/app/Http/routes.php index ecb1e96c3a..957d55829a 100644 --- a/app/Http/routes.php +++ b/app/Http/routes.php @@ -13,6 +13,7 @@ use Symfony\Component\HttpKernel\Exception\NotFoundHttpException; // models +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'account', function ($value, $route) { @@ -30,6 +31,7 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'tj', function ($value, $route) { if (Auth::check()) { @@ -43,6 +45,7 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'currency', function ($value, $route) { if (Auth::check()) { @@ -55,6 +58,7 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'bill', function ($value, $route) { if (Auth::check()) { @@ -68,6 +72,7 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'budget', function ($value, $route) { if (Auth::check()) { @@ -81,6 +86,7 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'reminder', function ($value, $route) { if (Auth::check()) { @@ -94,6 +100,7 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'limitrepetition', function ($value, $route) { if (Auth::check()) { @@ -111,6 +118,7 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'piggyBank', function ($value, $route) { if (Auth::check()) { @@ -127,12 +135,13 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'category', function ($value, $route) { if (Auth::check()) { - return Category::where('id', $value)->where('user_id', Auth::user()->id)->first(); + $object = Category::where('id', $value)->where('user_id', Auth::user()->id)->first(); if ($object) { - $object = $object; + return $object; } } @@ -140,12 +149,30 @@ Route::bind( } ); +/** @noinspection PhpUnusedParameterInspection */ +Route::bind( + 'reminder', function ($value, $route) { + if (Auth::check()) { + /** @var \FireflyIII\Models\Reminder $object */ + $object = Reminder::find($value); + if ($object) { + if ($object->remindersable->account->user_id == Auth::user()->id) { + return $object; + } + } + } + + throw new NotFoundHttpException; +} +); + +/** @noinspection PhpUnusedParameterInspection */ Route::bind( 'tag', function ($value, $route) { if (Auth::check()) { - return Tag::where('id', $value)->where('user_id', Auth::user()->id)->first(); + $object = Tag::where('id', $value)->where('user_id', Auth::user()->id)->first(); if ($object) { - $object = $object; + return $object; } } diff --git a/app/Models/Account.php b/app/Models/Account.php index 2712aef197..77c8a66086 100644 --- a/app/Models/Account.php +++ b/app/Models/Account.php @@ -51,7 +51,7 @@ class Account extends Model $account = Account::create($fields); if (is_null($account->id)) { // could not create account: - App::abort(500, 'Could not create new account with data: ' . json_encode($fields).' because ' . json_encode($account->getErrors())); + App::abort(500, 'Could not create new account with data: ' . json_encode($fields) . ' because ' . json_encode($account->getErrors())); } diff --git a/app/Models/Category.php b/app/Models/Category.php index 60a8198571..12efc295b6 100644 --- a/app/Models/Category.php +++ b/app/Models/Category.php @@ -1,9 +1,10 @@ where('reminders.startdate', '=', $start->format('Y-m-d 00:00:00'))->where('reminders.enddate', '=', $end->format('Y-m-d 00:00:00')); } + /** + * @param EloquentBuilder $query + * + * @return $this + */ public function scopeToday(EloquentBuilder $query) { $today = new Carbon; diff --git a/app/Models/Tag.php b/app/Models/Tag.php index d965150c0a..cac823555c 100644 --- a/app/Models/Tag.php +++ b/app/Models/Tag.php @@ -52,9 +52,9 @@ class Tag extends Model } } // create it! - $fields['tagMode'] = 'nothing'; + $fields['tagMode'] = 'nothing'; $fields['description'] = isset($fields['description']) && !is_null($fields['description']) ? $fields['description'] : ''; - $tag = Tag::create($fields); + $tag = Tag::create($fields); if (is_null($tag->id)) { // could not create account: App::abort(500, 'Could not create new tag with data: ' . json_encode($fields) . ' because ' . json_encode($tag->getErrors())); diff --git a/app/Models/TransactionJournal.php b/app/Models/TransactionJournal.php index f0873c577b..f2d65060c5 100644 --- a/app/Models/TransactionJournal.php +++ b/app/Models/TransactionJournal.php @@ -66,8 +66,13 @@ class TransactionJournal extends Model return floatval($t->amount); } } + + return 0; } + /** + * @return Account|mixed + */ public function getAssetAccountAttribute() { $positive = true; // the asset account is in the transaction with the positive amount. diff --git a/app/Providers/ConfigServiceProvider.php b/app/Providers/ConfigServiceProvider.php index bd01842727..b758d58acd 100644 --- a/app/Providers/ConfigServiceProvider.php +++ b/app/Providers/ConfigServiceProvider.php @@ -173,7 +173,7 @@ class ConfigServiceProvider extends ServiceProvider ], 'Form' => [ 'is_safe' => [ - 'input', 'select', 'checkbox', 'model', 'open','radio','textarea' + 'input', 'select', 'checkbox', 'model', 'open', 'radio', 'textarea' ] ], ], diff --git a/app/Providers/EventServiceProvider.php b/app/Providers/EventServiceProvider.php index e19c145043..a9d54e9e0f 100644 --- a/app/Providers/EventServiceProvider.php +++ b/app/Providers/EventServiceProvider.php @@ -6,6 +6,7 @@ use FireflyIII\Models\BudgetLimit; use FireflyIII\Models\LimitRepetition; use FireflyIII\Models\PiggyBank; use FireflyIII\Models\PiggyBankRepetition; +use FireflyIII\Models\Reminder; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; use FireflyIII\Support\Facades\Navigation; @@ -13,7 +14,6 @@ use Illuminate\Contracts\Events\Dispatcher as DispatcherContract; use Illuminate\Database\QueryException; use Illuminate\Foundation\Support\Providers\EventServiceProvider as ServiceProvider; use Log; -use FireflyIII\Models\Reminder; /** * Class EventServiceProvider diff --git a/app/Providers/FireflyServiceProvider.php b/app/Providers/FireflyServiceProvider.php index eaecd56528..36c32de527 100644 --- a/app/Providers/FireflyServiceProvider.php +++ b/app/Providers/FireflyServiceProvider.php @@ -84,6 +84,7 @@ class FireflyServiceProvider extends ServiceProvider $this->app->bind('FireflyIII\Repositories\PiggyBank\PiggyBankRepositoryInterface', 'FireflyIII\Repositories\PiggyBank\PiggyBankRepository'); $this->app->bind('FireflyIII\Repositories\Currency\CurrencyRepositoryInterface', 'FireflyIII\Repositories\Currency\CurrencyRepository'); $this->app->bind('FireflyIII\Repositories\Tag\TagRepositoryInterface', 'FireflyIII\Repositories\Tag\TagRepository'); + $this->app->bind('FireflyIII\Repositories\Reminder\ReminderRepositoryInterface', 'FireflyIII\Repositories\Reminder\ReminderRepository'); $this->app->bind('FireflyIII\Support\Search\SearchInterface', 'FireflyIII\Support\Search\Search'); diff --git a/app/Repositories/Account/AccountRepository.php b/app/Repositories/Account/AccountRepository.php index 2d3bd4c388..a3e98bfd57 100644 --- a/app/Repositories/Account/AccountRepository.php +++ b/app/Repositories/Account/AccountRepository.php @@ -374,6 +374,8 @@ class AccountRepository implements AccountRepositoryInterface /** * @param Account $account * @param array $data + * + * @return Account */ public function update(Account $account, array $data) { diff --git a/app/Repositories/Account/AccountRepositoryInterface.php b/app/Repositories/Account/AccountRepositoryInterface.php index 0a80c40691..cc80a6c403 100644 --- a/app/Repositories/Account/AccountRepositoryInterface.php +++ b/app/Repositories/Account/AccountRepositoryInterface.php @@ -88,7 +88,7 @@ interface AccountRepositoryInterface /** * @param Account $account - * @param string $range + * @param $page * * @return LengthAwarePaginator */ diff --git a/app/Repositories/Bill/BillRepository.php b/app/Repositories/Bill/BillRepository.php index df997ba2c0..58d30446e1 100644 --- a/app/Repositories/Bill/BillRepository.php +++ b/app/Repositories/Bill/BillRepository.php @@ -211,10 +211,12 @@ class BillRepository implements BillRepositoryInterface * $today is the start of the next period, to make sure FF3 won't miss anything * when the current period has a transaction journal. */ - $today = Navigation::addPeriod(new Carbon, $bill->repeat_freq, 0); + /** @var \Carbon\Carbon $obj */ + $obj = new Carbon; + $today = Navigation::addPeriod($obj, $bill->repeat_freq, 0); $skip = $bill->skip + 1; - $start = Navigation::startOfPeriod(new Carbon, $bill->repeat_freq); + $start = Navigation::startOfPeriod($obj, $bill->repeat_freq); /* * go back exactly one month/week/etc because FF3 does not care about 'next' * bills if they're too far into the past. diff --git a/app/Repositories/Category/CategoryRepositoryInterface.php b/app/Repositories/Category/CategoryRepositoryInterface.php index 5b29845daf..3cf025e354 100644 --- a/app/Repositories/Category/CategoryRepositoryInterface.php +++ b/app/Repositories/Category/CategoryRepositoryInterface.php @@ -72,8 +72,8 @@ interface CategoryRepositoryInterface /** * @param Category $category - * @param Carbon $start - * @param Carbon $end + * @param \Carbon\Carbon $start + * @param \Carbon\Carbon $end * * @return float */ diff --git a/app/Repositories/Journal/JournalRepository.php b/app/Repositories/Journal/JournalRepository.php index 330ff2fe81..180f6d870a 100644 --- a/app/Repositories/Journal/JournalRepository.php +++ b/app/Repositories/Journal/JournalRepository.php @@ -4,6 +4,7 @@ namespace FireflyIII\Repositories\Journal; use App; use Auth; +use Carbon\Carbon; use DB; use FireflyIII\Models\Account; use FireflyIII\Models\AccountType; @@ -13,6 +14,7 @@ use FireflyIII\Models\Tag; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionType; +use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; use Log; @@ -24,6 +26,38 @@ use Log; class JournalRepository implements JournalRepositoryInterface { + /** + * @param int $reminderId + * + * @return bool + */ + public function deactivateReminder($reminderId) + { + $reminder = Auth::user()->reminders()->find($reminderId); + if ($reminder) { + $reminder->active = 0; + $reminder->save(); + } + + } + + /** + * @param TransactionJournal $journal + * + * @return bool + */ + public function delete(TransactionJournal $journal) + { + // delete transactions first: + /** @var Transaction $transaction */ + foreach ($journal->transactions()->get() as $transaction) { + $transaction->delete(); + } + $journal->delete(); + + return true; + } + /** * Get users first transaction journal * @@ -34,6 +68,25 @@ class JournalRepository implements JournalRepositoryInterface return Auth::user()->transactionjournals()->orderBy('date', 'ASC')->first(['transaction_journals.*']); } + /** + * @param TransactionJournal $journal + * @param Transaction $transaction + * + * @return float + */ + public function getAmountBefore(TransactionJournal $journal, Transaction $transaction) + { + return floatval( + $transaction->account->transactions()->leftJoin( + 'transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id' + ) + ->where('transaction_journals.date', '<=', $journal->date->format('Y-m-d')) + ->where('transaction_journals.order', '>=', $journal->order) + ->where('transaction_journals.id', '!=', $journal->id) + ->sum('transactions.amount') + ); + } + /** * @param TransactionType $dbType * @@ -44,6 +97,28 @@ class JournalRepository implements JournalRepositoryInterface return Auth::user()->transactionjournals()->where('transaction_type_id', $dbType->id)->orderBy('id', 'DESC')->take(50)->get(); } + /** + * @param array $types + * @param int $offset + * @param int $page + * + * @return LengthAwarePaginator + */ + public function getJournalsOfTypes(array $types, $offset, $page) + { + $set = Auth::user()->transactionJournals()->transactionTypes($types)->withRelevantData()->take(50)->offset($offset) + ->orderBy('date', 'DESC') + ->orderBy('order', 'ASC') + ->orderBy('id', 'DESC') + ->get( + ['transaction_journals.*'] + ); + $count = Auth::user()->transactionJournals()->transactionTypes($types)->count(); + $journals = new LengthAwarePaginator($set, $count, 50, $page); + + return $journals; + } + /** * @param $type * @@ -54,6 +129,17 @@ class JournalRepository implements JournalRepositoryInterface return TransactionType::whereType($type)->first(); } + /** + * @param $id + * @param Carbon $date + * + * @return TransactionJournal + */ + public function getWithDate($id, Carbon $date) + { + return Auth::user()->transactionjournals()->where('id', $id)->where('date', $date->format('Y-m-d'))->first(); + } + /** * * * Remember: a balancingAct takes at most one expense and one transfer. @@ -109,6 +195,7 @@ class JournalRepository implements JournalRepositoryInterface // store or get budget if (intval($data['budget_id']) > 0) { + /** @var \FireflyIII\Models\Budget $budget */ $budget = Budget::find($data['budget_id']); $journal->budgets()->save($budget); } @@ -168,6 +255,7 @@ class JournalRepository implements JournalRepositoryInterface // unlink all budgets and recreate them: $journal->budgets()->detach(); if (intval($data['budget_id']) > 0) { + /** @var \FireflyIII\Models\Budget $budget */ $budget = Budget::find($data['budget_id']); $journal->budgets()->save($budget); } @@ -231,7 +319,7 @@ class JournalRepository implements JournalRepositoryInterface DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal->id)->whereNotIn('tag_id', $ids)->delete(); } // if count is zero, delete them all: - if(count($ids) == 0) { + if (count($ids) == 0) { DB::table('tag_transaction_journal')->where('transaction_journal_id', $journal->id)->delete(); } diff --git a/app/Repositories/Journal/JournalRepositoryInterface.php b/app/Repositories/Journal/JournalRepositoryInterface.php index 89e15791fb..9e46b6213a 100644 --- a/app/Repositories/Journal/JournalRepositoryInterface.php +++ b/app/Repositories/Journal/JournalRepositoryInterface.php @@ -2,9 +2,11 @@ namespace FireflyIII\Repositories\Journal; +use Carbon\Carbon; use FireflyIII\Models\Transaction; use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionType; +use Illuminate\Pagination\LengthAwarePaginator; use Illuminate\Support\Collection; /** @@ -14,6 +16,20 @@ use Illuminate\Support\Collection; */ interface JournalRepositoryInterface { + /** + * @param int $reminderId + * + * @return bool + */ + public function deactivateReminder($reminderId); + + /** + * @param TransactionJournal $journal + * + * @return bool + */ + public function delete(TransactionJournal $journal); + /** * Get users first transaction journal * @@ -21,6 +37,14 @@ interface JournalRepositoryInterface */ public function first(); + /** + * @param TransactionJournal $journal + * @param Transaction $transaction + * + * @return float + */ + public function getAmountBefore(TransactionJournal $journal, Transaction $transaction); + /** * @param TransactionType $dbType * @@ -28,6 +52,15 @@ interface JournalRepositoryInterface */ public function getJournalsOfType(TransactionType $dbType); + /** + * @param array $types + * @param int $offset + * @param int $page + * + * @return LengthAwarePaginator + */ + public function getJournalsOfTypes(array $types, $offset, $page); + /** * @param $type * @@ -35,6 +68,14 @@ interface JournalRepositoryInterface */ public function getTransactionType($type); + /** + * @param $id + * @param Carbon $date + * + * @return TransactionJournal + */ + public function getWithDate($id, Carbon $date); + /** * @param TransactionJournal $journal * @param array $array diff --git a/app/Repositories/PiggyBank/PiggyBankRepository.php b/app/Repositories/PiggyBank/PiggyBankRepository.php index 612cfa043e..bbd7248915 100644 --- a/app/Repositories/PiggyBank/PiggyBankRepository.php +++ b/app/Repositories/PiggyBank/PiggyBankRepository.php @@ -21,7 +21,6 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface /** - * @SuppressWarnings("CyclomaticComplexity") // It's exactly 5. So I don't mind. * * Based on the piggy bank, the reminder-setting and * other variables this method tries to divide the piggy bank into equal parts. Each is @@ -189,10 +188,11 @@ class PiggyBankRepository implements PiggyBankRepositoryInterface } /** - * @param PiggyBank $account + * @param PiggyBank $piggyBank * @param array $data * * @return PiggyBank + * @internal param PiggyBank $account */ public function update(PiggyBank $piggyBank, array $data) { diff --git a/app/Repositories/PiggyBank/PiggyBankRepositoryInterface.php b/app/Repositories/PiggyBank/PiggyBankRepositoryInterface.php index b34345795f..ce67a6b6b0 100644 --- a/app/Repositories/PiggyBank/PiggyBankRepositoryInterface.php +++ b/app/Repositories/PiggyBank/PiggyBankRepositoryInterface.php @@ -15,7 +15,6 @@ interface PiggyBankRepositoryInterface { /** - * @SuppressWarnings("CyclomaticComplexity") // It's exactly 5. So I don't mind. * * Based on the piggy bank, the reminder-setting and * other variables this method tries to divide the piggy bank into equal parts. Each is @@ -95,7 +94,7 @@ interface PiggyBankRepositoryInterface public function store(array $data); /** - * @param PiggyBank $account + * @param PiggyBank $piggyBank * @param array $data * * @return PiggyBank diff --git a/app/Repositories/Reminder/ReminderRepository.php b/app/Repositories/Reminder/ReminderRepository.php new file mode 100644 index 0000000000..d35e8bda2f --- /dev/null +++ b/app/Repositories/Reminder/ReminderRepository.php @@ -0,0 +1,116 @@ +helper = App::make('FireflyIII\Helpers\Reminders\ReminderHelperInterface'); + } + + /** + * @return Collection + */ + public function getActiveReminders() + { + $today = new Carbon; + // active reminders: + $active = Auth::user()->reminders() + ->where('notnow', 0) + ->where('active', 1) + ->where('startdate', '<=', $today->format('Y-m-d 00:00:00')) + ->where('enddate', '>=', $today->format('Y-m-d 00:00:00')) + ->get(); + + $active->each( + function (Reminder $reminder) { + $reminder->description = $this->helper->getReminderText($reminder); + } + ); + + return $active; + + } + + /** + * @return Collection + */ + public function getDismissedReminders() + { + $dismissed = Auth::user()->reminders() + ->where('notnow', 1) + ->get(); + + $dismissed->each( + function (Reminder $reminder) { + $reminder->description = $this->helper->getReminderText($reminder); + } + ); + + return $dismissed; + } + + /** + * @return Collection + */ + public function getExpiredReminders() + { + + $expired = Auth::user()->reminders() + ->where('notnow', 0) + ->where('active', 1) + ->where( + function (Builder $q) { + $today = new Carbon; + $q->where('startdate', '>', $today->format('Y-m-d 00:00:00')); + $q->orWhere('enddate', '<', $today->format('Y-m-d 00:00:00')); + } + )->get(); + + $expired->each( + function (Reminder $reminder) { + $reminder->description = $this->helper->getReminderText($reminder); + } + ); + + return $expired; + } + + /** + * @return Collection + */ + public function getInactiveReminders() + { + $inactive = Auth::user()->reminders() + ->where('active', 0) + ->get(); + + $inactive->each( + function (Reminder $reminder) { + $reminder->description = $this->helper->getReminderText($reminder); + } + ); + + return $inactive; + } +} diff --git a/app/Repositories/Reminder/ReminderRepositoryInterface.php b/app/Repositories/Reminder/ReminderRepositoryInterface.php new file mode 100644 index 0000000000..8255e58f02 --- /dev/null +++ b/app/Repositories/Reminder/ReminderRepositoryInterface.php @@ -0,0 +1,35 @@ +data)->first(); + + $currency = TransactionCurrency::whereCode($currencyPreference->data)->first(); if ($currency) { Cache::forever('FFCURRENCYCODE', $currency->code); @@ -171,6 +169,9 @@ class Amount return 'EUR'; } + /** + * @return mixed|static + */ public function getDefaultCurrency() { $currencyPreference = Prefs::get('currencyPreference', 'EUR'); diff --git a/app/Support/ExpandedForm.php b/app/Support/ExpandedForm.php index a99ee3c23c..a28c87ba02 100644 --- a/app/Support/ExpandedForm.php +++ b/app/Support/ExpandedForm.php @@ -237,12 +237,11 @@ class ExpandedForm } /** - * @SuppressWarnings("CyclomaticComplexity") // It's exactly 5. So I don't mind. * * Takes any collection and tries to make a sensible select list compatible array of it. * - * @param Collection $set - * @param bool $addEmpty + * @param \Illuminate\Support\Collection $set + * @param bool $addEmpty * * @return mixed */ @@ -289,10 +288,12 @@ class ExpandedForm /** * @param $name - * @param null $value + * @param array $list + * @param null $selected * @param array $options * * @return string + * @internal param null $value */ public function multiRadio($name, array $list = [], $selected = null, array $options = []) { diff --git a/app/Support/Navigation.php b/app/Support/Navigation.php index 65f3de722b..69025ba3b2 100644 --- a/app/Support/Navigation.php +++ b/app/Support/Navigation.php @@ -15,7 +15,7 @@ class Navigation /** - * @param Carbon $theDate + * @param \Carbon\Carbon $theDate * @param $repeatFreq * @param $skip * @@ -64,10 +64,10 @@ class Navigation } /** - * @param Carbon $theCurrentEnd + * @param \Carbon\Carbon $theCurrentEnd * @param $repeatFreq * - * @return Carbon + * @return \Carbon\Carbon * @throws FireflyException */ public function endOfPeriod(Carbon $theCurrentEnd, $repeatFreq) @@ -148,9 +148,8 @@ class Navigation } if (isset($specials[$repeatFreq])) { - $month = intval($theCurrentEnd->format('m')); $currentEnd->endOfYear(); - if ($month <= 6) { + if ($theCurrentEnd->month <= 6) { $currentEnd->subMonths(6); } } @@ -184,7 +183,7 @@ class Navigation $date->lastOfQuarter()->addDay(); break; case '6M': - if (intval($date->format('m')) >= 7) { + if ($date->month >= 7) { $date->startOfYear()->addYear(); } else { $date->startOfYear()->addMonths(6); @@ -230,9 +229,8 @@ class Navigation return $date; } if ($range == '6M') { - $month = intval($date->format('m')); $date->startOfYear(); - if ($month <= 6) { + if ($date->month <= 6) { $date->subMonths(6); } @@ -260,16 +258,15 @@ class Navigation return $date->format($formatMap[$range]); } if ($range == '3M') { - $month = intval($date->format('m')); - return 'Q' . ceil(($month / 12) * 4) . ' ' . $date->format('Y'); + + return 'Q' . ceil(($date->month / 12) * 4) . ' ' . $date->year; } if ($range == '6M') { - $month = intval($date->format('m')); - $half = ceil(($month / 12) * 2); + $half = ceil(($date->month / 12) * 2); $halfName = $half == 1 ? 'first' : 'second'; - return $halfName . ' half of ' . $date->format('Y'); + return $halfName . ' half of ' . $date->year; } throw new FireflyException('No _periodName() for range "' . $range . '"'); } @@ -301,10 +298,10 @@ class Navigation } /** - * @param Carbon $theDate + * @param \Carbon\Carbon $theDate * @param $repeatFreq * - * @return Carbon + * @return \Carbon\Carbon * @throws FireflyException */ public function startOfPeriod(Carbon $theDate, $repeatFreq) @@ -333,7 +330,7 @@ class Navigation return $date; } if ($repeatFreq == 'half-year' || $repeatFreq == '6M') { - $month = intval($date->format('m')); + $month = $date->month; $date->startOfYear(); if ($month >= 7) { $date->addMonths(6); @@ -388,9 +385,9 @@ class Navigation /** * @param $range - * @param Carbon $start + * @param \Carbon\Carbon $start * - * @return Carbon + * @return \Carbon\Carbon * @throws FireflyException */ public function updateEndDate($range, Carbon $start) @@ -411,7 +408,7 @@ class Navigation return $end; } if ($range == '6M') { - if (intval($start->format('m')) >= 7) { + if ($start->month >= 7) { $end->endOfYear(); } else { $end->startOfYear()->addMonths(6); @@ -423,10 +420,10 @@ class Navigation } /** - * @param $range - * @param Carbon $start + * @param $range + * @param \Carbon\Carbon $start * - * @return Carbon + * @return \Carbon\Carbon * @throws FireflyException */ public function updateStartDate($range, Carbon $start) @@ -445,7 +442,7 @@ class Navigation return $start; } if ($range == '6M') { - if (intval($start->format('m')) >= 7) { + if ($start->month >= 7) { $start->startOfYear()->addMonths(6); } else { $start->startOfYear(); diff --git a/app/Support/Preferences.php b/app/Support/Preferences.php index 0604a0b1be..ff534f63e3 100644 --- a/app/Support/Preferences.php +++ b/app/Support/Preferences.php @@ -16,7 +16,7 @@ class Preferences * @param $name * @param null $default * - * @return null|Preference + * @return null|\FireflyIII\Models\Preference */ public function get($name, $default = null) { diff --git a/app/Support/Search/Search.php b/app/Support/Search/Search.php index f1e0c658ae..e07e538ecf 100644 --- a/app/Support/Search/Search.php +++ b/app/Support/Search/Search.php @@ -84,7 +84,6 @@ class Search implements SearchInterface } /** - * @SuppressWarnings(PHPMD.UnusedFormalParameter) * * @param array $words * @@ -122,6 +121,7 @@ class Search implements SearchInterface return $journal; } } + return null; } ); diff --git a/app/Support/Steam.php b/app/Support/Steam.php index 591bba1db5..8206024886 100644 --- a/app/Support/Steam.php +++ b/app/Support/Steam.php @@ -17,8 +17,8 @@ class Steam { /** * - * @param Account $account - * @param Carbon $date + * @param \FireflyIII\Models\Account $account + * @param \Carbon\Carbon $date * @param bool $ignoreVirtualBalance * * @return float @@ -91,7 +91,7 @@ class Steam * Turns a collection into an array. Needs the field 'id' for the key, * and saves only 'name' and 'amount' as a sub array. * - * @param Collection $collection + * @param \Illuminate\Support\Collection $collection * * @return array */ diff --git a/app/Support/Twig/General.php b/app/Support/Twig/General.php index f5faf71981..0be9007420 100644 --- a/app/Support/Twig/General.php +++ b/app/Support/Twig/General.php @@ -42,7 +42,7 @@ class General extends Twig_Extension $filters[] = new Twig_SimpleFilter( 'formatAmountPlain', function ($string) { return App::make('amount')->format($string, false); - } + }, ['is_safe' => ['html']] ); $filters[] = new Twig_SimpleFilter( diff --git a/app/Support/Twig/Journal.php b/app/Support/Twig/Journal.php index 52dd0d6620..70c088281e 100644 --- a/app/Support/Twig/Journal.php +++ b/app/Support/Twig/Journal.php @@ -39,7 +39,7 @@ class Journal extends Twig_Extension if ($type == 'Opening balance') { return ''; } - + return ''; }, ['is_safe' => ['html']] ); diff --git a/app/Support/Twig/PiggyBank.php b/app/Support/Twig/PiggyBank.php index 4d289a4b43..df4137670b 100644 --- a/app/Support/Twig/PiggyBank.php +++ b/app/Support/Twig/PiggyBank.php @@ -2,9 +2,9 @@ namespace FireflyIII\Support\Twig; +use FireflyIII\Models\PiggyBank as PB; use Twig_Extension; use Twig_SimpleFunction; -use FireflyIII\Models\PiggyBank as PB; /** * Class PiggyBank @@ -26,6 +26,7 @@ class PiggyBank extends Twig_Extension return $piggyBank->currentRelevantRep()->currentamount; } ); + return $functions; } diff --git a/app/Validation/FireflyValidator.php b/app/Validation/FireflyValidator.php index b8cf753024..c28c7ea5b8 100644 --- a/app/Validation/FireflyValidator.php +++ b/app/Validation/FireflyValidator.php @@ -203,7 +203,13 @@ class FireflyValidator extends Validator $alwaysEncrypted = true; } - $query = DB::table($table)->where('user_id', Auth::user()->id); + if (is_null(Auth::user())) { + // user is not logged in.. weird. + return true; + } else { + $query = DB::table($table)->where('user_id', Auth::user()->id); + } + if (!is_null($exclude)) { $query->where('id', '!=', $exclude); diff --git a/composer.lock b/composer.lock index bce1a9507c..739325247b 100644 --- a/composer.lock +++ b/composer.lock @@ -1375,16 +1375,16 @@ }, { "name": "nikic/php-parser", - "version": "v1.2.2", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/nikic/PHP-Parser.git", - "reference": "08f97eb4efa029e2fafb6d8c98b71731bf0cf621" + "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/08f97eb4efa029e2fafb6d8c98b71731bf0cf621", - "reference": "08f97eb4efa029e2fafb6d8c98b71731bf0cf621", + "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/dff239267fd1befa1cd40430c9ed12591aa720ca", + "reference": "dff239267fd1befa1cd40430c9ed12591aa720ca", "shasum": "" }, "require": { @@ -1394,7 +1394,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.2-dev" + "dev-master": "1.3-dev" } }, "autoload": { @@ -1416,7 +1416,7 @@ "parser", "php" ], - "time": "2015-04-03 14:33:59" + "time": "2015-05-02 15:40:40" }, { "name": "psr/log", @@ -3582,16 +3582,16 @@ }, { "name": "phpunit/phpunit", - "version": "4.6.4", + "version": "4.6.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "163232991e652e6efed2f8470326fffa61e848e2" + "reference": "3afe303d873a4d64c62ef84de491b97b006fbdac" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/163232991e652e6efed2f8470326fffa61e848e2", - "reference": "163232991e652e6efed2f8470326fffa61e848e2", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3afe303d873a4d64c62ef84de491b97b006fbdac", + "reference": "3afe303d873a4d64c62ef84de491b97b006fbdac", "shasum": "" }, "require": { @@ -3650,7 +3650,7 @@ "testing", "xunit" ], - "time": "2015-04-11 05:23:21" + "time": "2015-04-29 15:18:52" }, { "name": "phpunit/phpunit-mock-objects", diff --git a/database/migrations/2014_10_12_100000_create_password_resets_table.php b/database/migrations/2014_10_12_100000_create_password_resets_table.php index 788ebc23e6..dc7f142530 100644 --- a/database/migrations/2014_10_12_100000_create_password_resets_table.php +++ b/database/migrations/2014_10_12_100000_create_password_resets_table.php @@ -4,6 +4,8 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; /** + * @SuppressWarnings(PHPMD.ShortMethodName) + * * Class CreatePasswordResetsTable */ class CreatePasswordResetsTable extends Migration diff --git a/database/migrations/2014_12_13_190730_changes_for_v321.php b/database/migrations/2014_12_13_190730_changes_for_v321.php index 5a0524d322..a893f8c0a7 100644 --- a/database/migrations/2014_12_13_190730_changes_for_v321.php +++ b/database/migrations/2014_12_13_190730_changes_for_v321.php @@ -7,6 +7,7 @@ use FireflyIII\Models\Component; use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; + /** * @SuppressWarnings(PHPMD.ShortMethodName) // method names are mandated by laravel. * @SuppressWarnings("TooManyMethods") // I'm fine with this diff --git a/database/migrations/2014_12_24_191544_changes_for_v322.php b/database/migrations/2014_12_24_191544_changes_for_v322.php index 6ee2a55a2e..11a6ce7416 100644 --- a/database/migrations/2014_12_24_191544_changes_for_v322.php +++ b/database/migrations/2014_12_24_191544_changes_for_v322.php @@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint; /** * @SuppressWarnings(PHPMD.ShortMethodName) - * @SuppressWarnings("MethodLength") // I don't mind this in case of migrations. + * @SuppressWarnings("PHPMD.ExcessiveMethodLength") * * Class ChangesForV322 */ diff --git a/database/migrations/2015_01_18_082406_changes_for_v325.php b/database/migrations/2015_01_18_082406_changes_for_v325.php index d24b6d1c87..4c189cc840 100644 --- a/database/migrations/2015_01_18_082406_changes_for_v325.php +++ b/database/migrations/2015_01_18_082406_changes_for_v325.php @@ -5,7 +5,7 @@ use Illuminate\Database\Schema\Blueprint; /** * @SuppressWarnings(PHPMD.ShortMethodName) - * @SuppressWarnings("MethodLength") // I don't mind this in case of migrations. + * @SuppressWarnings("PHPMD.ExcessiveMethodLength") * * Class ChangesForV325 */ diff --git a/database/migrations/2015_02_27_210653_changes_for_v332.php b/database/migrations/2015_02_27_210653_changes_for_v332.php index bbf876afd4..379b50a0c6 100644 --- a/database/migrations/2015_02_27_210653_changes_for_v332.php +++ b/database/migrations/2015_02_27_210653_changes_for_v332.php @@ -4,6 +4,8 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; /** + * @SuppressWarnings(PHPMD.ShortMethodName) + * * Class ChangesForV332 */ class ChangesForV332 extends Migration diff --git a/database/migrations/2015_03_27_061038_changes_for_v333.php b/database/migrations/2015_03_27_061038_changes_for_v333.php index 75bc20bcad..88da537984 100644 --- a/database/migrations/2015_03_27_061038_changes_for_v333.php +++ b/database/migrations/2015_03_27_061038_changes_for_v333.php @@ -3,6 +3,11 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +/** + * @SuppressWarnings(PHPMD.ShortMethodName) + * + * Class ChangesForV333 + */ class ChangesForV333 extends Migration { diff --git a/database/migrations/2015_03_29_174140_changes_for_v336.php b/database/migrations/2015_03_29_174140_changes_for_v336.php index 304fd78ac9..acaf6a384e 100644 --- a/database/migrations/2015_03_29_174140_changes_for_v336.php +++ b/database/migrations/2015_03_29_174140_changes_for_v336.php @@ -4,6 +4,9 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; /** + * @SuppressWarnings(PHPMD.ShortMethodName) + * @SuppressWarnings("PHPMD.ExcessiveMethodLength") + * * Class ChangesForV336 */ class ChangesForV336 extends Migration @@ -134,7 +137,7 @@ class ChangesForV336 extends Migration // reinstate a long forgotten index: Schema::table( 'budget_limits', function (Blueprint $table) { - $table->unique(['budget_id', 'startdate'],'unique_limit'); + $table->unique(['budget_id', 'startdate'], 'unique_limit'); } ); diff --git a/database/migrations/2015_04_26_054507_changes_for_v3310.php b/database/migrations/2015_04_26_054507_changes_for_v3310.php index 2c338242a1..94c777ed1b 100644 --- a/database/migrations/2015_04_26_054507_changes_for_v3310.php +++ b/database/migrations/2015_04_26_054507_changes_for_v3310.php @@ -3,6 +3,12 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; +/** + * @SuppressWarnings(PHPMD.ShortMethodName) + * @SuppressWarnings("PHPMD.ExcessiveMethodLength") + * + * Class ChangesForV3310 + */ class ChangesForV3310 extends Migration { @@ -57,7 +63,8 @@ class ChangesForV3310 extends Migration ); - Schema::create('tag_transaction_journal',function (Blueprint $table) { + Schema::create( + 'tag_transaction_journal', function (Blueprint $table) { $table->increments('id'); $table->integer('tag_id')->unsigned(); $table->integer('transaction_journal_id')->unsigned(); @@ -69,7 +76,8 @@ class ChangesForV3310 extends Migration // add unique. $table->unique(['tag_id', 'transaction_journal_id'], 'tag_t_joined'); - }); + } + ); } } diff --git a/database/migrations/2015_04_28_075215_changes_for_v3310a.php b/database/migrations/2015_04_28_075215_changes_for_v3310a.php index 9c0c1df3d6..9a599ccb8b 100644 --- a/database/migrations/2015_04_28_075215_changes_for_v3310a.php +++ b/database/migrations/2015_04_28_075215_changes_for_v3310a.php @@ -4,6 +4,8 @@ use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; /** + * @SuppressWarnings(PHPMD.ShortMethodName) + * * Class ChangesForV3310a */ class ChangesForV3310a extends Migration diff --git a/database/migrations/2015_04_28_075317_changes_for_v3310b.php b/database/migrations/2015_04_28_075317_changes_for_v3310b.php index 5ea3fcfb13..ee2e8d17e7 100644 --- a/database/migrations/2015_04_28_075317_changes_for_v3310b.php +++ b/database/migrations/2015_04_28_075317_changes_for_v3310b.php @@ -1,32 +1,34 @@ update(['relation' => 'balance']); - } - - /** - * Reverse the migrations. - * - * @return void - */ - public function down() - { - // - } + } } diff --git a/public/js/index.js b/public/js/index.js index 22a9081f06..6663b8a7d3 100644 --- a/public/js/index.js +++ b/public/js/index.js @@ -14,9 +14,7 @@ function getBoxAmounts() { for (x in boxes) { var box = boxes[x]; $.getJSON('/json/box/' + box).success(function (data) { - if (data.amount_raw != 0) { - $('#box-' + data.box).html(data.amount); - } + $('#box-' + data.box).html(data.amount); }).fail(function () { console.log('Failed to get box!') }); diff --git a/resources/twig/budgets/index.twig b/resources/twig/budgets/index.twig index 383e71f74d..11059b48ac 100644 --- a/resources/twig/budgets/index.twig +++ b/resources/twig/budgets/index.twig @@ -122,11 +122,11 @@ {% if budget.currentRep.amount > budget.spent %} - {{ getCurrencySymbol() }} {{ getCurrencySymbol()|raw }} {% else %} - {{ getCurrencySymbol() }} {{ getCurrencySymbol()|raw }} {% endif %} @@ -134,7 +134,7 @@ {% else %} No budget - diff --git a/resources/twig/index.twig b/resources/twig/index.twig index 31f6115a95..e3c94d519f 100644 --- a/resources/twig/index.twig +++ b/resources/twig/index.twig @@ -75,12 +75,12 @@ {{ getCurrencySymbol()|raw }}