. */ use Modules\Interventi\Intervento; use Util\Ini; include_once __DIR__.'/../../../core.php'; switch (filter('op')) { case 'modifica_componente': $idcomponente = get('id'); $data = post('data_componente'); // Ricavo il valore di contenuto leggendolo dal db $query = 'SELECT * FROM my_impianto_componenti WHERE idimpianto='.prepare($id_record).' AND id='.prepare($idcomponente); $rs = $dbo->fetchArray($query); $contenuto = $rs[0]['contenuto']; $contenuto = Ini::write($contenuto, $post); $query = 'UPDATE my_impianto_componenti SET data='.prepare($data).', contenuto='.prepare($contenuto).' WHERE idimpianto='.prepare($id_record).' AND id='.prepare($idcomponente); $dbo->query($query); flash()->info(tr('Informazioni componente aggiornate correttamente!')); $_SESSION['idcomponente'] = $idcomponente; break; case 'aggiunta_componente': $filename = get('filename'); if (!empty($filename)) { $contenuto = file_get_contents(base_dir().'/files/impianti/'.$filename); $nome = Ini::getValue(Ini::readFile(base_dir().'/files/impianti/'.$filename), 'Nome'); $query = 'INSERT INTO my_impianto_componenti(filename, idimpianto, contenuto, nome, data) VALUES('.prepare($filename).', '.prepare($id_record).', '.prepare($contenuto).', '.prepare($nome).', NOW())'; $dbo->query($query); $idcomponente = $dbo->lastInsertedID(); $_SESSION['idcomponente'] = $idcomponente; flash()->info(tr("Aggiunto un nuovo componente all'impianto!")); } break; case 'sostituzione_componente': $filename = get('filename'); $id = get('id'); $nome = Ini::getValue(Ini::readFile(base_dir().'/files/impianti/'.$filename), 'Nome'); $contenuto = file_get_contents(base_dir().'/files/impianti/'.$filename); // Verifico che questo componente non sia già stato sostituito $query = 'SELECT * FROM my_impianto_componenti WHERE idsostituto = '.prepare($id); $rs = $dbo->fetchArray($query); if (empty($rs)) { // Inserisco il nuovo componente in sostituzione $query = 'INSERT INTO my_impianto_componenti(idsostituto, filename, idimpianto, contenuto, nome, data) VALUES('.prepare($id).', '.prepare($filename).', '.prepare($id_record).', '.prepare($contenuto).', '.prepare($nome).', NOW())'; $dbo->query($query); $idcomponente = $dbo->lastInsertedID(); $_SESSION['idcomponente'] = $idcomponente; // Aggiorno la data di sostituzione del componente precedente $query = 'UPDATE my_impianto_componenti SET data_sostituzione = NOW() WHERE idimpianto = '.prepare($id_record).' AND id = '.prepare($id); $dbo->query($query); flash()->info(tr('Aggiunto un nuovo componente in sostituzione al precedente!')); } else { flash()->error(tr('Questo componente è già stato sostituito!').' '.('Nessuna modifica applicata')); } break; case 'unaggiunta_componente': $idcomponente = filter('id'); $query = 'DELETE FROM my_impianto_componenti WHERE id='.prepare($idcomponente).' AND idimpianto='.prepare($id_record); $dbo->query($query); flash()->info(tr("Rimosso componente dall'impianto!")); break; } // Componenti non ancora collegati if (empty($id_list)) { $id_list = '0'; } echo '

'.tr('Componenti installati').'

'; // Elenca i componenti disponibili $componenti_disponibili = Ini::getList(base_dir().'/files/my_impianti/', $id_list); echo '

'; // Mostro tutti i componenti utilizzati elencando quelli attualmente installati per primi. $q2 = 'SELECT * FROM my_impianto_componenti WHERE idimpianto = '.prepare($id_record).' ORDER by nome ASC, idsostituto DESC'; $componenti_installati = $dbo->fetchArray($q2); if (!empty($componenti_installati)) { $prev_componente = ''; echo '
'; // Ciclo tra tutti i componenti foreach ($componenti_installati as $componente) { $contenuto = $componente['contenuto']; $nome_componente = $componente['nome']; $filename = $componente['filename']; if (empty($componente['data_sostituzione'])) { $stato_componente = tr('INSTALLATO in data _DATE_', [ '_DATE_' => dateFormat($componente['data']), ]); } else { $stato_componente = tr('SOSTITUITO in data _DATE_', [ '_DATE_' => dateFormat($componente['data_sostituzione']), ]); } // Per più "versioni" dello stesso componente mostro un riga meno evidente // per non confonderlo come componente in uso in questo momento $same = ($prev_componente == $nome_componente); if (get('id') == $componente['id']) { $collapsed = ''; $icon = 'minus'; } elseif ($_SESSION['idcomponente'] == $componente['id']) { unset($_SESSION['idcomponente']); $collapsed = ''; $icon = 'minus'; } else { $collapsed = 'collapsed-box'; $icon = 'plus'; } echo '

'. ($same ? '' : '').$nome_componente.' ('.$stato_componente.')'.($same ? '' : '').'

'; echo '
'; // Nome echo '
{[ "type": "span", "label": "'.tr('Nome').':", "name": "nome", "value": "'.$componente['nome'].'" ]}
'; // Data echo '
{[ "type": "date", "label": "'.tr('Data').':", "name": "data_componente", "id": "data_componente'.$j.'", "value": "'.$componente['data'].'" ]}
'; // Campi previsti dal componente $fields = Ini::getFields($contenuto); array_shift($fields); foreach ($fields as $field) { echo '
'.$field.'
'; } // Interventi collegati al componente $interventi_collegati = Intervento::join('my_componenti_interventi', 'my_componenti_interventi.id_intervento', '=', 'in_interventi.id') ->where('id_componente', $componente['id']) ->get(); if (!$interventi_collegati->isEmpty()) { echo '
'.tr('Interventi collegati').': '; foreach ($interventi_collegati as $intervento) { echo ' '; } echo '
'.tr('Codice').' '.tr('Tipo').' '.tr('Stato').' '.tr('Data richiesta').' '.tr('Dettagli').'
'.$intervento->codice.' '.$intervento->tipo->descrizione.' '.$intervento->stato->descrizione.' '.dateFormat($intervento->data_richiesta).' '.Modules::link('Interventi', $intervento->id, null, '-').'
'; } else { echo '
'.tr('Nessuna attività collegato a questo componente!').'
'; } // Intervento di installazione del componente if (!empty($componente['idintervento'])) { $intervento_origine = Intervento::find($componente['idintervento']); echo ' '.Modules::link('Interventi', $componente['idintervento'], $intervento_origine->getReference()).'
'; } echo '

'; // Pulsante Salva/Elimina echo '
'.tr('Elimina').''; // Sostituisci componente con un altro dello stesso tipo, posso sostituire solo i componenti installati if (empty($componente['data_sostituzione'])) { echo ' '; } else { echo ' '; } echo ' '; echo '
'; $prev_componente = $nome_componente; } echo '
'; } else { echo '
'.tr('Nessun componente inserito').'.
'; } echo '
';