Merge branch 'develop' into 5.8-dev

# Conflicts:
#	app/Factory/TransactionJournalFactory.php
#	app/Providers/EventServiceProvider.php
#	app/Repositories/PiggyBank/ModifiesPiggyBanks.php
#	app/Support/Search/OperatorQuerySearch.php
#	app/Support/Steam.php
#	app/TransactionRules/Actions/UpdatePiggybank.php
#	composer.json
#	composer.lock
#	config/search.php
#	frontend/yarn.lock
#	resources/lang/en_US/firefly.php
This commit is contained in:
James Cole
2022-12-11 07:37:33 +01:00
30 changed files with 802 additions and 640 deletions

View File

@@ -22,6 +22,7 @@ declare(strict_types=1);
namespace FireflyIII\Factory;
use FireflyIII\Events\ChangedPiggyBankAmount;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Models\PiggyBankEvent;
use FireflyIII\Models\TransactionJournal;
@@ -39,22 +40,20 @@ class PiggyBankEventFactory
/**
* @param TransactionJournal $journal
* @param PiggyBank|null $piggyBank
*
* @return PiggyBankEvent|null
*/
public function create(TransactionJournal $journal, ?PiggyBank $piggyBank): ?PiggyBankEvent
public function create(TransactionJournal $journal, ?PiggyBank $piggyBank): void
{
Log::debug(sprintf('Now in PiggyBankEventCreate for a %s', $journal->transactionType->type));
if (null === $piggyBank) {
Log::debug('Piggy bank is null');
return null;
return;
}
if (TransactionType::TRANSFER !== $journal->transactionType->type) {
Log::info(sprintf('Will not connect %s #%d to a piggy bank.', $journal->transactionType->type, $journal->id));
return null;
return;
}
/** @var PiggyBankRepositoryInterface $piggyRepos */
@@ -65,20 +64,16 @@ class PiggyBankEventFactory
if (null === $repetition) {
Log::error(sprintf('No piggy bank repetition on %s!', $journal->date->format('Y-m-d')));
return null;
return;
}
Log::debug('Found repetition');
$amount = $piggyRepos->getExactAmount($piggyBank, $repetition, $journal);
if (0 === bccomp($amount, '0')) {
Log::debug('Amount is zero, will not create event.');
return null;
return;
}
$piggyRepos->addAmountToRepetition($repetition, $amount);
$event = $piggyRepos->createEventWithJournal($piggyBank, $amount, $journal);
Log::debug(sprintf('Created piggy bank event #%d', $event->id));
return $event;
// amount can be negative here
$piggyRepos->addAmountToRepetition($repetition, $amount, $journal);
}
}