1
0
mirror of https://github.com/devcode-it/openstamanager.git synced 2024-12-26 15:54:17 +01:00

Miglioramenti hook per Services

This commit is contained in:
Dasc3er 2021-10-04 15:49:44 +02:00
parent cf2dc752ef
commit 7cb4f9082c
2 changed files with 37 additions and 6 deletions

View File

@ -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),
];
}

View File

@ -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.
*