840 lines
34 KiB
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);
|
||
|
?>
|