diff --git a/ajax_search.php b/ajax_search.php index 9e63bba2d..f6e5a104c 100644 --- a/ajax_search.php +++ b/ajax_search.php @@ -21,333 +21,6 @@ if (!isset($term)) { else { $i = 0; - /* - Interventi - */ - if (Modules::getPermission('Interventi') != '-') { - $campi = ['codice', '(SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id)', 'data_richiesta', 'info_sede', 'richiesta', 'descrizione', 'informazioniaggiuntive']; - $campi_text = ['Codice intervento', 'Data intervento', 'Data richiesta intervento', 'Sede intervento', 'Richiesta', 'Descrizione', 'Informazioni aggiuntive']; - - $id_module = Modules::get('Interventi')['id']; - - $build_query = ''; - - for ($c = 0; $c < sizeof($campi); ++$c) { - $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%"'; - } - - $build_query .= Modules::getAdditionalsQuery('Interventi'); - - $rs = $dbo->fetchArray('SELECT *, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS data FROM in_interventi WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '.$build_query); - - if (sizeof($rs) > 0) { - // Loop record corrispondenti alla ricerca - for ($r = 0; $r < sizeof($rs); ++$r) { - $result[$r + $i]['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['id']; - $result[$r + $i]['title'] = 'Intervento '.$rs[$r]['codice'].' del '.Translator::dateToLocale($rs[$r]['data']); - $result[$r + $i]['category'] = 'Interventi'; - $result[$r + $i]['labels'] = []; - - // Loop campi da evidenziare - for ($c = 0; $c < sizeof($campi); ++$c) { - if (preg_match('/'.$term.'/i', $rs[$r][$campi[$c]])) { - $text = $rs[$r][$campi[$c]]; - - // Evidenzio la parola cercata nei valori dei campi - preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); - - for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); - } - - $result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'
'; - } - } - - // Aggiunta nome anagrafica come ultimo campo - if (sizeof($ragioni_sociali) > 1) { - $result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'
'; - } - } - - $i += $r; - } - } - - /* - Preventivi - */ - if (Modules::getPermission('Contabilita') != '-') { - $campi = ['numero', 'nome', 'descrizione']; - $campi_text = ['Codice preventivo', 'Nome', 'Descrizione']; - - $rs = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name='Preventivi'"); - $id_module = $rs[0]['id']; - - $build_query = ''; - - for ($c = 0; $c < sizeof($campi); ++$c) { - $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%"'; - } - - $rs = $dbo->fetchArray('SELECT *, co_preventivi.id AS idpreventivo FROM co_preventivi WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '.$build_query); - - if (sizeof($rs) > 0) { - // Loop record corrispondenti alla ricerca - for ($r = 0; $r < sizeof($rs); ++$r) { - $result[$r + $i]['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['idpreventivo']; - $result[$r + $i]['title'] = 'Preventivo '.$rs[$r]['numero'].(($rs[$r]['data_accettazione'] == '0000-00-00') ? ' del '.Translator::dateToLocale($rs[$r]['data_accettazione']) : ''); - $result[$r + $i]['category'] = 'Preventivi'; - $result[$r + $i]['labels'] = []; - - // Loop campi da evidenziare - for ($c = 0; $c < sizeof($campi); ++$c) { - if (preg_match('/'.$term.'/i', $rs[$r][$campi[$c]])) { - $text = $rs[$r][$campi[$c]]; - - // Evidenzio la parola cercata nei valori dei campi - preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); - - for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); - } - - $result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'
'; - } - } - - // Aggiunta nome anagrafica come ultimo campo - if (sizeof($ragioni_sociali) > 1) { - $result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'
'; - } - } - - $i += $r; - } - } - - /* - Fatture - */ - if (Modules::getPermission('Contabilita') != '-') { - $campi = ['numero', 'numero_esterno', 'data', 'note', 'note_aggiuntive', 'buono_ordine']; - $campi_text = ['Numero', 'Numero secondario', 'Data', 'Note', 'Note aggiuntive', 'Buono d\'ordine']; - - $build_query = ''; - - for ($c = 0; $c < sizeof($campi); ++$c) { - $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%"'; - } - - $rs = $dbo->fetchArray('SELECT *, co_documenti.id AS iddocumento FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '.$build_query); - - if (sizeof($rs) > 0) { - // Loop record corrispondenti alla ricerca - for ($r = 0; $r < sizeof($rs); ++$r) { - if ($rs[$r]['numero_esterno'] == '') { - $numero = $rs[$r]['numero']; - } else { - $numero = $rs[$r]['numero_esterno']; - } - - // Controllo se si tratta di una fattura di acquisto o di vendita e seleziono il modulo opportuno - if ($rs[$r]['dir'] == 'uscita') { - $rsm = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name = 'Fatture di acquisto'"); - $id_module = $rsm[0]['id']; - } else { - $rsm = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name = 'Fatture di vendita'"); - $id_module = $rsm[0]['id']; - } - - $result[$r + $i]['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['iddocumento']; - $result[$r + $i]['title'] = $rs[$r]['descrizione'].' num. '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']); - $result[$r + $i]['category'] = $rs[$r]['descrizione']; - $result[$r + $i]['labels'] = []; - - // Loop campi da evidenziare - for ($c = 0; $c < sizeof($campi); ++$c) { - if (preg_match('/'.$term.'/i', $rs[$r][$campi[$c]])) { - $text = $rs[$r][$campi[$c]]; - - // Evidenzio la parola cercata nei valori dei campi - preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); - - for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); - } - - $result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'
'; - } - } - - // Aggiunta nome anagrafica come ultimo campo - if (sizeof($ragioni_sociali) > 1) { - $result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'
'; - } - } - - $i += $r; - } - } - - /* - Righe fatture - */ - if (Modules::getPermission('Contabilita') != '-') { - $campi = ['descrizione']; - $campi_text = ['Riga']; - - $build_query = ''; - - for ($c = 0; $c < sizeof($campi); ++$c) { - $build_query .= ' OR co_righe_documenti.'.$campi[$c].' LIKE "%'.$term.'%"'; - } - - $rs = $dbo->fetchArray('SELECT co_documenti.*, co_documenti.id AS iddocumento, co_tipidocumento.descrizione AS tipodoc, co_tipidocumento.dir, co_righe_documenti.descrizione FROM co_righe_documenti INNER JOIN (co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id) ON co_documenti.id=co_righe_documenti.iddocumento WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '.$build_query); - - if (sizeof($rs) > 0) { - // Loop record corrispondenti alla ricerca - for ($r = 0; $r < sizeof($rs); ++$r) { - if ($rs[$r]['numero_esterno'] == '') { - $numero = $rs[$r]['numero']; - } else { - $numero = $rs[$r]['numero_esterno']; - } - - // Controllo se si tratta di una fattura di acquisto o di vendita e seleziono il modulo opportuno - if ($rs[$r]['dir'] == 'uscita') { - $rsm = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name = 'Fatture di acquisto'"); - $id_module = $rsm[0]['id']; - } else { - $rsm = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name = 'Fatture di vendita'"); - $id_module = $rsm[0]['id']; - } - - $result[$r + $i]['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['iddocumento']; - $result[$r + $i]['title'] = $rs[$r]['tipodoc'].' num. '.$numero.' del '.Translator::dateToLocale($rs[$r]['data']); - $result[$r + $i]['category'] = $rs[$r]['tipodoc']; - $result[$r + $i]['labels'] = []; - - // Loop campi da evidenziare - for ($c = 0; $c < sizeof($campi); ++$c) { - if (preg_match('/'.$term.'/i', $rs[$r][$campi[$c]])) { - $text = $rs[$r][$campi[$c]]; - - // Evidenzio la parola cercata nei valori dei campi - preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); - - for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); - } - - $result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'
'; - } - } - - // Aggiunta nome anagrafica come ultimo campo - if (sizeof($ragioni_sociali) > 1) { - $result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'
'; - } - } - - $i += $r; - } - } - - /* - Articoli - */ - if (Modules::getPermission('Articoli') != '-') { - $campi = ['codice', 'descrizione', '(SELECT nome FROM mg_categorie WHERE mg_categorie.id = mg_articoli.id_categoria)', '(SELECT nome FROM mg_categorie WHERE mg_categorie.id = mg_articoli.id_sottocategoria)', 'note']; - $campi_text = ['Codice', 'Descrizione', 'Categoria', 'Subcategoria', 'Note']; - - $rs = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name='Articoli'"); - $id_module = $rs[0]['id']; - - $build_query = ''; - - for ($c = 0; $c < sizeof($campi); ++$c) { - $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%"'; - } - - $rs = $dbo->fetchArray('SELECT * FROM mg_articoli WHERE 1=0 '.$build_query); - - if (sizeof($rs) > 0) { - // Loop record corrispondenti alla ricerca - for ($r = 0; $r < sizeof($rs); ++$r) { - $result[$r + $i]['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['id']; - $result[$r + $i]['title'] = $rs[$r]['codice'].' - '.$rs[$r]['descrizione']; - $result[$r + $i]['category'] = 'Articoli'; - $result[$r + $i]['labels'] = []; - - // Loop campi da evidenziare - for ($c = 0; $c < sizeof($campi); ++$c) { - if (preg_match('/'.$term.'/i', $rs[$r][$campi[$c]])) { - $text = $rs[$r][$campi[$c]]; - - // Evidenzio la parola cercata nei valori dei campi - preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); - - for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); - } - - $result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'
'; - } - } - } - - $i += $r; - } - } - - /* - Automezzi - */ - if (Modules::getPermission('Automezzi') != '-') { - $campi = ['nome', 'descrizione', 'targa']; - $campi_text = ['Nome', 'Descrizione', 'Targa']; - - $rs = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name='Automezzi'"); - $id_module = $rs[0]['id']; - - $build_query = ''; - - for ($c = 0; $c < sizeof($campi); ++$c) { - $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%"'; - } - - $rs = $dbo->fetchArray('SELECT * FROM dt_automezzi WHERE 1=0 '.$build_query); - - if (sizeof($rs) > 0) { - // Loop record corrispondenti alla ricerca - for ($r = 0; $r < sizeof($rs); ++$r) { - $result[$r + $i]['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['id']; - $result[$r + $i]['title'] = $rs[$r]['nome']; - $result[$r + $i]['category'] = 'Automezzi'; - $result[$r + $i]['labels'] = []; - - // Loop campi da evidenziare - for ($c = 0; $c < sizeof($campi); ++$c) { - if (preg_match('/'.$term.'/i', $rs[$r][$campi[$c]])) { - $text = $rs[$r][$campi[$c]]; - - // Evidenzio la parola cercata nei valori dei campi - preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); - - for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); - } - - $result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'
'; - } - } - } - - $i += $r; - } - } - /* Ddt */ @@ -477,59 +150,5 @@ else { } } - /* - MyImpianti - */ - if (Modules::getPermission('MyImpianti') != '-') { - $campi = ['matricola', 'nome', 'descrizione', 'ubicazione', 'occupante', 'proprietario']; - $campi_text = ['Matricola', 'Nome', 'Descrizione', 'Ubicazione', 'Occupante', 'Proprietario']; - - $rs = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name='MyImpianti'"); - $id_module = $rs[0]['id']; - - $build_query = ''; - - for ($c = 0; $c < sizeof($campi); ++$c) { - $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%"'; - } - - $build_query .= Modules::getAdditionalsQuery('MyImpianti'); - - $rs = $dbo->fetchArray('SELECT * FROM my_impianti WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '.$build_query); - - if (sizeof($rs) > 0) { - // Loop record corrispondenti alla ricerca - for ($r = 0; $r < sizeof($rs); ++$r) { - $result[$r + $i]['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['matricola']; - $result[$r + $i]['title'] = $rs[$r]['matricola'].' - '.$rs[$r]['nome']; - $result[$r + $i]['category'] = 'MyImpianti'; - $result[$r + $i]['labels'] = []; - - // Loop campi da evidenziare - for ($c = 0; $c < sizeof($campi); ++$c) { - if (preg_match('/'.$term.'/i', $rs[$r][$campi[$c]])) { - $text = $rs[$r][$campi[$c]]; - - // Evidenzio la parola cercata nei valori dei campi - preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); - - for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); - } - - $result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'
'; - } - } - - // Aggiunta nome anagrafica come ultimo campo - if (sizeof($ragioni_sociali) > 1) { - $result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'
'; - } - } - - $i += $r; - } - } - $results = $result; } diff --git a/ajax_select.php b/ajax_select.php index 605390f16..030c55297 100644 --- a/ajax_select.php +++ b/ajax_select.php @@ -87,135 +87,6 @@ else { } break; - case 'conti': - if (Modules::get('Piano dei conti')['permessi'] != '-') { - $query = 'SELECT * FROM co_pianodeiconti2'; - - $rs = $dbo->fetchArray($query); - foreach ($rs as $r) { - $results[] = ['text' => $r['numero'].' '.$r['descrizione'], 'children' => []]; - - $subquery = 'SELECT * FROM co_pianodeiconti3 |where|'; - - $where = []; - $filter = []; - $search_fields = []; - - foreach ($elements as $element) { - $filter[] = 'id='.prepare($element); - } - if (!empty($filter)) { - $where[] = '('.implode(' OR ', $filter).')'; - } - - $where[] = 'idpianodeiconti2='.prepare($r['id']); - - if (!empty($search)) { - $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); - } - if (!empty($search_fields)) { - $where[] = '('.implode(' OR ', $search_fields).')'; - } - - $wh = ''; - if (count($where) != 0) { - $wh = 'WHERE '.implode(' AND ', $where); - } - $subquery = str_replace('|where|', $wh, $subquery); - - $rs2 = $dbo->fetchArray($subquery); - foreach ($rs2 as $r2) { - $results[count($results) - 1]['children'][] = ['id' => $r2['id'], 'text' => $r2['descrizione']]; - } - } - } - break; - - case 'conti-vendite': - if (Modules::get('Piano dei conti')['permessi'] != '-') { - $query = "SELECT co_pianodeiconti3.id, CONCAT_WS( ' ', co_pianodeiconti3.numero, co_pianodeiconti3.descrizione ) AS descrizione FROM co_pianodeiconti3 INNER JOIN (co_pianodeiconti2 INNER JOIN co_pianodeiconti1 ON co_pianodeiconti2.idpianodeiconti1=co_pianodeiconti1.id) ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id |where| ORDER BY co_pianodeiconti3.numero ASC"; - - foreach ($elements as $element) { - $filter[] = 'co_pianodeiconti3.id='.prepare($element); - } - - $where[] = "co_pianodeiconti1.descrizione='Economico'"; - $where[] = "co_pianodeiconti3.dir='entrata'"; - - if (!empty($search)) { - $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); - } - } - break; - - case 'conti-acquisti': - if (Modules::get('Piano dei conti')['permessi'] != '-') { - $query = "SELECT co_pianodeiconti3.id, CONCAT_WS( ' ', co_pianodeiconti3.numero, co_pianodeiconti3.descrizione ) AS descrizione FROM co_pianodeiconti3 INNER JOIN (co_pianodeiconti2 INNER JOIN co_pianodeiconti1 ON co_pianodeiconti2.idpianodeiconti1=co_pianodeiconti1.id) ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id |where| ORDER BY co_pianodeiconti3.numero ASC"; - - foreach ($elements as $element) { - $filter[] = 'co_pianodeiconti3.id='.prepare($element); - } - - $where[] = "co_pianodeiconti1.descrizione='Economico'"; - $where[] = "co_pianodeiconti3.dir='uscita'"; - - if (!empty($search)) { - $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); - } - } - break; - - case 'impianti': - if (Modules::get('MyImpianti')['permessi'] != '-' && isset($superselect['idanagrafica'])) { - $query = 'SELECT id, CONCAT(matricola, " - ", nome) AS descrizione FROM my_impianti |where| ORDER BY idsede'; - - foreach ($elements as $element) { - $filter[] = 'id='.prepare($element); - } - - $where[] = 'idanagrafica='.prepare($superselect['idanagrafica']); - $where[] = 'idsede='.prepare($superselect['idsede']); - - if (!empty($search)) { - $search_fields[] = 'nome LIKE '.prepare('%'.$search.'%'); - $search_fields[] = 'matricola LIKE '.prepare('%'.$search.'%'); - } - } - break; - - case 'componenti': - if (Modules::get('Gestione componenti')['permessi'] != '-' && isset($superselect['marticola'])) { - $query = 'SELECT id, nome AS descrizione, contenuto FROM my_impianto_componenti |where| ORDER BY id'; - - foreach ($elements as $element) { - $filter[] = 'idimpianto='.prepare($element); - } - - $temp = []; - $impianti = explode(',', $superselect['marticola']); - foreach ($impianti as $key => $idimpianto) { - $temp[] = 'idimpianto='.prepare($idimpianto); - } - $where[] = '('.implode(' OR ', $temp).')'; - - if (!empty($search)) { - $search_fields[] = 'nome LIKE '.prepare('%'.$search.'%'); - } - - $custom['contenuto'] = 'contenuto'; - - $results = AJAX::completeResults($query, $where, $filter, $search, $custom); - foreach ($results as $key => $value) { - $matricola = \Util\Ini::getValue($r['contenuto'], 'Matricola'); - - $results[$key]['text'] = (empty($matricola) ? '' : $matricola.' - ').$results[$key]['text']; - - unset($results[$key]['content']); - } - } - - break; - case 'categorie': if (Modules::get('Magazzino')['permessi'] != '-') { $query = 'SELECT id, nome AS descrizione FROM mg_categorie |where| ORDER BY id'; @@ -248,70 +119,6 @@ else { } break; - case 'preventivi': - if (Modules::get('Preventivi')['permessi'] != '-' && isset($superselect['idanagrafica'])) { - $query = 'SELECT co_preventivi.id AS id, an_anagrafiche.idanagrafica, CONCAT(numero, " ", nome) AS descrizione, co_preventivi.idtipointervento, (SELECT descrizione descrizione FROM in_tipiintervento WHERE in_tipiintervento.idtipointervento = co_preventivi.idtipointervento) AS idtipointervento_descrizione FROM co_preventivi INNER JOIN an_anagrafiche ON co_preventivi.idanagrafica=an_anagrafiche.idanagrafica |where| ORDER BY id'; - - foreach ($elements as $element) { - $filter[] = 'id='.prepare($element); - } - - $where[] = 'an_anagrafiche.idanagrafica='.prepare($superselect['idanagrafica']); - $where[] = "idstato NOT IN (SELECT `id` FROM co_statipreventivi WHERE descrizione='Bozza' OR descrizione='Rifiutato' OR descrizione='Pagato')"; - - if (!empty($search)) { - $search_fields[] = 'nome LIKE '.prepare('%'.$search.'%'); - } - - $custom['idtipointervento'] = 'idtipointervento'; - $custom['idtipointervento_descrizione'] = 'idtipointervento_descrizione'; - } - break; - - case 'preventivi_aperti': - if (Modules::get('Preventivi')['permessi'] != '-') { - $query = 'SELECT co_preventivi.id AS id, CONCAT(numero, " ", nome, " (", ragione_sociale, ")") AS descrizione FROM co_preventivi INNER JOIN an_anagrafiche ON co_preventivi.idanagrafica=an_anagrafiche.idanagrafica |where| ORDER BY id'; - - foreach ($elements as $element) { - $filter[] = 'idpreventivo='.prepare($element); - } - $where[] = 'idstato IN (1)'; - if (!empty($search)) { - $search_fields[] = 'nome LIKE '.prepare('%'.$search.'%'); - } - } - break; - - case 'contratti': - if (Modules::get('Contratti')['permessi'] != '-') { - $query = 'SELECT co_contratti.id AS id, CONCAT(numero, " ", nome) AS descrizione FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica |where| ORDER BY id'; - - foreach ($elements as $element) { - $filter[] = 'id='.prepare($element); - } - - $where[] = 'an_anagrafiche.idanagrafica='.prepare($superselect['idanagrafica']); - $where[] = 'idstato IN (SELECT `id` FROM co_staticontratti WHERE pianificabile = 1)'; - - if (!empty($search)) { - $search_fields[] = 'nome LIKE '.prepare('%'.$search.'%'); - } - } - break; - - case 'tipiintervento': - if (Modules::get('Interventi')['permessi'] != '-') { - $query = 'SELECT idtipointervento AS id, descrizione FROM in_tipiintervento |where| ORDER BY idtipointervento'; - - foreach ($elements as $element) { - $filter[] = 'idtipointervento='.prepare($element); - } - if (!empty($search)) { - $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); - } - } - break; - case 'misure': if (Modules::get('Magazzino')['permessi'] != '-') { $query = 'SELECT valore AS id, valore AS descrizione FROM mg_unitamisura |where| ORDER BY valore'; diff --git a/modules/anagrafiche/ajax/search.php b/modules/anagrafiche/ajax/search.php index 345d2a2cf..c6d3e876f 100644 --- a/modules/anagrafiche/ajax/search.php +++ b/modules/anagrafiche/ajax/search.php @@ -38,7 +38,7 @@ if (sizeof($rs) > 0) { preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); + $text = str_replace($matches[$m], "".$matches[$m].'', $r[$name]); } $result['labels'][] = $campi_text[$c].': '.$text.'
'; @@ -82,7 +82,7 @@ if (sizeof($rs) > 0) { preg_match('/'.$term.'/i', $rs[$r][$campi[$c]], $matches); for ($m = 0; $m < sizeof($matches); ++$m) { - $text = str_replace($matches[$m], "".$matches[$m].'', $text); + $text = str_replace($matches[$m], "".$matches[$m].'', $r[$name]); } $result['labels'][] = $campi_text[$c].': '.$text.'
'; diff --git a/modules/articoli/ajax/search.php b/modules/articoli/ajax/search.php new file mode 100644 index 000000000..d972b29c8 --- /dev/null +++ b/modules/articoli/ajax/search.php @@ -0,0 +1,54 @@ + 'codice', + 'Descrizione' => 'descrizione', + 'Categoria' => '(SELECT nome FROM mg_categorie WHERE mg_categorie.id = mg_articoli.id_categoria)', + 'Subcategoria' => '(SELECT nome FROM mg_categorie WHERE mg_categorie.id = mg_articoli.id_sottocategoria)', + 'Note' => 'note', +]; + +$query = 'SELECT *'; + +foreach ($fields as $name => $value) { + $query .= ', '.$value." AS '".str_replace("'", "\'", $name)."'"; +} + +$query .= ' FROM mg_articoli WHERE 1=0 '; + +foreach ($fields as $name => $value) { + $query .= ' OR '.$value.' LIKE "%'.$term.'%"'; +} + +$query .= Modules::getAdditionalsQuery('Articoli'); + +$rs = $dbo->fetchArray($query); + +foreach ($rs as $r) { + $result = []; + + $result['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$r['id']; + $result['title'] = $r['codice'].' - '.$r['descrizione']; + $result['category'] = 'Articoli'; + + // Campi da evidenziare + $result['labels'] = []; + foreach ($fields as $name => $value) { + if (str_contains($r[$name], $term)) { + $text = str_replace($term, "".$term.'', $r[$name]); + + $result['labels'][] = $name.': '.$text.'
'; + } + } + + // Aggiunta nome anagrafica come ultimo campo + if (sizeof($ragioni_sociali) > 1) { + $result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'
'; + } + + $results[] = $result; +} diff --git a/modules/automezzi/ajax/search.php b/modules/automezzi/ajax/search.php new file mode 100644 index 000000000..1c66d337c --- /dev/null +++ b/modules/automezzi/ajax/search.php @@ -0,0 +1,47 @@ + 'nome', + 'Descrizione' => 'descrizione', + 'Targa' => 'targa', +]; + +$query = 'SELECT *'; + +foreach ($fields as $name => $value) { + $query .= ', '.$value." AS '".str_replace("'", "\'", $name)."'"; +} + +$query .= ' FROM dt_automezzi WHERE 1=0 '; + +foreach ($fields as $name => $value) { + $query .= ' OR '.$value.' LIKE "%'.$term.'%"'; +} + +$query .= Modules::getAdditionalsQuery('Automezzi'); + +$rs = $dbo->fetchArray($query); + +foreach ($rs as $r) { + $result = []; + + $result['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$r['id']; + $result['title'] = $r['nome']; + $result['category'] = 'Automezzi'; + + // Campi da evidenziare + $result['labels'] = []; + foreach ($fields as $name => $value) { + if (str_contains($r[$name], $term)) { + $text = str_replace($term, "".$term.'', $r[$name]); + + $result['labels'][] = $name.': '.$text.'
'; + } + } + + $results[] = $result; +} diff --git a/modules/contratti/actions.php b/modules/contratti/actions.php index 5c93d3553..781893920 100644 --- a/modules/contratti/actions.php +++ b/modules/contratti/actions.php @@ -165,12 +165,12 @@ switch (post('op')) { $_SESSION['infos'][] = tr('Articolo aggiunto!'); break; - + case 'adddescrizione': if (!empty($id_record)) { $descrizione = post('descrizione'); $query = 'INSERT INTO co_righe2_contratti(idcontratto, descrizione, is_descrizione) VALUES('.prepare($id_record).', '.prepare($descrizione).', 1)'; - + if ($dbo->query($query)) { $_SESSION['infos'][] = tr('Riga descrittiva aggiunta!'); } @@ -179,10 +179,10 @@ switch (post('op')) { case 'editriga': $idriga = post('idriga'); - + $rs = $dbo->fetchArray("SELECT * FROM co_righe2_contratti WHERE id='".$idriga."'"); $is_descrizione = $rs[0]['is_descrizione']; - + $idarticolo = post('idarticolo'); $descrizione = post('descrizione'); @@ -207,9 +207,9 @@ switch (post('op')) { $desc_iva = $rs[0]['descrizione']; // Modifica riga generica sul documento - if($is_descrizione==0){ + if ($is_descrizione == 0) { $query = 'UPDATE co_righe2_contratti SET idarticolo='.prepare($idarticolo).', idiva='.prepare($idiva).', desc_iva='.prepare($desc_iva).', iva='.prepare($iva).', iva_indetraibile='.prepare($iva_indetraibile).', descrizione='.prepare($descrizione).', subtotale='.prepare($subtot).', sconto='.prepare($sconto).', sconto_unitario='.prepare($sconto_unitario).', tipo_sconto='.prepare($tipo_sconto).', um='.prepare($um).', qta='.prepare($qta).' WHERE id='.prepare($idriga); - }else{ + } else { $query = 'UPDATE co_righe2_contratti SET descrizione='.prepare($descrizione).' WHERE id='.prepare($idriga); } $dbo->query($query); diff --git a/modules/contratti/ajax/select.php b/modules/contratti/ajax/select.php new file mode 100644 index 000000000..6061b46d1 --- /dev/null +++ b/modules/contratti/ajax/select.php @@ -0,0 +1,21 @@ +'; - if($r['is_descrizione']==0){ + if ($r['is_descrizione'] == 0) { echo Translator::numberToLocale($r['qta']); } @@ -59,7 +59,7 @@ if (!empty($rs_art)) { // um echo ' '; - if($r['is_descrizione']==0){ + if ($r['is_descrizione'] == 0) { echo $r['um']; } @@ -69,7 +69,7 @@ if (!empty($rs_art)) { // costo unitario echo ' '; - if($r['is_descrizione']==0){ + if ($r['is_descrizione'] == 0) { echo Translator::numberToLocale($r['subtotale'] / $r['qta']).' €'; } @@ -79,7 +79,7 @@ if (!empty($rs_art)) { // iva echo ' '; - if($r['is_descrizione']==0){ + if ($r['is_descrizione'] == 0) { echo Translator::numberToLocale($r['iva'])." €
".$r['desc_iva'].''; @@ -90,7 +90,7 @@ if (!empty($rs_art)) { // Imponibile echo ' '; - if($r['is_descrizione']==0){ + if ($r['is_descrizione'] == 0) { echo Translator::numberToLocale($r['subtotale']).' €'; diff --git a/modules/fatture/ajax/search.php b/modules/fatture/ajax/search.php new file mode 100644 index 000000000..df66aeb6f --- /dev/null +++ b/modules/fatture/ajax/search.php @@ -0,0 +1,64 @@ + 'numero', + 'Numero secondario' => 'numero_esterno', + 'Data' => 'data', + 'Note' => 'note', + 'Note aggiuntive' => 'note_aggiuntive', + 'Buono d\'ordine' => 'buono_ordine', + 'Righe' => '(SELECT GROUP_CONCAT(descrizione SEPARATOR \' -- \') FROM co_righe_documenti WHERE co_righe_documenti.iddocumento = co_documenti.id)', +]; + +$query = 'SELECT *, co_documenti.id, co_tipidocumento.descrizione AS tipologia'; + +foreach ($fields as $name => $value) { + $query .= ', '.$value." AS '".str_replace("'", "\'", $name)."'"; +} + +$query .= ' FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '; + +foreach ($fields as $name => $value) { + $query .= ' OR '.$value.' LIKE "%'.$term.'%"'; +} + +//$query .= Modules::getAdditionalsQuery('Interventi'); + +$rs = $dbo->fetchArray($query); + +foreach ($rs as $r) { + $result = []; + + $module = ($r['dir'] == 'uscita') ? 'Fatture di acquisto' : 'Fatture di vendita'; + $id_module = Modules::get($module)['id']; + + $r['data'] = Translator::dateToLocale($r['data']); + $numero = empty($r['numero_esterno']) ? $r['numero'] : $r['numero_esterno']; + + $result['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$r['id']; + $result['title'] = $r['tipologia'].' num. '.$numero.' del '.$r['data']; + $result['category'] = $r['tipologia']; + + // Campi da evidenziare + $result['labels'] = []; + foreach ($fields as $name => $value) { + if (str_contains($r[$name], $term)) { + if ($name == 'Righe') { + $result['labels'][] = tr('Termine presente nelle righe del documento').'
'; + } else { + $text = str_replace($term, "".$term.'', $r[$name]); + + $result['labels'][] = $name.': '.$text.'
'; + } + } + } + + // Aggiunta nome anagrafica come ultimo campo + if (sizeof($ragioni_sociali) > 1) { + $result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'
'; + } + + $results[] = $result; +} diff --git a/modules/gestione_componenti/ajax/select.php b/modules/gestione_componenti/ajax/select.php new file mode 100644 index 000000000..0a1833c20 --- /dev/null +++ b/modules/gestione_componenti/ajax/select.php @@ -0,0 +1,38 @@ + $idimpianto) { + $temp[] = 'idimpianto='.prepare($idimpianto); + } + $where[] = '('.implode(' OR ', $temp).')'; + + if (!empty($search)) { + $search_fields[] = 'nome LIKE '.prepare('%'.$search.'%'); + } + + $custom['contenuto'] = 'contenuto'; + + $results = AJAX::completeResults($query, $where, $filter, $search, $custom); + foreach ($results as $key => $value) { + $matricola = \Util\Ini::getValue($r['contenuto'], 'Matricola'); + + $results[$key]['text'] = (empty($matricola) ? '' : $matricola.' - ').$results[$key]['text']; + + unset($results[$key]['content']); + } + } + + break; +} diff --git a/modules/interventi/ajax/search.php b/modules/interventi/ajax/search.php new file mode 100644 index 000000000..109d7f571 --- /dev/null +++ b/modules/interventi/ajax/search.php @@ -0,0 +1,56 @@ + 'codice', + 'Data intervento' => '(SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id)', + 'Data richiesta intervento' => 'data_richiesta', + 'Sede intervento' => 'info_sede', + 'Richiesta' => 'richiesta', + 'Descrizione' => 'descrizione', + 'Informazioni aggiuntive' => 'informazioniaggiuntive', +]; + +$query = 'SELECT *, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.id) AS data'; + +foreach ($fields as $name => $value) { + $query .= ', '.$value." AS '".str_replace("'", "\'", $name)."'"; +} + +$query .= ' FROM in_interventi WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '; + +foreach ($fields as $name => $value) { + $query .= ' OR '.$value.' LIKE "%'.$term.'%"'; +} + +$query .= Modules::getAdditionalsQuery('Interventi'); + +$rs = $dbo->fetchArray($query); + +foreach ($rs as $r) { + $result = []; + + $result['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$r['id']; + $result['title'] = 'Intervento '.$r['codice'].' del '.Translator::dateToLocale($r['data']); + $result['category'] = 'Interventi'; + + // Campi da evidenziare + $result['labels'] = []; + foreach ($fields as $name => $value) { + if (str_contains($r[$name], $term)) { + $text = str_replace($term, "".$term.'', $r[$name]); + + $result['labels'][] = $name.': '.$text.'
'; + } + } + + // Aggiunta nome anagrafica come ultimo campo + if (sizeof($ragioni_sociali) > 1) { + $result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'
'; + } + + $results[] = $result; +} diff --git a/modules/interventi/ajax/select.php b/modules/interventi/ajax/select.php new file mode 100644 index 000000000..e0b598aab --- /dev/null +++ b/modules/interventi/ajax/select.php @@ -0,0 +1,17 @@ + 'matricola', + 'Nome' => 'nome', + 'Descrizione' => 'descrizione', + 'Ubicazione' => 'ubicazione', + 'Occupante' => 'occupante', + 'Proprietario' => 'proprietario', +]; + +$query = 'SELECT *'; + +foreach ($fields as $name => $value) { + $query .= ', '.$value." AS '".str_replace("'", "\'", $name)."'"; +} + +$query .= ' FROM my_impianti WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '; + +foreach ($fields as $name => $value) { + $query .= ' OR '.$value.' LIKE "%'.$term.'%"'; +} + +$query .= Modules::getAdditionalsQuery('MyImpianti'); + +$rs = $dbo->fetchArray($query); + +foreach ($rs as $r) { + $result = []; + + $result['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$r['id']; + $result['title'] = $r['matricola'].' - '.$r['nome']; + $result['category'] = 'MyImpianti'; + + // Campi da evidenziare + $result['labels'] = []; + foreach ($fields as $name => $value) { + if (str_contains($r[$name], $term)) { + $text = str_replace($term, "".$term.'', $r[$name]); + + $result['labels'][] = $name.': '.$text.'
'; + } + } + + // Aggiunta nome anagrafica come ultimo campo + if (sizeof($ragioni_sociali) > 1) { + $result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'
'; + } + + $results[] = $result; +} diff --git a/modules/my_impianti/ajax/select.php b/modules/my_impianti/ajax/select.php new file mode 100644 index 000000000..9279bb612 --- /dev/null +++ b/modules/my_impianti/ajax/select.php @@ -0,0 +1,23 @@ +fetchArray($query); + foreach ($rs as $r) { + $results[] = ['text' => $r['numero'].' '.$r['descrizione'], 'children' => []]; + + $subquery = 'SELECT * FROM co_pianodeiconti3 |where|'; + + $where = []; + $filter = []; + $search_fields = []; + + foreach ($elements as $element) { + $filter[] = 'id='.prepare($element); + } + if (!empty($filter)) { + $where[] = '('.implode(' OR ', $filter).')'; + } + + $where[] = 'idpianodeiconti2='.prepare($r['id']); + + if (!empty($search)) { + $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); + } + if (!empty($search_fields)) { + $where[] = '('.implode(' OR ', $search_fields).')'; + } + + $wh = ''; + if (count($where) != 0) { + $wh = 'WHERE '.implode(' AND ', $where); + } + $subquery = str_replace('|where|', $wh, $subquery); + + $rs2 = $dbo->fetchArray($subquery); + foreach ($rs2 as $r2) { + $results[count($results) - 1]['children'][] = ['id' => $r2['id'], 'text' => $r2['descrizione']]; + } + } + + break; + + case 'conti-vendite': + $query = "SELECT co_pianodeiconti3.id, CONCAT_WS( ' ', co_pianodeiconti3.numero, co_pianodeiconti3.descrizione ) AS descrizione FROM co_pianodeiconti3 INNER JOIN (co_pianodeiconti2 INNER JOIN co_pianodeiconti1 ON co_pianodeiconti2.idpianodeiconti1=co_pianodeiconti1.id) ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id |where| ORDER BY co_pianodeiconti3.numero ASC"; + + foreach ($elements as $element) { + $filter[] = 'co_pianodeiconti3.id='.prepare($element); + } + + $where[] = "co_pianodeiconti1.descrizione='Economico'"; + $where[] = "co_pianodeiconti3.dir='entrata'"; + + if (!empty($search)) { + $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); + } + + break; + + case 'conti-acquisti': + $query = "SELECT co_pianodeiconti3.id, CONCAT_WS( ' ', co_pianodeiconti3.numero, co_pianodeiconti3.descrizione ) AS descrizione FROM co_pianodeiconti3 INNER JOIN (co_pianodeiconti2 INNER JOIN co_pianodeiconti1 ON co_pianodeiconti2.idpianodeiconti1=co_pianodeiconti1.id) ON co_pianodeiconti3.idpianodeiconti2=co_pianodeiconti2.id |where| ORDER BY co_pianodeiconti3.numero ASC"; + + foreach ($elements as $element) { + $filter[] = 'co_pianodeiconti3.id='.prepare($element); + } + + $where[] = "co_pianodeiconti1.descrizione='Economico'"; + $where[] = "co_pianodeiconti3.dir='uscita'"; + + if (!empty($search)) { + $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); + } + + break; +} diff --git a/modules/preventivi/ajax/search.php b/modules/preventivi/ajax/search.php new file mode 100644 index 000000000..cc641575f --- /dev/null +++ b/modules/preventivi/ajax/search.php @@ -0,0 +1,57 @@ + 'numero', + 'Nome' => 'nome', + 'Descrizione' => 'descrizione', +]; + +$query = 'SELECT *'; + +foreach ($fields as $name => $value) { + $query .= ', '.$value." AS '".str_replace("'", "\'", $name)."'"; +} + +$query .= ' FROM co_preventivi WHERE idanagrafica IN('.implode(',', $idanagrafiche).') '; + +foreach ($fields as $name => $value) { + $query .= ' OR '.$value.' LIKE "%'.$term.'%"'; +} + +$query .= Modules::getAdditionalsQuery('Preventivi'); + +$rs = $dbo->fetchArray($query); + +foreach ($rs as $r) { + $result = []; + + $result['link'] = ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$r['id']; + $result['title'] = 'Preventivo '.$r['numero']; + + if ($rs[$r]['data_accettazione'] == '0000-00-00') { + $result['title'] .= ' del '.Translator::dateToLocale($rs[$r]['data_accettazione']); + } + + $result['category'] = 'Preventivi'; + + // Campi da evidenziare + $result['labels'] = []; + foreach ($fields as $name => $value) { + if (str_contains($r[$name], $term)) { + $text = str_replace($term, "".$term.'', $r[$name]); + + $result['labels'][] = $name.': '.$text.'
'; + } + } + + // Aggiunta nome anagrafica come ultimo campo + if (sizeof($ragioni_sociali) > 1) { + $result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'
'; + } + + $results[] = $result; +} diff --git a/modules/preventivi/ajax/select.php b/modules/preventivi/ajax/select.php new file mode 100644 index 000000000..2629f89eb --- /dev/null +++ b/modules/preventivi/ajax/select.php @@ -0,0 +1,39 @@ +