Compare commits

...

5 Commits

Author SHA1 Message Date
valentina f93046c9c4 Fix modulo mappa 2024-09-05 18:17:12 +02:00
valentina d5140edaa2 Fix query 2024-09-05 17:55:51 +02:00
valentina 119edde67a Ottimizzazione query 2024-09-05 17:52:04 +02:00
valentina 3edc50b36a Fix minore 2024-09-05 12:51:52 +02:00
valentina 689b57e0f6 Ottimizzazione query di pulizia log 2024-09-05 11:45:49 +02:00
8 changed files with 41 additions and 30 deletions

View File

@ -93,6 +93,11 @@ $ultima_esecuzione->set($adesso->__toString());
// Prima esecuzione immediata // Prima esecuzione immediata
$slot_minimo = $adesso->copy(); $slot_minimo = $adesso->copy();
// Rimozione dei log più vecchi
$database->query('DELETE FROM `zz_tasks_logs` WHERE DATE_ADD(`created_at`, INTERVAL :interval DAY) <= NOW()', [
':interval' => 7,
]);
// Esecuzione ricorrente // Esecuzione ricorrente
$number = 1; $number = 1;
while (true) { while (true) {
@ -106,11 +111,6 @@ while (true) {
return; return;
} }
// Rimozione dei log più vecchi
$database->query('DELETE FROM `zz_tasks_logs` WHERE DATE_ADD(`created_at`, INTERVAL :interval DAY) <= NOW()', [
':interval' => 7,
]);
// Risveglio programmato tramite slot // Risveglio programmato tramite slot
$timestamp = $slot_minimo->getTimestamp(); $timestamp = $slot_minimo->getTimestamp();
time_sleep_until($timestamp); time_sleep_until($timestamp);

View File

@ -259,6 +259,10 @@ function leaflet() {
config.nodeDirectory + '/leaflet.fullscreen/icon-fullscreen.svg', config.nodeDirectory + '/leaflet.fullscreen/icon-fullscreen.svg',
]).pipe(gulp.dest(config.production + '/' + config.paths.images + '/leaflet')); ]).pipe(gulp.dest(config.production + '/' + config.paths.images + '/leaflet'));
gulp.src([
config.development + '/' + config.paths.images + '/leaflet/*',
]).pipe(gulp.dest(config.production + '/' + config.paths.images + '/leaflet'));
return gulp.src([ return gulp.src([
config.nodeDirectory + '/leaflet/dist/images/*.{jpg,png,jpeg}', config.nodeDirectory + '/leaflet/dist/images/*.{jpg,png,jpeg}',
]) ])

View File

@ -44,20 +44,17 @@ switch ($resource) {
CONCAT(`banca_vendite`.`nome`, ' - ', `banca_vendite`.`iban`) AS descrizione_banca_vendite CONCAT(`banca_vendite`.`nome`, ' - ', `banca_vendite`.`iban`) AS descrizione_banca_vendite
FROM FROM
`an_anagrafiche` `an_anagrafiche`
INNER JOIN (`an_tipianagrafiche_anagrafiche` INNER JOIN `an_tipianagrafiche_anagrafiche` ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica`
INNER JOIN `an_tipianagrafiche`ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id` INNER JOIN `an_tipianagrafiche` ON `an_tipianagrafiche_anagrafiche`.`idtipoanagrafica`=`an_tipianagrafiche`.`id`
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).')) 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).')
ON `an_anagrafiche`.`idanagrafica`=`an_tipianagrafiche_anagrafiche`.`idanagrafica` LEFT JOIN `in_tipiintervento` ON `an_anagrafiche`.`idtipointervento_default`=`in_tipiintervento`.`id` 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).') LEFT JOIN `in_tipiintervento` ON `an_anagrafiche`.`idtipointervento_default`=`in_tipiintervento`.`id`
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).')
LEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione`=`an_relazioni`.`id` LEFT JOIN `an_relazioni` ON `an_anagrafiche`.`idrelazione`=`an_relazioni`.`id`
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).") 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).")
LEFT JOIN LEFT JOIN (SELECT `co_contratti`.`id`, `idanagrafica`, CONCAT('Contratto ', `numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y'), ' - ', `co_contratti`.`nome`, ' [', `co_staticontratti_lang`.`title` , ']') AS descrizione FROM `co_contratti` LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato`=`co_staticontratti`.`id` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id`=`co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang`= ".prepare(Models\Locale::getDefault()->id).') WHERE `co_contratti`.`predefined`=1 AND `is_pianificabile`=1) AS contratto ON `an_anagrafiche`.`idanagrafica`=`contratto`.`idanagrafica`
(SELECT `co_contratti`.`id`, `idanagrafica`, CONCAT('Contratto ', `numero`, ' del ', DATE_FORMAT(`data_bozza`, '%d/%m/%Y'), ' - ', `co_contratti`.`nome`, ' [', `co_staticontratti_lang`.`title` , ']') AS descrizione FROM `co_contratti` LEFT JOIN `co_staticontratti` ON `co_contratti`.`idstato`=`co_staticontratti`.`id` LEFT JOIN `co_staticontratti_lang` ON (`co_staticontratti`.`id`=`co_staticontratti_lang`.`id_record` AND `co_staticontratti_lang`.`id_lang`= ".prepare(Models\Locale::getDefault()->id).') WHERE `co_contratti`.`predefined`=1 AND `is_pianificabile`=1) AS contratto
ON `an_anagrafiche`.`idanagrafica`=`contratto`.`idanagrafica`
LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_vendite`=`co_pagamenti`.`id` LEFT JOIN `co_pagamenti` ON `an_anagrafiche`.`idpagamento_vendite`=`co_pagamenti`.`id`
LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id`=`co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).') LEFT JOIN `co_pagamenti_lang` ON (`co_pagamenti`.`id`=`co_pagamenti_lang`.`id_record` AND `co_pagamenti_lang`.`id_lang`= '.prepare(Models\Locale::getDefault()->id).')
LEFT JOIN LEFT JOIN `co_banche` banca_vendite ON `co_pagamenti`.`idconto_vendite` = `banca_vendite`.`id_pianodeiconti3` AND `banca_vendite`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_vendite`.`deleted_at` IS NULL AND `banca_vendite`.`predefined` = 1
`co_banche` banca_vendite
ON `co_pagamenti`.`idconto_vendite` = `banca_vendite`.`id_pianodeiconti3` AND `banca_vendite`.`id_anagrafica` = '.prepare($id_azienda).' AND `banca_vendite`.`deleted_at` IS NULL AND `banca_vendite`.`predefined` = 1
|where| |where|
ORDER BY ORDER BY
`ragione_sociale`'; `ragione_sociale`';

View File

@ -21,9 +21,11 @@ include_once __DIR__.'/../../core.php';
use Models\Module; use Models\Module;
use Util\Query; use Util\Query;
use Modules\Anagrafiche\Anagrafica;
switch (get('op')) { switch (get('op')) {
case 'get_markers': case 'get_markers':
$azienda = Anagrafica::find(setting('Azienda predefinita'));
$idanagrafica = get('idanagrafica'); $idanagrafica = get('idanagrafica');
$checks = get('check'); $checks = get('check');
@ -92,9 +94,9 @@ switch (get('op')) {
$descrizione .= '<hr>'; $descrizione .= '<hr>';
$descrizione .= '<a class="btn btn-info btn-block btn-xs" onclick="calcolaPercorso(\''.$indirizzo.' '.$cap.' '.$citta.' '.$provincia.'\')"> $descrizione .= '<button class="btn btn-info btn-block btn-xs" onclick="calcolaPercorso(\''.$azienda->lat.', '.$azienda->lng.'\', \''.$lat.', '.$lng.'\' )">
<i class="fa fa-map-signs"></i> Calcola percorso <i class="fa fa-map-signs"></i> Calcola percorso
</a>'; </button>';
// dettagli intervento // dettagli intervento
$rs_sessioni = $dbo->fetchOne("SELECT MIN(orario_inizio) AS data, GROUP_CONCAT(DISTINCT ragione_sociale SEPARATOR ', ') AS tecnici FROM in_interventi_tecnici INNER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico=an_anagrafiche.idanagrafica WHERE idintervento=".prepare($records[$i]['idintervento']).' GROUP BY idintervento'); $rs_sessioni = $dbo->fetchOne("SELECT MIN(orario_inizio) AS data, GROUP_CONCAT(DISTINCT ragione_sociale SEPARATOR ', ') AS tecnici FROM in_interventi_tecnici INNER JOIN an_anagrafiche ON in_interventi_tecnici.idtecnico=an_anagrafiche.idanagrafica WHERE idintervento=".prepare($records[$i]['idintervento']).' GROUP BY idintervento');
@ -109,9 +111,9 @@ switch (get('op')) {
$descrizione .= '<hr>'; $descrizione .= '<hr>';
$descrizione .= '<a class="btn btn-info btn-block btn-xs" onclick="window.open(\''.$rootdir.'/editor.php?id_module='.Module::where('name', 'Interventi')->first()->id.'&id_record='.$records[$i]['idintervento'].'\');"> $descrizione .= '<button class="btn btn-info btn-block btn-xs" onclick="window.open(\''.$rootdir.'/editor.php?id_module='.Module::where('name', 'Interventi')->first()->id.'&id_record='.$records[$i]['idintervento'].'\');">
<i class="fa fa-external-link"></i> Apri attività <i class="fa fa-external-link"></i> Apri attività
</a>'; </button>';
$descrizione .= '<hr>'; $descrizione .= '<hr>';

View File

@ -121,3 +121,11 @@ $('#idanagrafica').change(function() {
reload_pointers(); reload_pointers();
}); });
function calcolaPercorso(indirizzo_partenza, indirizzo_destinazione) {
if (isMobile.any) {
window.open("geo:" + indirizzo_destinazione + "?z=16&q=" + indirizzo_destinazione);
} else {
window.open("https://www.openstreetmap.org/directions?engine=fossgis_osrm_car&route=" + indirizzo_partenza + ";" + indirizzo_destinazione);
}
}

View File

@ -158,7 +158,7 @@ if ($fattura !== null) {
</div>'; </div>';
// Lettura della ricevuta // Lettura della ricevuta
if (!empty($ricevuta_principale) && file_exists($ricevuta_principale->filename)) { if (!empty($ricevuta_principale) && !empty($ricevuta_principale->filename) && file_exists($ricevuta_principale->filename)) {
$contenuto_ricevuta = XML::readFile($ricevuta_principale->filename); $contenuto_ricevuta = XML::readFile($ricevuta_principale->filename);
$lista_errori = $contenuto_ricevuta['ListaErrori']; $lista_errori = $contenuto_ricevuta['ListaErrori'];

View File

@ -53,12 +53,3 @@ HAVING
ORDER BY ORDER BY
`data` DESC, `data` DESC,
CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `zz_modules`.`name` = 'Ordini cliente'; CAST(`numero_esterno` AS UNSIGNED) DESC" WHERE `zz_modules`.`name` = 'Ordini cliente';
-- Geolocalizzazione automatica
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES
(NULL, 'Geolocalizzazione automatica', '1', 'boolean', '1', 'Anagrafiche', NULL),
(NULL, 'Gestore mappa', 'Google Maps', 'list[Google Maps, OpenStreetMap]', '1', 'Generale', NULL);
INSERT INTO `zz_settings_lang` (`id`, `id_lang`, `id_record`, `title`, `help`) VALUES (NULL, '1', (SELECT `zz_settings`.`id` FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Geolocalizzazione automatica'), 'Geolocalizzazione automatica', '');
INSERT INTO `zz_settings_lang` (`id`, `id_lang`, `id_record`, `title`, `help`) VALUES (NULL, '1', (SELECT `zz_settings`.`id` FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Gestore mappa'), 'Gestore mappa', '');

View File

@ -13,3 +13,12 @@ HAVING
2=2 2=2
ORDER BY ORDER BY
`id`, `nome` ASC' WHERE `zz_modules`.`name` = 'Utenti e permessi'; `id`, `nome` ASC' WHERE `zz_modules`.`name` = 'Utenti e permessi';
-- Geolocalizzazione automatica
INSERT INTO `zz_settings` (`id`, `nome`, `valore`, `tipo`, `editable`, `sezione`, `order`) VALUES
(NULL, 'Geolocalizzazione automatica', '1', 'boolean', '1', 'Anagrafiche', NULL),
(NULL, 'Gestore mappa', 'Google Maps', 'list[Google Maps, OpenStreetMap]', '1', 'Generale', NULL);
INSERT INTO `zz_settings_lang` (`id`, `id_lang`, `id_record`, `title`, `help`) VALUES (NULL, '1', (SELECT `zz_settings`.`id` FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Geolocalizzazione automatica'), 'Geolocalizzazione automatica', '');
INSERT INTO `zz_settings_lang` (`id`, `id_lang`, `id_record`, `title`, `help`) VALUES (NULL, '1', (SELECT `zz_settings`.`id` FROM `zz_settings` WHERE `zz_settings`.`nome` = 'Gestore mappa'), 'Gestore mappa', '');