mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-02-25 18:45:27 -06:00
Optimized queries.
This commit is contained in:
parent
6d8f84654f
commit
8196313ac0
@ -40,12 +40,15 @@ class TransactionJournal implements TransactionJournalInterface, CUD, CommonData
|
|||||||
$end = clone $date;
|
$end = clone $date;
|
||||||
$date->startOfMonth();
|
$date->startOfMonth();
|
||||||
$end->endOfMonth();
|
$end->endOfMonth();
|
||||||
$list = $this->getUser()->transactionjournals()->transactionTypes(['Deposit'])->before($end)->after($date)->get(['transaction_journals.*']);
|
|
||||||
$sum = 0;
|
$sum = \DB::table('transactions')
|
||||||
/** @var \TransactionJournal $entry */
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
foreach ($list as $entry) {
|
->leftJoin('transaction_types', 'transaction_journals.transaction_type_id', '=', 'transaction_types.id')
|
||||||
$sum += $entry->getAmount();
|
->where('amount', '>', 0)
|
||||||
}
|
->where('transaction_types.type', '=', 'Deposit')
|
||||||
|
->where('transaction_journals.date', '>=', $date->format('Y-m-d'))
|
||||||
|
->where('transaction_journals.date', '<=', $end->format('Y-m-d'))->sum('transactions.amount');
|
||||||
|
$sum = floatval($sum);
|
||||||
return $sum;
|
return $sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -54,16 +57,20 @@ class TransactionJournal implements TransactionJournalInterface, CUD, CommonData
|
|||||||
*
|
*
|
||||||
* @return float
|
* @return float
|
||||||
*/
|
*/
|
||||||
public function getSumOfExpensesByMonth(Carbon $date) {
|
public function getSumOfExpensesByMonth(Carbon $date)
|
||||||
|
{
|
||||||
$end = clone $date;
|
$end = clone $date;
|
||||||
$date->startOfMonth();
|
$date->startOfMonth();
|
||||||
$end->endOfMonth();
|
$end->endOfMonth();
|
||||||
$list = $this->getUser()->transactionjournals()->transactionTypes(['Withdrawal'])->before($end)->after($date)->get(['transaction_journals.*']);
|
|
||||||
$sum = 0;
|
$sum = \DB::table('transactions')
|
||||||
/** @var \TransactionJournal $entry */
|
->leftJoin('transaction_journals', 'transaction_journals.id', '=', 'transactions.transaction_journal_id')
|
||||||
foreach ($list as $entry) {
|
->leftJoin('transaction_types', 'transaction_journals.transaction_type_id', '=', 'transaction_types.id')
|
||||||
$sum += $entry->getAmount();
|
->where('amount', '>', 0)
|
||||||
}
|
->where('transaction_types.type', '=', 'Withdrawal')
|
||||||
|
->where('transaction_journals.date', '>=', $date->format('Y-m-d'))
|
||||||
|
->where('transaction_journals.date', '<=', $end->format('Y-m-d'))->sum('transactions.amount');
|
||||||
|
$sum = floatval($sum);
|
||||||
return $sum;
|
return $sum;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,11 +50,13 @@ class TransactionJournal extends Ardent
|
|||||||
*/
|
*/
|
||||||
public function getAmount()
|
public function getAmount()
|
||||||
{
|
{
|
||||||
|
|
||||||
foreach ($this->transactions as $t) {
|
foreach ($this->transactions as $t) {
|
||||||
if (floatval($t->amount) > 0) {
|
if (floatval($t->amount) > 0) {
|
||||||
return floatval($t->amount);
|
return floatval($t->amount);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return -0.01;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
Reference in New Issue
Block a user