Skip to content

Commit 837b2f4

Browse files
committed
fix: avviso su risorse in scadenza
1 parent 555400a commit 837b2f4

1 file changed

Lines changed: 13 additions & 10 deletions

File tree

modules/stato_servizi/src/ServicesHook.php

Lines changed: 13 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,6 @@
2323
use API\Services;
2424
use Carbon\Carbon;
2525
use Hooks\Manager;
26-
use Models\Cache;
2726
use Models\Module;
2827

2928
class ServicesHook extends Manager
@@ -36,20 +35,24 @@ public function response()
3635
$limite_scadenze = (new Carbon())->addDays(60);
3736
$message = '';
3837

39-
$cache = Cache::where('name', 'Informazioni su Services')->first();
38+
// Recupera le risorse attive una sola volta dalla cache
39+
$risorse = Services::getRisorseAttive();
4040

41-
if (empty($cache->content)) {
42-
$services = Services::getInformazioni(true);
43-
} else {
44-
$services = $cache->content;
41+
// Risorse scadute (expiration_at nel passato o credits < 0)
42+
$risorse_scadute = $risorse->filter(fn ($item) => is_array($item) && ((isset($item['expiration_at']) && Carbon::parse($item['expiration_at'])->lessThan(Carbon::now())) || (isset($item['credits']) && $item['credits'] < 0)));
43+
44+
if ($risorse_scadute->isNotEmpty()) {
45+
$message .= tr('I seguenti servizi sono scaduti:<ul><li> _LIST_', [
46+
'_LIST_' => implode('</li><li>', $risorse_scadute->pluck('name')->toArray()),
47+
]).'</ul>';
4548
}
4649

47-
// Filtra i risultati che hanno expiration_at fra oggi e $limite_scadenze
48-
$servizi_in_scadenza = array_filter($services, fn ($service) => is_array($service) && isset($service['expiration_at']) && Carbon::parse($service['expiration_at'])->between(Carbon::now(), $limite_scadenze));
50+
// Risorse in scadenza nei prossimi 60 giorni (o credits < 100)
51+
$risorse_in_scadenza = $risorse->filter(fn ($item) => is_array($item) && ((isset($item['expiration_at']) && Carbon::parse($item['expiration_at'])->greaterThan(Carbon::now()) && Carbon::parse($item['expiration_at'])->lessThan($limite_scadenze)) || (isset($item['credits']) && $item['credits'] >= 0 && $item['credits'] < 100)));
4952

50-
if (!empty($servizi_in_scadenza)) {
53+
if ($risorse_in_scadenza->isNotEmpty()) {
5154
$message .= tr('I seguenti servizi sono in scadenza:<ul><li> _LIST_', [
52-
'_LIST_' => implode('</li><li>', array_column($servizi_in_scadenza, 'name')),
55+
'_LIST_' => implode('</li><li>', $risorse_in_scadenza->pluck('name')->toArray()),
5356
]).'</ul>';
5457
}
5558
}

0 commit comments

Comments
 (0)