refactor: Aggiunta stato esaurimento ore nel selettore contratto

This commit is contained in:
Beppe 2024-11-25 12:30:10 +01:00
parent 996e9027fa
commit dd5e3a0c5e
1 changed files with 32 additions and 0 deletions

View File

@ -19,6 +19,8 @@
include_once __DIR__.'/../../../core.php'; include_once __DIR__.'/../../../core.php';
use Modules\Contratti\Contratto;
switch ($resource) { switch ($resource) {
/* /*
* Opzioni utilizzate: * Opzioni utilizzate:
@ -43,5 +45,35 @@ switch ($resource) {
$search_fields[] = '`co_contratti`.`nome` LIKE '.prepare('%'.$search.'%'); $search_fields[] = '`co_contratti`.`nome` LIKE '.prepare('%'.$search.'%');
} }
$query = str_replace('|where|', !empty($where) ? 'WHERE '.implode(' AND ', $where) : '', $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
$contratto = Contratto::find($r['id']);
$ore_erogate = $contratto->interventi->sum('ore_totali');
$ore_previste = $contratto->getRighe()->where('um', 'ore')->sum('qta');
$perc_ore = $ore_previste != 0 ? ($ore_erogate * 100) / ($ore_previste ?: 1) : 0;
if( $ore_previste ){
if ($perc_ore < 75) {
$color = '#81f794';
} elseif ($perc_ore <= 100) {
$color = '#f5cb78';
}
}
$descrizione = ($ore_previste>0 ? $r['descrizione']." - ".tr('_EROGATE_/_PREVISTE_ ore',[
'_EROGATE_' => Translator::numberToLocale($ore_erogate,2),
'_PREVISTE_' => Translator::numberToLocale($ore_previste,2),
]) : $r['descrizione']);
$results[] = [
'id' => $r['id'],
'text' => $descrizione,
'descrizione' => $descrizione,
'_bgcolor_' => $color,
];
}
break; break;
} }