. */ include_once __DIR__.'/../../core.php'; use Models\Module; use Modules\Checklists\Check; $id_modulo_impianti = (new Module())->getByField('title', 'Impianti', Models\Locale::getPredefined()->id); $checklist_module = Module::find((new Module())->getByField('title', 'Checklists', Models\Locale::getPredefined()->id)); // Blocco della modifica impianti se l'intervento è completato $dati_intervento = $dbo->fetchArray('SELECT `in_statiintervento`.`is_completato` FROM `in_statiintervento` INNER JOIN `in_interventi` ON `in_statiintervento`.`id` = `in_interventi`.`idstatointervento` WHERE `in_interventi`.`id`='.prepare($id_record)); $is_completato = $dati_intervento[0]['is_completato']; if ($is_completato) { $readonly = 'readonly'; $disabled = 'disabled'; } else { $readonly = ''; $disabled = ''; } $where = get('search') ? 'AND (my_impianti.matricola LIKE '.prepare('%'.get('search').'%').' OR my_impianti.nome LIKE '.prepare('%'.get('search').'%').')' : ''; $impianti_collegati = $dbo->fetchArray('SELECT * FROM my_impianti_interventi INNER JOIN my_impianti ON my_impianti_interventi.idimpianto = my_impianti.id WHERE idintervento = '.prepare($id_record).' '.$where); $n_impianti = count($impianti_collegati); $impianti_non_completati = 0; $impianti_completati = 0; $impianti_non_previsti = 0; foreach ($impianti_collegati as $impianto) { $checks = Check::where('id_module_from', $id_modulo_impianti)->where('id_record_from', $impianto['id'])->where('id_module', $id_module)->where('id_record', $id_record)->where('id_parent', null)->get(); if (sizeof($checks)) { $has_checks_not_verified = $checks->where('checked_at', null)->count(); if ($has_checks_not_verified) { ++$impianti_non_completati; } else { ++$impianti_completati; } } else { ++$impianti_non_previsti; } } $percentuale_completati = $n_impianti ? round(($impianti_completati * 100) / $n_impianti) : 0; $percentuale_non_completati = $n_impianti ? round(($impianti_non_completati * 100) / $n_impianti) : 0; $percentuale_non_previsti = $n_impianti ? round(($impianti_non_previsti * 100) / $n_impianti) : 0; echo '

'.strtoupper(tr('Impianti')).': '.$n_impianti.'

'.$impianti_completati.'
'.$impianti_non_completati.'
'.$impianti_non_previsti.'


'; foreach ($impianti_collegati as $impianto) { $checks = Check::where('id_module_from', $id_modulo_impianti)->where('id_record_from', $impianto['id'])->where('id_module', $id_module)->where('id_record', $id_record)->where('id_parent', null)->get(); $type = 'warning'; $class = 'disabled'; $icon = 'circle-o'; $icon2 = 'remove'; if (sizeof($checks)) { $class = ''; $icon = 'plus'; $checks_not_verified = $checks->where('checked_at', null)->count(); $type = $checks_not_verified ? 'danger' : 'success'; $icon2 = $checks_not_verified ? 'clock-o' : 'check'; } echo ' '; } echo '
'.tr('Matricola').' '.tr('Nome').' '.tr('Data').' '.tr('Note').' '.tr("Componenti soggetti all'intervento").' Checklist
'.$impianto['matricola'].' '.Modules::link('Impianti', $impianto['id'], $impianto['nome']).' '.Translator::dateToLocale($impianto['data']).' {[ "type": "textarea", "name": "note", "id": "note_imp_'.$impianto['id'].'", "value": "'.$impianto['note'].'", "onchange": "updateImpianto($(this).closest(\'tr\').data(\'id\'))", "readonly": "'.!empty($readonly).'", "disabled": "'.!empty($disabled).'" ]} '; $inseriti = $dbo->fetchArray('SELECT * FROM my_componenti_interventi WHERE id_intervento = '.prepare($id_record)); $ids = array_column($inseriti, 'id_componente'); echo ' {[ "type": "select", "multiple": 1, "name": "componenti[]", "id": "componenti_imp_'.$impianto['id'].'", "ajax-source": "componenti", "select-options": {"matricola": '.$impianto['id'].'}, "value": "'.implode(',', $ids).'", "onchange": "updateImpianto($(this).closest(\'tr\').data(\'id\'))", "readonly": "'.!empty($readonly).'", "disabled": "'.!empty($disabled).'" ]}
'.tr('Caricamento checklist').'...
';