Code cleanup.

This commit is contained in:
James Cole
2014-12-13 21:59:02 +01:00
parent c77b43458e
commit 3cfa3f3b27
67 changed files with 651 additions and 177 deletions

View File

@@ -3,6 +3,9 @@ use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Watson\Validating\ValidatingTrait;
/**
* Class Account
*/
class Account extends Eloquent
{
use SoftDeletingTrait, ValidatingTrait;
@@ -12,20 +15,17 @@ class Account extends Eloquent
* @var array
*/
public static $rules
= [
= [
'name' => ['required', 'between:1,100'],
'user_id' => 'required|exists:users,id',
'account_type_id' => 'required|exists:account_types,id',
'active' => 'required|boolean'
];
protected $dates = ['deleted_at', 'created_at', 'updated_at'];
/**
* Fillable fields.
*
* @var array
*/
// @codingStandardsIgnoreStart
protected $dates = ['deleted_at', 'created_at', 'updated_at'];
protected $fillable = ['name', 'user_id', 'account_type_id', 'active'];
// @codingStandardsIgnoreEnd
/**
* Account type.
@@ -96,6 +96,12 @@ class Account extends Eloquent
return $this->hasMany('Transaction');
}
/**
* @param $fieldName
* @param $fieldValue
*
* @return AccountMeta
*/
public function updateMeta($fieldName, $fieldValue)
{
$meta = $this->accountMeta()->get();
@@ -117,6 +123,9 @@ class Account extends Eloquent
return $meta;
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function accountMeta()
{
return $this->hasMany('AccountMeta');

View File

@@ -1,6 +1,9 @@
<?php
use Watson\Validating\ValidatingTrait;
/**
* Class AccountMeta
*/
class AccountMeta extends Eloquent
{
use ValidatingTrait;
@@ -16,8 +19,10 @@ class AccountMeta extends Eloquent
/**
* @var array
*/
// @codingStandardsIgnoreStart
protected $fillable = ['account_id', 'name', 'date'];
protected $table = 'account_meta';
// @codingStandardsIgnoreEnd
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo

View File

@@ -3,6 +3,9 @@
use Illuminate\Database\Eloquent\Model as Eloquent;
use Watson\Validating\ValidatingTrait;
/**
* Class AccountType
*/
class AccountType extends Eloquent
{
use ValidatingTrait;

View File

@@ -1,20 +1,26 @@
<?php
/**
* Class Budget
*/
class Budget extends Component
{
protected $isSubclass = true;
/**
* @return \Illuminate\Database\Eloquent\Relations\HasManyThrough
*/
public function limitrepetitions()
{
return $this->hasManyThrough('LimitRepetition', 'Limit', 'component_id');
return $this->hasManyThrough('LimitRepetition', 'BudgetLimit', 'component_id');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function limits()
public function budgetlimits()
{
return $this->hasMany('Limit', 'component_id');
return $this->hasMany('BudgetLimit', 'component_id');
}

View File

@@ -4,7 +4,10 @@ use Carbon\Carbon;
use Illuminate\Database\QueryException;
use Watson\Validating\ValidatingTrait;
class Limit extends Eloquent
/**
* Class Limit
*/
class BudgetLimit extends Eloquent
{
use ValidatingTrait;
@@ -61,8 +64,6 @@ class Limit extends Eloquent
}
$end->subDay();
$count = $this->limitrepetitions()->where('startdate', $start->format('Y-m-d'))->where('enddate', $end->format('Y-m-d'))->count();
\Log::debug('All: ' . $this->limitrepetitions()->count() . ' (#' . $this->id . ')');
\Log::debug('Found ' . $count . ' limit-reps for limit #' . $this->id . ' with start ' . $start->format('Y-m-d') . ' and end ' . $end->format('Y-m-d'));
if ($count == 0) {
@@ -70,7 +71,7 @@ class Limit extends Eloquent
$repetition->startdate = $start;
$repetition->enddate = $end;
$repetition->amount = $this->amount;
$repetition->limit()->associate($this);
$repetition->budgetLimit()->associate($this);
try {
$repetition->save();

View File

@@ -1,8 +1,14 @@
<?php
/**
* Class Category
*/
class Category extends Component
{
// @codingStandardsIgnoreStart
protected $isSubclass = true;
// @codingStandardsIgnoreEnd
}

View File

@@ -4,6 +4,9 @@ use FireflyIII\Shared\SingleTableInheritanceEntity;
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Watson\Validating\ValidatingTrait;
/**
* Class Component
*/
class Component extends SingleTableInheritanceEntity
{
@@ -13,10 +16,12 @@ class Component extends SingleTableInheritanceEntity
'name' => 'required|between:1,100|alphabasic',
'class' => 'required',
];
// @codingStandardsIgnoreStart
protected $dates = ['deleted_at', 'created_at', 'updated_at'];
protected $fillable = ['name', 'user_id'];
protected $subclassField = 'class';
protected $table = 'components';
// @codingStandardsIgnoreEnd
use SoftDeletingTrait, ValidatingTrait;
/**

View File

@@ -3,17 +3,28 @@
use FireflyIII\Exception\FireflyException;
use Watson\Validating\ValidatingTrait;
/**
* Class LimitRepetition
*/
class LimitRepetition extends Eloquent
{
use ValidatingTrait;
public static $rules
= [
'limit_id' => 'required|exists:limits,id',
'startdate' => 'required|date',
'enddate' => 'required|date',
'amount' => 'numeric|required|min:0.01',
'budgetlimit_id' => 'required|exists:budgetlimits,id',
'startdate' => 'required|date',
'enddate' => 'required|date',
'amount' => 'numeric|required|min:0.01',
];
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function budgetLimit()
{
return $this->belongsTo('BudgetLimit');
}
/**
* @return array
*/
@@ -22,14 +33,6 @@ class LimitRepetition extends Eloquent
return ['created_at', 'updated_at', 'startdate', 'enddate'];
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsTo
*/
public function limit()
{
return $this->belongsTo('Limit');
}
/**
* TODO see if this scope is still used.
*
@@ -51,8 +54,8 @@ class LimitRepetition extends Eloquent
$sum = \DB::table('transactions')->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')->leftJoin(
'component_transaction_journal', 'component_transaction_journal.transaction_journal_id', '=', 'transaction_journals.id'
)->leftJoin('components', 'components.id', '=', 'component_transaction_journal.component_id')->leftJoin(
'limits', 'limits.component_id', '=', 'components.id'
)->leftJoin('limit_repetitions', 'limit_repetitions.limit_id', '=', 'limits.id')->where(
'budgetlimits', 'budgetlimits.component_id', '=', 'components.id'
)->leftJoin('limit_repetitions', 'limit_repetitions.limit_id', '=', 'budgetlimits.id')->where(
'transaction_journals.date', '>=', $this->startdate->format('Y-m-d')
)->where('transaction_journals.date', '<=', $this->enddate->format('Y-m-d'))->where('transactions.amount', '>', 0)->where(
'limit_repetitions.id', '=', $this->id

View File

@@ -2,6 +2,9 @@
use Carbon\Carbon;
use Watson\Validating\ValidatingTrait;
/**
* Class Piggybank
*/
class Piggybank extends Eloquent
{
use ValidatingTrait;
@@ -155,6 +158,9 @@ class Piggybank extends Eloquent
return $this->hasMany('PiggybankEvent');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\MorphMany
*/
public function reminders()
{
return $this->morphMany('Reminder', 'remindersable');
@@ -197,6 +203,9 @@ class Piggybank extends Eloquent
return $result;
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
*/
public function transactions()
{
return $this->hasMany('Transaction');

View File

@@ -1,6 +1,9 @@
<?php
use Watson\Validating\ValidatingTrait;
/**
* Class PiggybankEvent
*/
class PiggybankEvent extends Eloquent
{

View File

@@ -3,6 +3,9 @@ use Carbon\Carbon;
use Illuminate\Database\Eloquent\Builder;
use Watson\Validating\ValidatingTrait;
/**
* Class PiggybankRepetition
*/
class PiggybankRepetition extends Eloquent
{
use ValidatingTrait;
@@ -46,11 +49,19 @@ class PiggybankRepetition extends Eloquent
return $this->belongsTo('Piggybank');
}
/**
* @param Builder $query
* @param Carbon $date
*/
public function scopeStarts(Builder $query, Carbon $date)
{
$query->where('startdate', $date->format('Y-m-d'));
}
/**
* @param Builder $query
* @param Carbon $date
*/
public function scopeTargets(Builder $query, Carbon $date)
{
$query->where('targetdate', $date->format('Y-m-d'));

View File

@@ -1,6 +1,9 @@
<?php
use Watson\Validating\ValidatingTrait;
/**
* Class Preference
*/
class Preference extends Eloquent
{
use ValidatingTrait;

View File

@@ -2,6 +2,9 @@
use Carbon\Carbon;
use Watson\Validating\ValidatingTrait;
/**
* Class RecurringTransaction
*/
class RecurringTransaction extends Eloquent
{
@@ -18,8 +21,9 @@ class RecurringTransaction extends Eloquent
'automatch' => 'required|between:0,1',
'repeat_freq' => 'required|in:daily,weekly,monthly,quarterly,half-year,yearly',
'skip' => 'required|between:0,31',];
// @codingStandardsIgnoreStart
protected $fillable = ['user_id', 'name', 'match', 'amount_min', 'amount_max', 'date', 'repeat_freq', 'skip', 'active', 'automatch'];
// @codingStandardsIgnoreEnd
/**
* @return array

View File

@@ -3,12 +3,22 @@
use Carbon\Carbon;
use Watson\Validating\ValidatingTrait;
/**
* Class Reminder
*/
class Reminder extends Eloquent
{
use ValidatingTrait;
// @codingStandardsIgnoreStart
protected $table = 'reminders';
// @codingStandardsIgnoreEnd
/**
* @param $value
*
* @return mixed
*/
public function getDataAttribute($value)
{
return json_decode($value);
@@ -32,6 +42,13 @@ class Reminder extends Eloquent
return $this->morphTo();
}
/**
* @param $query
* @param Carbon $start
* @param Carbon $end
*
* @return mixed
*/
public function scopeDateIs($query, Carbon $start, Carbon $end)
{
return $query->where('startdate', $start->format('Y-m-d'))->where('enddate', $end->format('Y-m-d'));

View File

@@ -5,6 +5,9 @@ use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Watson\Validating\ValidatingTrait;
/**
* Class Transaction
*/
class Transaction extends Eloquent
{
use SoftDeletingTrait, ValidatingTrait;
@@ -56,11 +59,19 @@ class Transaction extends Eloquent
return $this->belongsTo('Piggybank');
}
/**
* @param Builder $query
* @param Account $account
*/
public function scopeAccountIs(Builder $query, Account $account)
{
$query->where('transactions.account_id', $account->id);
}
/**
* @param Builder $query
* @param Carbon $date
*/
public function scopeAfter(Builder $query, Carbon $date)
{
if (is_null($this->joinedJournals)) {
@@ -72,6 +83,10 @@ class Transaction extends Eloquent
$query->where('transaction_journals.date', '>=', $date->format('Y-m-d'));
}
/**
* @param Builder $query
* @param Carbon $date
*/
public function scopeBefore(Builder $query, Carbon $date)
{
if (is_null($this->joinedJournals)) {
@@ -83,16 +98,28 @@ class Transaction extends Eloquent
$query->where('transaction_journals.date', '<=', $date->format('Y-m-d'));
}
/**
* @param Builder $query
* @param $amount
*/
public function scopeLessThan(Builder $query, $amount)
{
$query->where('amount', '<', $amount);
}
/**
* @param Builder $query
* @param $amount
*/
public function scopeMoreThan(Builder $query, $amount)
{
$query->where('amount', '>', $amount);
}
/**
* @param Builder $query
* @param array $types
*/
public function scopeTransactionTypes(Builder $query, array $types)
{
if (is_null($this->joinedJournals)) {

View File

@@ -3,6 +3,9 @@ use Illuminate\Database\Eloquent\Model as Eloquent;
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Watson\Validating\ValidatingTrait;
/**
* Class TransactionCurrency
*/
class TransactionCurrency extends Eloquent
{

View File

@@ -2,6 +2,9 @@
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Watson\Validating\ValidatingTrait;
/**
* Class TransactionGroup
*/
class TransactionGroup extends Eloquent
{
use SoftDeletingTrait, ValidatingTrait;

View File

@@ -5,6 +5,9 @@ use Illuminate\Database\Eloquent\Builder;
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Watson\Validating\ValidatingTrait;
/**
* Class TransactionJournal
*/
class TransactionJournal extends Eloquent
{
use SoftDeletingTrait, ValidatingTrait;
@@ -47,6 +50,8 @@ class TransactionJournal extends Eloquent
/**
* TODO remove this method in favour of something in the FireflyIII libraries.
*
* @param Account $account
*
* @return float
*/
public function getAmount(\Account $account = null)
@@ -123,11 +128,18 @@ class TransactionJournal extends Eloquent
return $query->where('date', '<=', $date->format('Y-m-d'));
}
/**
* @param Builder $query
*/
public function scopeDefaultSorting(Builder $query)
{
$query->orderBy('date', 'DESC')->orderBy('transaction_journals.id', 'DESC');
}
/**
* @param Builder $query
* @param $amount
*/
public function scopeLessThan(Builder $query, $amount)
{
if (is_null($this->joinedTransactions)) {
@@ -140,6 +152,10 @@ class TransactionJournal extends Eloquent
$query->where('transactions.amount', '<=', $amount);
}
/**
* @param Builder $query
* @param $amount
*/
public function scopeMoreThan(Builder $query, $amount)
{
if (is_null($this->joinedTransactions)) {
@@ -163,6 +179,10 @@ class TransactionJournal extends Eloquent
return $query->where('date', '=', $date->format('Y-m-d'));
}
/**
* @param Builder $query
* @param array $types
*/
public function scopeTransactionTypes(Builder $query, array $types)
{
if (is_null($this->joinedTransactionTypes)) {
@@ -207,6 +227,9 @@ class TransactionJournal extends Eloquent
return $this->belongsTo('TransactionType');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function transactiongroups()
{
return $this->belongsToMany('TransactionGroup');

View File

@@ -1,5 +1,8 @@
<?php
/**
* Class TransactionRelation
*/
class TransactionRelation extends Eloquent
{

View File

@@ -3,6 +3,9 @@
use Illuminate\Database\Eloquent\SoftDeletingTrait;
use Watson\Validating\ValidatingTrait;
/**
* Class TransactionType
*/
class TransactionType extends Eloquent
{
use SoftDeletingTrait, ValidatingTrait;

View File

@@ -6,6 +6,9 @@ use Illuminate\Auth\UserInterface;
use Illuminate\Auth\UserTrait;
use Watson\Validating\ValidatingTrait;
/**
* Class User
*/
class User extends Eloquent implements UserInterface, RemindableInterface
{
@@ -13,24 +16,16 @@ class User extends Eloquent implements UserInterface, RemindableInterface
public static $rules
= [
= [
'email' => 'required|email|unique:users,email',
'password' => 'required|between:60,60',
'reset' => 'between:32,32',
];
protected $fillable = ['email'];
/**
* The attributes excluded from the model's JSON form.
*
* @var array
*/
protected $hidden = ['remember_token'];
/**
* The database table used by the model.
*
* @var string
*/
protected $table = 'users';
// @codingStandardsIgnoreStart
protected $fillable = ['email'];
protected $hidden = ['remember_token'];
protected $table = 'users';
// @codingStandardsIgnoreEnd
/**
* @return \Illuminate\Database\Eloquent\Relations\HasMany
@@ -64,6 +59,9 @@ class User extends Eloquent implements UserInterface, RemindableInterface
return $this->hasMany('Component');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasManyThrough
*/
public function piggybanks()
{
return $this->hasManyThrough('Piggybank', 'Account');
@@ -109,6 +107,9 @@ class User extends Eloquent implements UserInterface, RemindableInterface
return $this->hasMany('TransactionJournal');
}
/**
* @return \Illuminate\Database\Eloquent\Relations\HasManyThrough
*/
public function transactions()
{
return $this->hasManyThrough('TransactionJournal', 'Transaction');