diff --git a/app/controllers/AccountController.php b/app/controllers/AccountController.php index 2e85ab7fd3..c49c154736 100644 --- a/app/controllers/AccountController.php +++ b/app/controllers/AccountController.php @@ -94,7 +94,7 @@ class AccountController extends \BaseController */ public function show($accountId) { - + return $accountId; } // // diff --git a/app/controllers/BudgetController.php b/app/controllers/BudgetController.php index 5dc1159a2e..c95daffa2f 100644 --- a/app/controllers/BudgetController.php +++ b/app/controllers/BudgetController.php @@ -2,17 +2,27 @@ use Firefly\Storage\Budget\BudgetRepositoryInterface as BRI; +/** + * Class BudgetController + */ class BudgetController extends BaseController { protected $_budgets; + /** + * @param BRI $budgets + */ public function __construct(BRI $budgets) { $this->_budgets = $budgets; View::share('menu', 'budgets'); } + /** + * @return $this|\Illuminate\View\View + * @throws Firefly\Exception\FireflyException + */ public function indexByDate() { // get a list of dates by getting all repetitions: @@ -21,8 +31,8 @@ class BudgetController extends BaseController foreach ($budgets as $budget) { foreach ($budget->limits as $limit) { $dateFormats = \Config::get('firefly.date_formats_by_period.' . $limit->repeat_freq); - if(is_null($dateFormats)) { - die('No date formats for ' . $limit->repeat_freq); + if (is_null($dateFormats)) { + throw new \Firefly\Exception\FireflyException('No date formats for ' . $limit->repeat_freq); } foreach ($limit->limitrepetitions as $rep) { @@ -37,9 +47,6 @@ class BudgetController extends BaseController foreach ($budgets as $budget) { foreach ($budget->limits as $limit) { $dateFormats = \Config::get('firefly.date_formats_by_period.' . $limit->repeat_freq); - if(is_null($dateFormats)) { - die('No date formats for ' . $limit->repeat_freq); - } foreach ($limit->limitrepetitions as $rep) { $month = $rep->startdate->format($dateFormats['group_date']); @@ -53,6 +60,9 @@ class BudgetController extends BaseController } + /** + * @return $this|\Illuminate\View\View + */ public function indexByBudget() { $budgets = $this->_budgets->get(); @@ -61,12 +71,18 @@ class BudgetController extends BaseController } + /** + * @return $this|\Illuminate\View\View + */ public function create() { $periods = \Config::get('firefly.periods_to_text'); return View::make('budgets.create')->with('periods', $periods); } + /** + * @return \Illuminate\Http\RedirectResponse + */ public function store() { @@ -84,6 +100,7 @@ class BudgetController extends BaseController /** * TODO actual view, actual content. + * * @param $budgetId * * @return string diff --git a/app/controllers/ChartController.php b/app/controllers/ChartController.php index 3b2f15322f..42d8a33f39 100644 --- a/app/controllers/ChartController.php +++ b/app/controllers/ChartController.php @@ -19,9 +19,13 @@ class ChartController extends BaseController protected $_preferences; protected $_budgets; + /** * @param ARI $accounts * @param TJRI $journals + * @param PHI $preferences + * @param tk $toolkit + * @param BRI $budgets */ public function __construct(ARI $accounts, TJRI $journals, PHI $preferences, tk $toolkit, BRI $budgets) { @@ -42,13 +46,9 @@ class ChartController extends BaseController list($start, $end) = $this->_tk->getDateRangeDates(); $current = clone $start; $return = []; - $account = null; - $today = new Carbon\Carbon; - if (!is_null($accountId)) { - /** @var \Account $account */ - $account = $this->_accounts->find($accountId); - } + $account = !is_null($accountId) ? $this->_accounts->find($accountId) : null; + $today = new Carbon\Carbon; if (is_null($account)) { @@ -65,8 +65,6 @@ class ChartController extends BaseController while ($current <= $end) { // loop accounts: foreach ($accounts as $index => $account) { - - if ($current > $today) { $return[$index]['data'][] = [$current->timestamp * 1000, $account->predict(clone $current)]; } else { @@ -97,6 +95,8 @@ class ChartController extends BaseController * @param $day * @param $month * @param $year + * + * @return $this|\Illuminate\View\View */ public function homeAccountInfo($name, $day, $month, $year) { @@ -122,15 +122,17 @@ class ChartController extends BaseController return View::make('charts.info')->with('rows', $result)->with('sum', $sum); } + /** + * @return \Illuminate\Http\JsonResponse + * @throws Firefly\Exception\FireflyException + */ public function homeCategories() { list($start, $end) = $this->_tk->getDateRangeDates(); - $account = null; $result = []; // grab all transaction journals in this period: $journals = $this->_journals->getByDateRange($start, $end); - $result = []; foreach ($journals as $journal) { // has to be one: @@ -163,16 +165,20 @@ class ChartController extends BaseController } + /** + * @return \Illuminate\Http\JsonResponse + * @throws Firefly\Exception\FireflyException + */ public function homeBudgets() { // grab all budgets in the time period, like the index does: // get the budgets for this period: $data = []; - list($start, $end) = $this->_tk->getDateRangeDates(); + list($start) = $this->_tk->getDateRangeDates(); $budgets = $this->_budgets->getWithRepetitionsInPeriod($start, \Session::get('range')); - $repeatFreq = Config::get('firefly.range_to_repeat_freq.'.Session::get('range')); + $repeatFreq = Config::get('firefly.range_to_repeat_freq.' . Session::get('range')); $dateFormats = Config::get('firefly.date_formats_by_period.' . $repeatFreq); if (is_null($dateFormats)) { @@ -210,8 +216,5 @@ class ChartController extends BaseController } return Response::json($data); - echo '
';
-        print_r($data);
-
     }
 }
\ No newline at end of file
diff --git a/app/controllers/HomeController.php b/app/controllers/HomeController.php
index 74e0c0a1b9..9ba298ce3c 100644
--- a/app/controllers/HomeController.php
+++ b/app/controllers/HomeController.php
@@ -17,9 +17,11 @@ class HomeController extends BaseController
     protected $_tk;
 
     /**
-     * @param ARI  $accounts
-     * @param PHI  $preferences
-     * @param TJRI $journal
+     * @param ARI     $accounts
+     * @param PHI     $preferences
+     * @param TJRI    $journal
+     * @param Toolkit $toolkit
+     * @param BRI     $budgets
      */
     public function __construct(ARI $accounts, PHI $preferences, TJRI $journal, Toolkit $toolkit, BRI $budgets)
     {
@@ -76,6 +78,9 @@ class HomeController extends BaseController
         );
     }
 
+    /**
+     * @return \Illuminate\Http\RedirectResponse
+     */
     public function flush()
     {
         Cache::flush();
diff --git a/app/controllers/LimitController.php b/app/controllers/LimitController.php
index 02aa07e789..0413f96c6a 100644
--- a/app/controllers/LimitController.php
+++ b/app/controllers/LimitController.php
@@ -3,12 +3,19 @@
 use Firefly\Storage\Budget\BudgetRepositoryInterface as BRI;
 use Firefly\Storage\Limit\LimitRepositoryInterface as LRI;
 
+/**
+ * Class LimitController
+ */
 class LimitController extends BaseController
 {
 
     protected $_budgets;
     protected $_limits;
 
+    /**
+     * @param BRI $budgets
+     * @param LRI $limits
+     */
     public function __construct(BRI $budgets, LRI $limits)
     {
         $this->_budgets = $budgets;
@@ -17,6 +24,11 @@ class LimitController extends BaseController
 
     }
 
+    /**
+     * @param null $budgetId
+     *
+     * @return $this|\Illuminate\View\View
+     */
     public function create($budgetId = null)
     {
         $periods = \Config::get('firefly.periods_to_text');
@@ -31,6 +43,11 @@ class LimitController extends BaseController
         )->with('prefilled', $prefilled);
     }
 
+    /**
+     * @param null $limitId
+     *
+     * @return $this|\Illuminate\View\View
+     */
     public function edit($limitId = null)
     {
         $limit = $this->_limits->find($limitId);
@@ -50,9 +67,15 @@ class LimitController extends BaseController
                 'periods', $periods
             );
         }
+        return View::make('error')->with('message', 'No such limit.');
 
     }
 
+    /**
+     * @param null $limitId
+     *
+     * @return $this|\Illuminate\Http\RedirectResponse|\Illuminate\View\View
+     */
     public function update($limitId = null)
     {
         /** @var \Limit $limit */
@@ -77,6 +100,9 @@ class LimitController extends BaseController
 
     }
 
+    /**
+     * @return \Illuminate\Http\RedirectResponse
+     */
     public function store()
     {
         // find a limit with these properties, as we might already have one:
@@ -88,6 +114,11 @@ class LimitController extends BaseController
         }
     }
 
+    /**
+     * @param $limitId
+     *
+     * @return $this|\Illuminate\View\View
+     */
     public function delete($limitId)
     {
         $limit = $this->_limits->find($limitId);
@@ -100,6 +131,11 @@ class LimitController extends BaseController
         }
     }
 
+    /**
+     * @param $limitId
+     *
+     * @return $this|\Illuminate\Http\RedirectResponse|\Illuminate\View\View
+     */
     public function destroy($limitId)
     {
         $limit = $this->_limits->find($limitId);
diff --git a/app/controllers/MigrationController.php b/app/controllers/MigrationController.php
index 2cf628ab98..40d5bb9332 100644
--- a/app/controllers/MigrationController.php
+++ b/app/controllers/MigrationController.php
@@ -1,6 +1,5 @@
 validFile()) {
                 $migration->migrate();
             } else {
-                echo 'Invalid file.';
-                exit();
+                throw new \Firefly\Exception\FireflyException('Invalid file.');
             }
         }
-        echo 'home';
-        exit();
-    }
-
-    public function limit()
-    {
-        $user = User::find(1);
-        $budgets = [];
-        // new budget
-        for ($i = 0; $i < 7; $i++) {
-            $budget = new Budget();
-            $budget->user()->associate($user);
-            $budget->name = 'Some budget #' . rand(1, 2000);
-            $budget->save();
-            $budgets[] = $budget;
-        }
-
-        // create a non-repeating limit for this week:
-        $today = new Carbon('01-07-2014');
-
-        $limit = new Limit;
-        $limit->budget()->associate($budgets[0]);
-        $limit->amount = 100;
-        $limit->startdate = $today;
-        $limit->amount = 100;
-        $limit->repeats = 0;
-        $limit->repeat_freq = 'weekly';
-
-        var_dump($limit->save());
-        var_dump($limit->errors()->all());
-
-
-        // create a repeating daily limit:
-        $day = new Limit;
-        $day->budget()->associate($budgets[1]);
-        $day->amount = 100;
-        $day->startdate = $today;
-        $day->amount = 100;
-        $day->repeats = 1;
-        $day->repeat_freq = 'daily';
-        $day->save();
-
-        // repeating weekly limit.
-        $week = new Limit;
-        $week->budget()->associate($budgets[2]);
-        $week->amount = 100;
-        $week->startdate = $today;
-        $week->amount = 100;
-        $week->repeats = 1;
-        $week->repeat_freq = 'weekly';
-        $week->save();
-
-        // repeating monthly limit
-        $month = new Limit;
-        $month->budget()->associate($budgets[3]);
-        $month->amount = 100;
-        $month->startdate = $today;
-        $month->amount = 100;
-        $month->repeats = 1;
-        $month->repeat_freq = 'monthly';
-        $month->save();
-
-        // quarter
-        $quarter = new Limit;
-        $quarter->budget()->associate($budgets[4]);
-        $quarter->amount = 100;
-        $quarter->startdate = $today;
-        $quarter->amount = 100;
-        $quarter->repeats = 1;
-        $quarter->repeat_freq = 'quarterly';
-        $quarter->save();
-
-        // six months
-        $six = new Limit;
-        $six->budget()->associate($budgets[5]);
-        $six->amount = 100;
-        $six->startdate = $today;
-        $six->amount = 100;
-        $six->repeats = 1;
-        $six->repeat_freq = 'half-year';
-        $six->save();
-
-        // year
-        $yearly = new Limit;
-        $yearly->budget()->associate($budgets[6]);
-        $yearly->amount = 100;
-        $yearly->startdate = $today;
-        $yearly->amount = 100;
-        $yearly->repeats = 1;
-        $yearly->repeat_freq = 'yearly';
-        $yearly->save();
-
-
-        // create a repeating weekly limit:
-        // create a repeating monthly limit:
-
-        foreach ($budgets as $budget) {
-
-            echo '#' . $budget->id . ': ' . $budget->name . ':
'; - foreach ($budget->limits()->get() as $limit) { - echo '  Limit #' . $limit->id . ', amount: ' . $limit->amount . ', start: ' - . $limit->startdate->format('D d-m-Y') . ', repeats: ' - . $limit->repeats . ', repeat_freq: ' . $limit->repeat_freq . '
'; - - foreach ($limit->limitrepetitions()->get() as $rep) { - echo '    rep: #' . $rep->id . ', from ' . $rep->startdate->format('D d-m-Y') - . ' to ' - . $rep->enddate->format('D d-m-Y') . '
'; - - } - } - } - - - return ''; + return 'home'; } /** diff --git a/app/controllers/TransactionController.php b/app/controllers/TransactionController.php index 5640c3c004..33ed5e1e32 100644 --- a/app/controllers/TransactionController.php +++ b/app/controllers/TransactionController.php @@ -34,6 +34,11 @@ class TransactionController extends BaseController View::share('menu', 'home'); } + /** + * @param $what + * + * @return $this|\Illuminate\View\View + */ public function create($what) { // get accounts with names and id's. @@ -44,12 +49,16 @@ class TransactionController extends BaseController $budgets[0] = '(no budget)'; - return View::make('transactions.create')->with('accounts', $accounts)->with('budgets', $budgets)->with( 'what', $what ); } + /** + * @param $what + * + * @return \Illuminate\Http\RedirectResponse + */ public function store($what) { // $fromAccount and $toAccount are found @@ -73,12 +82,8 @@ class TransactionController extends BaseController break; } // fall back to cash if necessary: - if (is_null($fromAccount)) { - $fromAccount = $this->_accounts->getCashAccount(); - } - if (is_null($toAccount)) { - $toAccount = $this->_accounts->getCashAccount(); - } + $fromAccount = is_null($fromAccount) ? $fromAccount = $this->_accounts->getCashAccount() : $fromAccount; + $toAccount = is_null($toAccount) ? $toAccount = $this->_accounts->getCashAccount() : $toAccount; // create or find category: $category = $this->_categories->createOrFind(Input::get('category')); @@ -109,24 +114,29 @@ class TransactionController extends BaseController Session::flash('success', 'Transaction saved'); - if(Input::get('create') == '1') { - return Redirect::route('transactions.create',$what)->withInput(); + if (Input::get('create') == '1') { + return Redirect::route('transactions.create', $what)->withInput(); } else { return Redirect::route('index'); } - - - } + /** + * @return $this|\Illuminate\View\View + */ public function index() { $transactions = $this->_journal->paginate(25); return View::make('transactions.index')->with('transactions', $transactions); } + /** + * @param $journalId + * + * @return $this|\Illuminate\View\View + */ public function show($journalId) { $journal = $this->_journal->find($journalId); @@ -136,6 +146,11 @@ class TransactionController extends BaseController return View::make('error')->with('message', 'Invalid journal'); } + /** + * @param $journalId + * + * @return $this|\Illuminate\View\View + */ public function edit($journalId) { $journal = $this->_journal->find($journalId); diff --git a/app/lib/Firefly/Database/SingleTableInheritanceEntity.php b/app/lib/Firefly/Database/SingleTableInheritanceEntity.php index 11b6f81eea..7a6df521b4 100644 --- a/app/lib/Firefly/Database/SingleTableInheritanceEntity.php +++ b/app/lib/Firefly/Database/SingleTableInheritanceEntity.php @@ -4,8 +4,14 @@ namespace Firefly\Database; +use LaravelBook\Ardent\Ardent; -abstract class SingleTableInheritanceEntity extends \LaravelBook\Ardent\Ardent +/** + * Class SingleTableInheritanceEntity + * + * @package Firefly\Database + */ +abstract class SingleTableInheritanceEntity extends Ardent { /** * The field that stores the subclass @@ -20,15 +26,26 @@ abstract class SingleTableInheritanceEntity extends \LaravelBook\Ardent\Ardent */ protected $isSubclass = false; - public function newFromBuilder($attributes = array()) + /** + * @param array $attributes + * + * @return \Illuminate\Database\Eloquent\Model|static + */ + public function newFromBuilder($attributes = []) { - $instance = $this->mapData((array)$attributes)->newInstance(array(), true); + $instance = $this->mapData((array)$attributes)->newInstance([], true); $instance->setRawAttributes((array)$attributes, true); return $instance; } - // if no subclass is defined, function as normal + /** + * if no subclass is defined, function as normal + * + * @param array $attributes + * + * @return \Illuminate\Database\Eloquent\Model|static + */ public function mapData(array $attributes) { if (!$this->subclassField) { @@ -38,9 +55,16 @@ abstract class SingleTableInheritanceEntity extends \LaravelBook\Ardent\Ardent return new $attributes[$this->subclassField]; } - // instead of using $this->newInstance(), call - // newInstance() on the object from mapData + /** + * + * instead of using $this->newInstance(), call + * newInstance() on the object from mapData + * + * @param bool $excludeDeleted + * + * @return \Illuminate\Database\Eloquent\Builder|static + */ public function newQuery($excludeDeleted = true) { // If using Laravel 4.0.x then use the following commented version of this command @@ -64,16 +88,29 @@ abstract class SingleTableInheritanceEntity extends \LaravelBook\Ardent\Ardent return $builder; } + /** + * @return bool + */ public function isSubclass() { return $this->isSubclass; } - // ensure that the subclass field is assigned on save + /** + * ensure that the subclass field is assigned on save + * + * @param array $rules + * @param array $customMessages + * @param array $options + * @param callable $beforeSave + * @param callable $afterSave + * + * @return bool + */ public function save( - array $rules = array(), - array $customMessages = array(), - array $options = array(), + array $rules = [], + array $customMessages = [], + array $options = [], \Closure $beforeSave = null, \Closure $afterSave = null ) { diff --git a/app/lib/Firefly/Exception/FireflyException.php b/app/lib/Firefly/Exception/FireflyException.php index 89f0ff939c..eb0f038fa3 100644 --- a/app/lib/Firefly/Exception/FireflyException.php +++ b/app/lib/Firefly/Exception/FireflyException.php @@ -3,6 +3,11 @@ namespace Firefly\Exception; +/** + * Class FireflyException + * + * @package Firefly\Exception + */ class FireflyException extends \Exception { diff --git a/app/lib/Firefly/Exception/MigrationException.php b/app/lib/Firefly/Exception/MigrationException.php index 2a31c70474..f6d85835a0 100644 --- a/app/lib/Firefly/Exception/MigrationException.php +++ b/app/lib/Firefly/Exception/MigrationException.php @@ -3,6 +3,11 @@ namespace Firefly\Helper; +/** + * Class MigrationException + * + * @package Firefly\Helper + */ class MigrationException extends \Exception { diff --git a/app/lib/Firefly/Helper/Email/EmailHelper.php b/app/lib/Firefly/Helper/Email/EmailHelper.php index b2e2c348c2..26a31892ad 100644 --- a/app/lib/Firefly/Helper/Email/EmailHelper.php +++ b/app/lib/Firefly/Helper/Email/EmailHelper.php @@ -1,8 +1,18 @@ path = $path; } + /** + * @return bool + */ public function validFile() { // file does not exist: @@ -39,6 +53,9 @@ class MigrationHelper implements MigrationHelperInterface return true; } + /** + * @return bool + */ public function migrate() { \Log::info('Start of migration.'); @@ -62,7 +79,7 @@ class MigrationHelper implements MigrationHelperInterface $this->_importLimits(); - } catch (\Firefly\Exception\FireflyException $e) { + } catch (FireflyException $e) { \DB::rollBack(); \Log::error('Rollback because of error!'); \Log::error($e->getMessage()); @@ -74,6 +91,9 @@ class MigrationHelper implements MigrationHelperInterface return true; } + /** + * + */ protected function _createCashAccount() { $cashAT = \AccountType::where('description', 'Cash account')->first(); @@ -84,6 +104,9 @@ class MigrationHelper implements MigrationHelperInterface $this->map['cash'] = $cash; } + /** + * + */ protected function _importAccounts() { @@ -97,7 +120,7 @@ class MigrationHelper implements MigrationHelperInterface } else { $account = $accounts->storeWithInitialBalance( ['name' => $entry->name], - new \Carbon\Carbon($entry->openingbalancedate), + new Carbon($entry->openingbalancedate), floatval($entry->openingbalance) ); } @@ -106,6 +129,9 @@ class MigrationHelper implements MigrationHelperInterface } } + /** + * + */ protected function _importComponents() { $beneficiaryAT = \AccountType::where('description', 'Beneficiary account')->first(); @@ -128,6 +154,12 @@ class MigrationHelper implements MigrationHelperInterface } } + /** + * @param $component + * @param \AccountType $beneficiaryAT + * + * @return mixed + */ protected function _importBeneficiary($component, \AccountType $beneficiaryAT) { /** @var \Firefly\Storage\Account\AccountRepositoryInterface $accounts */ @@ -140,6 +172,11 @@ class MigrationHelper implements MigrationHelperInterface ); } + /** + * @param $component + * + * @return mixed + */ protected function _importCategory($component) { /** @var \Firefly\Storage\Component\ComponentRepositoryInterface $components */ @@ -147,6 +184,11 @@ class MigrationHelper implements MigrationHelperInterface return $components->store(['name' => $component->name, 'class' => 'Category']); } + /** + * @param $component + * + * @return mixed + */ protected function _importBudget($component) { /** @var \Firefly\Storage\Component\ComponentRepositoryInterface $components */ @@ -154,39 +196,9 @@ class MigrationHelper implements MigrationHelperInterface return $components->store(['name' => $component->name, 'class' => 'Budget']); } - protected function _importLimits() - { - \Log::info('Importing limits'); - foreach ($this->JSON->limits as $entry) { - \Log::debug( - 'Now at #' . $entry->id . ': EUR ' . $entry->amount . ' for month ' . $entry->date - . ' and componentID: ' . $entry->component_id - ); - $budget = isset($this->map['budgets'][$entry->component_id]) ? $this->map['budgets'][$entry->component_id] - : null; - if (!is_null($budget)) { - \Log::debug('Found budget for this limit: #' . $budget->id . ', ' . $budget->name); - - $limit = new \Limit; - $limit->budget()->associate($budget); - $limit->startdate = new \Carbon\Carbon($entry->date); - $limit->amount = floatval($entry->amount); - $limit->repeats = 0; - $limit->repeat_freq = 'monthly'; - try { - $limit->save(); - } catch (\Exception $e) { - } - } else { - \Log::warning('No budget for this limit!'); - } - - - // create repeat thing should not be necessary. - - } - } - + /** + * + */ protected function _importTransactions() { @@ -215,7 +227,6 @@ class MigrationHelper implements MigrationHelperInterface } foreach ($this->JSON->transactions as $entry) { - $id = $entry->id; // to properly save the amount, do it times -1: $amount = $entry->amount * -1; @@ -227,7 +238,7 @@ class MigrationHelper implements MigrationHelperInterface /** @var \Account $toAccount */ $toAccount = isset($beneficiaries[$entry->id]) ? $beneficiaries[$entry->id] : $this->map['cash']; - $date = new \Carbon\Carbon($entry->date); + $date = new Carbon($entry->date); $journal = $journals->createSimpleJournal($fromAccount, $toAccount, $entry->description, $amount, $date); // save budgets and categories, on the journal @@ -243,13 +254,15 @@ class MigrationHelper implements MigrationHelperInterface } } + /** + * + */ protected function _importTransfers() { /** @var \Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface $journals */ $journals = \App::make('Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface'); foreach ($this->JSON->transfers as $entry) { - $id = $entry->id; // to properly save the amount, do it times 1 (?): $amount = $entry->amount * -1; @@ -262,9 +275,45 @@ class MigrationHelper implements MigrationHelperInterface $toAccount = isset($this->map['accounts'][$entry->accountto_id]) ? $this->map['accounts'][$entry->accountfrom_id] : false; - $date = new \Carbon\Carbon($entry->date); + $date = new Carbon($entry->date); $journals->createSimpleJournal($fromAccount, $toAccount, $entry->description, $amount, $date); } } + + /** + * + */ + protected function _importLimits() + { + \Log::info('Importing limits'); + foreach ($this->JSON->limits as $entry) { + \Log::debug( + 'Now at #' . $entry->id . ': EUR ' . $entry->amount . ' for month ' . $entry->date + . ' and componentID: ' . $entry->component_id + ); + $budget = isset($this->map['budgets'][$entry->component_id]) ? $this->map['budgets'][$entry->component_id] + : null; + if (!is_null($budget)) { + \Log::debug('Found budget for this limit: #' . $budget->id . ', ' . $budget->name); + + $limit = new \Limit; + $limit->budget()->associate($budget); + $limit->startdate = new Carbon($entry->date); + $limit->amount = floatval($entry->amount); + $limit->repeats = 0; + $limit->repeat_freq = 'monthly'; + try { + $limit->save(); + } catch (\Exception $e) { + } + } else { + \Log::warning('No budget for this limit!'); + } + + + // create repeat thing should not be necessary. + + } + } } \ No newline at end of file diff --git a/app/lib/Firefly/Helper/Migration/MigrationHelperInterface.php b/app/lib/Firefly/Helper/Migration/MigrationHelperInterface.php index bc586793f3..2c962bd815 100644 --- a/app/lib/Firefly/Helper/Migration/MigrationHelperInterface.php +++ b/app/lib/Firefly/Helper/Migration/MigrationHelperInterface.php @@ -2,13 +2,28 @@ namespace Firefly\Helper\Migration; - +/** + * Interface MigrationHelperInterface + * + * @package Firefly\Helper\Migration + */ interface MigrationHelperInterface { + /** + * @param $path + * + * @return mixed + */ public function loadFile($path); + /** + * @return mixed + */ public function validFile(); + /** + * @return mixed + */ public function migrate(); } \ No newline at end of file diff --git a/app/lib/Firefly/Helper/Preferences/PreferencesHelper.php b/app/lib/Firefly/Helper/Preferences/PreferencesHelper.php index 64aeb8e5cc..2dc2fa2f25 100644 --- a/app/lib/Firefly/Helper/Preferences/PreferencesHelper.php +++ b/app/lib/Firefly/Helper/Preferences/PreferencesHelper.php @@ -1,8 +1,19 @@ id)->where('name', $name)->first(); @@ -17,9 +28,16 @@ class PreferencesHelper implements PreferencesHelperInterface // create preference, return that: return $this->set($name, $default); } + return null; } + /** + * @param $name + * @param $value + * + * @return mixed|\Preference + */ public function set($name, $value) { $pref = \Preference::where('user_id', \Auth::user()->id)->where('name', $name)->first(); diff --git a/app/lib/Firefly/Helper/Preferences/PreferencesHelperInterface.php b/app/lib/Firefly/Helper/Preferences/PreferencesHelperInterface.php index 1e80350432..cb6d279825 100644 --- a/app/lib/Firefly/Helper/Preferences/PreferencesHelperInterface.php +++ b/app/lib/Firefly/Helper/Preferences/PreferencesHelperInterface.php @@ -1,10 +1,29 @@ accounts()->with('accounttype')->orderBy('name', 'ASC')->get(); } + /** + * @return mixed + */ public function getBeneficiaries() { $list = \Auth::user()->accounts()->leftJoin( @@ -27,11 +45,21 @@ class EloquentAccountRepository implements AccountRepositoryInterface return $list; } - public function find($id) + /** + * @param $accountId + * + * @return mixed + */ + public function find($accountId) { - return \Auth::user()->accounts()->where('id', $id)->first(); + return \Auth::user()->accounts()->where('id', $accountId)->first(); } + /** + * @param $ids + * + * @return array|mixed + */ public function getByIds($ids) { if (count($ids) > 0) { @@ -41,6 +69,9 @@ class EloquentAccountRepository implements AccountRepositoryInterface } } + /** + * @return mixed + */ public function getDefault() { return \Auth::user()->accounts()->leftJoin('account_types', 'account_types.id', '=', 'accounts.account_type_id') @@ -49,6 +80,9 @@ class EloquentAccountRepository implements AccountRepositoryInterface ->orderBy('accounts.name', 'ASC')->get(['accounts.*']); } + /** + * @return mixed + */ public function getActiveDefault() { return \Auth::user()->accounts()->leftJoin('account_types', 'account_types.id', '=', 'accounts.account_type_id') @@ -57,6 +91,9 @@ class EloquentAccountRepository implements AccountRepositoryInterface ->get(['accounts.*']); } + /** + * @return array|mixed + */ public function getActiveDefaultAsSelectList() { $list = \Auth::user()->accounts()->leftJoin( @@ -72,13 +109,24 @@ class EloquentAccountRepository implements AccountRepositoryInterface return $return; } + /** + * @return mixed + */ public function count() { return \Auth::user()->accounts()->count(); } - public function storeWithInitialBalance($data, \Carbon\Carbon $date, $amount = 0) + /** + * @param $data + * @param Carbon $date + * @param int $amount + * + * @return \Account|mixed + * @throws \Firefly\Exception\FireflyException + */ + public function storeWithInitialBalance($data, Carbon $date, $amount = 0) { $account = $this->store($data); @@ -91,7 +139,7 @@ class EloquentAccountRepository implements AccountRepositoryInterface $initial->active = 0; try { $initial->save(); - } catch (\Illuminate\Database\QueryException $e) { + } catch (QueryException $e) { \Log::error('DB ERROR: ' . $e->getMessage()); throw new FireflyException('Could not save counterbalance account for ' . $data['name']); } @@ -110,6 +158,12 @@ class EloquentAccountRepository implements AccountRepositoryInterface } + /** + * @param $data + * + * @return \Account|mixed + * @throws \Firefly\Exception\FireflyException + */ public function store($data) { $defaultAT = \AccountType::where('description', 'Default account')->first(); @@ -123,14 +177,19 @@ class EloquentAccountRepository implements AccountRepositoryInterface $account->active = isset($data['active']) ? $data['active'] : 1; try { $account->save(); - } catch (\Illuminate\Database\QueryException $e) { + } catch (QueryException $e) { \Log::error('DB ERROR: ' . $e->getMessage()); - throw new \Firefly\Exception\FireflyException('Could not save account ' . $data['name']); + throw new FireflyException('Could not save account ' . $data['name']); } return $account; } + /** + * @param $name + * + * @return \Account|mixed|null + */ public function createOrFindBeneficiary($name) { if (is_null($name) || strlen($name) == 0) { @@ -140,6 +199,12 @@ class EloquentAccountRepository implements AccountRepositoryInterface return $this->createOrFind($name, $type); } + /** + * @param $name + * @param \AccountType $type + * + * @return \Account|mixed + */ public function createOrFind($name, \AccountType $type) { $beneficiary = $this->findByName($name); @@ -153,11 +218,19 @@ class EloquentAccountRepository implements AccountRepositoryInterface return $beneficiary; } + /** + * @param $name + * + * @return mixed + */ public function findByName($name) { return \Auth::user()->accounts()->where('name', 'like', '%' . $name . '%')->first(); } + /** + * @return mixed + */ public function getCashAccount() { $type = \AccountType::where('description', 'Cash account')->first(); diff --git a/app/lib/Firefly/Storage/Budget/BudgetRepositoryInterface.php b/app/lib/Firefly/Storage/Budget/BudgetRepositoryInterface.php index 3af17ffe4f..0a81e83551 100644 --- a/app/lib/Firefly/Storage/Budget/BudgetRepositoryInterface.php +++ b/app/lib/Firefly/Storage/Budget/BudgetRepositoryInterface.php @@ -2,16 +2,45 @@ namespace Firefly\Storage\Budget; +use Carbon\Carbon; +/** + * Interface BudgetRepositoryInterface + * + * @package Firefly\Storage\Budget + */ interface BudgetRepositoryInterface { + /** + * @return mixed + */ public function getAsSelectList(); + + /** + * @return mixed + */ public function get(); + /** + * @param $data + * + * @return mixed + */ public function store($data); - public function find($id); + /** + * @param $budgetId + * + * @return mixed + */ + public function find($budgetId); - public function getWithRepetitionsInPeriod(\Carbon\Carbon $date, $range); + /** + * @param Carbon $date + * @param $range + * + * @return mixed + */ + public function getWithRepetitionsInPeriod(Carbon $date, $range); } \ No newline at end of file diff --git a/app/lib/Firefly/Storage/Budget/EloquentBudgetRepository.php b/app/lib/Firefly/Storage/Budget/EloquentBudgetRepository.php index 944f9e265a..c3945e10cb 100644 --- a/app/lib/Firefly/Storage/Budget/EloquentBudgetRepository.php +++ b/app/lib/Firefly/Storage/Budget/EloquentBudgetRepository.php @@ -2,10 +2,19 @@ namespace Firefly\Storage\Budget; +use Carbon\Carbon; +/** + * Class EloquentBudgetRepository + * + * @package Firefly\Storage\Budget + */ class EloquentBudgetRepository implements BudgetRepositoryInterface { + /** + * @return array|mixed + */ public function getAsSelectList() { $list = \Auth::user()->budgets()->with( @@ -18,20 +27,18 @@ class EloquentBudgetRepository implements BudgetRepositoryInterface return $return; } - public function getWithRepetitionsInPeriod(\Carbon\Carbon $date, $range) + /** + * @param Carbon $date + * @param $range + * + * @return mixed + */ + public function getWithRepetitionsInPeriod(Carbon $date, $range) { - /** @var \Firefly\Helper\Toolkit\ToolkitInterface $toolkit */ - $toolkit = \App::make('Firefly\Helper\Toolkit\ToolkitInterface'); - $dates = $toolkit->getDateRangeDates(); - $start = $dates[0]; - $result = []; - - $set = \Auth::user()->budgets()->with( ['limits' => function ($q) use ($date) { $q->orderBy('limits.startdate', 'ASC'); -// $q->where('startdate',$date->format('Y-m-d')); }, 'limits.limitrepetitions' => function ($q) use ($date) { $q->orderBy('limit_repetitions.startdate', 'ASC'); $q->where('startdate', $date->format('Y-m-d')); @@ -65,6 +72,11 @@ class EloquentBudgetRepository implements BudgetRepositoryInterface return $set; } + /** + * @param $data + * + * @return \Budget|mixed + */ public function store($data) { $budget = new \Budget; @@ -76,7 +88,7 @@ class EloquentBudgetRepository implements BudgetRepositoryInterface if ($data['amount'] > 0) { $limit = new \Limit; $limit->budget()->associate($budget); - $startDate = new \Carbon\Carbon; + $startDate = new Carbon; switch ($data['repeat_freq']) { case 'daily': $startDate->startOfDay(); @@ -111,6 +123,10 @@ class EloquentBudgetRepository implements BudgetRepositoryInterface return $budget; } + + /** + * @return mixed + */ public function get() { return \Auth::user()->budgets()->with( @@ -122,10 +138,15 @@ class EloquentBudgetRepository implements BudgetRepositoryInterface )->orderBy('name', 'ASC')->get(); } - public function find($id) + /** + * @param $budgetId + * + * @return mixed + */ + public function find($budgetId) { - return \Auth::user()->budgets()->find($id); + return \Auth::user()->budgets()->find($budgetId); } } \ No newline at end of file diff --git a/app/lib/Firefly/Storage/Category/CategoryRepositoryInterface.php b/app/lib/Firefly/Storage/Category/CategoryRepositoryInterface.php index b64a7531de..efffd51d64 100644 --- a/app/lib/Firefly/Storage/Category/CategoryRepositoryInterface.php +++ b/app/lib/Firefly/Storage/Category/CategoryRepositoryInterface.php @@ -2,16 +2,38 @@ namespace Firefly\Storage\Category; - +/** + * Interface CategoryRepositoryInterface + * + * @package Firefly\Storage\Category + */ interface CategoryRepositoryInterface { + /** + * @return mixed + */ public function get(); + /** + * @param $name + * + * @return mixed + */ public function createOrFind($name); + /** + * @param $name + * + * @return mixed + */ public function findByName($name); + /** + * @param $name + * + * @return mixed + */ public function store($name); } \ No newline at end of file diff --git a/app/lib/Firefly/Storage/Category/EloquentCategoryRepository.php b/app/lib/Firefly/Storage/Category/EloquentCategoryRepository.php index 6d1950a46a..a21a9dbd7d 100644 --- a/app/lib/Firefly/Storage/Category/EloquentCategoryRepository.php +++ b/app/lib/Firefly/Storage/Category/EloquentCategoryRepository.php @@ -2,14 +2,26 @@ namespace Firefly\Storage\Category; - +/** + * Class EloquentCategoryRepository + * + * @package Firefly\Storage\Category + */ class EloquentCategoryRepository implements CategoryRepositoryInterface { + /** + * @return mixed + */ public function get() { return \Auth::user()->categories()->get(); } + /** + * @param $name + * + * @return \Category|mixed + */ public function createOrFind($name) { $category = $this->findByName($name); @@ -21,12 +33,22 @@ class EloquentCategoryRepository implements CategoryRepositoryInterface } + /** + * @param $name + * + * @return mixed + */ public function findByName($name) { return \Auth::user()->categories()->where('name', 'LIKE', '%' . $name . '%')->first(); } + /** + * @param $name + * + * @return \Category|mixed + */ public function store($name) { $category = new \Category(); diff --git a/app/lib/Firefly/Storage/Component/ComponentRepositoryInterface.php b/app/lib/Firefly/Storage/Component/ComponentRepositoryInterface.php index 7a1a801527..bfe2eabb0b 100644 --- a/app/lib/Firefly/Storage/Component/ComponentRepositoryInterface.php +++ b/app/lib/Firefly/Storage/Component/ComponentRepositoryInterface.php @@ -3,14 +3,29 @@ namespace Firefly\Storage\Component; - +/** + * Interface ComponentRepositoryInterface + * + * @package Firefly\Storage\Component + */ interface ComponentRepositoryInterface { + /** + * @return mixed + */ public function count(); + /** + * @return mixed + */ public function get(); + /** + * @param $data + * + * @return mixed + */ public function store($data); } \ No newline at end of file diff --git a/app/lib/Firefly/Storage/Component/EloquentComponentRepository.php b/app/lib/Firefly/Storage/Component/EloquentComponentRepository.php index 631e234260..5a09cef1e8 100644 --- a/app/lib/Firefly/Storage/Component/EloquentComponentRepository.php +++ b/app/lib/Firefly/Storage/Component/EloquentComponentRepository.php @@ -3,32 +3,56 @@ namespace Firefly\Storage\Component; +use Firefly\Exception\FireflyException; +use Illuminate\Database\QueryException; + +/** + * Class EloquentComponentRepository + * + * @package Firefly\Storage\Component + */ class EloquentComponentRepository implements ComponentRepositoryInterface { public $validator; + /** + * + */ public function __construct() { } + /** + * @return mixed + */ public function count() { return \Auth::user()->components()->count(); } + /** + * @return mixed|void + * @throws \Firefly\Exception\FireflyException + */ public function get() { - die('no impl'); + throw new FireflyException('No implementation.'); } - + /** + * @param $data + * + * @return \Budget|\Category|mixed + * @throws \Firefly\Exception\FireflyException + */ public function store($data) { if (!isset($data['class'])) { - throw new \Firefly\Exception\FireflyException('No class type present.'); + throw new FireflyException('No class type present.'); } switch ($data['class']) { + default: case 'Budget': $component = new \Budget; break; @@ -41,9 +65,9 @@ class EloquentComponentRepository implements ComponentRepositoryInterface $component->user()->associate(\Auth::user()); try { $component->save(); - } catch (\Illuminate\Database\QueryException $e) { + } catch (QueryException $e) { \Log::error('DB ERROR: ' . $e->getMessage()); - throw new \Firefly\Exception\FireflyException('Could not save component ' . $data['name'] . ' of type' + throw new FireflyException('Could not save component ' . $data['name'] . ' of type' . $data['class']); } diff --git a/app/lib/Firefly/Storage/Limit/EloquentLimitRepository.php b/app/lib/Firefly/Storage/Limit/EloquentLimitRepository.php index 87619a595c..b241aef92d 100644 --- a/app/lib/Firefly/Storage/Limit/EloquentLimitRepository.php +++ b/app/lib/Firefly/Storage/Limit/EloquentLimitRepository.php @@ -1,17 +1,24 @@ where('limits.id', $limitId)->leftJoin( @@ -20,6 +27,11 @@ class EloquentLimitRepository implements LimitRepositoryInterface ->where('components.user_id', \Auth::user()->id)->first(['limits.*']); } + /** + * @param $data + * + * @return \Limit + */ public function store($data) { $budget = \Budget::find($data['budget_id']); @@ -28,7 +40,7 @@ class EloquentLimitRepository implements LimitRepositoryInterface return new \Limit; } // set the date to the correct start period: - $date = new \Carbon\Carbon($data['startdate']); + $date = new Carbon($data['startdate']); switch ($data['period']) { case 'daily': $date->startOfDay(); @@ -79,10 +91,15 @@ class EloquentLimitRepository implements LimitRepositoryInterface return $limit; } - public function getTJByBudgetAndDateRange(\Budget $budget, \Carbon\Carbon $start, \Carbon\Carbon $end) + /** + * @param \Budget $budget + * @param Carbon $start + * @param Carbon $end + * + * @return mixed + */ + public function getTJByBudgetAndDateRange(\Budget $budget, Carbon $start, Carbon $end) { - $type = \TransactionType::where('type', 'Withdrawal')->first(); - $result = $budget->transactionjournals()->after($start)->before($end)->get(); return $result; diff --git a/app/lib/Firefly/Storage/Limit/LimitRepositoryInterface.php b/app/lib/Firefly/Storage/Limit/LimitRepositoryInterface.php index dda40f2d39..511a276a2b 100644 --- a/app/lib/Firefly/Storage/Limit/LimitRepositoryInterface.php +++ b/app/lib/Firefly/Storage/Limit/LimitRepositoryInterface.php @@ -2,13 +2,36 @@ namespace Firefly\Storage\Limit; +use Carbon\Carbon; +/** + * Interface LimitRepositoryInterface + * + * @package Firefly\Storage\Limit + */ interface LimitRepositoryInterface { + /** + * @param $data + * + * @return mixed + */ public function store($data); - public function getTJByBudgetAndDateRange(\Budget $budget, \Carbon\Carbon $start, \Carbon\Carbon $end); + /** + * @param \Budget $budget + * @param Carbon $start + * @param Carbon $end + * + * @return mixed + */ + public function getTJByBudgetAndDateRange(\Budget $budget, Carbon $start, Carbon $end); + /** + * @param $limitId + * + * @return mixed + */ public function find($limitId); } \ No newline at end of file diff --git a/app/lib/Firefly/Storage/StorageServiceProvider.php b/app/lib/Firefly/Storage/StorageServiceProvider.php index 630a6c33d4..9d032a4e52 100644 --- a/app/lib/Firefly/Storage/StorageServiceProvider.php +++ b/app/lib/Firefly/Storage/StorageServiceProvider.php @@ -3,11 +3,18 @@ namespace Firefly\Storage; use Illuminate\Support\ServiceProvider; +/** + * Class StorageServiceProvider + * + * @package Firefly\Storage + */ class StorageServiceProvider extends ServiceProvider { - // Triggered automatically by Laravel + /** + * Triggered automatically by Laravel + */ public function register() { $this->app->bind( diff --git a/app/lib/Firefly/Storage/Transaction/EloquentTransactionRepository.php b/app/lib/Firefly/Storage/Transaction/EloquentTransactionRepository.php index 32b485a04f..3b4fac8e2e 100644 --- a/app/lib/Firefly/Storage/Transaction/EloquentTransactionRepository.php +++ b/app/lib/Firefly/Storage/Transaction/EloquentTransactionRepository.php @@ -2,7 +2,11 @@ namespace Firefly\Storage\Transaction; - +/** + * Class EloquentTransactionRepository + * + * @package Firefly\Storage\Transaction + */ class EloquentTransactionRepository implements TransactionRepositoryInterface { diff --git a/app/lib/Firefly/Storage/Transaction/TransactionRepositoryInterface.php b/app/lib/Firefly/Storage/Transaction/TransactionRepositoryInterface.php index a597deaf9d..8c1b41bc1d 100644 --- a/app/lib/Firefly/Storage/Transaction/TransactionRepositoryInterface.php +++ b/app/lib/Firefly/Storage/Transaction/TransactionRepositoryInterface.php @@ -2,7 +2,11 @@ namespace Firefly\Storage\Transaction; - +/** + * Interface TransactionRepositoryInterface + * + * @package Firefly\Storage\Transaction + */ interface TransactionRepositoryInterface { diff --git a/app/lib/Firefly/Storage/TransactionJournal/EloquentTransactionJournalRepository.php b/app/lib/Firefly/Storage/TransactionJournal/EloquentTransactionJournalRepository.php index 2ebe1d4084..89447e5a28 100644 --- a/app/lib/Firefly/Storage/TransactionJournal/EloquentTransactionJournalRepository.php +++ b/app/lib/Firefly/Storage/TransactionJournal/EloquentTransactionJournalRepository.php @@ -3,10 +3,22 @@ namespace Firefly\Storage\TransactionJournal; +use Carbon\Carbon; +use Firefly\Exception\FireflyException; +/** + * Class EloquentTransactionJournalRepository + * + * @package Firefly\Storage\TransactionJournal + */ class EloquentTransactionJournalRepository implements TransactionJournalRepositoryInterface { + /** + * @param $journalId + * + * @return mixed + */ public function find($journalId) { return \Auth::user()->transactionjournals()->with( @@ -41,7 +53,7 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito * B loses 200 (-200). * 1 * * @param \Account $from - * @param \Account $to + * @param \Account $toAccount * @param $description * @param $amount * @param \Carbon\Carbon $date @@ -49,7 +61,7 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito * @return \TransactionJournal * @throws \Firefly\Exception\FireflyException */ - public function createSimpleJournal(\Account $from, \Account $to, $description, $amount, \Carbon\Carbon $date) + public function createSimpleJournal(\Account $from, \Account $toAccount, $description, $amount, Carbon $date) { \Log::debug('Creating tranaction "' . $description . '".'); @@ -59,23 +71,23 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito if (round(floatval($amount), 2) == 0.00) { \Log::error('Transaction will never save: amount = 0'); \Session::flash('error', 'The amount should not be empty or zero.'); - throw new \Firefly\Exception\FireflyException('Could not figure out transaction type.'); + throw new FireflyException('Could not figure out transaction type.'); } // same account: - if ($from->id == $to->id) { + if ($from->id == $toAccount->id) { \Log::error('Accounts cannot be equal'); \Session::flash('error', 'Select two different accounts.'); - throw new \Firefly\Exception\FireflyException('Select two different accounts.'); + throw new FireflyException('Select two different accounts.'); } // account types for both: - $toAT = $to->accountType->description; + $toAT = $toAccount->accountType->description; $fromAT = $from->accountType->description; $journalType = null; switch (true) { - case ($from->transactions()->count() == 0 && $to->transactions()->count() == 0): + case ($from->transactions()->count() == 0 && $toAccount->transactions()->count() == 0): $journalType = \TransactionType::where('type', 'Opening balance')->first(); break; @@ -99,19 +111,19 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito // some debug information: \Log::debug( $journalType->type . ': AccountFrom "' . $from->name . '" will gain/lose ' . $amountFrom - . ' and AccountTo "' . $to->name . '" will gain/lose ' . $amountTo + . ' and AccountTo "' . $toAccount->name . '" will gain/lose ' . $amountTo ); if (is_null($journalType)) { \Log::error('Could not figure out transacion type!'); - throw new \Firefly\Exception\FireflyException('Could not figure out transaction type.'); + throw new FireflyException('Could not figure out transaction type.'); } // always the same currency: $currency = \TransactionCurrency::where('code', 'EUR')->first(); if (is_null($currency)) { \Log::error('No currency for journal!'); - throw new \Firefly\Exception\FireflyException('No currency for journal!'); + throw new FireflyException('No currency for journal!'); } // new journal: @@ -126,7 +138,7 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito \Log::error('Cannot create valid journal.'); \Log::error('Errors: ' . print_r($journal->errors()->all(), true)); \Session::flash('error', 'Could not create journal: ' . $journal->errors()->first()); - throw new \Firefly\Exception\FireflyException('Cannot create valid journal.'); + throw new FireflyException('Cannot create valid journal.'); } $journal->save(); @@ -139,19 +151,19 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito if (!$fromTransaction->save()) { \Log::error('Cannot create valid transaction (from) for journal #' . $journal->id); \Log::error('Errors: ' . print_r($fromTransaction->errors()->all(), true)); - throw new \Firefly\Exception\FireflyException('Cannot create valid transaction (from).'); + throw new FireflyException('Cannot create valid transaction (from).'); } $fromTransaction->save(); $toTransaction = new \Transaction; - $toTransaction->account()->associate($to); + $toTransaction->account()->associate($toAccount); $toTransaction->transactionJournal()->associate($journal); $toTransaction->description = null; $toTransaction->amount = $amountTo; if (!$toTransaction->save()) { \Log::error('Cannot create valid transaction (to) for journal #' . $journal->id); \Log::error('Errors: ' . print_r($toTransaction->errors()->all(), true)); - throw new \Firefly\Exception\FireflyException('Cannot create valid transaction (to).'); + throw new FireflyException('Cannot create valid transaction (to).'); } $toTransaction->save(); @@ -160,12 +172,23 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito return $journal; } + /** + * + */ public function get() { } - public function getByAccountInDateRange(\Account $account, $count = 25, \Carbon\Carbon $start, \Carbon\Carbon $end) + /** + * @param \Account $account + * @param int $count + * @param Carbon $start + * @param Carbon $end + * + * @return mixed + */ + public function getByAccountInDateRange(\Account $account, $count = 25, Carbon $start, Carbon $end) { $accountID = $account->id; $query = \Auth::user()->transactionjournals()->with( @@ -187,6 +210,11 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito return $query; } + /** + * @param int $count + * + * @return mixed + */ public function paginate($count = 25) { $query = \Auth::user()->transactionjournals()->with( @@ -207,7 +235,13 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito return $query; } - public function getByDateRange(\Carbon\Carbon $start, \Carbon\Carbon $end) + /** + * @param Carbon $start + * @param Carbon $end + * + * @return mixed + */ + public function getByDateRange(Carbon $start, Carbon $end) { // lets make this simple. $types = []; @@ -231,7 +265,13 @@ class EloquentTransactionJournalRepository implements TransactionJournalReposito return $journals; } - public function getByAccountAndDate(\Account $account, \Carbon\Carbon $date) + /** + * @param \Account $account + * @param Carbon $date + * + * @return mixed + */ + public function getByAccountAndDate(\Account $account, Carbon $date) { $accountID = $account->id; $query = \Auth::user()->transactionjournals()->with( diff --git a/app/lib/Firefly/Storage/TransactionJournal/TransactionJournalRepositoryInterface.php b/app/lib/Firefly/Storage/TransactionJournal/TransactionJournalRepositoryInterface.php index 3ecef61f5a..6bf727d259 100644 --- a/app/lib/Firefly/Storage/TransactionJournal/TransactionJournalRepositoryInterface.php +++ b/app/lib/Firefly/Storage/TransactionJournal/TransactionJournalRepositoryInterface.php @@ -2,21 +2,69 @@ namespace Firefly\Storage\TransactionJournal; +use Carbon\Carbon; +/** + * Interface TransactionJournalRepositoryInterface + * + * @package Firefly\Storage\TransactionJournal + */ interface TransactionJournalRepositoryInterface { - public function createSimpleJournal(\Account $from, \Account $to, $description, $amount, \Carbon\Carbon $date); + /** + * @param \Account $from + * @param \Account $toAccount + * @param $description + * @param $amount + * @param Carbon $date + * + * @return mixed + */ + public function createSimpleJournal(\Account $from, \Account $toAccount, $description, $amount, Carbon $date); + /** + * @return mixed + */ public function get(); + /** + * @param $journalId + * + * @return mixed + */ public function find($journalId); - public function getByAccountInDateRange(\Account $account, $count = 25, \Carbon\Carbon $start, \Carbon\Carbon $end); + /** + * @param \Account $account + * @param int $count + * @param Carbon $start + * @param Carbon $end + * + * @return mixed + */ + public function getByAccountInDateRange(\Account $account, $count = 25, Carbon $start, Carbon $end); - public function getByAccountAndDate(\Account $account, \Carbon\Carbon $date); + /** + * @param \Account $account + * @param Carbon $date + * + * @return mixed + */ + public function getByAccountAndDate(\Account $account, Carbon $date); - public function getByDateRange(\Carbon\Carbon $start, \Carbon\Carbon $end); + /** + * @param Carbon $start + * @param Carbon $end + * + * @return mixed + */ + public function getByDateRange(Carbon $start, Carbon $end); + /** + * @param int $count + * + * @return mixed + */ public function paginate($count = 25); } \ No newline at end of file diff --git a/app/lib/Firefly/Storage/User/EloquentUserRepository.php b/app/lib/Firefly/Storage/User/EloquentUserRepository.php index 2a502cd2e3..a63f4046e3 100644 --- a/app/lib/Firefly/Storage/User/EloquentUserRepository.php +++ b/app/lib/Firefly/Storage/User/EloquentUserRepository.php @@ -3,12 +3,25 @@ namespace Firefly\Storage\User; +/** + * Class EloquentUserRepository + * + * @package Firefly\Storage\User + */ class EloquentUserRepository implements UserRepositoryInterface { + /** + * + */ public function __construct() { } + /** + * @param $array + * + * @return bool|\User + */ public function register($array) { $user = new \User; @@ -26,6 +39,11 @@ class EloquentUserRepository implements UserRepositoryInterface return $user; } + /** + * @param $array + * + * @return bool + */ public function auth($array) { $user = \User::where('email', $array['email'])->first(); @@ -36,16 +54,32 @@ class EloquentUserRepository implements UserRepositoryInterface return false; } + /** + * @param $reset + * + * @return mixed + */ public function findByReset($reset) { return \User::where('reset', $reset)->first(); } + /** + * @param $email + * + * @return mixed + */ public function findByEmail($email) { return \User::where('email', $email)->first(); } + /** + * @param \User $user + * @param $password + * + * @return bool + */ public function updatePassword(\User $user, $password) { $password = \Hash::make($password); diff --git a/app/lib/Firefly/Storage/User/UserRepositoryInterface.php b/app/lib/Firefly/Storage/User/UserRepositoryInterface.php index b092658bcf..d1192466e3 100644 --- a/app/lib/Firefly/Storage/User/UserRepositoryInterface.php +++ b/app/lib/Firefly/Storage/User/UserRepositoryInterface.php @@ -3,17 +3,47 @@ namespace Firefly\Storage\User; - +/** + * Interface UserRepositoryInterface + * + * @package Firefly\Storage\User + */ interface UserRepositoryInterface { + /** + * @param $array + * + * @return mixed + */ public function register($array); + /** + * @param $array + * + * @return mixed + */ public function auth($array); + /** + * @param $reset + * + * @return mixed + */ public function findByReset($reset); + /** + * @param $email + * + * @return mixed + */ public function findByEmail($email); + /** + * @param \User $user + * @param $password + * + * @return mixed + */ public function updatePassword(\User $user, $password); diff --git a/app/lib/Firefly/Trigger/Limits/EloquentLimitTrigger.php b/app/lib/Firefly/Trigger/Limits/EloquentLimitTrigger.php index 5ebc75ca89..7e813fc5a8 100644 --- a/app/lib/Firefly/Trigger/Limits/EloquentLimitTrigger.php +++ b/app/lib/Firefly/Trigger/Limits/EloquentLimitTrigger.php @@ -2,6 +2,10 @@ namespace Firefly\Trigger\Limits; +use Carbon\Carbon; +use Illuminate\Database\QueryException; +use Illuminate\Events\Dispatcher; + /** * Class EloquentLimitTrigger * @@ -64,14 +68,14 @@ class EloquentLimitTrigger try { $repetition->save(); - } catch (\Illuminate\Database\QueryException $e) { + } catch (QueryException $e) { // do nothing \Log::error($e->getMessage()); } } else { // there are limits already, do they // fall into the range surrounding today? - $today = new \Carbon\Carbon; + $today = new Carbon; $today->addMonths(2); if ($limit->repeats == 1 && $today >= $limit->startdate) { @@ -141,7 +145,7 @@ class EloquentLimitTrigger $repetition->limit()->associate($limit); try { $repetition->save(); - } catch (\Illuminate\Database\QueryException $e) { + } catch (QueryException $e) { // do nothing \Log::error($e->getMessage()); } @@ -153,7 +157,10 @@ class EloquentLimitTrigger } } - public function subscribe(\Illuminate\Events\Dispatcher $events) + /** + * @param Dispatcher $events + */ + public function subscribe(Dispatcher $events) { $events->listen('app.before', 'Firefly\Trigger\Limits\EloquentLimitTrigger@updateLimitRepetitions'); diff --git a/app/tests/controllers/AccountControllerTest.php b/app/tests/controllers/AccountControllerTest.php index d45fe58ca9..7f1bfd6a3b 100644 --- a/app/tests/controllers/AccountControllerTest.php +++ b/app/tests/controllers/AccountControllerTest.php @@ -15,17 +15,16 @@ class AccountControllerTest extends TestCase { // mock account type(s): $personal = $this->mock('AccountType'); - $personal->shouldReceive('getAttribute','description')->andReturn('Default account'); + $personal->shouldReceive('getAttribute', 'description')->andReturn('Default account'); $bene = $this->mock('AccountType'); - $bene->shouldReceive('getAttribute','description')->andReturn('Beneficiary account'); + $bene->shouldReceive('getAttribute', 'description')->andReturn('Beneficiary account'); $initial = $this->mock('AccountType'); - $initial->shouldReceive('getAttribute','description')->andReturn('Initial balance account'); + $initial->shouldReceive('getAttribute', 'description')->andReturn('Initial balance account'); $cash = $this->mock('AccountType'); - $cash->shouldReceive('getAttribute','description')->andReturn('Cash account'); - + $cash->shouldReceive('getAttribute', 'description')->andReturn('Cash account'); // mock account(s) @@ -40,16 +39,13 @@ class AccountControllerTest extends TestCase $four = $this->mock('Account'); $four->shouldReceive('getAttribute')->andReturn($cash); - $c = new \Illuminate\Database\Eloquent\Collection([$one,$two,$three,$four]); + $c = new \Illuminate\Database\Eloquent\Collection([$one, $two, $three, $four]); // mock account repository: $accounts = $this->mock('Firefly\Storage\Account\AccountRepositoryInterface'); $accounts->shouldReceive('get')->andReturn($c); - - - $list = [ 'personal' => [$one], 'beneficiaries' => [$two], @@ -60,11 +56,10 @@ class AccountControllerTest extends TestCase // mock: View::shouldReceive('share'); View::shouldReceive('make')->with('accounts.index')->once()->andReturn(\Mockery::self()) - ->shouldReceive('with')->once()->with('accounts',$list)->andReturn(\Mockery::self()) + ->shouldReceive('with')->once()->with('accounts', $list)->andReturn(\Mockery::self()) ->shouldReceive('with')->once()->with('total', 4)->andReturn(\Mockery::self()); - // call $this->call('GET', '/accounts'); diff --git a/app/tests/controllers/BudgetControllerTest.php b/app/tests/controllers/BudgetControllerTest.php index b48e620f1c..15816a8d75 100644 --- a/app/tests/controllers/BudgetControllerTest.php +++ b/app/tests/controllers/BudgetControllerTest.php @@ -1,7 +1,8 @@ limits()->save($limit); - // mock budget repository: $budgets = $this->mock('Firefly\Storage\Budget\BudgetRepositoryInterface'); $budgets->shouldReceive('get')->once()->andReturn([$budget]); @@ -46,7 +46,6 @@ class BudgetControllerTest extends TestCase $budget->limits()->save($limit); - // mock budget repository: $budgets = $this->mock('Firefly\Storage\Budget\BudgetRepositoryInterface'); $budgets->shouldReceive('get')->once()->andReturn([$budget]); @@ -70,10 +69,10 @@ class BudgetControllerTest extends TestCase public function testStore() { $data = [ - 'name' => 'X', - 'amount' => 100, - 'period' => 'monthly', - 'repeats' => 0 + 'name' => 'X', + 'amount' => 100, + 'period' => 'monthly', + 'repeats' => 0 ]; $return = $data; $return['repeat_freq'] = 'monthly'; @@ -84,7 +83,7 @@ class BudgetControllerTest extends TestCase $budgets->shouldReceive('store')->with($return)->once()->andReturn(true); // call - $this->call('POST', '/budget/store',$data); + $this->call('POST', '/budget/store', $data); // test $this->assertResponseStatus(302); @@ -106,7 +105,7 @@ class BudgetControllerTest extends TestCase // call - $this->call('GET', '/budget/show/'.$budget->id); + $this->call('GET', '/budget/show/' . $budget->id); // test $this->assertResponseOk(); diff --git a/app/tests/controllers/ChartControllerTest.php b/app/tests/controllers/ChartControllerTest.php index ad67fa479c..a324114086 100644 --- a/app/tests/controllers/ChartControllerTest.php +++ b/app/tests/controllers/ChartControllerTest.php @@ -181,7 +181,7 @@ class ChartControllerTest extends TestCase { $account = FactoryMuffin::create('Account'); $second = FactoryMuffin::create('Account'); - $date = \Carbon\Carbon::createFromDate('2012','01','01'); + $date = \Carbon\Carbon::createFromDate('2012', '01', '01'); $transaction = FactoryMuffin::create('Transaction'); $transaction->account()->associate($second); $journal = FactoryMuffin::create('TransactionJournal'); @@ -196,13 +196,8 @@ class ChartControllerTest extends TestCase $tj->shouldReceive('getByAccountAndDate')->once()->andReturn([$journal]); - - - - - // call - $this->call('GET', '/chart/home/info/'.$account->name.'/'.$date->format('d/m/Y')); + $this->call('GET', '/chart/home/info/' . $account->name . '/' . $date->format('d/m/Y')); // test $this->assertResponseOk(); diff --git a/app/tests/controllers/HomeControllerTest.php b/app/tests/controllers/HomeControllerTest.php index b76498563c..c37825c92f 100644 --- a/app/tests/controllers/HomeControllerTest.php +++ b/app/tests/controllers/HomeControllerTest.php @@ -71,7 +71,7 @@ class HomeControllerTest extends TestCase // mock transaction journal repository: $tj = $this->mock('Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface'); - $tj->shouldReceive('getByAccount')->with($account,15)->andReturn([]); + $tj->shouldReceive('getByAccount')->with($account, 15)->andReturn([]); // mock preferences & pref: $pref = $this->mock('Preference'); diff --git a/app/tests/controllers/JsonControllerTest.php b/app/tests/controllers/JsonControllerTest.php index dc83780976..100a0fe70f 100644 --- a/app/tests/controllers/JsonControllerTest.php +++ b/app/tests/controllers/JsonControllerTest.php @@ -1,12 +1,14 @@ name = 'Bla bla'; @@ -22,7 +24,8 @@ class JsonControllerTest extends TestCase { } - public function testCategories() { + public function testCategories() + { $obj = new stdClass; $obj->name = 'Bla bla'; @@ -35,6 +38,7 @@ class JsonControllerTest extends TestCase { // test $this->assertResponseOk(); } + public function tearDown() { Mockery::close(); diff --git a/app/tests/controllers/PreferencesControllerTest.php b/app/tests/controllers/PreferencesControllerTest.php index e644905635..d514484e2b 100644 --- a/app/tests/controllers/PreferencesControllerTest.php +++ b/app/tests/controllers/PreferencesControllerTest.php @@ -57,6 +57,7 @@ class PreferencesControllerTest extends TestCase $this->assertSessionHas('success'); $this->assertRedirectedToRoute('preferences'); } + public function tearDown() { Mockery::close(); diff --git a/app/tests/controllers/TransactionControllerTest.php b/app/tests/controllers/TransactionControllerTest.php index 8d042eb81a..7eb5137a92 100644 --- a/app/tests/controllers/TransactionControllerTest.php +++ b/app/tests/controllers/TransactionControllerTest.php @@ -30,7 +30,7 @@ class TransactionControllerTest extends TestCase View::shouldReceive('share'); View::shouldReceive('make')->with('transactions.create')->andReturn(\Mockery::self()) ->shouldReceive('with')->once() - ->with('what','withdrawal') + ->with('what', 'withdrawal') ->andReturn(Mockery::self()) ->shouldReceive('with')->once() ->with('accounts', []) @@ -61,7 +61,7 @@ class TransactionControllerTest extends TestCase View::shouldReceive('share'); View::shouldReceive('make')->with('transactions.create')->andReturn(\Mockery::self()) ->shouldReceive('with')->once() - ->with('what','deposit') + ->with('what', 'deposit') ->andReturn(Mockery::self()) ->shouldReceive('with')->once() @@ -393,7 +393,7 @@ class TransactionControllerTest extends TestCase $this->call('POST', '/transactions/store/withdrawal', $data); // test - $this->assertRedirectedToRoute('transactions.create',['what' => 'withdrawal']); + $this->assertRedirectedToRoute('transactions.create', ['what' => 'withdrawal']); } /** @@ -443,7 +443,7 @@ class TransactionControllerTest extends TestCase $this->call('POST', '/transactions/store/deposit', $data); // test - $this->assertRedirectedToRoute('transactions.create',['what' => 'deposit']); + $this->assertRedirectedToRoute('transactions.create', ['what' => 'deposit']); } /** @@ -488,10 +488,11 @@ class TransactionControllerTest extends TestCase $this->call('POST', '/transactions/store/transfer', $data); // test - $this->assertRedirectedToRoute('transactions.create',['what' => 'transfer']); + $this->assertRedirectedToRoute('transactions.create', ['what' => 'transfer']); } - public function testShow() { + public function testShow() + { $journal = FactoryMuffin::create('TransactionJournal'); // mock transaction journal: @@ -499,7 +500,6 @@ class TransactionControllerTest extends TestCase $tj->shouldReceive('find')->with($journal->id)->andReturn($journal); - // call $this->call('GET', '/transaction/show/' . $journal->id); @@ -507,7 +507,8 @@ class TransactionControllerTest extends TestCase $this->assertResponseOk(); } - public function testShowError() { + public function testShowError() + { // mock transaction journal: $tj = $this->mock('Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface'); @@ -521,7 +522,8 @@ class TransactionControllerTest extends TestCase $this->assertViewHas('message'); } - public function testEdit() { + public function testEdit() + { $journal = FactoryMuffin::create('TransactionJournal'); // mock transaction journal: @@ -533,7 +535,6 @@ class TransactionControllerTest extends TestCase $accounts->shouldReceive('getActiveDefaultAsSelectList')->andReturn([]); - // call $this->call('GET', '/transaction/edit/' . $journal->id); @@ -541,7 +542,8 @@ class TransactionControllerTest extends TestCase $this->assertResponseOk(); } - public function testEditError() { + public function testEditError() + { // mock transaction journal: $tj = $this->mock('Firefly\Storage\TransactionJournal\TransactionJournalRepositoryInterface'); $tj->shouldReceive('find')->with(1)->andReturn(null); diff --git a/app/tests/controllers/UserControllerTest.php b/app/tests/controllers/UserControllerTest.php index bed7d1fc54..e2687e2d7b 100644 --- a/app/tests/controllers/UserControllerTest.php +++ b/app/tests/controllers/UserControllerTest.php @@ -64,7 +64,7 @@ class UserControllerTest extends TestCase // test $this->call('GET', '/register'); $this->assertResponseStatus(200); - $this->assertViewHas('message','Not possible'); + $this->assertViewHas('message', 'Not possible'); } /** @@ -94,7 +94,6 @@ class UserControllerTest extends TestCase } - /** * Register and verify FAILED: */ @@ -189,7 +188,7 @@ class UserControllerTest extends TestCase $this->call('POST', '/remindme'); $this->assertResponseOk(); - $this->assertSessionHas('error','No good!'); + $this->assertSessionHas('error', 'No good!'); } public function testPostRegisterNotAllowed() @@ -207,7 +206,7 @@ class UserControllerTest extends TestCase // test $this->call('POST', '/register', $data); $this->assertResponseStatus(200); - $this->assertViewHas('message','Not possible'); + $this->assertViewHas('message', 'Not possible'); }