This commit is contained in:
James Cole 2019-08-25 16:04:49 +02:00
parent 8680254503
commit 5d68fab374

View File

@ -28,6 +28,7 @@ use FireflyIII\Models\Category;
use FireflyIII\Models\Transaction; use FireflyIII\Models\Transaction;
use FireflyIII\Models\TransactionJournal; use FireflyIII\Models\TransactionJournal;
use Illuminate\Console\Command; use Illuminate\Console\Command;
use Illuminate\Support\Collection;
/** /**
* Class BackToJournals * Class BackToJournals
@ -154,9 +155,13 @@ class BackToJournals extends Command
*/ */
private function migrateBudgets(): void private function migrateBudgets(): void
{ {
$journals = new Collection;
$journalIds = $this->getIdsForBudgets(); $allIds = $this->getIdsForBudgets();
$journals = TransactionJournal::whereIn('id', $journalIds)->with(['transactions', 'budgets', 'transactions.budgets'])->get(); $chunks = array_chunk($allIds, 50);
foreach ($chunks as $journalIds) {
$collected = TransactionJournal::whereIn('id', $journalIds)->with(['transactions', 'budgets', 'transactions.budgets'])->get();
$journals = $journals->merge($collected);
}
$this->line(sprintf('Check %d transaction journal(s) for budget info.', count($journals))); $this->line(sprintf('Check %d transaction journal(s) for budget info.', count($journals)));
/** @var TransactionJournal $journal */ /** @var TransactionJournal $journal */
foreach ($journals as $journal) { foreach ($journals as $journal) {
@ -205,8 +210,13 @@ class BackToJournals extends Command
*/ */
private function migrateCategories(): void private function migrateCategories(): void
{ {
$journalIds = $this->getIdsForCategories(); $journals = new Collection;
$journals = TransactionJournal::whereIn('id', $journalIds)->with(['transactions', 'categories', 'transactions.categories'])->get(); $allIds = $this->getIdsForCategories();
$chunks = array_chunk($allIds, 50);
foreach ($chunks as $journalIds) {
$collected = TransactionJournal::whereIn('id', $journalIds)->with(['transactions', 'categories', 'transactions.categories'])->get();
$journals = $journals->merge($collected);
}
$this->line(sprintf('Check %d transaction journal(s) for category info.', count($journals))); $this->line(sprintf('Check %d transaction journal(s) for category info.', count($journals)));
/** @var TransactionJournal $journal */ /** @var TransactionJournal $journal */
foreach ($journals as $journal) { foreach ($journals as $journal) {