query($query)) { $_SESSION['infos'][] = tr('Intervento pianificato!'); } else { $_SESSION['errors'][] = tr("Errore durante l'aggiunta dell'intervento!"); } } break; // Eliminazione intervento case 'depianifica': $id = filter('id'); $dbo->query('DELETE FROM `co_righe_contratti` WHERE id='.prepare($id)); $_SESSION['infos'][] = tr('Pianificazione eliminata!'); redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin); break; //pianificazione case 'pianificazione': $idcontratto_riga = filter('idcontratto_riga'); $intervallo = filter('intervallo'); $parti_da_oggi = post('parti_da_oggi'); if (!empty($idcontratto_riga) and !empty($intervallo) ){ $qp = 'SELECT *, (SELECT idanagrafica FROM co_contratti WHERE id = '.$id_record.' ) AS idanagrafica, (SELECT data_conclusione FROM co_contratti WHERE id = '.$id_record.' ) AS data_conclusione, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_righe_contratti.idtipointervento) AS tipointervento FROM co_righe_contratti WHERE id = '.$idcontratto_riga; $rsp = $dbo->fetchArray($qp); $idtipointervento = $rsp[0]['idtipointervento']; $idsede = $rsp[0]['idsede']; $richiesta = $rsp[0]['richiesta']; //mi serve per la pianificazione interventi $idanagrafica = $rsp[0]['idanagrafica']; $data_conclusione = $rsp[0]['data_conclusione']; $data_richiesta = $rsp[0]['data_richiesta']; //se voglio pianificare anche le date precedenti ad oggi (parto da questo promemoria) if ($parti_da_oggi){ //oggi $min_date = date('Y-m-d'); }else{ $min_date = date('Y-m-d', strtotime($data_richiesta)); } //inizio controllo data_conclusione, data valida e maggiore della $min_date if ( (date('Y', strtotime($data_conclusione)) > 1970) and (date('Y-m-d', strtotime($min_date)) < date('Y-m-d', strtotime($data_conclusione))) ) { //Ciclo partendo dalla data_richiesta fino all data conclusione del contratto while ( date('Y-m-d', strtotime($data_richiesta)) < date('Y-m-d', strtotime($data_conclusione)) ){ //calcolo nuova data richiesta $data_richiesta = date('Y-m-d', strtotime($data_richiesta. " + ".intval($intervallo)." days") ); //controllo nuova data richiesta --> solo date maggiori o uguali di [oggi o data richiesta iniziale] ma che non superano la data di fine del contratto if ( (date('Y-m-d', strtotime($data_richiesta)) >= $min_date ) and (date('Y-m-d', strtotime($data_richiesta)) <= date('Y-m-d', strtotime($data_conclusione))) ){ //Controllo che non esista già un promemoria idcontratto, idtipointervento e data_richiesta. if ( count($dbo->fetchArray("SELECT id FROM co_righe_contratti WHERE data_richiesta = '".$data_richiesta."' AND idtipointervento = '".$idtipointervento."' AND idcontratto = '".$id_record."' ")) == 0 ){ $query = 'INSERT INTO `co_righe_contratti`(`idcontratto`, `idtipointervento`, `data_richiesta`, `richiesta`, `idsede`) VALUES('.prepare($id_record).', '.prepare($idtipointervento).', '.prepare($data_richiesta).', '.prepare($richiesta).', '.prepare($idsede).')'; if ($dbo->query($query)) { $idriga = $dbo->lastInsertedID(); $_SESSION['infos'][] = tr('Promemoria intervento pianificato!'); //pianificare anche l' intervento? if ($post['pianifica_intervento']){ /*$orario_inizio = post('orario_inizio'); $orario_fine = post('orario_fine');*/ //$idanagrafica = 2; //intervento sempre nello stato "In programmazione" $idstatointervento = 'WIP'; //calcolo codice intervento $formato = get_var('Formato codice intervento'); $template = str_replace('#', '%', $formato); $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice=(SELECT MAX(CAST(codice AS SIGNED)) FROM in_interventi) AND codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); $codice = get_next_code($rs[0]['codice'], 1, $formato); if (empty($codice)) { $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); $codice = get_next_code($rs[0]['codice'], 1, $formato); } // Creo intervento $dbo->insert('in_interventi', [ 'idanagrafica' => $idanagrafica, 'idclientefinale' => post('idclientefinale') ?: 0, 'idstatointervento' => $idstatointervento, 'idtipointervento' => $idtipointervento, 'idsede' => $idsede ?: 0, 'idautomezzo' => $idautomezzo ?: 0, 'codice' => $codice, 'data_richiesta' => $data_richiesta, 'richiesta' => $richiesta, ]); $idintervento = $dbo->lastInsertedID(); $idtecnici = post('idtecnico'); //aggiungo i tecnici foreach ($idtecnici as $idtecnico) { add_tecnico($idintervento, $idtecnico, $data_richiesta.' '.post('orario_inizio'), $data_richiesta.' '.post('orario_fine'), $id_record); } //collego l'intervento ai promemoria $dbo->query('UPDATE co_righe_contratti SET idintervento='.prepare($idintervento).' WHERE id='.prepare($idriga)); // $_SESSION['infos'][] = tr('Intervento '.$codice.' pianificato correttamente.'); $_SESSION['infos'][] = tr('Interventi pianificati correttamente.'); } //fine if pianificazione intervento }else{ $_SESSION['errors'][] = tr('Errore durante esecuzione query di pianificazione. #'.$idcontratto_riga); } }else{ $_SESSION['warnings'][] = tr("Esiste già un promemoria pianificato per il ".readDate($data_richiesta)."."); } } //fine controllo nuova data richiesta } //fine ciclo while }else{ $_SESSION['errors'][] = tr('Nessuna data di conclusione del contratto oppure quest\'ultima è già trascorsa, impossibile pianificare nuovi promemoria.'); } //fine controllo data_conclusione }else{ $_SESSION['errors'][] = tr('Errore durante la pianificazione. #'.$idcontratto_riga); } redirect($rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$id_record.'#tab_'.$id_plugin); break; } // Righe già inserite $qp = 'SELECT *, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=co_righe_contratti.idtipointervento) AS tipointervento FROM co_righe_contratti WHERE idcontratto='.prepare($id_record).' ORDER BY data_richiesta ASC'; $rsp = $dbo->fetchArray($qp); $pianificabile = $dbo->fetchNum('SELECT id FROM co_staticontratti WHERE pianificabile = 1 AND descrizione = '.prepare($records[0]['stato'])); echo '
'.tr('Puoi pianificare dei "promemoria" degli interventi da effettuare entro determinate scadenze').'
'.tr('Questi promemoria serviranno per semplificare la pianificazione del giorno esatto di intervento nel caso, ad esempio, di interventi mensili e verranno visualizzati nella dashboard').'.
'; // Nessun intervento pianificato if (count($rsp) != 0) { echo ''.tr('Entro il').' | '.tr('Tipo intervento').' | '.tr('Descrizione').' | '.tr('Intervento collegato').' | '.tr('Sede').' | '.tr('Opzioni').' |
---|---|---|---|---|---|
'.Translator::dateToLocale($rsp[$i]['data_richiesta']).' | '.$rsp[$i]['tipointervento'].' | '.nl2br($rsp[$i]['richiesta']).' | '.$info_intervento.' | '.$info_sede.' | '; echo ' '; echo ' '; echo ' '; echo ' |
'.tr('Pianifica promemoria per un nuovo intervento').':