|
582 | 582 | ]; |
583 | 583 | } |
584 | 584 |
|
| 585 | + break; |
| 586 | + |
| 587 | + case 'clienti_mappa': |
| 588 | + $id_azienda = setting('Azienda predefinita'); |
| 589 | + $tipologia = Tipo::where('name', 'Cliente')->first()->id; |
| 590 | + $query = "SELECT |
| 591 | + `an_anagrafiche`.`idanagrafica` AS id, |
| 592 | + `an_anagrafiche`.`lat`, |
| 593 | + `an_anagrafiche`.`lng`, |
| 594 | + `is_bloccata`, |
| 595 | + CONCAT(`ragione_sociale`, IF(`citta` IS NULL OR `citta` = '', '', CONCAT(' (', `citta`, ')')), IF(`an_anagrafiche`.`deleted_at` IS NULL, '', ' (".tr('eliminata').")'), IF(`is_bloccata` = 1, CONCAT(' (', `an_relazioni_lang`.`title`, ')'), ''),' - ', `an_anagrafiche`.`codice` ) AS descrizione |
| 596 | + FROM |
| 597 | + `an_anagrafiche` |
| 598 | + INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` |
| 599 | + INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` |
| 600 | + LEFT JOIN `an_tipianagrafiche_lang` ON (`an_tipianagrafiche`.`id` = `an_tipianagrafiche_lang`.`id_record` AND `an_tipianagrafiche_lang`.`id_lang` = ".prepare(Models\Locale::getDefault()->id).') |
| 601 | +
|
| 602 | + LEFT JOIN an_relazioni ON an_anagrafiche.idrelazione=an_relazioni.id |
| 603 | + LEFT JOIN `an_relazioni_lang` ON (`an_relazioni`.`id`=`an_relazioni_lang`.`id_record` AND `an_relazioni_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') |
| 604 | + |where| '.Modules::getAdditionalsQuery(Module::where('name', 'Anagrafiche')->first()->id).' |
| 605 | + ORDER BY |
| 606 | + `ragione_sociale`'; |
| 607 | + |
| 608 | + foreach ($elements as $element) { |
| 609 | + $filter[] = '`an_anagrafiche`.`idanagrafica`='.prepare($element); |
| 610 | + } |
| 611 | + |
| 612 | + $where[] = '`an_tipianagrafiche`.`id`= '.prepare($tipologia); |
| 613 | + if (empty($filter)) { |
| 614 | + $where[] = '`an_anagrafiche`.`deleted_at` IS NULL'; |
| 615 | + } |
| 616 | + |
| 617 | + if (!empty($search)) { |
| 618 | + $search_fields[] = '`ragione_sociale` LIKE '.prepare('%'.$search.'%'); |
| 619 | + $search_fields[] = '`citta` LIKE '.prepare('%'.$search.'%'); |
| 620 | + $search_fields[] = '`provincia` LIKE '.prepare('%'.$search.'%'); |
| 621 | + $search_fields[] = '`an_anagrafiche`.`codice` LIKE '.prepare('%'.$search.'%'); |
| 622 | + $search_fields[] = '`an_anagrafiche`.`piva` LIKE '.prepare('%'.$search.'%'); |
| 623 | + $search_fields[] = '`an_anagrafiche`.`codice_fiscale` LIKE '.prepare('%'.$search.'%'); |
| 624 | + } |
| 625 | + |
| 626 | + $custom['link'] = 'module:Anagrafiche'; |
| 627 | + |
| 628 | + $data = AJAX::selectResults($query, $where, $filter, $search_fields, $limit, $custom); |
| 629 | + $rs = $data['results']; |
| 630 | + |
| 631 | + foreach ($rs as $k => $r) { |
| 632 | + // Controllo se le coordinate geografiche sono definite |
| 633 | + $coordinate_vuote = empty($r['lat']) || empty($r['lng']) || $r['lat'] == '0.000000' || $r['lng'] == '0.000000' || $r['lat'] == 0 || $r['lng'] == 0; |
| 634 | + |
| 635 | + // Modifica la descrizione se le coordinate non sono definite |
| 636 | + $descrizione = $r['descrizione']; |
| 637 | + if ($coordinate_vuote) { |
| 638 | + $descrizione .= ' (Indirizzo non definito)'; |
| 639 | + } |
| 640 | + |
| 641 | + $rs[$k] = array_merge($r, [ |
| 642 | + 'text' => $descrizione, |
| 643 | + 'disabled' => !empty($elements) ? 0 : ($r['is_bloccata'] || $coordinate_vuote), |
| 644 | + '_bgcolor_' => $coordinate_vuote ? '#ffcccc' : null, |
| 645 | + ]); |
| 646 | + } |
| 647 | + |
| 648 | + $results = [ |
| 649 | + 'results' => $rs, |
| 650 | + 'recordsFiltered' => $data['recordsFiltered'], |
| 651 | + 'link' => 'module:Anagrafiche', |
| 652 | + ]; |
| 653 | + |
585 | 654 | break; |
586 | 655 | } |
0 commit comments