diff --git a/include/top.php b/include/top.php
index 2120fa55b..c66b4696e 100644
--- a/include/top.php
+++ b/include/top.php
@@ -89,21 +89,22 @@ if (Auth::check()) {
'hookMultiple' => tr('Hai _NUM_ notifiche'),
'hookSingle' => tr('Hai 1 notifica'),
'hookNone' => tr('Nessuna notifica'),
+ 'singleCalendar' => tr("E' presente un solo calendario!"),
];
foreach ($translations as $key => $value) {
echo '
- '.$key.': \''.addslashes($value).'\',';
+ '.$key.': "'.addslashes($value).'",';
}
echo '
};
globals = {
- rootdir: \''.$rootdir.'\',
- js: \''.$paths['js'].'\',
- css: \''.$paths['css'].'\',
- img: \''.$paths['img'].'\',
+ rootdir: "'.$rootdir.'",
+ js: "'.$paths['js'].'",
+ css: "'.$paths['css'].'",
+ img: "'.$paths['img'].'",
- id_module: \''.$id_module.'\',
- id_record: \''.$id_record.'\',
+ id_module: "'.$id_module.'",
+ id_record: "'.$id_record.'",
cifre_decimali: '.setting('Cifre decimali per importi').',
@@ -113,17 +114,19 @@ if (Auth::check()) {
search: search,
translations: translations,
- locale: \''.$lang.'\',
- full_locale: \''.$lang.'_'.strtoupper($lang).'\',
+ locale: "'.$lang.'",
+ full_locale: "'.$lang.'_'.strtoupper($lang).'",
- start_date: \''.Translator::dateToLocale($_SESSION['period_start']).'\',
- end_date: \''.Translator::dateToLocale($_SESSION['period_end']).'\',
+ start_date: "'.$_SESSION['period_start'].'",
+ start_date_formatted: "'.Translator::dateToLocale($_SESSION['period_start']).'",
+ end_date: "'.$_SESSION['period_end'].'",
+ end_date_formatted: "'.Translator::dateToLocale($_SESSION['period_end']).'",
ckeditorToolbar: [
["Undo","Redo","-","Cut","Copy","Paste","PasteText","PasteFromWord","-","Scayt", "-","Link","Unlink","-","Bold","Italic","Underline","Superscript","SpecialChar","HorizontalRule","-","JustifyLeft","JustifyCenter","JustifyRight","JustifyBlock","-","NumberedList","BulletedList","Outdent","Indent","Blockquote","-","Styles","Format","Image","Table", "TextColor", "BGColor" ],
],
- order_manager_id: \''.($dbo->isInstalled() ? Modules::get('Stato dei servizi')['id'] : '').'\',
+ order_manager_id: "'.($dbo->isInstalled() ? Modules::get('Stato dei servizi')['id'] : '').'",
dataload_page_buffer: '.setting('Lunghezza in pagine del buffer Datatables').',
tempo_attesa_ricerche: '.setting('Tempo di attesa ricerche in secondi').',
};
@@ -132,13 +135,13 @@ if (Auth::check()) {
echo '
';
}
diff --git a/lib/functions.js b/lib/functions.js
index 9ed86f980..e86c3a8ff 100644
--- a/lib/functions.js
+++ b/lib/functions.js
@@ -108,8 +108,8 @@ $(document).ready(function () {
toLabel: globals.translations.to,
},
ranges: ranges,
- startDate: globals.start_date,
- endDate: globals.end_date,
+ startDate: globals.start_date_formatted,
+ endDate: globals.end_date_formatted,
applyClass: 'btn btn-success btn-sm',
cancelClass: 'btn btn-danger btn-sm',
linkedCalendars: false
diff --git a/modules/statistiche/actions.php b/modules/statistiche/actions.php
new file mode 100644
index 000000000..66962d9fc
--- /dev/null
+++ b/modules/statistiche/actions.php
@@ -0,0 +1,38 @@
+fetchArray("SELECT ROUND(SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto), 2) AS result, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_tipidocumento.dir='entrata' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
+
+ $results = Stats::monthly($results, $start, $end);
+
+ echo json_encode([
+ 'label' => tr('Fatturato').' - '.tr('Periodo _NUM_', [
+ '_NUM_' => $calendar_id
+ ]),
+ 'results' => $results
+ ]);
+
+ break;
+ case 'acquisti':
+ $results = $dbo->fetchArray("SELECT ROUND(SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto), 2) AS result, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_tipidocumento.dir='uscita' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
+
+ $results = Stats::monthly($results, $start, $end);
+
+ echo json_encode([
+ 'label' => tr('Acquisti').' - '.tr('Periodo _NUM_', [
+ '_NUM_' => $calendar_id
+ ]),
+ 'results' => $results
+ ]);
+
+ break;
+}
diff --git a/modules/statistiche/edit.php b/modules/statistiche/edit.php
index 4a090c596..11fa18400 100644
--- a/modules/statistiche/edit.php
+++ b/modules/statistiche/edit.php
@@ -11,35 +11,25 @@ $start = $_SESSION['period_start'];
$end = $_SESSION['period_end'];
echo '
-
- '.tr('Periodo dal _START_ al _END_', [
- '_START_' => Translator::dateToLocale($start),
- '_END_' => Translator::dateToLocale($end),
- ]).'
-
-
-
-';
-
-$fatturato = $dbo->fetchArray("SELECT ROUND(SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto), 2) AS totale, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_tipidocumento.dir='entrata' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
-$acquisti = $dbo->fetchArray("SELECT ROUND(SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto), 2) AS totale, YEAR(co_documenti.data) AS year, MONTH(co_documenti.data) AS month FROM co_documenti INNER JOIN co_tipidocumento ON co_documenti.idtipodocumento=co_tipidocumento.id INNER JOIN co_righe_documenti ON co_righe_documenti.iddocumento=co_documenti.id WHERE co_tipidocumento.dir='uscita' AND co_tipidocumento.descrizione!='Bozza' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY YEAR(co_documenti.data), MONTH(co_documenti.data) ORDER BY YEAR(co_documenti.data) ASC, MONTH(co_documenti.data) ASC');
-
-$fatturato = Stats::monthly($fatturato, $start, $end);
-$acquisti = Stats::monthly($acquisti, $start, $end);
+
+
+
+ '.tr('Periodi temporali').'
+
+
+
+
+
+
+
+
+
+
+
';
// Fatturato
echo '
@@ -56,49 +46,86 @@ echo '
';
+echo '
+
+
+
+
+';
+
// Script per il grafico del fatturato
echo '
';
// Clienti top
@@ -206,7 +233,7 @@ $tipi = $dbo->fetchArray('SELECT * FROM `in_tipiintervento`');
$dataset = '';
foreach ($tipi as $tipo) {
- $interventi = $dbo->fetchArray('SELECT COUNT(*) AS totale, YEAR(in_interventi.data_richiesta) AS year, MONTH(in_interventi.data_richiesta) AS month FROM in_interventi WHERE in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(in_interventi.data_richiesta), MONTH(in_interventi.data_richiesta) ORDER BY YEAR(in_interventi.data_richiesta) ASC, MONTH(in_interventi.data_richiesta) ASC');
+ $interventi = $dbo->fetchArray('SELECT COUNT(*) AS result, YEAR(in_interventi.data_richiesta) AS year, MONTH(in_interventi.data_richiesta) AS month FROM in_interventi WHERE in_interventi.idtipointervento = '.prepare($tipo['idtipointervento']).' AND in_interventi.data_richiesta BETWEEN '.prepare($start).' AND '.prepare($end).' GROUP BY YEAR(in_interventi.data_richiesta), MONTH(in_interventi.data_richiesta) ORDER BY YEAR(in_interventi.data_richiesta) ASC, MONTH(in_interventi.data_richiesta) ASC');
$interventi = Stats::monthly($interventi, $start, $end);
@@ -217,7 +244,7 @@ foreach ($tipi as $tipo) {
label: "'.$tipo['descrizione'].'",
backgroundColor: "'.$background.'",
data: [
- '.implode(',', array_column($interventi, 'totale')).'
+ '.implode(',', array_column($interventi, 'result')).'
]
},';
}
diff --git a/plugins/statistiche_anagrafiche/js/calendar.js b/modules/statistiche/js/calendar.js
similarity index 100%
rename from plugins/statistiche_anagrafiche/js/calendar.js
rename to modules/statistiche/js/calendar.js
diff --git a/modules/statistiche/js/functions.js b/modules/statistiche/js/functions.js
new file mode 100644
index 000000000..4c32f84d2
--- /dev/null
+++ b/modules/statistiche/js/functions.js
@@ -0,0 +1,91 @@
+var manager = manager ? manager : undefined;
+
+function remove_calendar(button) {
+ var name = $(button).parent().find("input").attr("id");
+
+ if (manager.remove(name)) {
+ $("#group-" + name).remove();
+ } else {
+ swal({
+ title: globals.translations.singleCalendar,
+ type: "info",
+ });
+ }
+}
+
+function add_calendar() {
+ var last = $("#calendars").find("input").last().attr("id");
+ var last_id = last ? last.split("-")[1] : 0;
+ last_id = parseInt(last_id) + 1;
+
+ var name = "calendar-" + last_id;
+
+ $("#calendars").append(`