From 8a0afae90f2d9039cab4184f02a4e1ac49deacf9 Mon Sep 17 00:00:00 2001 From: Godfrey M Date: Tue, 21 May 2024 09:42:00 -0700 Subject: [PATCH] fixed query, fixed no email logic, needs new markdown --- .../Commands/SendAcceptanceReminder.php | 24 ++++++++++--- .../markdown/asset-reminder.blade.php | 34 +++++++++++++++++++ 2 files changed, 54 insertions(+), 4 deletions(-) create mode 100644 resources/views/notifications/markdown/asset-reminder.blade.php diff --git a/app/Console/Commands/SendAcceptanceReminder.php b/app/Console/Commands/SendAcceptanceReminder.php index 8c19b49e6e..ac46c87ede 100644 --- a/app/Console/Commands/SendAcceptanceReminder.php +++ b/app/Console/Commands/SendAcceptanceReminder.php @@ -44,18 +44,30 @@ class SendAcceptanceReminder extends Command */ public function handle() { - $acceptances = CheckoutAcceptance::pending()->where('checkoutable_type', 'App\Models\Asset')->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model', 'checkoutable.adminuser'])->get(); + $pending = CheckoutAcceptance::pending()->where('checkoutable_type', 'App\Models\Asset') + ->whereHas('checkoutable', function($query) { + $query->where('archived', 0); + }) + ->with(['assignedTo', 'checkoutable.assignedTo', 'checkoutable.model', 'checkoutable.adminuser']) + ->get(); $count = 0; - $unacceptedAssets = $acceptances + $unacceptedAssets = $pending ->filter(function($acceptance) { return $acceptance->checkoutable_type == 'App\Models\Asset'; }) ->map(function($acceptance) { return ['assetItem' => $acceptance->checkoutable, 'acceptance' => $acceptance]; + }) + ->groupBy(function($item) { + return $item['acceptance']->assignedTo ? $item['acceptance']->assignedTo->id : ''; }); + $no_mail_address = []; foreach($unacceptedAssets as $unacceptedAsset) { + if ($unacceptedAsset['acceptance']->assignedTo->email == ''){ + $no_mail_address[] = $unacceptedAsset['checkoutable']->assignedTo->present()->fullName; + } if ($unacceptedAsset['acceptance']->assignedTo) { if (!$unacceptedAsset['acceptance']->assignedTo->locale) { @@ -73,8 +85,12 @@ class SendAcceptanceReminder extends Command } } - if ($unacceptedAsset['acceptance']->assignedTo->email == ''){ - return "no email"; + if (!empty($no_mail_address)) { + foreach($no_mail_address as $user) { + return $user.' has no email.'; + } + + } diff --git a/resources/views/notifications/markdown/asset-reminder.blade.php b/resources/views/notifications/markdown/asset-reminder.blade.php new file mode 100644 index 0000000000..204793fe05 --- /dev/null +++ b/resources/views/notifications/markdown/asset-reminder.blade.php @@ -0,0 +1,34 @@ +@component('mail::message') + # {{ trans('mail.hello') }}, + + {{ $intro_text }}. + + @component('mail::table') + | | | + | ------------- | ------------- | + | **{{ trans('mail.user') }}** | {{ $assigned_to }} | + @if (isset($accepted_date)) + | **{{ ucfirst(trans('general.accepted')) }}** | {{ $accepted_date }} | + @endif + @if (isset($declined_date)) + | **{{ ucfirst(trans('general.declined')) }}** | {{ $declined_date }} | + @endif + @if ((isset($item_tag)) && ($item_tag!='')) + | **{{ trans('mail.asset_tag') }}** | {{ $item_tag }} | + @endif + @if ((isset($item_model)) && ($item_model!='')) + | **{{ trans('mail.asset_name') }}** | {{ $item_model }} | + @endif + @if (isset($item->model)) + | **{{ trans('general.asset_model') }}** | {{ $item->model->name }} | + @endif + @if (isset($item_serial)) + | **{{ trans('mail.serial') }}** | {{ $item_serial }} | + @endif + @endcomponent + + {{ trans('mail.best_regards') }} + + {{ $snipeSettings->site_name }} + +@endcomponent