gest366/ajax_select2.php

840 lines
34 KiB
PHP

<?php
include_once ("core.php");
if (! isset($op)) $op = filter('op');
$superselect = array();
foreach ($_SESSION["superselect"] as $id => $value) {
$superselect[$id] = $value;
}
// aggiungi per multiple $id_elemtno
$search = filter('q');
$module_name = $ajaxsource['module'];
$where = array();
$search_query = array();
$result = array();
switch ($op) {
case "clienti" :
if ($modules_info["Anagrafiche"]["permessi"] != '-') {
$query = "SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione, citta, idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
if (isset($id_elemento)) array_push($where, "an_anagrafiche.idanagrafica=" . prepare($id_elemento));
array_push($where, "descrizione='Cliente'");
array_push($where, "deleted=0");
if (isset($search)) {
array_push($search_query, "ragione_sociale LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "citta LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "provincia LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
$descrizione = $r['descrizione'];
if( $r['citta'] != '' ){
$descrizione .= " (".$r['citta'].")";
}
array_push($result, array('id' => $r['id'],'text' => $descrizione,'idtipointervento' => $r['idtipointervento_default']));
}
}
break;
case "fornitori" :
if ($modules_info["Anagrafiche"]["permessi"] != '-') {
$query = "SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione, citta FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
if (isset($id_elemento)) array_push($where, "an_anagrafiche.idanagrafica=" . prepare($id_elemento));
array_push($where, "descrizione='Fornitore'");
array_push($where, "deleted=0");
if (isset($search)) {
array_push($search_query, "ragione_sociale LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "citta LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "provincia LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
$descrizione = $r['descrizione'];
if( $r['citta'] != '' ){
$descrizione .= " (".$r['citta'].")";
}
array_push($result, array('id' => $r['id'],'text' => $descrizione,'idtipointervento' => $r['idtipointervento_default']));
}
}
break;
case "agenti" :
if ($modules_info["Anagrafiche"]["permessi"] != '-') {
$query = "SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione, citta FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
if (isset($id_elemento)) array_push($where, "an_anagrafiche.idanagrafica=" . prepare($id_elemento));
array_push($where, "descrizione='Agente'");
array_push($where, "deleted=0");
if (isset($search)) {
array_push($search_query, "ragione_sociale LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "citta LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "provincia LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
// Evidenzia l'agente di default
if ($superselect['idanagrafica']) {
$rsa = $dbo->fetchArray("SELECT idagente FROM an_anagrafiche WHERE idanagrafica=" . prepare($superselect['idanagrafica']));
$idagente_default = $rsa[0]['idagente'];
}
else
$idagente_default = 0;
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
$bgcolor = ($r['id'] == $idagente_default) ? '#ff0' : '';
$descrizione = $r['descrizione'];
if( $r['citta'] != '' ){
$descrizione .= " (".$r['citta'].")";
}
array_push($result, array('id' => $r['id'],'text' => $descrizione,'idtipointervento' => $r['idtipointervento_default'],'_bgcolor_' => $bgcolor));
}
}
break;
case "tecnici" :
if ($modules_info["Anagrafiche"]["permessi"] != '-') {
$query = "SELECT an_anagrafiche.idanagrafica AS id, ragione_sociale AS descrizione, citta FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
if (isset($id_elemento)) array_push($where, "an_anagrafiche.idanagrafica=" . prepare($id_elemento));
array_push($where, "descrizione='Tecnico'");
array_push($where, "deleted=0");
if (isset($search)) {
array_push($search_query, "ragione_sociale LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "citta LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "provincia LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
$descrizione = $r['descrizione'];
array_push( $result, array('id' => $r['id'],'text' => $descrizione, 'idtipointervento' => $r['idtipointervento_default']) );
}
}
break;
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
case "anagrafiche" :
if ($modules_info["Anagrafiche"]["permessi"] != '-') {
$query = "SELECT CONCAT(an_tipianagrafiche.idtipoanagrafica, '-', an_anagrafiche.idanagrafica) AS id, CONCAT_WS('', ragione_sociale, ' (', citta, ' ', provincia, ')') AS descrizione idtipointervento_default FROM an_anagrafiche INNER JOIN (an_tipianagrafiche_anagrafiche INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica) ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica |where| ORDER BY ragione_sociale";
if (isset($id_elemento)) array_push($where, "an_anagrafiche.idanagrafica=" . prepare($id_elemento));
array_push($where, "deleted=0");
if (isset($search)) {
array_push($search_query, "ragione_sociale LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "citta LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "provincia LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['descrizione'],'idtipointervento' => $r['idtipointervento_default']));
}
}
break;
case "sedi" :
if ($modules_info["Anagrafiche"]["permessi"] != '-' && isset($superselect['idanagrafica'])) {
$query = "SELECT id, CONCAT_WS(' - ', nomesede, citta) AS descrizione FROM an_sedi |where| ORDER BY id";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "idanagrafica=" . prepare($superselect['idanagrafica']));
if (isset($search)) {
array_push($search_query, "nomesede LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "citta LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
array_push($result, array('id' => '0','text' => 'Sede legale'));
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['descrizione']));
}
}
break;
case "documenti" :
if ($modules_info["Anagrafiche"]["permessi"] != '-' && isset($superselect['idanagrafica'])) {
$query = "SELECT id, numero_documento AS descrizione FROM co_documenti |where| ORDER BY id";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "idanagrafica=" . prepare($superselect['idanagrafica']));
array_push($where, "idtipodocumento=" . prepare($superselect['idtipodoc']));
if (isset($search)) {
array_push($search_query, "numero_documento LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "numero_esterno LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
// array_push($result, array('id' => '0','text' => 'Documento non trovato'));
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['descrizione']));
}
}
break;
case "referenti" :
if ($modules_info["Anagrafiche"]["permessi"] != '-' && isset($superselect['idanagrafica'])) {
$query = "SELECT id, nome AS descrizione FROM an_referenti |where| ORDER BY id";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "idanagrafica=" . prepare($superselect['idanagrafica']));
if (isset($search)) {
array_push($search_query, "nome LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['descrizione']));
}
}
break;
case "articoli_filtro" :
$len=strlen($search);
if ($len >= get_var("Numero caratteri prima di inizio ricerca articolo")) {
$query = "SELECT * FROM mg_articoli |where| ORDER BY id_categoria ASC, id_sottocategoria ASC";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "attivo=1");
$filtro_cat=$_SESSION['filtro_categoria'];
if ($filtro_cat <> '0') {
array_push($where, "id_categoria ='".$filtro_cat."'");
}
$filtro_fornitore=$_SESSION['filtro_fornitore'];
if ($filtro_fornitore <> '0') {
array_push($where, "idfornitore ='".$filtro_fornitore."'");
}
if (isset($search)) {
array_push($search_query, "descrizione LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "codice LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "pro_barcode LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$prev = - 1;
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
if ($prev != $r['id_categoria']) {
$prev = $r['id_categoria'];
array_push($result, array('text' => $dbo->fetchArray("SELECT `nome` FROM `mg_categorie` WHERE `id`=". prepare($r['id_categoria']))[0]["nome"], 'children' => array()));
}
array_push($result[count($result) - 1]['children'], array('id_conto' => $r['id_conto'],'id' => $r['id'],'text' => $r['pro_barcode'] . " - " . $r['codice'] . " - " . $r['descrizione'], 'um' => $r['um'], 'idiva' => number_format( $r['id_ivavendita'], $settings['Cifre decimali'], ",", "" ), 'prezzo_acquisto' => number_format( $r['prezzo_acquisto'], $settings['Cifre decimali'], ",", "" ), 'prezzo_vendita' => number_format( $r['prezzo_vendita'], $settings['Cifre decimali'], ",", "" )));
}
}
break;
case "articoli_filtro_servizi" :
$len=strlen($search);
if ($len >= get_var("Numero caratteri prima di inizio ricerca articolo")) {
$query = "SELECT * FROM mg_articoli |where| ORDER BY id_categoria ASC, id_sottocategoria ASC";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "attivo=1");
array_push($where, "servizio=1");
$filtro_cat=$_SESSION['filtro_categoria'];
if ($filtro_cat <> '0') {
array_push($where, "id_categoria ='".$filtro_cat."'");
}
$filtro_fornitore=$_SESSION['filtro_fornitore'];
if ($filtro_fornitore <> '0') {
array_push($where, "idfornitore ='".$filtro_fornitore."'");
}
if (isset($search)) {
array_push($search_query, "descrizione LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "codice LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "pro_barcode LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$prev = - 1;
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
if ($prev != $r['id_categoria']) {
$prev = $r['id_categoria'];
array_push($result, array('text' => $dbo->fetchArray("SELECT `nome` FROM `mg_categorie` WHERE `id`=". prepare($r['id_categoria']))[0]["nome"], 'children' => array()));
}
array_push($result[count($result) - 1]['children'], array('id_conto' => $r['id_conto'],'id' => $r['id'],'text' => $r['pro_barcode'] . " - " . $r['codice'] . " - " . $r['descrizione'], 'um' => $r['um'], 'idiva' => number_format( $r['id_ivavendita'], $settings['Cifre decimali'], ",", "" ), 'prezzo_acquisto' => number_format( $r['prezzo_acquisto'], $settings['Cifre decimali'], ",", "" ), 'prezzo_vendita' => number_format( $r['prezzo_vendita'], $settings['Cifre decimali'], ",", "" )));
}
}
break;
case "articoli_filtro_kit" :
$len=strlen($search);
if ($len >= get_var("Numero caratteri prima di inizio ricerca articolo")) {
$query = "SELECT * FROM mg_articoli |where| ORDER BY id_categoria ASC, id_sottocategoria ASC";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "attivo=1 and pro_kit=1");
$filtro_cat=$_SESSION['filtro_categoria'];
if ($filtro_cat <> '0') {
array_push($where, "id_categoria ='".$filtro_cat."'");
}
$filtro_fornitore=$_SESSION['filtro_fornitore'];
if ($filtro_fornitore <> '0') {
array_push($where, "idfornitore ='".$filtro_fornitore."'");
}
if (isset($search)) {
array_push($search_query, "descrizione LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "codice LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "pro_barcode LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$prev = - 1;
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
if ($prev != $r['id_categoria']) {
$prev = $r['id_categoria'];
array_push($result, array('text' => $dbo->fetchArray("SELECT `nome` FROM `mg_categorie` WHERE `id`=". prepare($r['id_categoria']))[0]["nome"], 'children' => array()));
}
array_push($result[count($result) - 1]['children'], array('id_conto' => $r['id_conto'],'id' => $r['id'],'text' => $r['pro_barcode'] . " - " . $r['codice'] . " - " . $r['descrizione'], 'um' => $r['um'], 'idiva' => number_format( $r['id_ivavendita'], $settings['Cifre decimali'], ",", "" ), 'prezzo_acquisto' => number_format( $r['prezzo_acquisto'], $settings['Cifre decimali'], ",", "" ), 'prezzo_vendita' => number_format( $r['prezzo_vendita'], $settings['Cifre decimali'], ",", "" )));
}
}
break;
case "articoli" :
$query = "SELECT * FROM mg_articoli |where| ORDER BY id_categoria ASC, id_sottocategoria ASC";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "attivo=1");
if (isset($search)) {
array_push($search_query, "descrizione LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "codice LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "pro_barcode LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$prev = - 1;
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
if ($prev != $r['id_sottocategoria']) {
$prev = $r['id_sottocategoria'];
array_push($result, array('text' => $dbo->fetchArray("SELECT `nome` FROM `mg_categorie` WHERE `id`=". prepare($r['id_categoria']))[0]["nome"], 'children' => array()));
}
array_push($result[count($result) - 1]['children'], array('id' => $r['id'],'text' => $r['pro_barcode'] . " - " . $r['codice'] . " - " . $r['descrizione'], 'um' => $r['um'], 'prezzo_acquisto' => number_format( $r['prezzo_acquisto'], $settings['Cifre decimali'], ",", "" ), 'prezzo_vendita' => number_format( $r['prezzo_vendita'], $settings['Cifre decimali'], ",", "" )));
}
break;
case "conti" :
if ($modules_info["Piano dei conti"]["permessi"] != '-') {
$query = "SELECT * FROM co_pianodeiconti2";
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('text' => $r['numero'] . " " . $r['descrizione'],'children' => array()));
$where = array();
$search_query = array();
$subquery = "SELECT * FROM co_pianodeiconti3 |where|";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "idpianodeiconti2=" . prepare($r['id']));
if (isset($search)) {
array_push($search_query, "descrizione LIKE " . prepare("%" . $search . "%"));
}
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
$wh = "";
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$subquery = str_replace("|where|", $wh, $subquery);
$rs2 = $dbo->fetchArray($subquery);
foreach ($rs2 as $r2) {
array_push($result[count($result) - 1]['children'], array('id' => $r2['id'],'text' => $r2['descrizione']));
}
}
}
break;
case "conti-vendite" :
if ($modules_info["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";
if (isset($id_elemento)) array_push($where, "co_pianodeiconti3.id=" . prepare($id_elemento));
array_push($where, "co_pianodeiconti1.descrizione='Economico'");
array_push($where, "co_pianodeiconti3.dir='entrata'");
if (isset($search)) {
array_push($search_query, "descrizione LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['descrizione']));
}
}
break;
case "conti-acquisti" :
if ($modules_info["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";
if (isset($id_elemento)) array_push($where, "co_pianodeiconti3.id=" . prepare($id_elemento));
array_push($where, "co_pianodeiconti1.descrizione='Economico'");
array_push($where, "co_pianodeiconti3.dir='entrata'");
if (isset($search)) {
array_push($search_query, "descrizione LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['descrizione']));
}
}
break;
case "impianti" :
if ($modules_info["MyImpianti"]["permessi"] != '-' && isset($superselect['idanagrafica'])) {
$query = "SELECT *, (SELECT nomesede FROM an_sedi WHERE id=my_impianti.idsede) AS nomesede FROM my_impianti |where| ORDER BY idsede";
if (isset($id_elemento)) array_push($where, "idsede=" . prepare($id_elemento));
array_push($where, "idanagrafica=" . prepare($superselect['idanagrafica']));
array_push($where, "idsede=" . prepare($superselect['idsede']));
if (isset($search)) {
array_push($search_query, "nome LIKE " . prepare("%" . $search . "%"));
array_push($search_query, "matricola LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['matricola'] . " - " . $r['nome'] . " " . $r['marca'] . " " . $r['modello']));
}
}
break;
case "componenti" :
if ($modules_info["Gestione componenti"]["permessi"] != '-' && isset($superselect['marticola'])) {
$query = "SELECT * FROM my_impianto_componenti |where| ORDER BY id";
if (isset($id_elemento)) array_push($where, "idimpianto=" . prepare($id_elemento));
$temp = array();
$impianti = explode(",", $superselect['marticola']);
foreach ($impianti as $key => $idimpianto) {
array_push($temp, "idimpianto=" . prepare($idimpianto));
}
array_push($where, "(" . implode(" OR ", $temp) . ")");
if (isset($search)) {
array_push($search_query, "nome LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
$nome = "";
if (strpos($r['contenuto'], "[Matricola]") !== false) {
$ini_array = parse_ini_string(read($r['contenuto']), true);
foreach ($ini_array as $sezione => $array_impostazioni) {
if ($sezione == 'Matricola') $nome .= $ini_array[$sezione]['valore'] . " - ";
}
}
$nome .= $r["nome"];
array_push($result, array('id' => $r['id'],'text' => $nome));
}
}
break;
case "categorie" :
if ($modules_info["Magazzino"]["permessi"] != '-') {
$query = "SELECT id, nome FROM mg_categorie |where| ORDER BY id";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "`parent`=0");
if (isset($search)) {
array_push($search_query, "nome LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['nome']));
}
}
break;
case "sottocategorie" :
if ($modules_info["Magazzino"]["permessi"] != '-' && isset($superselect['id_categoria'])) {
$query = "SELECT id, nome FROM mg_categorie |where| ORDER BY id";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "`parent`=".prepare($superselect['id_categoria']));
if (isset($search)) {
array_push($search_query, "nome LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['nome']));
}
}
break;
case "preventivi" :
if ($modules_info["Preventivi"]["permessi"] != '-' && isset($superselect['idanagrafica'])) {
$query = "SELECT co_preventivi.id AS idpreventivo, an_anagrafiche.idanagrafica, numero, nome, idtipointervento FROM co_preventivi INNER JOIN an_anagrafiche ON co_preventivi.idanagrafica=an_anagrafiche.idanagrafica |where| ORDER BY id";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "an_anagrafiche.idanagrafica=" . prepare($superselect['idanagrafica']));
array_push($where, "idstato NOT IN (SELECT `id` FROM co_statipreventivi WHERE descrizione='Bozza' OR descrizione='Rifiutato' OR descrizione='Pagato')");
if (isset($search)) {
array_push($search_query, "nome LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['idpreventivo'],'text' => $r['numero'] . " " . $r['nome']));
}
}
break;
case "preventivi_aperti" :
if ($modules_info["Preventivi"]["permessi"] != '-') {
$query = "SELECT co_preventivi.id AS idpreventivo, an_anagrafiche.idanagrafica, numero, nome, idtipointervento, ragione_sociale FROM co_preventivi INNER JOIN an_anagrafiche ON co_preventivi.idanagrafica=an_anagrafiche.idanagrafica |where| ORDER BY idpreventivo";
if (isset($id_elemento)) array_push($where, "idpreventivo=" . prepare($id_elemento));
array_push($where, "idstato IN (1)");
if (isset($search)) {
array_push($search_query, "nome LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['idpreventivo'],'text' => $r['numero'] . " " . $r['nome'] . " (" . $r['ragione_sociale'] . ")"));
}
}
break;
case "contratti" :
if ($modules_info["Contratti"]["permessi"] != '-') {
$query = "SELECT co_contratti.id AS idcontratto, an_anagrafiche.idanagrafica, numero, nome FROM co_contratti INNER JOIN an_anagrafiche ON co_contratti.idanagrafica=an_anagrafiche.idanagrafica |where| ORDER BY id";
if (isset($id_elemento)) array_push($where, "id=" . prepare($id_elemento));
array_push($where, "an_anagrafiche.idanagrafica=" . prepare($superselect['idanagrafica']));
array_push($where, "idstato NOT IN (SELECT `id` FROM co_staticontratti WHERE descrizione='Bozza' OR descrizione='Rifiutato' OR descrizione='Pagato')");
if (isset($search)) {
array_push($search_query, "nome LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['idcontratto'],'text' => $r['numero'] . " " . $r['nome']));
}
}
break;
case "tipiintervento" :
if ($modules_info["Interventi"]["permessi"] != '-') {
$query = "SELECT idtipointervento AS id, descrizione FROM in_tipiintervento |where| ORDER BY idtipointervento";
if (isset($id_elemento)) array_push($where, "idtipointervento=" . prepare($id_elemento));
if (isset($search)) {
array_push($search_query, "descrizione LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['descrizione']));
}
}
break;
case "misure" :
if ($modules_info["Magazzino"]["permessi"] != '-') {
$query = "SELECT valore AS id, valore AS descrizione FROM mg_unitamisura |where| ORDER BY valore";
if (isset($id_elemento)) array_push($where, "valore=" . prepare($id_elemento) . "");
if (isset($search)) {
array_push($search_query, "valore LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['id'],'text' => $r['descrizione']));
}
}
break;
case "prodotti_lotti" :
if ($modules_info["Magazzino"]["permessi"] != '-') {
$query = "SELECT DISTINCT lotto AS valore FROM mg_prodotti |where|";
array_push( $where, "idarticolo=".prepare($superselect['idarticolo']) );
if (isset($id_elemento)) array_push($where, "lotto=" . prepare($id_elemento) . "");
if (isset($search)) {
array_push($search_query, "lotto LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['valore'],'text' => $r['valore']));
}
}
break;
case "prodotti_serial" :
if ($modules_info["Magazzino"]["permessi"] != '-') {
$query = "SELECT DISTINCT serial AS valore FROM mg_prodotti |where|";
array_push( $where, "idarticolo=".prepare($superselect['idarticolo']) );
array_push( $where, "lotto=".prepare($superselect['lotto']) );
if (isset($id_elemento)) array_push($where, "serial=" . prepare($id_elemento) . "");
if (isset($search)) {
array_push($search_query, "serial LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['valore'],'text' => $r['valore']));
}
}
break;
case "prodotti_altro" :
if ($modules_info["Magazzino"]["permessi"] != '-') {
$query = "SELECT DISTINCT altro AS valore FROM mg_prodotti |where|";
array_push( $where, "idarticolo=".prepare($superselect['idarticolo']) );
array_push( $where, "lotto=".prepare($superselect['lotto']) );
array_push( $where, "serial=".prepare($superselect['serial']) );
if (isset($id_elemento)) array_push($where, "altro=" . prepare($id_elemento) . "");
if (isset($search)) {
array_push($search_query, "altro LIKE " . prepare("%" . $search . "%"));
}
$wh = "";
if (count($search_query) != 0) array_push($where, "(" . implode(" OR ", $search_query) . ")");
if (count($where) != 0) {
$wh = "WHERE " . implode(" AND ", $where);
}
$query = str_replace("|where|", $wh, $query);
$rs = $dbo->fetchArray($query);
foreach ($rs as $r) {
array_push($result, array('id' => $r['valore'],'text' => $r['valore']));
}
}
break;
}
echo json_encode($result);
?>