<?php include_once(__DIR__."/core.php"); $module_name = save( $_GET['module'] ); if ($user_idanagrafica==""){ //Carico i filtri dei WHERE in base al modulo e all'utente loggato $qp = "SELECT *, (SELECT idanagrafica FROM zz_utenti WHERE idutente='".$_SESSION['idutente']."') AS idanagrafica, (SELECT name FROM zz_modules WHERE id=idmodule) AS nome_modulo FROM zz_gruppi_modules WHERE idgruppo=(SELECT idgruppo FROM zz_utenti WHERE idutente='".$_SESSION['idutente']."')"; $rsp = $dbo->fetchArray($qp); for( $i=0; $i<sizeof($rsp); $i++ ){ $additional_where[ $rsp[$i]['nome_modulo'] ] = $rsp[$i]['clause']; } $querye = "SELECT *, (SELECT idanagrafica FROM zz_utenti WHERE idutente='".$_SESSION['idutente']."') AS idanagrafica FROM zz_permessi WHERE idgruppo=(SELECT idgruppo FROM zz_utenti WHERE idutente='".$_SESSION['idutente']."') AND idmodule=(SELECT id FROM zz_modules WHERE name='MyImpianti')"; $rse = $dbo->fetchArray($querye); $user_idanagrafica = $rse[0]['idanagrafica']; } $additional_where['Anagrafiche'] = str_replace( "|idtecnico|", $user_idanagrafica, $additional_where['Anagrafiche'] ); $additional_where['Anagrafiche'] = str_replace( "|idagente|", "'".$user_idanagrafica."'", $additional_where['Anagrafiche'] ); $additional_where['Interventi'] = str_replace( "|idtecnico|", "'".$user_idanagrafica."'", $additional_where['Interventi'] ); $additional_where['Interventi'] = str_replace( "|idanagrafica|", "'".$user_idanagrafica."'", $additional_where['Interventi'] ); $additional_where['MyImpianti'] = str_replace( "|idanagrafica|", "'".$user_idanagrafica."'", $additional_where['MyImpianti'] ); $op = save( $_GET['op'] ); switch( $module_name ){ case "Anagrafiche": //Elenco nomi if( $op=="get_ragione_sociale" ){ $ragione_sociale = save( $_GET['ragione_sociale'] ); $idagente = save( $_GET['idagente'] ); if ($idagente!=""){ $WHERE_AGENTE = "AND idagente = ".$idagente; } $q = "SELECT ragione_sociale FROM an_anagrafiche WHERE deleted=0 AND ragione_sociale LIKE '%$ragione_sociale%' ".$WHERE_AGENTE." ".$additional_where['Anagrafiche']." GROUP BY ragione_sociale 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 '|'; } } //Elenco città else if( $op=="getcitta" ){ $q = "SELECT DISTINCT(citta) FROM an_anagrafiche WHERE 1=1 ".$additional_where['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 else if( $op=="getprovince" ){ $q = "SELECT DISTINCT(provincia) FROM an_anagrafiche WHERE 1=1 ".$additional_where['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 else if( $op=="getcap" ){ $q = "SELECT DISTINCT(cap) FROM an_anagrafiche WHERE 1=1 ".$additional_where['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 else if( $op=="getsettori" ){ $q = "SELECT DISTINCT(settore) FROM an_anagrafiche WHERE 1=1 ".$additional_where['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 else if( $op=="getmarche" ){ $q = "SELECT DISTINCT(marche) FROM an_anagrafiche WHERE 1=1 ".$additional_where['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 else if( $op=="getemail" ){ $idanagrafica = save( $_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 else if( $op=="get_sedi" ){ $idanagrafica = save( $_GET['idanagrafica'] ); $q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='".$idanagrafica."' ".$additional_where['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 <option> else if( $op=="get_sedi_select" ){ $idanagrafica = save( $_GET['idanagrafica'] ); $q = "SELECT id, CONCAT_WS( ' - ', nomesede, citta ) AS descrizione FROM an_sedi WHERE idanagrafica='".$idanagrafica."' ".$additional_where['Anagrafiche']." ORDER BY id"; $rs = $dbo->fetchArray( $q ); $n = sizeof($rs); echo "<option value=\"-1\">- Nessuna -</option>\n"; echo "<option value=\"0\">Sede legale</option>\n"; for( $i=0;$i<$n;$i++ ){ echo "<option value=\"".$rs[$i]['id']."\">".$rs[$i]['descrizione']."</option>\n"; } } else if( $op=="get_default_value" ){ $idanagrafica = save( $_GET['idanagrafica'] ); $q = "SELECT idtipointervento_default FROM an_anagrafiche WHERE idanagrafica='".$idanagrafica."' ".$additional_where['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 ".$additional_where['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 else if( $op=="getsubcategorie" ){ $q = "SELECT DISTINCT(subcategoria) FROM mg_articoli WHERE 1=1 ".$additional_where['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 else if( $op=="getdescrizione" ){ $q = "SELECT DISTINCT(descrizione) FROM mg_articoli WHERE 1=1 ".$additional_where['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 else if( $op=="getcodice" ){ $q = "2SELECT DISTINCT(codice) FROM mg_articoli WHERE 1=1 ".$additional_where['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 else if( $op=="getlotti" ){ $idarticolo = save( $_GET['idarticolo'] ); $q = "SELECT DISTINCT(lotto) FROM mg_prodotti WHERE idarticolo=\"".$idarticolo."\" ".$additional_where['Magazzino']." ORDER BY lotto ASC"; $rs = $dbo->fetchArray( $q ); $n = sizeof($rs); echo "<option value=''>- Seleziona un lotto -</option>\n"; for( $i=0;$i<$n;$i++ ){ echo "<option value=\"".htmlentities($rs[$i]['lotto'])."\">".htmlentities( $rs[$i]['lotto'] )."</option>\n"; } } //Elenco lotti in base all'articolo e lotto else if( $op=="getserial" ){ $idarticolo = save( $_GET['idarticolo'] ); $lotto = save( $_GET['lotto'] ); $q = "SELECT DISTINCT(serial) FROM mg_prodotti WHERE idarticolo=\"".$idarticolo."\" AND lotto=\"".$lotto."\" AND (serial NOT IN(SELECT serial FROM co_righe_documenti WHERE lotto=\"".$lotto."\" AND serial=mg_prodotti.serial) AND serial NOT IN(SELECT serial FROM or_righe_ordini WHERE lotto=\"".$lotto."\" AND serial=mg_prodotti.serial) AND serial NOT IN(SELECT serial FROM dt_righe_ddt WHERE lotto=\"".$lotto."\" AND serial=mg_prodotti.serial) AND serial NOT IN(SELECT serial FROM mg_articoli_interventi WHERE lotto=\"".$lotto."\" AND serial=mg_prodotti.serial)) ".$additional_where['Magazzino']." ORDER BY serial ASC"; $rs = $dbo->fetchArray( $q ); $n = sizeof($rs); echo "<option value=''>- Seleziona un serial number -</option>\n"; for( $i=0;$i<$n;$i++ ) echo "<option value=\"".htmlentities($rs[$i]['serial'])."\">".htmlentities( $rs[$i]['serial'] )."</option>\n"; } //Elenco lotti in base all'articolo, lotto e serial else if( $op=="getaltro" ){ $idarticolo = save( $_GET['idarticolo'] ); $lotto = save( $_GET['lotto'] ); $serial = save( $_GET['serial'] ); $q = "SELECT DISTINCT(altro) FROM mg_prodotti WHERE idarticolo=\"".$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)) ".$additional_where['Magazzino']." ORDER BY altro ASC"; $rs = $dbo->fetchArray( $q ); $n = sizeof($rs); echo "<option value=''>- Seleziona un altro codice -</option>\n"; for( $i=0;$i<$n;$i++ ) echo "<option value=\"".htmlentities($rs[$i]['altro'])."\">".htmlentities( $rs[$i]['altro'] )."</option>\n"; } //Legge gli ultimi prezzi di vendita di un determinato articolo e li visualizza per suggerire il prezzo di vendita else if( $op=="getprezzi" ){ $idarticolo = save( $_GET['idarticolo'] ); $idanagrafica = save( $_GET['idanagrafica'] ); $ids = array('""'); if( $idarticolo!='0' && $idarticolo!='' ){ //Ultime 5 vendite al cliente $fatture = $dbo->fetchArray("SELECT (SELECT idtipodocumento FROM co_documenti WHERE id=iddocumento) AS idtipodocumento , iddocumento, (subtotale/qta)-sconto 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"); echo "<br/><b>Ultime 5 vendite a questo cliente</b>\n"; if( sizeof($fatture)>0 ){ echo "<br/><table cellspacing='0'>\n"; echo "<tr><th width='150'>Documento</th>\n"; echo "<th width='50'>Data</th>\n"; echo "<th width='80'>Totale</th></tr>\n"; for( $i=0; $i<sizeof($fatture); $i++ ){ $descrizione_documento=get_var_tipodoc($fatture[$i]['idtipodocumento'],'descrizione'); ( $fatture[$i]['n2_fattura']!='' ) ? $n_fattura=$fatture[$i]['n2_fattura'] : $n_fattura=$fatture[$i]['n_fattura']; echo "<tr><td class='first_cell'><a href=\"".$rootdir."/editor.php?id_module=".$modules_info['Fatture di vendita']['id']."&id_record=".$fatture[$i]['iddocumento']."\" target=\"_blank\" title=\"Apri il documento su una nuova finestra\">".$descrizione_documento." n<sup>o</sup> ".$n_fattura."</a></td>\n"; echo "<td class='table_cell'>".date( "d/m/Y", strtotime($fatture[$i]['data_fattura']) )."</td>\n"; echo "<td class='table_cell'>".number_format( $fatture[$i]['costo_unitario'], 2, ",", "" )." €</td></tr>\n"; array_push( $ids, "\"".$fatture[$i]['iddocumento']."\"" ); } echo "</table>\n"; } else echo "<br/>... Nessun movimento di questo articolo al cliente ...<br/>\n"; //Ultime 5 vendite totali $fatture = $dbo->fetchArray("SELECT iddocumento, (subtotale/qta)-sconto 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 id NOT IN(".implode(',', $ids).") ) LIMIT 0,5"); echo "<br/><b>Altre 5 vendite</b>\n"; if( sizeof($fatture)>0 ){ echo "<br/><table cellspacing='0'>\n"; echo "<tr><th width='150'>Documento</th>\n"; echo "<th width='50'>Data</th>\n"; echo "<th width='80'>Totale</th></tr>\n"; for( $i=0; $i<sizeof($fatture); $i++ ){ ( $fatture[$i]['n2_fattura']!='' ) ? $n_fattura=$fatture[$i]['n2_fattura'] : $n_fattura=$fatture[$i]['n_fattura']; echo "<tr><td class='first_cell'><a href=\"".$rootdir."/modules/contabilita/documenti/documenti.php?dir=entrata&iddocumento=".$fatture[$i]['iddocumento']."\" target=\"_blank\" title=\"Apri il documento su una nuova finestra\">Fattura n<sup>o</sup> ".$n_fattura."</a></td>\n"; echo "<td class='table_cell'>".date( "d/m/Y", strtotime($fatture[$i]['data_fattura']) )."</td>\n"; echo "<td class='table_cell'>".number_format( $fatture[$i]['costo_unitario'], 2, ",", "" )." €</td></tr>\n"; } echo "</table>\n"; } else echo "<br/>... Questo articolo non é ancora stato venduto ad altri ...<br/>\n"; } } break; case "Interventi": //Elenco nomi if( $op=="get_ragione_sociale" ){ $ragione_sociale = save( $_GET['ragione_sociale'] ); $q = "SELECT ragione_sociale FROM an_anagrafiche WHERE ragione_sociale LIKE '%$ragione_sociale%' ".$additional_where['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 = save( $_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') ".$additional_where['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 = save( $_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 descrizione='Bozza' OR descrizione='Rifiutato' OR descrizione='Pagato') ".$additional_where['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 = save( $_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 "<select name='iddocumento' id='iddocumento' class='inputtext'>\n"; for( $i=0;$i<$n;$i++ ){ echo "<option value='".$rs[$i]['iddocumento']."' dir=\"".$rs[$i]['dir']."\">".html_entity_decode( $rs[$i]['tipo_doc'] )." del ".date("d/m/Y", strtotime($rs[$i]['data']))."</option>\n"; } echo "</select>\n"; } else echo "... Nessuna fattura trovata ..."; } //Elenco causali prima nota else if( $op=="get_causali" ){ $descrizione = save($_GET['descrizione']); $q = "SELECT DISTINCT descrizione FROM co_movimenti WHERE descrizione LIKE \"%".$descrizione."%\" AND (iddocumento='' OR iddocumento IS NULL) AND primanota=1 ".$additional_where['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 = save( $_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 "<select name='idddt' id='idddt' class='inputtext'>\n"; echo "<option value=''>- Seleziona un ddt -</option>\n"; for( $i=0;$i<$n;$i++ ){ echo "<option value='".$rs[$i]['idddt']."'>".html_entity_decode( $rs[$i]['tipo_doc'] )." ".$rs[$i]['numero']." del ".date("d/m/Y", strtotime($rs[$i]['data']))."</option>\n"; } echo "</select>\n"; } else echo "... Nessun ddt trovato ...\n"; } break; case "FiltroCat": $idcategoria=save( $_GET['idcategoria'] ); $_SESSION['filtro_categoria'] = $idcategoria ; break; case "MyImpianti": //Elenco ddt del fornitore scelto if( $op=="get_impianti" ){ $idanagrafica = save( $_GET['idanagrafica'] ); $idsede = save( $_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 = save( $_GET['term'] ); $term = str_replace( "/", "\\/", $term ); $i = 0; if( strlen($term) < 2 ){ echo "null"; exit; } /* Anagrafiche */ if( get_permessi('Anagrafiche') != '-' ){ // $campi = array( 'codice', 'ragione_sociale', 'piva', 'codice_fiscale', 'indirizzo', 'indirizzo2', 'citta', 'cap', 'provincia', 'nazione', 'telefono', 'fax', 'cellulare', 'email', 'sitoweb', 'note', 'codicerea', 'settore', 'marche', 'cciaa', 'n_alboartigiani' ); // $campi_text = array( 'Codice', 'Ragione sociale', 'Partita iva', 'Codice fiscale', 'Indirizzo', 'Indirizzo2', 'Città', 'C.A.P.', 'Provincia', 'Nazione', 'Telefono', 'Fax', 'Cellulare', 'Email', 'Sito web', 'Note', 'Codice REA', 'Settore', 'Marche', 'CCIAA', 'Numero di iscrizione albo artigiani' ); $campi = array( '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 = array( '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'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } } $i += $r; } } //Ricerca anagrafiche per ragione sociale per potere mostrare gli interventi, fatture, //ordini, ecc della persona ricercata $idanagrafiche = array('-1'); $ragioni_sociali = array('-1'); $rs = $dbo->fetchArray("SELECT idanagrafica, ragione_sociale FROM an_anagrafiche WHERE ragione_sociale LIKE \"%".$term."%\""); for( $a=0; $a<sizeof($rs); $a++ ){ array_push( $idanagrafiche, $rs[$a]['idanagrafica'] ); $ragioni_sociali[ $rs[$a]['idanagrafica'] ] = $rs[$a]['ragione_sociale']; } /* Referenti anagrafiche */ if( get_permessi('Anagrafiche') != '-' ){ $campi = array( 'nome', 'mansione', 'telefono', 'email' ); $campi_text = array( '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'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } //Aggiunta nome anagrafica come ultimo campo if( sizeof($ragioni_sociali) > 1 ){ array_push( $result[$r+$i]['labels'], "Anagrafica: ".$ragioni_sociali[ $rs[$r]['idanagrafica'] ]."<br/>" ); } } $i += $r; } } /* Interventi */ if( get_permessi('Interventi') != '-' ){ $campi = array( 'idintervento', '(SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.idintervento)', 'data_richiesta', 'info_sede', 'richiesta', 'descrizione', 'informazioniaggiuntive' ); $campi_text = array( 'Codice intervento', 'Data intervento', 'Data richiesta intervento', 'Sede intervento', 'Richiesta', 'Descrizione', 'Informazioni aggiuntive' ); $rs = $dbo->fetchArray("SELECT id FROM zz_modules WHERE name='Interventi'"); $id_module = $modules_info['Interventi']['id']; $build_query = ''; for( $c=0; $c<sizeof($campi); $c++ ){ $build_query .= " OR ".$campi[$c]." LIKE \"%".$term."%\""; } $additional_where['Interventi'] = str_replace( "AND", "HAVING", $additional_where['Interventi'] ); $build_query .= $additional_where['Interventi']; $rs = $dbo->fetchArray("SELECT *, (SELECT MIN(orario_inizio) FROM in_interventi_tecnici WHERE idintervento=in_interventi.idintervento) 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]['idintervento']; $result[$r+$i]['title'] = "Intervento ".$rs[$r]['idintervento']." del ".date("d/m/Y", strtotime($rs[$r]['data']) ); $result[$r+$i]['category'] = "Interventi"; $result[$r+$i]['labels'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } //Aggiunta nome anagrafica come ultimo campo if( sizeof($ragioni_sociali) > 1 ){ array_push( $result[$r+$i]['labels'], "Anagrafica: ".$ragioni_sociali[ $rs[$r]['idanagrafica'] ]."<br/>" ); } } $i += $r; } } /* Preventivi */ if( get_permessi('Contabilita') != '-' ){ $campi = array( 'numero', 'nome', 'descrizione' ); $campi_text = array( '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']." del ".date("d/m/Y", strtotime($rs[$r]['data_accettazione']) ); $result[$r+$i]['category'] = "Preventivi"; $result[$r+$i]['labels'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } //Aggiunta nome anagrafica come ultimo campo if( sizeof($ragioni_sociali) > 1 ){ array_push( $result[$r+$i]['labels'], "Anagrafica: ".$ragioni_sociali[ $rs[$r]['idanagrafica'] ]."<br/>" ); } } $i += $r; } } /* Fatture */ if( get_permessi('Contabilita') != '-' ){ $campi = array( 'numero', 'numero_esterno', 'data', 'note', 'note_aggiuntive', 'buono_ordine' ); $campi_text = array( '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']." n<sup>o</sup> ".$numero." del ".date("d/m/Y", strtotime($rs[$r]['data']) ); $result[$r+$i]['category'] = $rs[$r]['descrizione']; $result[$r+$i]['labels'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } //Aggiunta nome anagrafica come ultimo campo if( sizeof($ragioni_sociali) > 1 ){ array_push( $result[$r+$i]['labels'], "Anagrafica: ".$ragioni_sociali[ $rs[$r]['idanagrafica'] ]."<br/>" ); } } $i += $r; } } /* Righe fatture */ if( get_permessi('Contabilita') != '-' ){ $campi = array( 'descrizione' ); $campi_text = array( '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']." n<sup>o</sup> ".$numero." del ".date("d/m/Y", strtotime($rs[$r]['data']) ); $result[$r+$i]['category'] = $rs[$r]['tipodoc']; $result[$r+$i]['labels'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } //Aggiunta nome anagrafica come ultimo campo if( sizeof($ragioni_sociali) > 1 ){ array_push( $result[$r+$i]['labels'], "Anagrafica: ".$ragioni_sociali[ $rs[$r]['idanagrafica'] ]."<br/>" ); } } $i += $r; } } /* Articoli */ if( get_permessi('Articoli') != '-' ){ // $campi = array( 'codice', 'descrizione', 'categoria', 'subcategoria', 'note' ); // $campi_text = array( 'Codice', 'Descrizione', 'Categoria', 'Subcategoria', 'Note' ); $campi = array( 'codice', 'descrizione', 'note' ); $campi_text = array( 'Codice', 'Descrizione', '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'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } } $i += $r; } } /* Ddt */ if( get_permessi('Magazzino') != '-' ){ $campi = array( 'numero', 'numero_esterno', 'data', 'note' ); $campi_text = array( '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']." n<sup>o</sup> ".$numero." del ".date("d/m/Y", strtotime($rs[$r]['data']) ); $result[$r+$i]['category'] = $rs[$r]['descrizione']; $result[$r+$i]['labels'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } //Aggiunta nome anagrafica come ultimo campo if( sizeof($ragioni_sociali) > 1 ){ array_push( $result[$r+$i]['labels'], "Anagrafica: ".$ragioni_sociali[ $rs[$r]['idanagrafica'] ]."<br/>" ); } } $i += $r; } } /* Righe ddt */ if( get_permessi('Magazzino') != '-' ){ $campi = array( 'descrizione' ); $campi_text = array( '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']." n<sup>o</sup> ".$numero." del ".date("d/m/Y", strtotime($rs[$r]['data']) ); $result[$r+$i]['category'] = $rs[$r]['tipodoc']; $result[$r+$i]['labels'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } //Aggiunta nome anagrafica come ultimo campo if( sizeof($ragioni_sociali) > 1 ){ array_push( $result[$r+$i]['labels'], "Anagrafica: ".$ragioni_sociali[ $rs[$r]['idanagrafica'] ]."<br/>" ); } } $i += $r; } } /* MyImpianti */ if( get_permessi('MyImpianti') != '-' ){ $campi = array( 'matricola', 'nome', 'descrizione', 'ubicazione', 'occupante', 'proprietario' ); $campi_text = array( '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."%\""; } $additional_where['MyImpianti'] = str_replace( "AND", "HAVING", $additional_where['MyImpianti'] ); $build_query .= $additional_where['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'] = array(); //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], "<span class='highlight'>".$matches[$m]."</span>", $text ); } array_push( $result[$r+$i]['labels'], $campi_text[$c].": ".$text."<br/>" ); } } //Aggiunta nome anagrafica come ultimo campo if( sizeof($ragioni_sociali) > 1 ){ array_push( $result[$r+$i]['labels'], "Anagrafica: ".$ragioni_sociali[ $rs[$r]['idanagrafica'] ]."<br/>" ); } } $i += $r; } } //Contratti //Ordini echo json_encode( $result ); } ?>