This commit is contained in:
James Cole 2025-02-05 06:36:51 +01:00
parent eca12f661f
commit 90bfdc7573
No known key found for this signature in database
GPG Key ID: B49A324B7EAD6D80
8 changed files with 44 additions and 8 deletions

View File

@ -26,6 +26,7 @@ namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Account;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
use FireflyIII\Repositories\UserGroups\Account\AccountRepositoryInterface;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
@ -73,12 +74,15 @@ class AccountObserver
// app('log')->debug('Observe "deleting" of an account.');
$account->accountMeta()->delete();
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($account->user);
/** @var PiggyBank $piggy */
foreach ($account->piggyBanks()->get() as $piggy) {
$piggy->accounts()->detach($account);
}
foreach ($account->attachments()->get() as $attachment) {
$attachment->delete();
$repository->destroy($attachment);
}
foreach ($account->transactions()->get() as $transaction) {
$transaction->delete();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Bill;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
use FireflyIII\Support\Facades\Amount;
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use Illuminate\Support\Facades\Log;
@ -41,9 +42,12 @@ class BillObserver
public function deleting(Bill $bill): void
{
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($bill->user);
// app('log')->debug('Observe "deleting" of a bill.');
foreach ($bill->attachments()->get() as $attachment) {
$attachment->delete();
$repository->destroy($attachment);
}
$bill->notes()->delete();
}

View File

@ -25,6 +25,7 @@ namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Budget;
use FireflyIII\Models\BudgetLimit;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/**
* Class BudgetObserver
@ -34,8 +35,12 @@ class BudgetObserver
public function deleting(Budget $budget): void
{
app('log')->debug('Observe "deleting" of a budget.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($budget->user);
foreach ($budget->attachments()->get() as $attachment) {
$attachment->delete();
$repository->destroy($attachment);
}
$budgetLimits = $budget->budgetlimits()->get();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Category;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/**
* Class CategoryObserver
@ -33,8 +34,12 @@ class CategoryObserver
public function deleting(Category $category): void
{
app('log')->debug('Observe "deleting" of a category.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($category->user);
foreach ($category->attachments()->get() as $attachment) {
$attachment->delete();
$repository->destroy($attachment);
}
$category->notes()->delete();
}

View File

@ -25,6 +25,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\PiggyBank;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
use FireflyIII\Support\Http\Api\ExchangeRateConverter;
use Illuminate\Support\Facades\Log;
@ -46,8 +47,11 @@ class PiggyBankObserver
{
app('log')->debug('Observe "deleting" of a piggy bank.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($piggyBank->accounts()->first()->user);
foreach ($piggyBank->attachments()->get() as $attachment) {
$attachment->delete();
$repository->destroy($attachment);
}
$piggyBank->piggyBankEvents()->delete();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Recurrence;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/**
* Class RecurrenceObserver
@ -33,8 +34,12 @@ class RecurrenceObserver
public function deleting(Recurrence $recurrence): void
{
app('log')->debug('Observe "deleting" of a recurrence.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($recurrence->user);
foreach ($recurrence->attachments()->get() as $attachment) {
$attachment->delete();
$repository->destroy($attachment);
}
$recurrence->recurrenceRepetitions()->delete();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\Tag;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/**
* Class TagObserver
@ -34,8 +35,11 @@ class TagObserver
{
app('log')->debug('Observe "deleting" of a tag.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($tag->user);
foreach ($tag->attachments()->get() as $attachment) {
$attachment->delete();
$repository->destroy($attachment);
}
$tag->locations()->delete();

View File

@ -24,6 +24,7 @@ declare(strict_types=1);
namespace FireflyIII\Handlers\Observer;
use FireflyIII\Models\TransactionJournal;
use FireflyIII\Repositories\Attachment\AttachmentRepositoryInterface;
/**
* Class TransactionJournalObserver
@ -34,6 +35,10 @@ class TransactionJournalObserver
{
app('log')->debug('Observe "deleting" of a transaction journal.');
$repository = app(AttachmentRepositoryInterface::class);
$repository->setUser($transactionJournal->user);
// to make sure the listener doesn't get back to use and loop
TransactionJournal::withoutEvents(static function () use ($transactionJournal): void {
foreach ($transactionJournal->transactions()->get() as $transaction) {
@ -41,7 +46,7 @@ class TransactionJournalObserver
}
});
foreach ($transactionJournal->attachments()->get() as $attachment) {
$attachment->delete();
$repository->destroy($attachment);
}
$transactionJournal->locations()->delete();
$transactionJournal->sourceJournalLinks()->delete();