From 7cb4f9082cee3ed6114d33e1d09b739cf95408c8 Mon Sep 17 00:00:00 2001 From: Dasc3er Date: Mon, 4 Oct 2021 15:49:44 +0200 Subject: [PATCH] Miglioramenti hook per Services --- modules/stato_servizi/src/ServicesHook.php | 27 +++++++++++++++++----- src/API/Services.php | 16 +++++++++++++ 2 files changed, 37 insertions(+), 6 deletions(-) diff --git a/modules/stato_servizi/src/ServicesHook.php b/modules/stato_servizi/src/ServicesHook.php index 3134ac210..b7e12b1d3 100644 --- a/modules/stato_servizi/src/ServicesHook.php +++ b/modules/stato_servizi/src/ServicesHook.php @@ -22,23 +22,38 @@ namespace Modules\StatoServizi; use API\Services; use Carbon\Carbon; use Hooks\Manager; +use Models\Module; class ServicesHook extends Manager { public function response() { - // Elaborazione dei servizi in scadenza $limite_scadenze = (new Carbon())->addDays(60); - $risorse_in_scadenza = Services::getRisorseInScadenza($limite_scadenze); + $message = ''; - $message = tr('I seguenti servizi sono in scadenza: _LIST_', [ - '_LIST_' => implode(', ', $risorse_in_scadenza->pluck('name')->all()), - ]); + // Elaborazione dei servizi in scadenza + $servizi_in_scadenza = Services::getServiziInScadenza($limite_scadenze); + if (!$servizi_in_scadenza->isEmpty()) { + $message .= tr('I seguenti servizi sono in scadenza: _LIST_', [ + '_LIST_' => implode(', ', $servizi_in_scadenza->pluck('nome')->all()), + ]).'. '; + } + + // Elaborazione delle risorse Services in scadenza + $risorse_in_scadenza = Services::getRisorseInScadenza($limite_scadenze); + if (!$risorse_in_scadenza->isEmpty()) { + $message .= tr('Le seguenti risorse Services sono in scadenza: _LIST_', [ + '_LIST_' => implode(', ', $risorse_in_scadenza->pluck('name')->all()), + ]); + } + + $module = Module::pool('Stato dei servizi'); return [ 'icon' => 'fa fa-refresh text-warning', 'message' => $message, - 'show' => Services::isEnabled() && !$risorse_in_scadenza->isEmpty(), + 'link' => base_path().'/controller.php?id_module='.$module->id, + 'show' => Services::isEnabled() && !empty($message), ]; } diff --git a/src/API/Services.php b/src/API/Services.php index e5c7cdd01..64ab8552c 100755 --- a/src/API/Services.php +++ b/src/API/Services.php @@ -74,6 +74,22 @@ class Services return collect(self::getInformazioni()['servizi']); } + /** + * Restituisce i servizi in scadenza per data di conclusione prossima. + * + * @param Carbon $limite_scadenze + * + * @return \Illuminate\Support\Collection + */ + public static function getServiziInScadenza($limite_scadenze) + { + return self::getServiziAttivi() + ->flatten(1) + ->filter(function ($item) use ($limite_scadenze) { + return (isset($item['data_conclusione']) && Carbon::parse($item['data_conclusione'])->lessThan($limite_scadenze)); + }); + } + /** * Restituisce le risorse attive in Services. *