mirror of
https://github.com/firefly-iii/firefly-iii.git
synced 2025-10-12 15:35:15 +00:00
Fix query thing.
This commit is contained in:
@@ -325,6 +325,7 @@ class TransactionJournal extends TransactionJournalSupport
|
|||||||
*/
|
*/
|
||||||
public function scopeExpanded(EloquentBuilder $query)
|
public function scopeExpanded(EloquentBuilder $query)
|
||||||
{
|
{
|
||||||
|
$query->distinct();
|
||||||
// left join transaction type:
|
// left join transaction type:
|
||||||
if (!self::isJoined($query, 'transaction_types')) {
|
if (!self::isJoined($query, 'transaction_types')) {
|
||||||
$query->leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id');
|
$query->leftJoin('transaction_types', 'transaction_types.id', '=', 'transaction_journals.transaction_type_id');
|
||||||
@@ -363,6 +364,7 @@ class TransactionJournal extends TransactionJournalSupport
|
|||||||
|
|
||||||
// group:
|
// group:
|
||||||
$query->groupBy('transaction_journals.id');
|
$query->groupBy('transaction_journals.id');
|
||||||
|
$query->groupBy('source.id');
|
||||||
|
|
||||||
$query->with(['categories', 'budgets', 'attachments', 'bill']);
|
$query->with(['categories', 'budgets', 'attachments', 'bill']);
|
||||||
|
|
||||||
|
@@ -16,6 +16,9 @@ declare(strict_types = 1);
|
|||||||
* of the MIT license. See the LICENSE file for details.
|
* of the MIT license. See the LICENSE file for details.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
use Carbon\Carbon;
|
||||||
|
use FireflyIII\Models\Transaction;
|
||||||
|
use FireflyIII\Models\TransactionJournal;
|
||||||
use FireflyIII\Support\Migration\TestData;
|
use FireflyIII\Support\Migration\TestData;
|
||||||
use Illuminate\Database\Seeder;
|
use Illuminate\Database\Seeder;
|
||||||
|
|
||||||
@@ -52,5 +55,161 @@ class SplitDataSeeder extends Seeder
|
|||||||
TestData::createExpenseAccounts($user);
|
TestData::createExpenseAccounts($user);
|
||||||
TestData::createRevenueAccounts($user);
|
TestData::createRevenueAccounts($user);
|
||||||
TestData::createPiggybanks($user);
|
TestData::createPiggybanks($user);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Create splitted expense of 66,-
|
||||||
|
*/
|
||||||
|
$today = new Carbon;
|
||||||
|
$today->subDays(6);
|
||||||
|
|
||||||
|
$journal = TransactionJournal::create(
|
||||||
|
[
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'transaction_type_id' => 1, // withdrawal
|
||||||
|
'transaction_currency_id' => 1,
|
||||||
|
'description' => 'Split Expense (journal)',
|
||||||
|
'completed' => 1,
|
||||||
|
'date' => $today->format('Y-m-d'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// split in 6 transactions (multiple destinations). 22,- each
|
||||||
|
// source is TestData Checking Account.
|
||||||
|
// also attach some budgets and stuff.
|
||||||
|
$destinations = ['Albert Heijn', 'PLUS', 'Apple'];
|
||||||
|
$budgets = ['Groceries', 'Groceries', 'Car'];
|
||||||
|
$categories = ['Bills', 'Bills', 'Car'];
|
||||||
|
$source = TestData::findAccount($user, 'TestData Checking Account');
|
||||||
|
foreach ($destinations as $index => $dest) {
|
||||||
|
$bud = $budgets[$index];
|
||||||
|
$cat = $categories[$index];
|
||||||
|
$destination = TestData::findAccount($user, $dest);
|
||||||
|
|
||||||
|
$one = Transaction::create(
|
||||||
|
[
|
||||||
|
'account_id' => $source->id,
|
||||||
|
'transaction_journal_id' => $journal->id,
|
||||||
|
'amount' => '-22',
|
||||||
|
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$two = Transaction::create(
|
||||||
|
[
|
||||||
|
'account_id' => $destination->id,
|
||||||
|
'transaction_journal_id' => $journal->id,
|
||||||
|
'amount' => '22',
|
||||||
|
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$one->budgets()->save(TestData::findBudget($user, $bud));
|
||||||
|
$two->budgets()->save(TestData::findBudget($user, $bud));
|
||||||
|
|
||||||
|
$one->categories()->save(TestData::findCategory($user, $cat));
|
||||||
|
$two->categories()->save(TestData::findCategory($user, $cat));
|
||||||
|
}
|
||||||
|
|
||||||
|
// create splitted income of 99,-
|
||||||
|
$today->addDay();
|
||||||
|
|
||||||
|
$journal = TransactionJournal::create(
|
||||||
|
[
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'transaction_type_id' => 2, // expense
|
||||||
|
'transaction_currency_id' => 1,
|
||||||
|
'description' => 'Split Income (journal)',
|
||||||
|
'completed' => 1,
|
||||||
|
'date' => $today->format('Y-m-d'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
// split in 6 transactions (multiple destinations). 22,- each
|
||||||
|
// source is TestData Checking Account.
|
||||||
|
// also attach some budgets and stuff.
|
||||||
|
$destinations = ['TestData Checking Account', 'TestData Savings', 'TestData Shared'];
|
||||||
|
$source = TestData::findAccount($user, 'Belastingdienst');
|
||||||
|
$budgets = ['Groceries', 'Groceries', 'Car'];
|
||||||
|
$categories = ['Bills', 'Bills', 'Car'];
|
||||||
|
foreach ($destinations as $index => $dest) {
|
||||||
|
$bud = $budgets[$index];
|
||||||
|
$cat = $categories[$index];
|
||||||
|
$destination = TestData::findAccount($user, $dest);
|
||||||
|
|
||||||
|
$one = Transaction::create(
|
||||||
|
[
|
||||||
|
'account_id' => $source->id,
|
||||||
|
'transaction_journal_id' => $journal->id,
|
||||||
|
'amount' => '-33',
|
||||||
|
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$two = Transaction::create(
|
||||||
|
[
|
||||||
|
'account_id' => $destination->id,
|
||||||
|
'transaction_journal_id' => $journal->id,
|
||||||
|
'amount' => '33',
|
||||||
|
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$one->budgets()->save(TestData::findBudget($user, $bud));
|
||||||
|
$two->budgets()->save(TestData::findBudget($user, $bud));
|
||||||
|
|
||||||
|
$one->categories()->save(TestData::findCategory($user, $cat));
|
||||||
|
$two->categories()->save(TestData::findCategory($user, $cat));
|
||||||
|
}
|
||||||
|
|
||||||
|
// create a splitted transfer of 57,- (19)
|
||||||
|
$today->addDay();
|
||||||
|
|
||||||
|
$journal = TransactionJournal::create(
|
||||||
|
[
|
||||||
|
'user_id' => $user->id,
|
||||||
|
'transaction_type_id' => 3, // transfer
|
||||||
|
'transaction_currency_id' => 1,
|
||||||
|
'description' => 'Split Transfer (journal)',
|
||||||
|
'completed' => 1,
|
||||||
|
'date' => $today->format('Y-m-d'),
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
|
||||||
|
$source = TestData::findAccount($user, 'Emergencies');
|
||||||
|
$destinations = ['TestData Checking Account', 'TestData Savings', 'TestData Shared'];
|
||||||
|
$budgets = ['Groceries', 'Groceries', 'Car'];
|
||||||
|
$categories = ['Bills', 'Bills', 'Car'];
|
||||||
|
foreach ($destinations as $index => $dest) {
|
||||||
|
$bud = $budgets[$index];
|
||||||
|
$cat = $categories[$index];
|
||||||
|
$destination = TestData::findAccount($user, $dest);
|
||||||
|
|
||||||
|
$one = Transaction::create(
|
||||||
|
[
|
||||||
|
'account_id' => $source->id,
|
||||||
|
'transaction_journal_id' => $journal->id,
|
||||||
|
'amount' => '-19',
|
||||||
|
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$two = Transaction::create(
|
||||||
|
[
|
||||||
|
'account_id' => $destination->id,
|
||||||
|
'transaction_journal_id' => $journal->id,
|
||||||
|
'amount' => '19',
|
||||||
|
|
||||||
|
]
|
||||||
|
);
|
||||||
|
|
||||||
|
$one->budgets()->save(TestData::findBudget($user, $bud));
|
||||||
|
$two->budgets()->save(TestData::findBudget($user, $bud));
|
||||||
|
|
||||||
|
$one->categories()->save(TestData::findCategory($user, $cat));
|
||||||
|
$two->categories()->save(TestData::findCategory($user, $cat));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user