fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo htmlspecialchars_decode($rs[$i]['ragione_sociale'], ENT_QUOTES); if (($i + 1) < $n) { echo '|'; } } } // Elenco città elseif ($op == 'getcitta') { $q = 'SELECT DISTINCT(citta) FROM an_anagrafiche WHERE 1=1 '.Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY citta'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo htmlspecialchars_decode($rs[$i]['citta'], ENT_QUOTES); if (($i + 1) < $n) { echo '|'; } } } // Elenco province elseif ($op == 'getprovince') { $q = 'SELECT DISTINCT(provincia) FROM an_anagrafiche WHERE 1=1 '.Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY provincia'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['provincia']); if (($i + 1) < $n) { echo '|'; } } } // Elenco cap elseif ($op == 'getcap') { $q = 'SELECT DISTINCT(cap) FROM an_anagrafiche WHERE 1=1 '.Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY cap'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['cap']); if (($i + 1) < $n) { echo '|'; } } } // Elenco settori elseif ($op == 'getsettori') { $q = 'SELECT DISTINCT(settore) FROM an_anagrafiche WHERE 1=1 '.Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY settore'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['settore'], ENT_QUOTES); if (($i + 1) < $n) { echo '|'; } } } // Elenco marche elseif ($op == 'getmarche') { $q = 'SELECT DISTINCT(marche) FROM an_anagrafiche WHERE 1=1 '.Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY marche'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['marche'], ENT_QUOTES); if (($i + 1) < $n) { echo '|'; } } } // Elenco e-mail - uso la funzione nativa di php "trim" per rimuovere eventuali spazi dalle e-mail elseif ($op == 'getemail') { $idanagrafica = $get['idanagrafica']; if ($idanagrafica != '') { $WHERE_IDANAGRAFICA = 'AND idanagrafica = '.$idanagrafica; } // tutti i referenti per questo cliente $q = 'SELECT DISTINCT(email),idanagrafica,nome FROM an_referenti WHERE 1=1 '.$WHERE_IDANAGRAFICA.' ORDER BY idanagrafica'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { if (trim($rs[$i]['email']) != '') { echo html_entity_decode($rs[$i]['nome'].' <'.trim($rs[$i]['email']).'>'); if (($i) < $n) { echo '|'; } } } // -- // tutti gli agenti $q = "SELECT DISTINCT(email),ragione_sociale,an_anagrafiche.idanagrafica FROM an_anagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica WHERE idtipoanagrafica=(SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Agente') ORDER BY idanagrafica"; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { if (trim($rs[$i]['email']) != '') { echo html_entity_decode($rs[$i]['nome'].' <'.trim($rs[$i]['email']).'>'); if (($i) < $n) { echo '|'; } } } // -- // email azienda di questo cliente $q = 'SELECT DISTINCT(email),ragione_sociale,idanagrafica FROM an_anagrafiche WHERE 1=1 '.$WHERE_IDANAGRAFICA.' ORDER BY idanagrafica'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { if (trim($rs[$i]['email']) != '') { echo html_entity_decode($rs[$i]['ragione_sociale'].' <'.trim($rs[$i]['email']).'>'); if (($i + 1) < $n) { echo '|'; } } } } // Elenco sedi elseif ($op == 'get_sedi') { $idanagrafica = $get['idanagrafica']; $q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='".$idanagrafica."' ".Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY id'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['id'].':'.$rs[$i]['descrizione']); if (($i + 1) < $n) { echo '|'; } } } // Elenco sedi con \n"; echo "\n"; for ($i = 0; $i < $n; ++$i) { echo '\n"; } } elseif ($op == 'get_default_value') { $idanagrafica = $get['idanagrafica']; $q = "SELECT idtipointervento_default FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."' ".Modules::getAdditionalsQuery('Anagrafiche').''; $rs = $dbo->fetchArray($q); echo html_entity_decode($rs[0]['idtipointervento_default'], ENT_QUOTES); } break; case 'Articoli': // Elenco categorie if ($op == 'getcategorie') { $q = 'SELECT DISTINCT(categoria) FROM mg_articoli WHERE 1=1 '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY categoria'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['categoria']); if (($i + 1) < $n) { echo '|'; } } } // Elenco subcategorie elseif ($op == 'getsubcategorie') { $q = 'SELECT DISTINCT(subcategoria) FROM mg_articoli WHERE 1=1 '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY subcategoria'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['subcategoria']); if (($i + 1) < $n) { echo '|'; } } } // Elenco descrizione elseif ($op == 'getdescrizione') { $q = 'SELECT DISTINCT(descrizione) FROM mg_articoli WHERE 1=1 '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY descrizione'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['descrizione']); if (($i + 1) < $n) { echo '|'; } } } // Elenco codici elseif ($op == 'getcodice') { $q = 'SELECT DISTINCT(codice) FROM mg_articoli WHERE 1=1 '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY codice'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['codice']); if (($i + 1) < $n) { echo '|'; } } } // Elenco lotti in base all'articolo elseif ($op == 'getlotti') { $idarticolo = $get['idarticolo']; $q = 'SELECT DISTINCT(lotto) FROM mg_prodotti WHERE id_articolo="'.$idarticolo.'" '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY lotto ASC'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); echo "\n"; for ($i = 0; $i < $n; ++$i) { $dir = 'entrata'; $qs = 'SELECT COUNT(serial) AS num_seriali FROM mg_prodotti WHERE id_articolo='.prepare($idarticolo).' AND lotto='.prepare($rs[$i]['lotto']).' '. 'AND (serial NOT IN(SELECT serial FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id WHERE lotto='.prepare($rs[$i]['lotto']).' AND serial=mg_prodotti.serial AND dir = '.prepare($dir).') '. 'AND serial NOT IN(SELECT serial FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine = or_ordini.id INNER JOIN or_tipiordine ON or_ordini.idtipoordine = or_tipiordine.id WHERE lotto='.prepare($rs[$i]['lotto']).' AND serial=mg_prodotti.serial AND dir = '.prepare($dir).') '. 'AND serial NOT IN(SELECT serial FROM dt_righe_ddt INNER JOIN dt_ddt ON dt_righe_ddt.idddt = dt_ddt.id INNER JOIN dt_tipiddt ON dt_ddt.idtipoddt = dt_tipiddt.id WHERE lotto='.prepare($rs[$i]['lotto']).' AND serial=mg_prodotti.serial AND dir = '.prepare($dir).') '. 'AND serial NOT IN(SELECT serial FROM mg_articoli_interventi WHERE lotto='.prepare($rs[$i]['lotto']).' AND serial=mg_prodotti.serial) ) '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY serial ASC'; $rsn = $dbo->fetchArray($qs); echo '\n"; // echo '\n"; } } // Elenco lotti in base all'articolo e lotto elseif ($op == 'getserial') { $idarticolo = $get['idarticolo']; $lotto = $get['lotto']; if (($get['serial_start'] != '') and ($get['serial_end'] != '')) { $serial_start = $get['serial_start']; $serial_end = $get['serial_end']; $additional_where_serial = ' AND CAST(serial AS UNSIGNED) >= CAST('.prepare($$serial_start).' AS UNSIGNED) AND CAST(serial AS UNSIGNED) <= CAST('.prepare($serial_end).' AS UNSIGNED) '; } elseif ($get['serial_start'] != '') { $serial_start = $get['serial_start']; $additional_where_serial = ' AND CAST(serial AS UNSIGNED) > CAST('.prepare($$serial_start).' AS UNSIGNED)'; } elseif ($get['serial_end'] != '') { $serial_end = $get['serial_end']; $additional_where_serial = ' AND CAST(serial AS UNSIGNED) < CAST('.prepare($serial_end).' AS UNSIGNED)'; } else { $additional_where_serial = ''; } if ($dir == 'entrata') { $q = 'SELECT DISTINCT(serial) FROM mg_prodotti WHERE id_articolo='.prepare($idarticolo).' AND lotto='.prepare($lotto). ' AND (serial NOT IN(SELECT serial FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento = co_tipidocumento.id WHERE lotto='.prepare($lotto).' AND serial=mg_prodotti.serial AND dir = '.prepare($dir).')'. ' AND serial NOT IN(SELECT serial FROM or_righe_ordini INNER JOIN or_ordini ON or_righe_ordini.idordine = or_ordini.id INNER JOIN or_tipiordine ON or_ordini.idtipoordine = or_tipiordine.id WHERE lotto='.prepare($lotto).' AND serial=mg_prodotti.serial AND dir = '.prepare($dir).') '. ' AND serial NOT IN(SELECT serial FROM dt_righe_ddt INNER JOIN dt_ddt ON dt_righe_ddt.idddt = dt_ddt.id INNER JOIN dt_tipiddt ON dt_ddt.idtipoddt = dt_tipiddt.id WHERE lotto='.prepare($lotto).' AND serial=mg_prodotti.serial AND dir = '.prepare($dir).') '. 'AND serial NOT IN(SELECT serial FROM mg_articoli_interventi WHERE lotto='.prepare($lotto).' AND serial=mg_prodotti.serial) '.$additional_where_serial.' ) '. Modules::getAdditionalsQuery('Magazzino').' ORDER BY serial ASC'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); } else { $q = 'SELECT DISTINCT(serial) FROM mg_prodotti WHERE id_articolo='.prepare($idarticolo).' AND lotto='.prepare($lotto).' AND (serial NOT IN(SELECT serial FROM co_righe_documenti WHERE lotto='.prepare($lotto).' AND serial=mg_prodotti.serial ) AND serial NOT IN(SELECT serial FROM or_righe_ordini WHERE lotto='.prepare($lotto).' AND serial=mg_prodotti.serial) AND serial NOT IN(SELECT serial FROM dt_righe_ddt WHERE lotto='.prepare($lotto).' AND serial=mg_prodotti.serial) AND serial NOT IN(SELECT serial FROM mg_articoli_interventi WHERE lotto='.prepare($lotto).' AND serial=mg_prodotti.serial) '.$additional_where_serial.' ) '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY serial ASC'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); } if (($get['serial_start'] != '') or ($get['serial_end'] != '')) { } elseif ($get['lotto'] == '') { echo "\n"; } else { echo "\n"; } for ($i = 0; $i < $n; ++$i) { echo '\n"; } } // Elenco lotti in base all'articolo, lotto e serial elseif ($op == 'getaltro') { $idarticolo = $get['idarticolo']; $lotto = $get['lotto']; $serial = $get['serial']; $q = 'SELECT DISTINCT(altro) FROM mg_prodotti WHERE id_articolo="'.$idarticolo.'" AND lotto="'.$lotto.'" AND serial="'.$serial.'" AND (altro NOT IN(SELECT altro FROM co_righe_documenti WHERE lotto="'.$lotto.'" AND serial="'.$serial.'" AND altro=mg_prodotti.altro) AND altro NOT IN(SELECT altro FROM or_righe_ordini WHERE lotto="'.$lotto.'" AND serial="'.$serial.'" AND altro=mg_prodotti.altro) AND altro NOT IN(SELECT altro FROM dt_righe_ddt WHERE lotto="'.$lotto.'" AND serial="'.$serial.'" AND altro=mg_prodotti.altro) AND altro NOT IN(SELECT altro FROM mg_articoli_interventi WHERE lotto="'.$lotto.'" AND serial="'.$serial.'" AND altro=mg_prodotti.altro)) '.Modules::getAdditionalsQuery('Magazzino').' ORDER BY altro ASC'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); echo "\n"; for ($i = 0; $i < $n; ++$i) { echo '\n"; } } // Legge gli ultimi prezzi di vendita di un determinato cliente e un determinato articolo e li visualizza per suggerire il prezzo di vendita elseif ($op == 'getprezzi') { $idarticolo = $get['idarticolo']; $idanagrafica = $get['idanagrafica']; $ids = ['""']; echo ''; if (!empty($idarticolo)) { // Ultime 5 vendite al cliente $fatture = $dbo->fetchArray('SELECT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo="'.$idarticolo."\" AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='entrata') AND idanagrafica=\"".$idanagrafica.'") LIMIT 0,5'); if (sizeof($fatture) > 0) { echo "
\n"; echo "\n"; echo "\n"; echo "\n"; for ($i = 0; $i < sizeof($fatture); ++$i) { ($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; $id_module = Modules::getModule('Fatture di vendita')['id']; echo "\n"; echo "\n"; echo "\n"; array_push($ids, '"'.$fatture[$i]['iddocumento'].'"'); } echo "
DocumentoDataTotale
Fattura num. ".$n_fattura."".Translator::dateToLocale($fatture[$i]['data_fattura'])."".Translator::numberToLocale($fatture[$i]['costo_unitario'])." €
\n"; } else { echo '
'.tr('Nessuna vendita di questo articolo al cliente selezionato')."...
\n"; } } echo '
'; } // Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita elseif ($op == 'getprezzivendita') { $idarticolo = $get['idarticolo']; echo ''; // Ultime 5 vendite totali $fatture = $dbo->fetchArray("SELECT DISTINCT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo='".$idarticolo."' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='entrata') ) ORDER BY data_fattura DESC, n_fattura DESC LIMIT 0,5"); if (sizeof($fatture) > 0) { echo "
\n"; echo "\n"; echo "\n"; echo "\n"; for ($i = 0; $i < sizeof($fatture); ++$i) { ($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; $id_module = Modules::getModule('Fatture di vendita')['id']; echo "\n"; echo "\n"; echo "\n"; } echo "
DocumentoDataTotale
Fattura num. ".$n_fattura."".Translator::dateToLocale($fatture[$i]['data_fattura'])."".Translator::numberToLocale($fatture[$i]['costo_unitario'])." €
\n"; } else { echo '
'.tr('Questo articolo non è mai stato venduto')."...
\n"; } echo '
'; echo '
'; } // Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita elseif ($op == 'getprezziacquisto') { $idarticolo = $get['idarticolo']; echo ''; // Ultime 5 vendite totali $fatture = $dbo->fetchArray("SELECT DISTINCT iddocumento, (subtotale-sconto)/qta AS costo_unitario, (SELECT numero FROM co_documenti WHERE id=iddocumento) AS n_fattura, (SELECT numero_esterno FROM co_documenti WHERE id=iddocumento) AS n2_fattura, (SELECT data FROM co_documenti WHERE id=iddocumento) AS data_fattura FROM co_righe_documenti WHERE idarticolo='".$idarticolo."' AND iddocumento IN(SELECT id FROM co_documenti WHERE idtipodocumento IN(SELECT id FROM co_tipidocumento WHERE dir='uscita') ) ORDER BY data_fattura DESC, n_fattura DESC LIMIT 0,5"); if (sizeof($fatture) > 0) { echo "
\n"; echo "\n"; echo "\n"; echo "\n"; for ($i = 0; $i < sizeof($fatture); ++$i) { ($fatture[$i]['n2_fattura'] != '') ? $n_fattura = $fatture[$i]['n2_fattura'] : $n_fattura = $fatture[$i]['n_fattura']; $id_module = Modules::getModule('Fatture di acquisto')['id']; echo "\n"; echo "\n"; echo "\n"; } echo "
DocumentoDataTotale
Fattura num. ".$n_fattura."".Translator::dateToLocale($fatture[$i]['data_fattura'])."".Translator::numberToLocale($fatture[$i]['costo_unitario'])." €
\n"; } else { echo '
'.tr('Questo articolo non è mai stato acquistato')."...
\n"; } echo '
'; echo '
'; } break; case 'Interventi': // Elenco nomi if ($op == 'get_ragione_sociale') { $ragione_sociale = $get['ragione_sociale']; $q = "SELECT ragione_sociale FROM an_anagrafiche WHERE ragione_sociale LIKE '%$ragione_sociale%' ".Modules::getAdditionalsQuery('Anagrafiche').' ORDER BY ragione_sociale'; $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo htmlspecialchars_decode($rs[$i]['ragione_sociale'], ENT_QUOTES); if (($i + 1) < $n) { echo '|'; } } } break; case 'Preventivi': // Elenco nomi preventivi if ($op == 'get_select_preventivi') { $idanagrafica = $get['idanagrafica']; $q = "SELECT co_preventivi.id AS idpreventivo, an_anagrafiche.idanagrafica, nome, idtipointervento FROM co_preventivi INNER JOIN an_anagrafiche ON co_preventivi.idanagrafica=an_anagrafiche.idanagrafica WHERE an_anagrafiche.idanagrafica='$idanagrafica' AND idstato NOT IN (SELECT `id` FROM co_statipreventivi WHERE descrizione='Bozza' OR descrizione='Rifiutato' OR descrizione='Pagato') ".Modules::getAdditionalsQuery('Preventivi'); $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['idpreventivo'].':'.$rs[$i]['nome'].':'.$rs[$i]['idtipointervento']); if (($i + 1) < $n) { echo '|'; } } } break; case 'Contratti': // Elenco nomi preventivi if ($op == 'get_select_contratti') { $idanagrafica = $get['idanagrafica']; $q = "SELECT co_contratti.id AS idcontratto, an_anagrafiche.idanagrafica, nome FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica WHERE an_anagrafiche.idanagrafica='$idanagrafica' AND idstato NOT IN (SELECT `id` FROM co_staticontratti WHERE fatturabile = 1) ".Modules::getAdditionalsQuery('Contratti'); $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo html_entity_decode($rs[$i]['idcontratto'].':'.$rs[$i]['nome']); if (($i + 1) < $n) { echo '|'; } } } break; case 'Fatture': // Elenco fatture non pagate per anagrafica if ($op == 'get_fatture') { $idanagrafica = $get['idanagrafica']; $q = "SELECT data, co_documenti.id AS iddocumento, co_tipidocumento.descrizione AS tipo_doc, dir FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_documenti.idanagrafica='$idanagrafica' AND (idstatodocumento=(SELECT `id` FROM co_statidocumento WHERE descrizione='Emessa') OR (SELECT da_pagare-pagato AS differenza FROM co_scadenziario WHERE NOT iddocumento=co_documenti.id=0) )"; $rs = $dbo->fetchArray($q); $n = sizeof($rs); if ($n > 0) { echo "\n"; } else { echo tr('Nessuna fattura trovata').'...'; } } // Elenco causali prima nota elseif ($op == 'get_causali') { $descrizione = $get['descrizione']; $q = 'SELECT DISTINCT descrizione FROM co_movimenti WHERE descrizione LIKE "%'.$descrizione."%\" AND (iddocumento='' OR iddocumento IS NULL) AND primanota=1 ".Modules::getAdditionalsQuery('Prima nota'); $rs = $dbo->fetchArray($q); $n = sizeof($rs); if ($n > 0) { for ($i = 0; $i < $n; ++$i) { echo $rs[$i]['descrizione']; if (($i + 1) < $n) { echo '|'; } } } } break; case 'Ddt': // Elenco ddt del fornitore scelto if ($op == 'get_ddt') { $idfornitore = $get['idfornitore']; $q = "SELECT data, dt_ddt.id AS idddt, numero, dt_tipiddt.descrizione AS tipo_doc, dir FROM dt_ddt INNER JOIN dt_tipiddt ON dt_ddt.idtipoddt=dt_tipiddt.id WHERE dt_ddt.idanagrafica='$idfornitore'"; $rs = $dbo->fetchArray($q); $n = sizeof($rs); if ($n > 0) { echo "\n"; } else { echo tr('Nessun ddt trovato')."...\n"; } } break; case 'MyImpianti': // Elenco ddt del fornitore scelto if ($op == 'get_impianti') { $idanagrafica = $get['idanagrafica']; $idsede = $get['idsede']; if ($idsede != '' && $idsede != '-1' && $idsede != 'undefined') { $q = 'SELECT *, (SELECT nomesede FROM an_sedi WHERE id=my_impianti.idsede) AS nomesede FROM my_impianti WHERE idanagrafica="'.$idanagrafica.'" AND idsede="'.$idsede.'" ORDER BY idsede'; } else { $q = 'SELECT *, (SELECT nomesede FROM an_sedi WHERE id=my_impianti.idsede) AS nomesede FROM my_impianti WHERE idanagrafica="'.$idanagrafica.'" ORDER BY idsede'; } $rs = $dbo->fetchArray($q); $n = sizeof($rs); for ($i = 0; $i < $n; ++$i) { echo $rs[$i]['id'].':'.$rs[$i]['matricola'].' - '.$rs[$i]['nome']."\n"; if (($i + 1) < $n) { echo '|'; } } } break; } /* == Super search == Ricerca di un termine su tutti i moduli. Il risultato è in json */ if ($op == 'supersearch') { $term = $get['term']; $term = str_replace('/', '\\/', $term); $i = 0; if (strlen($term) < 2) { echo 'null'; exit; } /* Anagrafiche */ if (Modules::getPermission('Anagrafiche') != '-') { $campi = ['codice', 'ragione_sociale', 'piva', 'codice_fiscale', 'indirizzo', 'indirizzo2', 'citta', 'cap', 'provincia', 'telefono', 'fax', 'cellulare', 'email', 'sitoweb', 'note', 'codicerea', 'settore', 'marche', 'cciaa', 'n_alboartigiani']; $campi_text = ['Codice', 'Ragione sociale', 'Partita iva', 'Codice fiscale', 'Indirizzo', 'Indirizzo2', 'Città', 'C.A.P.', 'Provincia', 'Telefono', 'Fax', 'Cellulare', 'Email', 'Sito web', 'Note', 'Codice REA', 'Settore', 'Marche', 'CCIAA', 'Numero di iscrizione albo artigiani']; $rs = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name='Anagrafiche'"); $id_module = $rs[0]['id']; $build_query = ''; for ($c = 0; $c < sizeof($campi); ++$c) { $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%" AND deleted = 0'; } $rs = $dbo->fetchArray('SELECT * FROM an_anagrafiche 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]['idanagrafica']; $result[$r + $i]['title'] = $rs[$r]['ragione_sociale']; $result[$r + $i]['category'] = 'Anagrafiche'; $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; } } // Ricerca anagrafiche per ragione sociale per potere mostrare gli interventi, fatture, // ordini, ecc della persona ricercata $idanagrafiche = ['-1']; $ragioni_sociali = ['-1']; $rs = $dbo->fetchArray('SELECT idanagrafica, ragione_sociale FROM an_anagrafiche WHERE ragione_sociale LIKE "%'.$term.'%"'); for ($a = 0; $a < sizeof($rs); ++$a) { $idanagrafiche[] = $rs[$a]['idanagrafica']; $ragioni_sociali[$rs[$a]['idanagrafica']] = $rs[$a]['ragione_sociale']; } /* Referenti anagrafiche */ if (Modules::getPermission('Anagrafiche') != '-') { $campi = ['nome', 'mansione', 'telefono', 'email']; $campi_text = ['Nome', 'Mansione', 'Telefono', 'Email']; $build_query = ''; for ($c = 0; $c < sizeof($campi); ++$c) { $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%"'; } $rs = $dbo->fetchArray('SELECT * FROM an_referenti 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]['idanagrafica'].'#tabs-2'; $result[$r + $i]['title'] = $rs[$r]['nome']; $result[$r + $i]['category'] = 'Referenti'; $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 + $i][$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; } } /* 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::getModule('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 */ if (Modules::getPermission('Magazzino') != '-') { $campi = ['numero', 'numero_esterno', 'data', 'note']; $campi_text = ['Numero', 'Numero secondario', 'Data', 'Note']; $build_query = ''; for ($c = 0; $c < sizeof($campi); ++$c) { $build_query .= ' OR '.$campi[$c].' LIKE "%'.$term.'%"'; } $rs = $dbo->fetchArray('SELECT *, dt_ddt.id AS idddt FROM dt_ddt INNER JOIN dt_tipiddt ON dt_ddt.idtipoddt=dt_tipiddt.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 un tipo ddt 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 = 'Ddt di acquisto'"); $id_module = $rsm[0]['id']; } else { $rsm = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name = 'Ddt di vendita'"); $id_module = $rsm[0]['id']; } $result[$r + $i]['link'] = $rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['idddt']; $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 ddt */ if (Modules::getPermission('Magazzino') != '-') { $campi = ['descrizione']; $campi_text = ['Riga']; $build_query = ''; for ($c = 0; $c < sizeof($campi); ++$c) { $build_query .= ' OR dt_righe_ddt.'.$campi[$c].' LIKE "%'.$term.'%"'; } $rs = $dbo->fetchArray('SELECT dt_ddt.*, dt_ddt.id AS idddt, dt_tipiddt.descrizione AS tipodoc, dt_tipiddt.dir, dt_righe_ddt.descrizione FROM dt_righe_ddt INNER JOIN (dt_ddt INNER JOIN dt_tipiddt ON dt_ddt.idtipoddt=dt_tipiddt.id) ON dt_ddt.id=dt_righe_ddt.idddt 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 un tipo ddt 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 = 'Ddt di acquisto'"); $id_module = $rsm[0]['id']; } else { $rsm = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name = 'Ddt di vendita'"); $id_module = $rsm[0]['id']; } $result[$r + $i]['link'] = $rootdir.'/editor.php?id_module='.$id_module.'&id_record='.$rs[$r]['idddt']; // $result[$r+$i]['link'] = $rootdir."/modules/magazzino/ddt/ddt.php?idddt=".$rs[$r]['iddocumento']."&dir=".$rs[$r]['dir']; $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; } } /* 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; } } // Contratti // Ordini $result = (array) $result; foreach ($result as $key => $value) { $result[$key]['value'] = $key; } echo json_encode($result); }