From 883a8ba430ae89455eac9d733b5ff5343d4d18fc Mon Sep 17 00:00:00 2001 From: Luca Date: Thu, 30 Jun 2022 00:55:19 +0200 Subject: [PATCH] Grafico Nuovi clienti per mese Fix minori --- assets/src/js/base/sidebar.js | 2 +- .../src/Controlli/ColonneDuplicateViste.php | 2 +- modules/statistiche/edit.php | 115 +++++++++++++++++- update/2_4_34.php | 15 +++ update/2_4_34.sql | 4 +- 5 files changed, 133 insertions(+), 5 deletions(-) create mode 100644 update/2_4_34.php diff --git a/assets/src/js/base/sidebar.js b/assets/src/js/base/sidebar.js index 803d01a98..675a5fcde 100644 --- a/assets/src/js/base/sidebar.js +++ b/assets/src/js/base/sidebar.js @@ -76,7 +76,7 @@ $(document).ready(function () { // Barra plugin laterale const pluginToggle = $(".control-sidebar-toggle"); - const largeScreen = screen.width > 1200; + const largeScreen = screen.width > 1280; // Gestione click sul pulsante per il toggle pluginToggle.on("click", function () { diff --git a/modules/aggiornamenti/src/Controlli/ColonneDuplicateViste.php b/modules/aggiornamenti/src/Controlli/ColonneDuplicateViste.php index 611aabff9..532b90921 100644 --- a/modules/aggiornamenti/src/Controlli/ColonneDuplicateViste.php +++ b/modules/aggiornamenti/src/Controlli/ColonneDuplicateViste.php @@ -44,7 +44,7 @@ class ColonneDuplicateViste extends Controllo 'id' => $colonna['name'], 'nome' => $modulo->title.': '.$colonna['name'], 'descrizione' => tr('La colonna _NAME_ del modulo _MODULE_ esiste piĆ¹ volte', [ - '_NAME_' => $modulo->title, + '_NAME_' => $colonna['name'], '_MODULE_' => $modulo->title, ]), ]); diff --git a/modules/statistiche/edit.php b/modules/statistiche/edit.php index c2c92c196..99e3022e9 100755 --- a/modules/statistiche/edit.php +++ b/modules/statistiche/edit.php @@ -469,7 +469,6 @@ $(document).ready(function() { } }] }, - tooltips: { callbacks: { label: function(tooltipItem, data) { @@ -498,3 +497,117 @@ $(document).ready(function() { }); }); '; + + +$dataset = ''; +$clienti = $dbo->fetchArray('SELECT COUNT(*) AS result, GROUP_CONCAT(an_anagrafiche.ragione_sociale, "
") AS ragione_sociale, YEAR(an_anagrafiche.created_at) AS year, MONTH(an_anagrafiche.created_at) AS month FROM an_anagrafiche +INNER JOIN co_documenti ON an_anagrafiche.idanagrafica = co_documenti.idanagrafica +INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id +INNER JOIN an_tipianagrafiche_anagrafiche ON an_anagrafiche.idanagrafica=an_tipianagrafiche_anagrafiche.idanagrafica +INNER JOIN an_tipianagrafiche ON an_tipianagrafiche_anagrafiche.idtipoanagrafica=an_tipianagrafiche.idtipoanagrafica +WHERE an_tipianagrafiche.descrizione = "Cliente" AND co_tipidocumento.dir = "entrata" AND co_documenti.data <= '.prepare($end).' AND an_anagrafiche.created_at BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(an_anagrafiche.created_at), MONTH(an_anagrafiche.created_at) ORDER BY YEAR(an_anagrafiche.created_at) ASC, MONTH(an_anagrafiche.created_at) ASC'); + +$clienti = Stats::monthly($clienti, $start, $end); + +//Random color +$background = '#'.dechex(rand(256, 16777215)); + +$dataset .= '{ + label: "'.tr("Nuovi clienti per mese").'", + backgroundColor: "'.$background.'", + data: [ + '.implode(',', array_column($clienti, 'result')).' + ] +},'; + + +echo ' +
+
+

'.tr('Nuovi clienti per mese').'

+ +
+ +
+
+ +
'; + +// Script per il grafico dei nuovi clienti per mese +echo ' +'; \ No newline at end of file diff --git a/update/2_4_34.php b/update/2_4_34.php new file mode 100644 index 000000000..604551ebb --- /dev/null +++ b/update/2_4_34.php @@ -0,0 +1,15 @@ +fetchArray('SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = '.prepare($database->getDatabaseName())." AND REFERENCED_TABLE_NAME = 'co_documenti' AND CONSTRAINT_NAME = 'co_documenti_ibfk_1'"); +if (!empty($fk)) { + $database->query('ALTER TABLE `co_documenti` DROP FOREIGN KEY `co_documenti_ibfk_1`'); +} + +$fk = $database->fetchArray('SELECT TABLE_NAME,COLUMN_NAME,CONSTRAINT_NAME, REFERENCED_TABLE_NAME,REFERENCED_COLUMN_NAME FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE WHERE REFERENCED_TABLE_SCHEMA = '.prepare($database->getDatabaseName())." AND REFERENCED_TABLE_NAME = 'co_righe_documenti' AND CONSTRAINT_NAME = 'co_righe_documenti_ibfk_1'"); +if (!empty($fk)) { + $database->query('ALTER TABLE `co_righe_documenti` DROP FOREIGN KEY `co_righe_documenti_ibfk_1`'); +} + +?> \ No newline at end of file diff --git a/update/2_4_34.sql b/update/2_4_34.sql index fcf67d4c0..345cc3473 100644 --- a/update/2_4_34.sql +++ b/update/2_4_34.sql @@ -106,8 +106,8 @@ INSERT INTO `zz_views` (`id`, `id_module`, `name`, `query`, `order`, `visible`, (NULL, (SELECT `id` FROM `zz_modules` WHERE `name` = 'Settori'), 'descrizione', 'an_settori.descrizione', 2, 1, 0, 1); -- Fix eliminazione fattura collegata a Nota di credito -ALTER TABLE `co_documenti` DROP FOREIGN KEY `co_documenti_ibfk_1`; -ALTER TABLE `co_righe_documenti` DROP FOREIGN KEY `co_righe_documenti_ibfk_1`; +-- ALTER TABLE `co_documenti` DROP FOREIGN KEY `co_documenti_ibfk_1`; +-- ALTER TABLE `co_righe_documenti` DROP FOREIGN KEY `co_righe_documenti_ibfk_1`; -- Fix calcolo colonna Netto a pagare in Fatture UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_documenti`\n LEFT JOIN `an_anagrafiche` ON `co_documenti`.`idanagrafica` = `an_anagrafiche`.`idanagrafica`\n LEFT JOIN `co_tipidocumento` ON `co_documenti`.`idtipodocumento` = `co_tipidocumento`.`id`\n LEFT JOIN `co_statidocumento` ON `co_documenti`.`idstatodocumento` = `co_statidocumento`.`id`\n LEFT JOIN `fe_stati_documento` ON `co_documenti`.`codice_stato_fe` = `fe_stati_documento`.`codice`\n LEFT JOIN `co_ritenuta_contributi` ON `co_documenti`.`id_ritenuta_contributi` = `co_ritenuta_contributi`.`id`\n LEFT JOIN (\n SELECT `iddocumento`,\n SUM(`subtotale` - `sconto`) AS `totale_imponibile`,\n SUM(`iva`) AS `iva`\n FROM `co_righe_documenti`\n GROUP BY `iddocumento`\n ) AS righe ON `co_documenti`.`id` = `righe`.`iddocumento`\n LEFT JOIN (\n SELECT `numero_esterno`, `id_segment`\n FROM `co_documenti`\n WHERE `co_documenti`.`idtipodocumento` IN(SELECT `id` FROM `co_tipidocumento` WHERE `dir` = \'entrata\') |date_period(`co_documenti`.`data`)| AND `numero_esterno` != \'\'\n GROUP BY `id_segment`, `numero_esterno`\n HAVING COUNT(`numero_esterno`) > 1\n ) dup ON `co_documenti`.`numero_esterno` = `dup`.`numero_esterno` AND `dup`.`id_segment` = `co_documenti`.`id_segment`\n LEFT JOIN (\n SELECT `zz_operations`.`id_email`, `zz_operations`.`id_record`\n FROM `zz_operations`\n INNER JOIN `em_emails` ON `zz_operations`.`id_email` = `em_emails`.`id`\n INNER JOIN `em_templates` ON `em_emails`.`id_template` = `em_templates`.`id`\n INNER JOIN `zz_modules` ON `zz_operations`.`id_module` = `zz_modules`.`id`\n WHERE `zz_modules`.`name` = \'Fatture di vendita\' AND `zz_operations`.`op` = \'send-email\'\n GROUP BY `zz_operations`.`id_record`\n ) AS `email` ON `email`.`id_record` = `co_documenti`.`id`\nWHERE 1=1 AND `dir` = \'entrata\' |segment(`co_documenti`.`id_segment`)| |date_period(`co_documenti`.`data`)|\nHAVING 2=2\nORDER BY `co_documenti`.`data` DESC, CAST(`co_documenti`.`numero_esterno` AS UNSIGNED) DESC' WHERE `zz_modules`.`name` = 'Fatture di vendita';