|
22 | 22 |
|
23 | 23 | switch ($resource) { |
24 | 24 | case 'tipiintervento': |
25 | | - $query = 'SELECT `in_tipiintervento`.`id`, CASE WHEN ISNULL(`tempo_standard`) OR `tempo_standard` <= 0 THEN CONCAT(`codice`, \' - \', `title`, IF(`in_tipiintervento`.`deleted_at` IS NULL, "", " ('.tr('eliminato').')")) WHEN `tempo_standard` > 0 THEN CONCAT(`codice`, \' - \', `title`, \' (\', REPLACE(FORMAT(`tempo_standard`, 2), \'.\', \',\'), \' ore)\', IF(`in_tipiintervento`.`deleted_at` IS NULL, "", " ('.tr('eliminato').')")) END AS descrizione, `tempo_standard` FROM `in_tipiintervento` LEFT JOIN `in_tipiintervento_lang` ON (`in_tipiintervento`.`id` = `in_tipiintervento_lang`.`id_record` AND `in_tipiintervento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') |where| ORDER BY `title`'; |
| 25 | + $query = 'SELECT `in_tipiintervento`.`id`, CASE WHEN ISNULL(`tempo_standard`) OR `tempo_standard` <= 0 THEN CONCAT(`codice`, \' - \', `title`, IF(`in_tipiintervento`.`deleted_at` IS NULL, "", " ('.tr('eliminato').')")) WHEN `tempo_standard` > 0 THEN CONCAT(`codice`, \' - \', `title`, \' (\', REPLACE(FORMAT(`tempo_standard`, 2), \'.\', \',\'), \' ore)\', IF(`in_tipiintervento`.`deleted_at` IS NULL, "", " ('.tr('eliminato').')")) END AS descrizione, `tempo_standard` |
| 26 | + FROM `in_tipiintervento` |
| 27 | + LEFT JOIN `in_tipiintervento_lang` ON (`in_tipiintervento`.`id` = `in_tipiintervento_lang`.`id_record` AND `in_tipiintervento_lang`.`id_lang` = '.prepare(Models\Locale::getDefault()->id).') |
| 28 | + |where| |
| 29 | + ORDER BY `title`'; |
26 | 30 |
|
27 | 31 | foreach ($elements as $element) { |
28 | 32 | $filter[] = '`in_tipiintervento`.`id`='.prepare($element); |
|
36 | 40 | $search_fields[] = '`title` LIKE '.prepare('%'.$search.'%'); |
37 | 41 | } |
38 | 42 |
|
| 43 | + $data = AJAX::selectResults($query, $where, $filter, $search_fields, $limit, $custom); |
| 44 | + $rs = $data['results']; |
| 45 | + |
| 46 | + foreach ($rs as $k => $r) { |
| 47 | + $disabled = false; |
| 48 | + |
| 49 | + // Controllo se il tipo intervento è compatibile con la tipologia dell'anagrafica |
| 50 | + if (!empty($superselect['idanagrafica'])) { |
| 51 | + // Ottengo la tipologia dell'anagrafica selezionata |
| 52 | + $anagrafica_tipo = $dbo->fetchOne('SELECT `tipo` |
| 53 | + FROM `an_anagrafiche` |
| 54 | + WHERE `idanagrafica` = '.prepare($superselect['idanagrafica'])); |
| 55 | + |
| 56 | + // Ottengo le tipologie associate al tipo intervento |
| 57 | + $tipologie_tipo_intervento = $dbo->fetchArray('SELECT `tipo` |
| 58 | + FROM `in_tipiintervento_tipologie` |
| 59 | + WHERE `idtipointervento` = '.prepare($r['id'])); |
| 60 | + |
| 61 | + $tipologie_tipo_intervento = array_column($tipologie_tipo_intervento, 'tipo'); |
| 62 | + if (!empty($tipologie_tipo_intervento)) { |
| 63 | + // Controllo se la tipologia dell'anagrafica è presente nelle tipologie del tipo intervento |
| 64 | + $compatibile = in_array($anagrafica_tipo['tipo'], $tipologie_tipo_intervento); |
| 65 | + if (!$compatibile) { |
| 66 | + $disabled = true; |
| 67 | + } |
| 68 | + } |
| 69 | + } |
| 70 | + |
| 71 | + $rs[$k] = array_merge($r, [ |
| 72 | + 'text' => $r['descrizione'], |
| 73 | + 'disabled' => $disabled, |
| 74 | + ]); |
| 75 | + } |
| 76 | + |
| 77 | + $results = [ |
| 78 | + 'results' => $rs, |
| 79 | + 'recordsFiltered' => $data['recordsFiltered'], |
| 80 | + ]; |
| 81 | + |
39 | 82 | break; |
40 | 83 | } |
0 commit comments