diff --git a/ajax_dataload.php b/ajax_dataload.php index e4e8da30e..0b3077ab6 100644 --- a/ajax_dataload.php +++ b/ajax_dataload.php @@ -58,19 +58,19 @@ if (!empty($result_query) && $result_query != 'menu' && $result_query != 'custom } } - /*filtro sezionali*/ - if (isset($_SESSION['entrata']['idsezionale']) and (($modules_info[$id_module]['name'] == 'Fatture di vendita') or ($modules_info[$id_module]['name'] == 'Laboratorio') or ($modules_info[$id_module]['name'] == 'Ticket'))) { + // Ricerca + if (!empty($search_filters)) { + $result_query = str_replace('2=2', '2=2 AND ('.implode(' AND ', $search_filters).') ', $result_query); + } + + // Filtro sezionali + if (isset($_SESSION['entrata']['idsezionale']) && (($modules_info[$id_module]['name'] == 'Fatture di vendita') || ($modules_info[$id_module]['name'] == 'Laboratorio') || ($modules_info[$id_module]['name'] == 'Ticket'))) { $result_query = str_replace('1=1', " 1=1 AND idsezionale = '".$_SESSION['entrata']['idsezionale']."' ", $result_query); } - if (isset($_SESSION['uscita']['idsezionale']) and ($modules_info[$id_module]['name'] == 'Fatture di acquisto')) { + if (isset($_SESSION['uscita']['idsezionale']) && ($modules_info[$id_module]['name'] == 'Fatture di acquisto')) { $result_query = str_replace('1=1', " 1=1 AND idsezionale = '".$_SESSION['uscita']['idsezionale']."' ", $result_query); } - /*fine filtro sezionali*/ - - if (!empty($search_filters)) { - $result_query = str_replace('2=2', '2=2 AND ('.implode(' AND ', $search_filters).') ', $result_query); - } // Filtri derivanti dai permessi (eventuali) if (empty($id_plugin)) { diff --git a/modules/contratti/plugins/contratti.pianificazioneinterventi.php b/modules/contratti/plugins/contratti.pianificazioneinterventi.php index 03cdef60c..58a3d9fa1 100644 --- a/modules/contratti/plugins/contratti.pianificazioneinterventi.php +++ b/modules/contratti/plugins/contratti.pianificazioneinterventi.php @@ -31,170 +31,128 @@ switch (filter('op')) { 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); + //pianificazione + case 'pianificazione': - if (empty($codice)) { - $rs = $dbo->fetchArray('SELECT codice FROM in_interventi WHERE codice LIKE '.prepare($template).' ORDER BY codice DESC LIMIT 0,1'); + $idcontratto_riga = filter('idcontratto_riga'); + $intervallo = filter('intervallo'); + $parti_da_oggi = post('parti_da_oggi'); - $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, + if (!empty($idcontratto_riga) && !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); - 'codice' => $codice, - 'data_richiesta' => $data_richiesta, - 'richiesta' => $richiesta, - ]); + $idtipointervento = $rsp[0]['idtipointervento']; + $idsede = $rsp[0]['idsede']; + $richiesta = $rsp[0]['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; - - + //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) && (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) && (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 @@ -248,18 +206,16 @@ if (count($rsp) != 0) { '_NUM_' => $rsp2[0]['codice'], '_DATE_' => Translator::dateToLocale($rsp2[0]['data']), ])); - - $disabled = 'disabled'; - + + $disabled = 'disabled'; } else { $info_intervento = '- '.('Nessuno').' -'; - $disabled = ''; + $disabled = ''; + } + + if (date('Y', strtotime($records[0]['data_conclusione'])) < 1971) { + $records[0]['data_conclusione'] = ''; } - - - if (date('Y', strtotime($records[0]['data_conclusione']))<1971){ - $records[0]['data_conclusione'] = ''; - } echo '