Fixed more tests but the factories are not perfect yet.

This commit is contained in:
James Cole
2015-04-04 21:23:37 +02:00
parent 0c02a08954
commit 5d505f4ed0
6 changed files with 144 additions and 80 deletions

View File

@@ -14,6 +14,7 @@ use FireflyIII\Models\Preference;
use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Models\TransactionType;
use Illuminate\Database\Eloquent\Relations\HasMany;
use Illuminate\Pagination\LengthAwarePaginator;
use Illuminate\Support\Collection;
use Log;
@@ -29,11 +30,13 @@ class AccountRepository implements AccountRepositoryInterface
{
/**
* @param array $types
*
* @return int
*/
public function countAssetAccounts()
public function countAccounts(array $types)
{
return Auth::user()->accounts()->accountTypeIn(['Asset account', 'Default account'])->count();
return Auth::user()->accounts()->accountTypeIn($types)->count();
}
/**
@@ -48,6 +51,24 @@ class AccountRepository implements AccountRepositoryInterface
return true;
}
/**
* @param array $types
* @param int $page
*
* @return Collection
*/
public function getAccounts(array $types, $page)
{
$size = 50;
$offset = ($page - 1) * $size;
return Auth::user()->accounts()->with(
['accountmeta' => function (HasMany $query) {
$query->where('name', 'accountRole');
}]
)->accountTypeIn($types)->take($size)->offset($offset)->orderBy('accounts.name', 'ASC')->get(['accounts.*']);
}
/**
* @param TransactionJournal $journal
* @param Account $account
@@ -133,6 +154,23 @@ class AccountRepository implements AccountRepositoryInterface
}
/**
* @param Account $account
*
* @return Carbon|null
*/
public function getLastActivity(Account $account)
{
$lastTransaction = $account->transactions()->leftJoin(
'transaction_journals', 'transactions.transaction_journal_id', '=', 'transaction_journals.id'
)->orderBy('transaction_journals.date', 'DESC')->first(['transactions.*', 'transaction_journals.date']);
if ($lastTransaction) {
return $lastTransaction->transactionjournal->date;
}
return null;
}
/**
* Get savings accounts and the balance difference in the period.
*

View File

@@ -16,6 +16,13 @@ use Illuminate\Support\Collection;
*/
interface AccountRepositoryInterface
{
/**
* @param array $types
*
* @return int
*/
public function countAccounts(array $types);
/**
* @param Account $account
*
@@ -24,9 +31,20 @@ interface AccountRepositoryInterface
public function destroy(Account $account);
/**
* @return int
* @param array $types
* @param int $page
*
* @return mixed
*/
public function countAssetAccounts();
public function getAccounts(array $types, $page);
/**
* @param TransactionJournal $journal
* @param Account $account
*
* @return Transaction
*/
public function getFirstTransaction(TransactionJournal $journal, Account $account);
/**
* @param Preference $preference
@@ -52,6 +70,27 @@ interface AccountRepositoryInterface
*/
public function getJournals(Account $account, $page);
/**
* @param Account $account
*
* @return Carbon|null
*/
public function getLastActivity(Account $account);
/**
* Get savings accounts and the balance difference in the period.
*
* @return Collection
*/
public function getSavingsAccounts();
/**
* @param Account $account
*
* @return float
*/
public function leftOnAccount(Account $account);
/**
* @param Account $account
*
@@ -73,27 +112,4 @@ interface AccountRepositoryInterface
* @return Account
*/
public function update(Account $account, array $data);
/**
* @param Account $account
*
* @return float
*/
public function leftOnAccount(Account $account);
/**
* Get savings accounts and the balance difference in the period.
*
* @return Collection
*/
public function getSavingsAccounts();
/**
* @param TransactionJournal $journal
* @param Account $account
*
* @return Transaction
*/
public function getFirstTransaction(TransactionJournal $journal, Account $account);
}