From 80010880bb4304a98024f9f8a220127e9c0946da Mon Sep 17 00:00:00 2001 From: Hillel Coren Date: Mon, 7 Aug 2017 12:38:33 +0300 Subject: [PATCH] Fix SendNotificationEmail job for archived invoices --- app/Jobs/SendNotificationEmail.php | 5 ++- app/Models/Traits/SerialisesDeletedModels.php | 36 +++++++++++++++++++ 2 files changed, 40 insertions(+), 1 deletion(-) create mode 100644 app/Models/Traits/SerialisesDeletedModels.php diff --git a/app/Jobs/SendNotificationEmail.php b/app/Jobs/SendNotificationEmail.php index 2b1213bb1bec..cf475f77db4c 100644 --- a/app/Jobs/SendNotificationEmail.php +++ b/app/Jobs/SendNotificationEmail.php @@ -7,13 +7,16 @@ use App\Ninja\Mailers\UserMailer; use Illuminate\Contracts\Queue\ShouldQueue; use Illuminate\Queue\InteractsWithQueue; use Illuminate\Queue\SerializesModels; +use App\Models\Traits\SerialisesDeletedModels; /** * Class SendInvoiceEmail. */ class SendNotificationEmail extends Job implements ShouldQueue { - use InteractsWithQueue, SerializesModels; + use InteractsWithQueue, SerializesModels, SerialisesDeletedModels { + SerialisesDeletedModels::getRestoredPropertyValue insteadof SerializesModels; + } /** * @var User diff --git a/app/Models/Traits/SerialisesDeletedModels.php b/app/Models/Traits/SerialisesDeletedModels.php new file mode 100644 index 000000000000..fc963368977b --- /dev/null +++ b/app/Models/Traits/SerialisesDeletedModels.php @@ -0,0 +1,36 @@ +id)) { + return $this->restoreCollection($value); + } + + $instance = new $value->class; + $query = $instance->newQuery()->useWritePdo(); + + if (property_exists($instance, 'forceDeleting')) { + return $query->withTrashed()->find($value->id); + } + + return $query->findOrFail($value->id); + } +}