. */ use Geocoder\Provider\GoogleMaps; use Ivory\HttpAdapter\CurlHttpAdapter; use Modules\Anagrafiche\Anagrafica; use Modules\Anagrafiche\Export\CSV; include_once __DIR__.'/../../core.php'; switch (post('op')) { case 'delete-bulk': $id_tipo_azienda = $dbo->fetchArray("SELECT idtipoanagrafica FROM an_tipianagrafiche WHERE descrizione='Azienda'")[0]['idtipoanagrafica']; foreach ($id_records as $id) { $anagrafica = $dbo->fetchArray('SELECT an_tipianagrafiche.idtipoanagrafica FROM an_tipianagrafiche INNER JOIN an_tipianagrafiche_anagrafiche ON an_tipianagrafiche.idtipoanagrafica=an_tipianagrafiche_anagrafiche.idtipoanagrafica WHERE idanagrafica='.prepare($id)); $tipi = array_column($anagrafica, 'idtipoanagrafica'); // Se l'anagrafica non รจ di tipo Azienda if (!in_array($id_tipo_azienda, $tipi)) { $dbo->query('UPDATE an_anagrafiche SET deleted_at = NOW() WHERE idanagrafica = '.prepare($id).Modules::getAdditionalsQuery($id_module)); } } flash()->info(tr('Anagrafiche eliminate!')); break; case 'ricerca-coordinate': foreach ($id_records as $id) { $anagrafica = Anagrafica::find($id); if (empty($anagrafica->lat) && empty($anagrafica->lng) && !empty($anagrafica->sedeLegale->citta) && !empty($anagrafica->sedeLegale->cap)) { $indirizzo = urlencode($anagrafica->sedeLegale->citta.' '.$anagrafica->sedeLegale->cap); // TODO: da riscrivere con Guzzle e spostare su hook $ch = curl_init(); $url = "https://nominatim.openstreetmap.org/search.php?q=".$indirizzo."&format=jsonv2"; $user_agent = 'traccar'; curl_setopt($ch, CURLOPT_USERAGENT, $user_agent); curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $data = json_decode(curl_exec($ch)); curl_close($ch); // Salvataggio informazioni $anagrafica->gaddress = $data[0]->display_name; $anagrafica->lat = $data[0]->lat; $anagrafica->lng = $data[0]->lon; $anagrafica->save(); } } break; case 'export-csv': $file = temp_file(); $exporter = new CSV($file); // Esportazione dei record selezionati $anagrafiche = Anagrafica::whereIn('idanagrafica', $id_records)->get(); $exporter->setRecords($anagrafiche); $count = $exporter->exportRecords(); download($file, 'anagrafiche.csv'); break; case 'cambia-relazione': $idrelazione = post('idrelazione'); foreach ($id_records as $id) { $anagrafica = Anagrafica::find($id); $anagrafica->idrelazione = $idrelazione; $anagrafica->save(); } break; } $operations = []; if (App::debug()) { $operations['delete-bulk'] = [ 'text' => ' '.tr('Elimina selezionati').' beta', 'data' => [ 'msg' => tr('Vuoi davvero eliminare le anagrafiche selezionate?'), 'button' => tr('Procedi'), 'class' => 'btn btn-lg btn-danger', ], ]; } $operations['export-csv'] = [ 'text' => ' '.tr('Esporta selezionati').'', 'data' => [ 'msg' => tr('Vuoi esportare un CSV con le anagrafiche selezionate?'), 'button' => tr('Procedi'), 'class' => 'btn btn-lg btn-success', 'blank' => true, ], ]; if (App::debug()) { $operations['ricerca-coordinate'] = [ 'text' => ' '.tr('Ricerca coordinate').'', 'data' => [ 'msg' => tr('Ricercare le coordinate per le anagrafiche selezionate senza latitudine e longitudine?'), 'button' => tr('Procedi'), 'class' => 'btn btn-lg btn-warning', ], ]; } $operations['cambia-relazione'] = [ 'text' => ' '.tr('Cambia relazione').'', 'data' => [ 'msg' => tr('Vuoi davvero cambiare la relazione delle anagrafiche selezionate?').'

{[ "type": "select", "label": "'.tr('Relazione con il cliente').'", "name": "idrelazione", "required": 1, "ajax-source": "relazioni"]}', 'button' => tr('Procedi'), 'class' => 'btn btn-lg btn-warning', ], ]; return $operations;