From cba6190b3e3bed09c4484952e9bb4c7fbc6f3109 Mon Sep 17 00:00:00 2001 From: Luca Date: Tue, 20 Nov 2018 11:53:58 +0100 Subject: [PATCH] Fix minori --- modules/anagrafiche/ajax/select.php | 41 +++++++++++++++++++++++++++++ modules/ddt/add.php | 2 +- modules/ddt/edit.php | 2 +- modules/utenti/ajax/select.php | 6 ++++- 4 files changed, 48 insertions(+), 3 deletions(-) diff --git a/modules/anagrafiche/ajax/select.php b/modules/anagrafiche/ajax/select.php index 4a3782f92..bcde162af 100644 --- a/modules/anagrafiche/ajax/select.php +++ b/modules/anagrafiche/ajax/select.php @@ -108,7 +108,48 @@ switch ($resource) { // $custom['idtipointervento'] = 'idtipointervento_default'; break; + + case 'clienti_fornitori': + $query = "SELECT `an_anagrafiche`.`idanagrafica` AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', provincia), ''), ')'), '')) AS descrizione, `an_tipianagrafiche`.`descrizione` AS optgroup, idtipointervento_default, an_tipianagrafiche.idtipoanagrafica FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC"; + foreach ($elements as $element) { + $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); + } + + + if (empty($filter)) { + $where[] = 'deleted_at IS NULL'; + $where[] = "an_tipianagrafiche_anagrafiche.idtipoanagrafica IN (SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione = 'Cliente' OR descrizione = 'Fornitore')"; + } + + if (!empty($search)) { + $search_fields[] = 'ragione_sociale LIKE '.prepare('%'.$search.'%'); + $search_fields[] = 'citta LIKE '.prepare('%'.$search.'%'); + $search_fields[] = 'provincia LIKE '.prepare('%'.$search.'%'); + } + + $wh = ''; + if (count($where) != 0) { + $wh = 'WHERE '.implode(' AND ', $where); + } + $query = str_replace('|where|', $wh, $query); + + $rs = $dbo->fetchArray($query); + foreach ($rs as $r) { + if ($prev != $r['optgroup']) { + $results[] = ['text' => $r['optgroup'], 'children' => []]; + $prev = $r['optgroup']; + } + + $results[count($results) - 1]['children'][] = [ + 'id' => $r['id'], + 'text' => $r['descrizione'], + 'descrizione' => $r['descrizione'], + ]; + } + + break; + // Nota Bene: nel campo id viene specificato idtipoanagrafica-idanagrafica -> modulo Utenti e permessi, creazione nuovo utente case 'anagrafiche': $query = "SELECT CONCAT(an_tipianagrafiche.idtipoanagrafica, '-', an_anagrafiche.idanagrafica) AS id, CONCAT_WS('', ragione_sociale, IF(citta !='' OR provincia != '', CONCAT(' (', citta, IF(provincia!='', CONCAT(' ', 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"; diff --git a/modules/ddt/add.php b/modules/ddt/add.php index 62f81093f..83e656e44 100644 --- a/modules/ddt/add.php +++ b/modules/ddt/add.php @@ -31,7 +31,7 @@ $id_anagrafica = !empty(get('idanagrafica')) ? get('idanagrafica') : $user['idan
- {[ "type": "select", "label": "Destinatario", "name": "idanagrafica", "id": "idanagrafica_add", "required": 1, "ajax-source": "anagrafiche", "icon-after": "add||tipoanagrafica=" ]} + {[ "type": "select", "label": "Destinatario", "name": "idanagrafica", "id": "idanagrafica_add", "required": 1, "ajax-source": "clienti_fornitori", "icon-after": "add||tipoanagrafica=" ]}
diff --git a/modules/ddt/edit.php b/modules/ddt/edit.php index 29bb365bb..51f1efdb3 100644 --- a/modules/ddt/edit.php +++ b/modules/ddt/edit.php @@ -94,7 +94,7 @@ if ($module['name'] == 'Ddt di vendita') {
- {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "anagrafiche", "readonly": "" ]} + {[ "type": "select", "label": "", "name": "idanagrafica", "required": 1, "value": "$idanagrafica$", "ajax-source": "clienti_fornitori", "readonly": "" ]}
diff --git a/modules/utenti/ajax/select.php b/modules/utenti/ajax/select.php index 74a6cc523..2ba011c2b 100644 --- a/modules/utenti/ajax/select.php +++ b/modules/utenti/ajax/select.php @@ -7,7 +7,11 @@ switch ($resource) { $query = 'SELECT `an_anagrafiche`.`idanagrafica` AS id, `an_anagrafiche`.`ragione_sociale` AS "descrizione", `an_tipianagrafiche`.`descrizione` AS optgroup FROM `an_tipianagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_tipianagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche_anagrafiche`.`idtipoanagrafica` INNER JOIN `an_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |where| ORDER BY `optgroup` ASC'; $where[] = 'an_anagrafiche.deleted_at IS NULL'; - + + foreach ($elements as $element) { + $filter[] = 'an_anagrafiche.idanagrafica='.prepare($element); + } + if (!empty($search)) { $search_fields[] = 'an_anagrafiche.ragione_sociale LIKE '.prepare('%'.$search.'%'); }