This commit is contained in:
Fabio Lovato 2018-02-16 14:56:35 +01:00
commit 650cf9501c
6 changed files with 277 additions and 276 deletions

View File

@ -56,141 +56,135 @@ if (!function_exists('completeResults')) {
switch ($op) { switch ($op) {
case 'clienti': case 'clienti':
if ((Modules::get('Anagrafiche')['permessi'] != '-') or (Modules::getAdditionalsQuery('Anagrafiche'))) { //$citta_cliente = ", IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))";
//$citta_cliente = ", IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))";
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale $citta_cliente) AS descrizione, idtipointervento_default, idzona 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"; $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale $citta_cliente) AS descrizione, idtipointervento_default, idzona 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";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
}
if (empty($filter)) {
$where[] = "descrizione='Cliente'";
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
$custom['idtipointervento'] = 'idtipointervento_default';
$custom['idzona'] = 'idzona';
} }
if (empty($filter)) {
$where[] = "descrizione='Cliente'";
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
$custom['idtipointervento'] = 'idtipointervento_default';
$custom['idzona'] = 'idzona';
break; break;
case 'fornitori': case 'fornitori':
if ((Modules::get('Anagrafiche')['permessi'] != '-') or (Modules::getAdditionalsQuery('Anagrafiche'))) { $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) 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";
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) 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";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
}
if (empty($filter)) {
$where[] = "descrizione='Fornitore'";
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
$custom['idtipointervento'] = 'idtipointervento_default';
} }
if (empty($filter)) {
$where[] = "descrizione='Fornitore'";
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
$custom['idtipointervento'] = 'idtipointervento_default';
break; break;
case 'agenti': case 'agenti':
if ((Modules::get('Anagrafiche')['permessi'] != '-') or (Modules::getAdditionalsQuery('Anagrafiche'))) { $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) 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";
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) 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";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
}
if (empty($filter)) {
$where[] = "descrizione='Agente'";
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
$results = completeResults($query, $where, $filter, $search, $custom);
// 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;
}
$ids = array_column($results, $id);
$pos = array_search($idagente_default, $ids);
if ($pos !== false) {
$results[$pos]['_bgcolor_'] = '#ff0';
}
} }
if (empty($filter)) {
$where[] = "descrizione='Agente'";
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
$results = completeResults($query, $where, $filter, $search, $custom);
// 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;
}
$ids = array_column($results, $id);
$pos = array_search($idagente_default, $ids);
if ($pos !== false) {
$results[$pos]['_bgcolor_'] = '#ff0';
}
break; break;
case 'tecnici': case 'tecnici':
if ((Modules::get('Anagrafiche')['permessi'] != '-') or (Modules::getAdditionalsQuery('Anagrafiche'))) { $query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) 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";
$query = "SELECT an_anagrafiche.idanagrafica AS id, CONCAT(ragione_sociale, IF(citta IS NULL OR citta = '', '', CONCAT(' (', citta, ')'))) 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";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
}
if (empty($filter)) {
$where[] = "descrizione='Tecnico'";
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
// $custom['idtipointervento'] = 'idtipointervento_default';
} }
if (empty($filter)) {
$where[] = "descrizione='Tecnico'";
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
// $custom['idtipointervento'] = 'idtipointervento_default';
break; break;
// Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente // Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente
case 'anagrafiche': case 'anagrafiche':
if ((Modules::get('Anagrafiche')['permessi'] != '-') or (Modules::getAdditionalsQuery('Anagrafiche'))) { $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";
$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";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element);
}
if (empty($filter)) {
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
// $custom['idtipointervento'] = 'idtipointervento_default';
} }
if (empty($filter)) {
$where[] = 'deleted=0';
}
if (!empty($search)) {
$search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
$search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%');
}
// $custom['idtipointervento'] = 'idtipointervento_default';
break; break;
case 'sedi': case 'sedi':
if (Modules::get('Anagrafiche')['permessi'] != '-' && isset($superselect['idanagrafica'])) { if (isset($superselect['idanagrafica'])) {
$query = "SELECT * FROM (SELECT 0 AS id, 'Sede legale' AS descrizione, (SELECT an_anagrafiche.idzona FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica = ".prepare($superselect['idanagrafica']).") AS idzona UNION SELECT id, CONCAT_WS(' - ', nomesede, citta), idzona AS idzona FROM an_sedi |where|) AS tab |filter| ORDER BY id"; $query = "SELECT * FROM (SELECT 0 AS id, 'Sede legale' AS descrizione, (SELECT an_anagrafiche.idzona FROM an_anagrafiche WHERE an_anagrafiche.idanagrafica = ".prepare($superselect['idanagrafica']).") AS idzona UNION SELECT id, CONCAT_WS(' - ', nomesede, citta), idzona AS idzona FROM an_sedi |where|) AS tab |filter| ORDER BY id";
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'id='.prepare($element); $filter[] = 'id='.prepare($element);
@ -203,12 +197,12 @@ switch ($op) {
$search_fields[] = 'citta LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'citta LIKE '.prepare('%'.$search.'%');
} }
$custom['idzona'] = 'idzona'; $custom['idzona'] = 'idzona';
} }
break; break;
case 'referenti': case 'referenti':
if (Modules::get('Anagrafiche')['permessi'] != '-' && isset($superselect['idanagrafica'])) { if (isset($superselect['idanagrafica'])) {
$query = 'SELECT id, nome AS descrizione FROM an_referenti |where| ORDER BY id'; $query = 'SELECT id, nome AS descrizione FROM an_referenti |where| ORDER BY id';
foreach ($elements as $element) { foreach ($elements as $element) {
@ -292,85 +286,82 @@ switch ($op) {
break; break;
case 'conti': case 'conti':
if (Modules::get('Piano dei conti')['permessi'] != '-') { $query = 'SELECT * FROM co_pianodeiconti2';
$query = 'SELECT * FROM co_pianodeiconti2';
$rs = $dbo->fetchArray($query); $rs = $dbo->fetchArray($query);
foreach ($rs as $r) { foreach ($rs as $r) {
$results[] = ['text' => $r['numero'].' '.$r['descrizione'], 'children' => []]; $results[] = ['text' => $r['numero'].' '.$r['descrizione'], 'children' => []];
$subquery = 'SELECT * FROM co_pianodeiconti3 |where|'; $subquery = 'SELECT * FROM co_pianodeiconti3 |where|';
$where = []; $where = [];
$filter = []; $filter = [];
$search_fields = []; $search_fields = [];
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'id='.prepare($element); $filter[] = 'id='.prepare($element);
} }
if (!empty($filter)) { if (!empty($filter)) {
$where[] = '('.implode(' OR ', $filter).')'; $where[] = '('.implode(' OR ', $filter).')';
} }
$where[] = 'idpianodeiconti2='.prepare($r['id']); $where[] = 'idpianodeiconti2='.prepare($r['id']);
if (!empty($search)) { if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%'); $search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
} }
if (!empty($search_fields)) { if (!empty($search_fields)) {
$where[] = '('.implode(' OR ', $search_fields).')'; $where[] = '('.implode(' OR ', $search_fields).')';
} }
$wh = ''; $wh = '';
if (count($where) != 0) { if (count($where) != 0) {
$wh = 'WHERE '.implode(' AND ', $where); $wh = 'WHERE '.implode(' AND ', $where);
} }
$subquery = str_replace('|where|', $wh, $subquery); $subquery = str_replace('|where|', $wh, $subquery);
$rs2 = $dbo->fetchArray($subquery); $rs2 = $dbo->fetchArray($subquery);
foreach ($rs2 as $r2) { foreach ($rs2 as $r2) {
$results[count($results) - 1]['children'][] = ['id' => $r2['id'], 'text' => $r2['descrizione']]; $results[count($results) - 1]['children'][] = ['id' => $r2['id'], 'text' => $r2['descrizione']];
}
} }
} }
break; break;
case 'conti-vendite': 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";
$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) { foreach ($elements as $element) {
$filter[] = 'co_pianodeiconti3.id='.prepare($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.'%');
}
} }
$where[] = "co_pianodeiconti1.descrizione='Economico'";
$where[] = "co_pianodeiconti3.dir='entrata'";
if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
}
break; break;
case 'conti-acquisti': 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";
$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) { foreach ($elements as $element) {
$filter[] = 'co_pianodeiconti3.id='.prepare($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.'%');
}
} }
$where[] = "co_pianodeiconti1.descrizione='Economico'";
$where[] = "co_pianodeiconti3.dir='uscita'";
if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
}
break; break;
case 'impianti': case 'impianti':
if (Modules::get('MyImpianti')['permessi'] != '-' && isset($superselect['idanagrafica'])) { if (isset($superselect['idanagrafica'])) {
$query = 'SELECT id, CONCAT(matricola, " - ", nome) AS descrizione FROM my_impianti |where| ORDER BY idsede'; $query = 'SELECT id, CONCAT(matricola, " - ", nome) AS descrizione FROM my_impianti |where| ORDER BY idsede';
foreach ($elements as $element) { foreach ($elements as $element) {
@ -388,7 +379,7 @@ switch ($op) {
break; break;
case 'componenti': case 'componenti':
if (Modules::get('Gestione componenti')['permessi'] != '-' && isset($superselect['marticola'])) { if (isset($superselect['marticola'])) {
$query = 'SELECT id, nome AS descrizione, contenuto FROM my_impianto_componenti |where| ORDER BY id'; $query = 'SELECT id, nome AS descrizione, contenuto FROM my_impianto_componenti |where| ORDER BY id';
foreach ($elements as $element) { foreach ($elements as $element) {
@ -421,23 +412,22 @@ switch ($op) {
break; break;
case 'categorie': case 'categorie':
if (Modules::get('Magazzino')['permessi'] != '-') { $query = 'SELECT id, nome AS descrizione FROM mg_categorie |where| ORDER BY id';
$query = 'SELECT id, nome AS descrizione FROM mg_categorie |where| ORDER BY id';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'id='.prepare($element); $filter[] = 'id='.prepare($element);
}
$where[] = '`parent` IS NULL';
if (!empty($search)) {
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
}
} }
$where[] = '`parent` IS NULL';
if (!empty($search)) {
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
}
break; break;
case 'sottocategorie': case 'sottocategorie':
if (Modules::get('Magazzino')['permessi'] != '-' && isset($superselect['id_categoria'])) { if (isset($superselect['id_categoria'])) {
$query = 'SELECT id, nome AS descrizione FROM mg_categorie |where| ORDER BY id'; $query = 'SELECT id, nome AS descrizione FROM mg_categorie |where| ORDER BY id';
foreach ($elements as $element) { foreach ($elements as $element) {
@ -453,7 +443,7 @@ switch ($op) {
break; break;
case 'preventivi': case 'preventivi':
if (Modules::get('Preventivi')['permessi'] != '-' && isset($superselect['idanagrafica'])) { 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'; $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) { foreach ($elements as $element) {
@ -473,115 +463,108 @@ switch ($op) {
break; break;
case 'preventivi_aperti': 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';
$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) { foreach ($elements as $element) {
$filter[] = 'idpreventivo='.prepare($element); $filter[] = 'idpreventivo='.prepare($element);
}
$where[] = 'idstato IN (1)';
if (!empty($search)) {
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
}
} }
$where[] = 'idstato IN (1)';
if (!empty($search)) {
$search_fields[] = 'nome LIKE '.prepare('%'.$search.'%');
}
break; break;
case 'contratti': 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';
$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) { foreach ($elements as $element) {
$filter[] = 'id='.prepare($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.'%');
}
} }
$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; break;
case 'tipiintervento': case 'tipiintervento':
if (Modules::get('Interventi')['permessi'] != '-') { $query = 'SELECT idtipointervento AS id, descrizione FROM in_tipiintervento |where| ORDER BY idtipointervento';
$query = 'SELECT idtipointervento AS id, descrizione FROM in_tipiintervento |where| ORDER BY idtipointervento';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'idtipointervento='.prepare($element); $filter[] = 'idtipointervento='.prepare($element);
}
if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
}
} }
if (!empty($search)) {
$search_fields[] = 'descrizione LIKE '.prepare('%'.$search.'%');
}
break; break;
case 'misure': case 'misure':
if (Modules::get('Magazzino')['permessi'] != '-') { $query = 'SELECT valore AS id, valore AS descrizione FROM mg_unitamisura |where| ORDER BY valore';
$query = 'SELECT valore AS id, valore AS descrizione FROM mg_unitamisura |where| ORDER BY valore';
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'valore='.prepare($element).''; $filter[] = 'valore='.prepare($element).'';
}
if (!empty($search)) {
$search_fields[] = 'valore LIKE '.prepare('%'.$search.'%');
}
} }
if (!empty($search)) {
$search_fields[] = 'valore LIKE '.prepare('%'.$search.'%');
}
break; break;
case 'prodotti_lotti': case 'prodotti_lotti':
if (Modules::get('Magazzino')['permessi'] != '-') { $query = 'SELECT DISTINCT lotto AS descrizione FROM mg_prodotti |where|';
$query = 'SELECT DISTINCT lotto AS descrizione FROM mg_prodotti |where|';
$where[] = 'idarticolo='.prepare($superselect['idarticolo']); $where[] = 'idarticolo='.prepare($superselect['idarticolo']);
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'lotto='.prepare($element).''; $filter[] = 'lotto='.prepare($element).'';
}
if (!empty($search)) {
$search_fields[] = 'lotto LIKE '.prepare('%'.$search.'%');
}
$custom['id'] = 'descrizione';
} }
if (!empty($search)) {
$search_fields[] = 'lotto LIKE '.prepare('%'.$search.'%');
}
$custom['id'] = 'descrizione';
break; break;
case 'prodotti_serial': case 'prodotti_serial':
if (Modules::get('Magazzino')['permessi'] != '-') { $query = 'SELECT DISTINCT serial AS descrizione FROM mg_prodotti |where|';
$query = 'SELECT DISTINCT serial AS descrizione FROM mg_prodotti |where|';
$where[] = 'id_articolo='.prepare($superselect['idarticolo']); $where[] = 'id_articolo='.prepare($superselect['idarticolo']);
$where[] = 'lotto='.prepare($superselect['lotto']); $where[] = 'lotto='.prepare($superselect['lotto']);
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'serial='.prepare($element).''; $filter[] = 'serial='.prepare($element).'';
}
if (!empty($search)) {
$search_fields[] = 'serial LIKE '.prepare('%'.$search.'%');
}
$custom['id'] = 'descrizione';
} }
if (!empty($search)) {
$search_fields[] = 'serial LIKE '.prepare('%'.$search.'%');
}
$custom['id'] = 'descrizione';
break; break;
case 'prodotti_altro': case 'prodotti_altro':
if (Modules::get('Magazzino')['permessi'] != '-') { $query = 'SELECT DISTINCT altro AS descrizione FROM mg_prodotti |where|';
$query = 'SELECT DISTINCT altro AS descrizione FROM mg_prodotti |where|';
$where[] = 'id_articolo='.prepare($superselect['idarticolo']); $where[] = 'id_articolo='.prepare($superselect['idarticolo']);
$where[] = 'lotto='.prepare($superselect['lotto']); $where[] = 'lotto='.prepare($superselect['lotto']);
$where[] = 'serial='.prepare($superselect['serial']); $where[] = 'serial='.prepare($superselect['serial']);
foreach ($elements as $element) { foreach ($elements as $element) {
$filter[] = 'altro='.prepare($element).''; $filter[] = 'altro='.prepare($element).'';
}
if (!empty($search)) {
$search_fields[] = 'altro LIKE '.prepare('%'.$search.'%');
}
$custom['id'] = 'descrizione';
} }
if (!empty($search)) {
$search_fields[] = 'altro LIKE '.prepare('%'.$search.'%');
}
$custom['id'] = 'descrizione';
break; break;
} }

View File

@ -1002,6 +1002,10 @@ function start_inputmask(element) {
regex: "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$", regex: "^[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+(?:\\.[a-zA-Z0-9_!#$%&'*+/=?`{|}~^-]+)*@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*$",
}); });
$(element+'.alphanumeric-mask').inputmask('Regex', {
regex: "[A-Za-z0-9]{10}",
});
if (isMobile.any()) { if (isMobile.any()) {
$(element+'.inputmask-decimal, '+element+'.date-mask, '+element+'.timestamp-mask').each(function () { $(element+'.inputmask-decimal, '+element+'.date-mask, '+element+'.timestamp-mask').each(function () {
$(this).attr('type', 'tel'); $(this).attr('type', 'tel');

View File

@ -71,7 +71,7 @@ elseif (!empty($idcontratto) && !empty($idcontratto_riga)) {
$idimpianto = implode(',', array_column($rs, 'idimpianto')); $idimpianto = implode(',', array_column($rs, 'idimpianto'));
// Seleziono "In programmazione" come stato // Seleziono "In programmazione" come stato
$rs = $dbo->fetchArray("SELECT * FROM in_statiintervento WHERE descrizione='In programmazione'"); $rs = $dbo->fetchArray("SELECT * FROM in_statiintervento WHERE codice='WIP'");
$idstatointervento = $rs[0]['idstatointervento']; $idstatointervento = $rs[0]['idstatointervento'];
} }
@ -184,7 +184,7 @@ if (empty($new_codice)) {
</div> </div>
<div class="col-md-4"> <div class="col-md-4">
{[ "type": "select", "label": "<?php echo tr('Stato intervento'); ?>", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento", "value": "<?php echo $idstatointervento; ?>" ]} {[ "type": "select", "label": "<?php echo tr('Stato intervento'); ?>", "name": "idstatointervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted = 0", "value": "<?php echo $idstatointervento; ?>" ]}
</div> </div>
<div class="col-md-2"> <div class="col-md-2">

View File

@ -14,7 +14,7 @@ switch (post('op')) {
$query = 'UPDATE in_statiintervento SET descrizione='.prepare($descrizione).' WHERE idstatointervento='.prepare($id_record).' AND `default`=0'; $query = 'UPDATE in_statiintervento SET descrizione='.prepare($descrizione).' WHERE idstatointervento='.prepare($id_record).' AND `default`=0';
$dbo->query($query); $dbo->query($query);
$_SESSION['infos'][] = tr('Informazioni salvate correttamente!'); $_SESSION['infos'][] = tr('Informazioni salvate correttamente.');
break; break;
@ -23,19 +23,31 @@ switch (post('op')) {
$descrizione = post('descrizione'); $descrizione = post('descrizione');
$colore = post('colore'); $colore = post('colore');
$query = 'INSERT INTO in_statiintervento(idstatointervento, descrizione, colore) VALUES ('.prepare($idstatointervento).', '.prepare($descrizione).', '.prepare($colore).')';
$dbo->query($query);
$id_record = $idstatointervento;
$_SESSION['infos'][] = tr('Nuovo stato di intervento aggiunto!');
if (count($dbo->fetchArray('SELECT idstatointervento FROM in_statiintervento WHERE idstatointervento='.prepare($idstatointervento).''))>0){
$_SESSION['errors'][] = tr('Stato di intervento già esistente.');
}else{
$query = 'INSERT INTO in_statiintervento(idstatointervento, descrizione, colore) VALUES ('.prepare($idstatointervento).', '.prepare($descrizione).', '.prepare($colore).')';
$dbo->query($query);
$id_record = $idstatointervento;
$_SESSION['infos'][] = tr('Nuovo stato di intervento aggiunto.');
}
break; break;
case 'delete': case 'delete':
$query = 'DELETE FROM in_statiintervento WHERE idstatointervento='.prepare($id_record).' AND `default`=0'; $query = 'UPDATE in_statiintervento SET deleted = 1 WHERE idstatointervento='.prepare($id_record).' AND `default`=0';
$dbo->query($query);
$_SESSION['infos'][] = tr('Stato di intervento eliminato!'); $dbo->query($query);
$_SESSION['infos'][] = tr('Stato di intervento eliminato.');
break; break;
} }

View File

@ -8,7 +8,7 @@ include_once __DIR__.'/../../core.php';
<div class="row"> <div class="row">
<div class="col-md-2"> <div class="col-md-2">
{[ "type": "text", "label": "<?php echo tr('Codice'); ?>", "name": "idstatointervento", "required": 1, "value": "" ]} {[ "type": "text", "label": "<?php echo tr('Codice'); ?>", "name": "idstatointervento", "class": "alphanumeric-mask", "required": 1, "value": "" ]}
</div> </div>
<div class="col-md-6"> <div class="col-md-6">

View File

@ -45,26 +45,28 @@ UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(an_anagrafiche.idanagrafica) AS
-- Aggiungo 1=1 nel WHERE e 2=2 nel HAVING per il widget tutte le anagrafiche -- Aggiungo 1=1 nel WHERE e 2=2 nel HAVING per il widget tutte le anagrafiche
UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(an_anagrafiche.idanagrafica) AS dato 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 1=1 AND deleted=0 HAVING 2=2' WHERE `zz_widgets`.`name` = 'Tutte le anagrafiche'; UPDATE `zz_widgets` SET `query` = 'SELECT COUNT(an_anagrafiche.idanagrafica) AS dato 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 1=1 AND deleted=0 HAVING 2=2' WHERE `zz_widgets`.`name` = 'Tutte le anagrafiche';
-- Aggiornamento widget "Crediti da clienti" anche con totali parziali -- Aggiornamento widget "Crediti da clienti" anche con totali parziali
UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(" ", REPLACE(REPLACE(REPLACE(FORMAT(da_pagare-pagato, 2), ",", "#"), ".", ","), "#", "."), "€") AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=\'entrata\'' WHERE `zz_widgets`.`name` = 'Crediti da clienti'; UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(" ", REPLACE(REPLACE(REPLACE(FORMAT(da_pagare-pagato, 2), ",", "#"), ".", ","), "#", "."), "€") AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=\'entrata\'' WHERE `zz_widgets`.`name` = 'Crediti da clienti';
-- Aggiornamento widget "Debiti verso fornitori" anche con totali parziali -- Aggiornamento widget "Debiti verso fornitori" anche con totali parziali
UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(" ", REPLACE(REPLACE(REPLACE(FORMAT( -(da_pagare-pagato), 2), ",", "#"), ".", ","), "#", "."), "€") AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=\'uscita\'' WHERE `zz_widgets`.`name` = 'Debiti verso fornitori'; UPDATE `zz_widgets` SET `query` = 'SELECT CONCAT_WS(" ", REPLACE(REPLACE(REPLACE(FORMAT( -(da_pagare-pagato), 2), ",", "#"), ".", ","), "#", "."), "€") AS dato FROM (co_scadenziario INNER JOIN co_documenti ON co_scadenziario.iddocumento=co_documenti.id) INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id WHERE co_tipidocumento.dir=\'uscita\'' WHERE `zz_widgets`.`name` = 'Debiti verso fornitori';
-- Aggiungo flag deleted per gli stati intervento
ALTER TABLE `in_statiintervento` ADD `deleted` BOOLEAN NOT NULL DEFAULT FALSE AFTER `completato`;
-- Aggiunta possibilità di specificare se uno stato intervento è eliminabile o meno (di default sì) -- Aggiorno query modulo stati intervento
UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `in_statiintervento` WHERE 1=1 AND deleted = 0 HAVING 2=2' WHERE `zz_modules`.`name` = 'Stati di intervento';
-- Aggiungo il flag can_delete ed elimino il flag `default` in quanto non serve più
ALTER TABLE `in_statiintervento` ADD `can_delete` BOOLEAN NOT NULL DEFAULT TRUE AFTER `default`; ALTER TABLE `in_statiintervento` ADD `can_delete` BOOLEAN NOT NULL DEFAULT TRUE AFTER `default`;
ALTER TABLE `in_statiintervento` DROP `default`;
-- Ridenominazione campo `default` a `can_edit` per maggior chiarezza
ALTER TABLE `in_statiintervento` CHANGE `default` `can_edit` TINYINT( 1 ) NOT NULL ;
-- Aggiunti come eliminabili gli stati "Chiamata" e "In programmazione" -- Aggiunti come eliminabili gli stati "Chiamata" e "In programmazione"
UPDATE `in_statiintervento` SET `can_delete` = 1, `can_edit` = 1 WHERE `idstatointervento` IN( 'CALL', 'WIP' ); UPDATE `in_statiintervento` SET `can_delete` = 1 WHERE `idstatointervento` IN( 'CALL', 'WIP' );
-- Aggiunti come non eliminabili ma modificabili gli stati "Fatturato" e "Completato" -- Aggiunti come non eliminabili ma modificabili gli stati "Fatturato" e "Completato"
UPDATE `in_statiintervento` SET `can_delete` = 0, `can_edit` = 1 WHERE `idstatointervento` IN( 'FAT', 'OK' ); UPDATE `in_statiintervento` SET `can_delete` = 0 WHERE `idstatointervento` IN( 'FAT', 'OK' );
-- Impostazione di tutti gli eventuali altri tipi di intervento a modificabili e cancellabili -- Impostazione di tutti gli eventuali altri tipi di intervento a modificabili e cancellabili
UPDATE `in_statiintervento` SET `can_delete` = 1, `can_edit` = 1 WHERE `idstatointervento` NOT IN( 'FAT', 'OK', 'CALL', 'WIP' ); UPDATE `in_statiintervento` SET `can_delete` = 1 WHERE `idstatointervento` NOT IN( 'FAT', 'OK', 'CALL', 'WIP' );