// Ogni data può avere più voci di servizio da salvare
foreach($ordiniservizioas$n=>$idvoce){
// Aggiunta ordine di servizio solo se la voce è spuntata
if(in_array($idvoce,$post['idvoce'])){
// Creazione ordine di servizio per data di scadenza
if($prev_data!=$data_scadenza){
$dbo->query('INSERT INTO co_ordiniservizio(idcontratto, data_scadenza, idimpianto, stato) VALUES('.prepare($id_record).', '.prepare($data_scadenza).', '.prepare($post['matricola']).", 'aperto')");
$idordineservizio=$dbo->lastInsertedID();
}
$dbo->query('INSERT INTO co_ordiniservizio_vociservizio(idordineservizio, voce, categoria, eseguito) VALUES('.prepare($idordineservizio).', (SELECT descrizione FROM in_vociservizio WHERE id='.prepare($idvoce).'), (SELECT categoria FROM in_vociservizio WHERE id='.prepare($idvoce).'), 0 )');
}
$prev_data=$data_scadenza;
}
}
$_SESSION['infos'][]=_('Ordini di servizio generati correttamente!');
}
// Eliminazione pianificazione specifica
elseif($get['op']=='del_ordineservizio'){
$idordineservizio=$get['idordineservizio'];
$n=$dbo->fetchNum('SELECT id FROM co_ordiniservizio WHERE id='.prepare($idordineservizio)." AND stato='aperto'");
if($n==1){
// Eliminazione ordine di servizio
if($dbo->query('DELETE FROM co_ordiniservizio WHERE id='.prepare($idordineservizio))){
// Eliminazione voci di servizio collegate
$dbo->query('DELETE FROM co_ordiniservizio_vociservizio WHERE idordineservizio='.prepare($idordineservizio));
$_SESSION['infos'][]=_('Ordine di servizio eliminato correttamente!');
}
}
// Non si può eliminare l'ordine di servizio perché è chiuso
else{
$_SESSION['infos'][]=_('Ordine di servizio già chiuso, impossibile eliminarlo!');
// (SELECT idsede FROM my_impianti WHERE idimpianto=co_ordiniservizio.idimpianto)
$rs=$dbo->fetchArray("SELECT *, (SELECT CONCAT_WS(' ', nomesede, citta) FROM an_sedi WHERE id=(SELECT idsede FROM my_impianti WHERE idimpianto=co_ordiniservizio.idimpianto LIMIT 0,1)) AS sede, (SELECT CONCAT_WS(' - ', matricola, nome) FROM my_impianti WHERE id=co_ordiniservizio.idimpianto) AS impianto, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=co_ordiniservizio.idintervento) AS data_intervento FROM co_ordiniservizio WHERE idcontratto=".prepare($id_record).' ORDER BY data_scadenza ASC');
<ahref="'.$rootdir.'/controller.php?id_module='.Modules::getModule('Voci di servizio')['id'].'">'._('Iniziaora').'...</a>
</p>';
}
// Elenco voci di servizio con mesi in cui eseguirle
else{
// Calcolo mese iniziale e finale del contratto
$rs2=$dbo->fetchArray('SELECT data_accettazione, data_conclusione, TIMESTAMPDIFF(MONTH, data_accettazione, data_conclusione) AS mesi FROM co_contratti WHERE id='.prepare($id_record));
{["type":"select","label":"'._('Impianto').'","name":"matricola","values":"query=SELECT my_impianti.id, CONCAT(my_impianti.matricola, \" - \", my_impianti.nome) AS descrizione, an_sedi.optgroup FROM my_impianti INNER JOIN (SELECT id, CONCAT(an_sedi.nomesede, \"(\", an_sedi.citta, \")\") AS optgroup FROM an_sedi WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' UNION SELECT 0, \'Sede legale\') AS an_sedi ON my_impianti.idsede = an_sedi.id WHERE my_impianti.idanagrafica='.prepare($records[0]['idanagrafica']).' AND my_impianti.id NOT IN(SELECT idimpianto FROM co_ordiniservizio WHERE idcontratto='.prepare($id_record).') ORDER BY idsede ASC, matricola ASC"]}
</div>';
// Indice voci di servizio
echo'
<divclass="col-md-6">
{["type":"select","label":"'._('Voci di servizio da pianificare').'","name":"idvoce[]","values":"query=SELECT id, descrizione, categoria AS optgroup FROM in_vociservizio ORDER BY categoria ASC","multiple":1,"extra":"onchange=\"$(this).find(\'option\').each( function(){ if( $(this).is(\':selected\') ){$(\'#voce_\'+$(this).val()).removeClass(\'hide\'); }else{$(\'#voce_\'+$(this).val()).addClass(\'hide\'); } });\""]}
<buttontype="button"class="btn btn-primary"onclick="if($(\'#matricola\').val() && $(\'#idvoce\').val() ){ if( confirm(\'Pianificare questo ordine di servizio?\') ){$(\'#plan_form\').submit(); } } else { if ( !$(\'#matricola\').val()) {alert (\'Seleziona un impianto.\'); $(\'#matricola\').focus();}else { alert (\'Seleziona le voci di servizio da pianificare.\'); $(\'#idvoce\').focus(); } }">
// Opzione di copia pianificazione solo se ci sono ancora impianti non pianificati
$query2='SELECT * FROM my_impianti WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' AND id IN (SELECT idimpianto FROM co_ordiniservizio WHERE idcontratto='.prepare($id_record).')';
$cont=$dbo->fetchNum($query2);
if($cont>0){
// Elenco impianti già pianificati
echo'
<hr>
<divclass="row">
<divclass="col-md-6">
{["type":"select","label":"'._('Copiare la pianificazione da un altro impianto').'","name":"matricola_src","values":"query=SELECT my_impianti.id, CONCAT(my_impianti.matricola, \" - \", my_impianti.nome) AS descrizione, an_sedi.optgroup FROM my_impianti INNER JOIN (SELECT id, CONCAT(an_sedi.nomesede, \"(\", an_sedi.citta, \")\") AS optgroup FROM an_sedi WHERE idanagrafica='.prepare($records[0]['idanagrafica']).' UNION SELECT 0, \'Sede legale\') AS an_sedi ON my_impianti.idsede = an_sedi.id WHERE my_impianti.idanagrafica='.prepare($records[0]['idanagrafica']).' AND my_impianti.id IN(SELECT idimpianto FROM co_ordiniservizio WHERE idcontratto='.prepare($id_record).') ORDER BY idsede ASC, matricola ASC"]}