Skip to content

Commit b990fea

Browse files
committed
fix: selezione anagrafiche modulo mappa
1 parent 79a2a16 commit b990fea

2 files changed

Lines changed: 70 additions & 1 deletion

File tree

modules/anagrafiche/ajax/select.php

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -582,5 +582,74 @@
582582
];
583583
}
584584

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+
585654
break;
586655
}

modules/mappa/edit.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@
8080
</div>
8181
<div class="row">
8282
<div class="col-md-12">
83-
{[ "type": "select", "name": "idanagrafica", "id": "idanagrafica", "required": 1, "ajax-source": "clienti", "placeholder": "<?php echo tr('Seleziona un\'opzione'); ?>" ]}
83+
{[ "type": "select", "name": "idanagrafica", "id": "idanagrafica", "required": 1, "ajax-source": "clienti_mappa", "placeholder": "<?php echo tr('Seleziona un\'opzione'); ?>" ]}
8484
</div>
8585
</div>
8686

0 commit comments

Comments
 (0)