From 3b781ae6e452d9e472ee45508f0922b92f01a24f Mon Sep 17 00:00:00 2001 From: Matteo Date: Wed, 5 Oct 2022 17:20:35 +0200 Subject: [PATCH 1/4] =?UTF-8?q?Aggiunta=20opzione=20per=20includere=20gli?= =?UTF-8?q?=20allegati=20nella=20duplicazione=20delle=20attivit=C3=A0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/interventi/actions.php | 12 ++++++++++++ modules/interventi/modals/duplicazione.php | 11 ++++++++--- 2 files changed, 20 insertions(+), 3 deletions(-) diff --git a/modules/interventi/actions.php b/modules/interventi/actions.php index 355d6deda..d43e77a27 100644 --- a/modules/interventi/actions.php +++ b/modules/interventi/actions.php @@ -803,6 +803,7 @@ switch (post('op')) { $copia_sessioni = post('copia_sessioni'); $copia_righe = post('copia_righe'); $copia_impianti = post('copia_impianti'); + $copia_allegati = post('copia_allegati'); $new = $intervento->replicate(); $new->idstatointervento = $id_stato; @@ -882,6 +883,17 @@ switch (post('op')) { } } + //copia allegati + if (!empty($copia_allegati)) { + $allegati = $intervento->uploads(); + foreach ($allegati as $allegato) { + $allegato->copia([ + 'id_module' => $new->getModule()->id, + 'id_record' => $new->id, + ]); + } + } + flash()->info(tr('Attività duplicata correttamente!')); break; diff --git a/modules/interventi/modals/duplicazione.php b/modules/interventi/modals/duplicazione.php index 4f40f0121..bc458f496 100644 --- a/modules/interventi/modals/duplicazione.php +++ b/modules/interventi/modals/duplicazione.php @@ -39,17 +39,22 @@ echo ' {[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL ORDER BY descrizione", "value": "" ]} -
+
{["type": "checkbox", "label": "'.tr('Duplica righe').'", "name": "copia_righe", "help": "'.tr('Selezione per riportare anche le righe nella nuova attività').'" ]}
-
+
{["type": "checkbox", "label": "'.tr('Duplica sessioni').'", "name": "copia_sessioni", "help": "'.tr('Selezione per riportare anche le sessioni di lavoro nella nuova attività').'" ]}
-
+
{["type": "checkbox", "label": "'.tr('Duplica impianti').'", "name": "copia_impianti", "help": "'.tr('Selezione per riportare anche gli impianti nella nuova attività').'" ]}
+ +
+ {["type": "checkbox", "label": "'.tr('Duplica allegati').'", "name": "copia_allegati", "help": "'.tr('Selezione per riportare anche gli allegati nella nuova attività').'", "value": 1 ]} +
+
From 2740cd2e20a56dac5d4e2db303285daa9b63db94 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 6 Oct 2022 10:41:35 +0200 Subject: [PATCH 2/4] Aggiunto controllo ext php fileinfo --- include/init/requirements.php | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/include/init/requirements.php b/include/init/requirements.php index fb4a5b877..7598de351 100755 --- a/include/init/requirements.php +++ b/include/init/requirements.php @@ -93,6 +93,10 @@ $settings = [ 'type' => 'ext', 'description' => tr('Permette la creazione dell\'immagine della firma per il rapportino d\'intervento (facoltativo)'), ], + 'fileinfo' => [ + 'type' => 'ext', + 'description' => tr('Permette la creazione dell\'immagine della firma per il rapportino d\'intervento (facoltativo)'), + ], //'display_errors' => [ // 'type' => 'value', From c3e9dbf8c2c91a18622f8f8e48d73da23a0e4fab Mon Sep 17 00:00:00 2001 From: loviuz Date: Thu, 6 Oct 2022 11:52:02 +0200 Subject: [PATCH 3/4] Fix tooltip calendario --- modules/dashboard/ajax.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/modules/dashboard/ajax.php b/modules/dashboard/ajax.php index 9b9a694a2..64b4312db 100644 --- a/modules/dashboard/ajax.php +++ b/modules/dashboard/ajax.php @@ -247,7 +247,7 @@ switch (filter('op')) { if (empty($allday)) { // Lettura dati intervento di riferimento - $query = 'SELECT in_interventi_tecnici.idintervento, in_interventi.id, idtecnico, orario_inizio, orario_fine, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS nome_tecnico, (SELECT colore FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS colore FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id WHERE in_interventi.id='.prepare($id).' '.Modules::getAdditionalsQuery('Interventi'); + $query = 'SELECT in_interventi_tecnici.idintervento, in_interventi.id, idtecnico, orario_inizio, orario_fine, (SELECT ragione_sociale FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS nome_tecnico, (SELECT colore FROM an_anagrafiche WHERE idanagrafica=idtecnico) AS colore FROM in_interventi_tecnici INNER JOIN in_interventi ON in_interventi_tecnici.idintervento=in_interventi.id WHERE in_interventi.id='.prepare($id).' '.Modules::getAdditionalsQuery('Interventi', null, false); $rs = $dbo->fetchArray($query); if (!empty($rs)) { @@ -257,7 +257,7 @@ switch (filter('op')) { } // Lettura dati intervento - $query = 'SELECT *, in_interventi.codice, an_anagrafiche.note AS note_anagrafica, idstatointervento AS parent_idstato, in_interventi.idtipointervento AS parent_idtipo, (SELECT GROUP_CONCAT(CONCAT(matricola, " - ", nome) SEPARATOR ", ") FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id=my_impianti_interventi.idimpianto WHERE my_impianti_interventi.idintervento='.prepare($id).' GROUP BY my_impianti_interventi.idintervento) AS impianti, (SELECT descrizione FROM in_statiintervento WHERE idstatointervento=parent_idstato) AS stato, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=parent_idtipo) AS tipo, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica=in_interventi.idanagrafica) AS idzona FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id =in_interventi_tecnici.idintervento LEFT JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE in_interventi.id='.prepare($id).' '.Modules::getAdditionalsQuery('Interventi'); + $query = 'SELECT *, in_interventi.codice, an_anagrafiche.note AS note_anagrafica, idstatointervento AS parent_idstato, in_interventi.idtipointervento AS parent_idtipo, (SELECT GROUP_CONCAT(CONCAT(matricola, " - ", nome) SEPARATOR ", ") FROM my_impianti INNER JOIN my_impianti_interventi ON my_impianti.id=my_impianti_interventi.idimpianto WHERE my_impianti_interventi.idintervento='.prepare($id).' GROUP BY my_impianti_interventi.idintervento) AS impianti, (SELECT descrizione FROM in_statiintervento WHERE idstatointervento=parent_idstato) AS stato, (SELECT descrizione FROM in_tipiintervento WHERE idtipointervento=parent_idtipo) AS tipo, (SELECT idzona FROM an_anagrafiche WHERE idanagrafica=in_interventi.idanagrafica) AS idzona FROM in_interventi LEFT JOIN in_interventi_tecnici ON in_interventi.id =in_interventi_tecnici.idintervento LEFT JOIN an_anagrafiche ON in_interventi.idanagrafica=an_anagrafiche.idanagrafica WHERE in_interventi.id='.prepare($id).' '.Modules::getAdditionalsQuery('Interventi', null, false); $rs = $dbo->fetchArray($query); //correggo info indirizzo citta cap provincia con quelle della sede di destinazione From ad4753664ab95cba6eaba93bc0e8c859c4ba99e8 Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 6 Oct 2022 13:30:07 +0200 Subject: [PATCH 4/4] Fix widget top 10 allegati --- modules/stato_servizi/actions.php | 10 +++++----- .../widgets/spazio_utilizzato.php | 19 ++++++++++--------- 2 files changed, 15 insertions(+), 14 deletions(-) diff --git a/modules/stato_servizi/actions.php b/modules/stato_servizi/actions.php index 58979b695..8259f6153 100755 --- a/modules/stato_servizi/actions.php +++ b/modules/stato_servizi/actions.php @@ -279,16 +279,16 @@ switch (filter('op')) { ]; foreach ($dirs as $dir => $description) { - $size = FileSystem::folderSize($dir, ['htaccess']); + $size = FileSystem::folderSize($dir, ['htaccess','gitkeep','ini','xml']); $results[] = [ 'description' => $description, 'size' => $size, 'formattedSize' => FileSystem::formatBytes($size), - 'count' => FileSystem::fileCount($dir, ['htaccess']) ?: 0, - 'dbSize' => ($description == 'Allegati') ? $dbo->fetchOne('SELECT SUM(`size`) AS dbsize FROM zz_files')['dbsize'] : '', - 'dbCount' => ($description == 'Allegati') ? $dbo->fetchOne('SELECT COUNT(`id`) AS dbcount FROM zz_files')['dbcount'] : '', - 'dbExtensions' => ($description == 'Allegati') ? $dbo->fetchArray("SELECT SUBSTRING_INDEX(filename, '.', -1) AS extension, COUNT(*) AS num FROM zz_files GROUP BY extension ORDER BY num DESC LIMIT 10") : '', + 'count' => FileSystem::fileCount($dir, ['htaccess','gitkeep','ini','xml']) ?: 0, + 'dbSize' => ($description == 'Allegati') ? $dbo->fetchOne('SELECT SUM(`size`) AS dbsize FROM zz_files')['dbsize'] : 0, + 'dbCount' => ($description == 'Allegati') ? $dbo->fetchOne('SELECT COUNT(`id`) AS dbcount FROM zz_files')['dbcount'] : 0, + 'dbExtensions' => ($description == 'Allegati') ? $dbo->fetchArray("SELECT SUBSTRING_INDEX(filename, '.', -1) AS extension, COUNT(*) AS num FROM zz_files GROUP BY extension ORDER BY num DESC LIMIT 10") : 0, ]; } diff --git a/modules/stato_servizi/widgets/spazio_utilizzato.php b/modules/stato_servizi/widgets/spazio_utilizzato.php index c5a9abd23..f3b26b93c 100755 --- a/modules/stato_servizi/widgets/spazio_utilizzato.php +++ b/modules/stato_servizi/widgets/spazio_utilizzato.php @@ -51,38 +51,39 @@ function crea_grafico(values){ $data = []; $labels = []; + values.forEach(function(element) { $data.push(element.size); //Segnalazione se sul server sembrano mancare file rispetto a quanto previsto a DB - if (element.dbSize!==""){ + if (element.dbSize>0 && element.description == "Allegati"){ if (element.size1000){ - $("#message").append("
"+formatBytes(diff)+" di file mancanti per allegati.

"); + $("#message").append("
"+formatBytes(diff)+" di files mancanti per allegati.

"); } } } + //Segnalazione se sul server sembrano mancare file rispetto a quanto previsto a DB - if (element.dbCount!==""){ + if (element.dbCount>0 && element.description == "Allegati" ){ if (element.count "+diff+" file non trovati sul disco.

"); + $("#message").append("
"+diff+" files non trovati sul disco per allegati.

"); } } - - //Numero di file in Allegati per estensione + + //Numero di file in Allegati suddivisi per estensione if (element.dbExtensions.length > 0){ $("#message").append("

Top 10 allegati:

"); - element.dbExtensions.forEach(function(extension) { - - $("#message").append("
"+extension["NUM"]+" file con estensione "+extension["EXTENSION"]+".

"); + element.dbExtensions.forEach(function(ext) { + $("#message").append("
"+ext["num"]+" files con estensione "+ext["extension"]+".

"); });