Implementazione distribuita della ricerca
This commit is contained in:
parent
9c2d1fa607
commit
43881389ff
381
ajax_search.php
381
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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
}
|
||||
|
||||
$result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
$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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
}
|
||||
|
||||
$result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
$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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
}
|
||||
|
||||
$result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
$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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
}
|
||||
|
||||
$result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
$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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
}
|
||||
|
||||
$result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
}
|
||||
|
||||
$result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
}
|
||||
|
||||
$result[$r + $i]['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result[$r + $i]['labels'][] = 'Anagrafica: '.$ragioni_sociali[$rs[$r]['idanagrafica']].'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
$i += $r;
|
||||
}
|
||||
}
|
||||
|
||||
$results = $result;
|
||||
}
|
||||
|
|
193
ajax_select.php
193
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';
|
||||
|
|
|
@ -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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
$text = str_replace($matches[$m], "<span class='highlight'>".$matches[$m].'</span>', $r[$name]);
|
||||
}
|
||||
|
||||
$result['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
|
@ -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], "<span class='highlight'>".$matches[$m].'</span>', $text);
|
||||
$text = str_replace($matches[$m], "<span class='highlight'>".$matches[$m].'</span>', $r[$name]);
|
||||
}
|
||||
|
||||
$result['labels'][] = $campi_text[$c].': '.$text.'<br/>';
|
||||
|
|
|
@ -0,0 +1,54 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$id_module = Modules::get('Articoli')['id'];
|
||||
|
||||
$fields = [
|
||||
'Codice' => '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, "<span class='highlight'>".$term.'</span>', $r[$name]);
|
||||
|
||||
$result['labels'][] = $name.': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'<br/>';
|
||||
}
|
||||
|
||||
$results[] = $result;
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$id_module = Modules::get('Automezzi')['id'];
|
||||
|
||||
$fields = [
|
||||
'Nome' => '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, "<span class='highlight'>".$term.'</span>', $r[$name]);
|
||||
|
||||
$result['labels'][] = $name.': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
$results[] = $result;
|
||||
}
|
|
@ -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);
|
||||
|
|
|
@ -0,0 +1,21 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
switch ($resource) {
|
||||
case 'contratti':
|
||||
$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;
|
||||
}
|
|
@ -49,7 +49,7 @@ if (!empty($rs_art)) {
|
|||
// q.tà
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
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 '
|
||||
<td class="text-center">';
|
||||
if($r['is_descrizione']==0){
|
||||
if ($r['is_descrizione'] == 0) {
|
||||
echo
|
||||
$r['um'];
|
||||
}
|
||||
|
@ -69,7 +69,7 @@ if (!empty($rs_art)) {
|
|||
// costo unitario
|
||||
echo '
|
||||
<td class="text-center">';
|
||||
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 '
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
if ($r['is_descrizione'] == 0) {
|
||||
echo
|
||||
Translator::numberToLocale($r['iva'])." €<br>
|
||||
<small class='help-block'>".$r['desc_iva'].'</small>';
|
||||
|
@ -90,7 +90,7 @@ if (!empty($rs_art)) {
|
|||
// Imponibile
|
||||
echo '
|
||||
<td class="text-right">';
|
||||
if($r['is_descrizione']==0){
|
||||
if ($r['is_descrizione'] == 0) {
|
||||
echo
|
||||
Translator::numberToLocale($r['subtotale']).' €';
|
||||
|
||||
|
|
|
@ -0,0 +1,64 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$fields = [
|
||||
'Numero' => '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').'<br/>';
|
||||
} else {
|
||||
$text = str_replace($term, "<span class='highlight'>".$term.'</span>', $r[$name]);
|
||||
|
||||
$result['labels'][] = $name.': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'<br/>';
|
||||
}
|
||||
|
||||
$results[] = $result;
|
||||
}
|
|
@ -0,0 +1,38 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
switch ($resource) {
|
||||
case 'componenti':
|
||||
if (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;
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$id_module = Modules::get('Interventi')['id'];
|
||||
|
||||
$fields = [
|
||||
'Codice intervento' => '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, "<span class='highlight'>".$term.'</span>', $r[$name]);
|
||||
|
||||
$result['labels'][] = $name.': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'<br/>';
|
||||
}
|
||||
|
||||
$results[] = $result;
|
||||
}
|
|
@ -0,0 +1,17 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
switch ($resource) {
|
||||
case 'tipiintervento':
|
||||
$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;
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$id_module = Modules::get('MyImpianti')['id'];
|
||||
|
||||
$fields = [
|
||||
'Matricola' => '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, "<span class='highlight'>".$term.'</span>', $r[$name]);
|
||||
|
||||
$result['labels'][] = $name.': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'<br/>';
|
||||
}
|
||||
|
||||
$results[] = $result;
|
||||
}
|
|
@ -0,0 +1,23 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
switch ($resource) {
|
||||
case 'impianti':
|
||||
if (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;
|
||||
}
|
|
@ -0,0 +1,80 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
switch ($resource) {
|
||||
case 'conti':
|
||||
$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':
|
||||
$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;
|
||||
}
|
|
@ -0,0 +1,57 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
$id_module = Modules::get('Preventivi')['id'];
|
||||
|
||||
$fields = [
|
||||
'Codice preventivo' => '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, "<span class='highlight'>".$term.'</span>', $r[$name]);
|
||||
|
||||
$result['labels'][] = $name.': '.$text.'<br/>';
|
||||
}
|
||||
}
|
||||
|
||||
// Aggiunta nome anagrafica come ultimo campo
|
||||
if (sizeof($ragioni_sociali) > 1) {
|
||||
$result['labels'][] = 'Anagrafica: '.$ragioni_sociali[$r['idanagrafica']].'<br/>';
|
||||
}
|
||||
|
||||
$results[] = $result;
|
||||
}
|
|
@ -0,0 +1,39 @@
|
|||
<?php
|
||||
|
||||
include_once __DIR__.'/../../../core.php';
|
||||
|
||||
switch ($resource) {
|
||||
case 'preventivi':
|
||||
if (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':
|
||||
$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;
|
||||
}
|
|
@ -29,7 +29,7 @@ class AJAX
|
|||
$modules = Modules::getAvailableModules();
|
||||
|
||||
// Individuazione dei select esistenti
|
||||
$dirs = array_column($modules, 'directory');
|
||||
$dirs = array_unique(array_column($modules, 'directory'));
|
||||
$pieces = array_chunk($dirs, 5);
|
||||
|
||||
$customs = [];
|
||||
|
@ -124,7 +124,7 @@ class AJAX
|
|||
$modules = Modules::getAvailableModules();
|
||||
|
||||
// Individuazione dei select esistenti
|
||||
$dirs = array_column($modules, 'directory');
|
||||
$dirs = array_unique(array_column($modules, 'directory'));
|
||||
$pieces = array_chunk($dirs, 5);
|
||||
|
||||
$customs = [];
|
||||
|
@ -183,7 +183,7 @@ class AJAX
|
|||
$modules = Modules::getAvailableModules();
|
||||
|
||||
// Individuazione dei select esistenti
|
||||
$dirs = array_column($modules, 'directory');
|
||||
$dirs = array_unique(array_column($modules, 'directory'));
|
||||
$pieces = array_chunk($dirs, 5);
|
||||
|
||||
$customs = [];
|
||||
|
|
Loading…
Reference in New Issue