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(`
+
+ ` + last_id + ` + + + + +
+
+
`); + + // Calendario principale + ranges = {}; + ranges[globals.translations.today] = [moment(), moment()]; + ranges[globals.translations.firstThreemester] = [moment("01", "MM"), moment("03", "MM").endOf('month')]; + ranges[globals.translations.secondThreemester] = [moment("04", "MM"), moment("06", "MM").endOf('month')]; + ranges[globals.translations.thirdThreemester] = [moment("07", "MM"), moment("09", "MM").endOf('month')]; + ranges[globals.translations.fourthThreemester] = [moment("10", "MM"), moment("12", "MM").endOf('month')]; + ranges[globals.translations.firstSemester] = [moment("01", "MM"), moment("06", "MM").endOf('month')]; + ranges[globals.translations.secondSemester] = [moment("06", "MM"), moment("12", "MM").endOf('month')]; + ranges[globals.translations.thisMonth] = [moment().startOf('month'), moment().endOf('month')]; + ranges[globals.translations.lastMonth] = [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')]; + ranges[globals.translations.thisYear] = [moment().startOf('year'), moment().endOf('year')]; + ranges[globals.translations.lastYear] = [moment().subtract(1, 'year').startOf('year'), moment().subtract(1, 'year').endOf('year')]; + + + $("#" + name).daterangepicker({ + locale: { + customRangeLabel: globals.translations.custom, + applyLabel: globals.translations.apply, + cancelLabel: globals.translations.cancel, + fromLabel: globals.translations.from, + toLabel: globals.translations.to, + }, + startDate: globals.start_date_formatted, + endDate: globals.end_date_formatted, + applyClass: "btn btn-success btn-sm", + cancelClass: "btn btn-danger btn-sm", + ranges: ranges, + linkedCalendars: false + }, function (start, end) { + var name = $(this.element).attr("id"); + var start = start.format("YYYY-MM-DD"); + var end = end.format("YYYY-MM-DD"); + + manager.update(name, start, end); + }); + + // Inizializzazone calendario + var calendar = manager.add(last_id, name); + + init_calendar(calendar); + + manager.init(name); +} + +function get_months(start, end) { + var months = []; + while (start.isSameOrBefore(end, "month")) { + string = start.format("MMMM YYYY"); + + months.push(string.charAt(0).toUpperCase() + string.slice(1)); + + start.add(1, "months"); + } + + return months; +} + diff --git a/modules/statistiche/js/init.js b/modules/statistiche/js/init.js new file mode 100644 index 000000000..4d44945cd --- /dev/null +++ b/modules/statistiche/js/init.js @@ -0,0 +1,11 @@ +// Inzializzazione manager standard +var info = { + url: local_url, + id_module: globals.id_module, + id_record: globals.id_record, + start_date: globals.start_date, + end_date: globals.end_date, +}; + +var manager = new Manager(info); +add_calendar(); diff --git a/modules/statistiche/js/manager.js b/modules/statistiche/js/manager.js new file mode 100644 index 000000000..eabe4d38d --- /dev/null +++ b/modules/statistiche/js/manager.js @@ -0,0 +1,38 @@ +class Manager { + constructor(info) { + this.info = info; + + this.calendars = {}; + } + + remove(name) { + if (Object.keys(this.calendars).length > 1) { + this.calendars[name].remove(); + delete this.calendars[name]; + + return true; + } + + return false; + } + + add(id, name) { + var calendar = new Calendar(this.info, id); + this.calendars[name] = calendar; + + return calendar; + } + + init(name) { + var calendar = this.calendars[name]; + + var start = this.info.start_date; + var end = this.info.end_date; + + calendar.update(start, end); + } + + update(name, start, end){ + this.calendars[name].update(start, end); + } +} diff --git a/modules/statistiche/js/stat.js b/modules/statistiche/js/stat.js new file mode 100644 index 000000000..ef5a61f89 --- /dev/null +++ b/modules/statistiche/js/stat.js @@ -0,0 +1,36 @@ +class Stat { + constructor(calendar, file, data = {}){ + this.calendar = calendar; + + this.file = file; + this.data = data; + + this.data.id_module = this.calendar.info.id_module; + this.data.id_record = this.calendar.info.id_record; + this.data.calendar_id = this.calendar.id; + } + + getCalendarID(){ + return this.calendar.id; + } + + getData(start, end, callback) { + var data = JSON.parse(JSON.stringify(this.data)); + + data.start = start; + data.end = end; + + $.ajax({ + url: this.calendar.info.url + "/" + this.file, + type: "get", + data: data, + success: function(data){ + callback(data) + } + }); + } + + add(start, end){} + update(start, end){} + remove(){} +} diff --git a/modules/statistiche/js/stats/line_chart.js b/modules/statistiche/js/stats/line_chart.js new file mode 100644 index 000000000..0a937f6fa --- /dev/null +++ b/modules/statistiche/js/stats/line_chart.js @@ -0,0 +1,95 @@ +class LineChart extends Stat { + constructor(calendar, file, data = {}, chart){ + super(calendar, file, data); + + this.chart = chart; + } + + add(start, end, color = null) { + var calendar_id = this.calendar.id; + var chart = this.chart; + + var color = color ? color : this.getRandomColor(); + + this.getData(start, end, function(response) { + var data = JSON.parse(response); + + var label = data.label; + + var dataset = []; + var labels = []; + + data.results.forEach(function (item) { + dataset.push(item.result); + + var date = moment().month(item.month - 1).year(item.year); + labels.push(date.format("MMMM YYYY")); + }); + + while (chart.data.labels.length < data.results.length) { + chart.data.labels.push(""); + } + + chart.data.datasets.push({ + calendar_id: calendar_id, + label: label, + backgroundColor: color, + borderColor: color, + data: dataset, + labels: labels, + fill: false, + }); + + chart.update(); + }); + } + + update(start, end) { + var color = this.remove(); + + this.add(start, end, color); + } + + getRandomColor() { + var letters = '0123456789ABCDEF'; + var color = '#'; + for (var i = 0; i < 6; i++) { + color += letters[Math.floor(Math.random() * 16)]; + } + return color; + } + + remove() { + var chart = this.chart; + var calendar_id = this.calendar.id; + + var max_length = 0; + var dataset_index = undefined; + + chart.data.datasets.forEach(function (item, index) { + if(item.calendar_id == calendar_id) { + dataset_index = index; + } else { + if (item.data.length > max_length) { + max_length = item.data.length; + } + } + }); + + var color = null; + if (dataset_index != undefined) { + color = chart.data.datasets[dataset_index].backgroundColor; + + chart.data.datasets.splice(dataset_index, 1); + chart.data.labels.splice(dataset_index, 1); + } + + while (chart.data.labels.length > max_length) { + chart.data.labels.pop(""); + } + + chart.update(); + + return color; + } +} diff --git a/modules/statistiche/js/stats/table.js b/modules/statistiche/js/stats/table.js new file mode 100644 index 000000000..b7de960a4 --- /dev/null +++ b/modules/statistiche/js/stats/table.js @@ -0,0 +1,33 @@ +class Table extends Stat { + constructor(calendar, file, data = {}, id){ + super(calendar, file, data); + + this.id = id; + } + + add(start, end) { + var id = this.id; + var calendar_id = this.calendar.id; + + this.getData(start, end, function(data) { + var row = $(id).find("#row-" + calendar_id); + + if (!row.length) { + $(id).append(data); + } else { + row.after(data); + row.remove(); + } + + $(id).find("#row-" + calendar_id).effect("highlight", {}, 3000); + }); + } + + update(start, end) { + this.add(start, end) + } + + remove() { + $(this.id).find("#row-" + this.calendar.id).remove(); + } +} diff --git a/modules/statistiche/js/stats/widget.js b/modules/statistiche/js/stats/widget.js new file mode 100644 index 000000000..e3b0b4163 --- /dev/null +++ b/modules/statistiche/js/stats/widget.js @@ -0,0 +1,3 @@ +class Widget extends Table { + +} diff --git a/modules/statistiche/src/Stats.php b/modules/statistiche/src/Stats.php index b42e85397..79ad4cca5 100644 --- a/modules/statistiche/src/Stats.php +++ b/modules/statistiche/src/Stats.php @@ -23,13 +23,17 @@ class Stats $d2 = new DateTime($end); $count = $d1->diff($d2)->m + ($d1->diff($d2)->y * 12) + 1; + $year = $d1->format('Y'); $month = intval($d1->format('m')) - 1; for ($i = 0; $i < $count; ++$i) { + $year = $month >= 12 ? $year + 1 : $year; $month = $month % 12; if (!isset($data[$i]) || intval($data[$i]['month']) != $month + 1) { array_splice($data, $i, 0, [[ - 'totale' => 0, + 'result' => 0, + 'year' => $year, + 'month' => $month + 1, ]]); } diff --git a/plugins/statistiche_anagrafiche/edit.php b/plugins/statistiche_anagrafiche/edit.php index 79e941b40..16df14dcc 100644 --- a/plugins/statistiche_anagrafiche/edit.php +++ b/plugins/statistiche_anagrafiche/edit.php @@ -26,91 +26,25 @@ echo '
-
- - - - +'; + +$statistiche = Modules::get('Statistiche'); +echo ' + + + + + + '; + + +'; diff --git a/plugins/statistiche_anagrafiche/info.php b/plugins/statistiche_anagrafiche/info.php index d3e35a2a8..fa4c7831d 100644 --- a/plugins/statistiche_anagrafiche/info.php +++ b/plugins/statistiche_anagrafiche/info.php @@ -72,7 +72,7 @@ $totale_fatture_vendita = $fatture_vendita->sum('imponibile_scontato'); echo '
-

'.tr('Periodo dal _START_ al _END_', [ +

'.tr('Dal _START_ al _END_', [ '_START_' => dateFormat($start), '_END_' => dateFormat($end), ]).' - '.tr('Periodo _NUM_', [ diff --git a/plugins/statistiche_anagrafiche/js/stat.js b/plugins/statistiche_anagrafiche/js/stat.js deleted file mode 100644 index 42786d574..000000000 --- a/plugins/statistiche_anagrafiche/js/stat.js +++ /dev/null @@ -1,11 +0,0 @@ -class Stat { - constructor(calendar, id){ - this.calendar = calendar; - - this.id = id; - } - - add(start, end){} - update(start, end){} - remove(){} -} diff --git a/plugins/statistiche_anagrafiche/js/widget.js b/plugins/statistiche_anagrafiche/js/widget.js deleted file mode 100644 index 8f2092387..000000000 --- a/plugins/statistiche_anagrafiche/js/widget.js +++ /dev/null @@ -1,49 +0,0 @@ -class Widget extends Stat { - constructor(calendar, id){ - super(calendar, id); - } - - getData(start, end, callback) { - $.ajax({ - url: this.calendar.info.url + "/info.php", - type: "get", - data: { - id_module: this.calendar.info.id_module, - id_record: this.calendar.info.id_record, - calendar_id: this.calendar.id, - dir: this.direzione, - start: start, - end: end, - }, - success: function(data){ - callback(data) - } - }); - } - - add(start, end) { - var id = this.id; - var calendar_id = this.calendar.id; - - this.getData(start, end, function(data) { - var row = $(id).find("#row-" + calendar_id); - - if (!row.length) { - $(id).append(data); - } else { - row.after(data); - row.remove(); - } - - $(id).find("#row-" + calendar_id).effect("highlight", {}, 3000); - }); - } - - update(start, end) { - this.add(start, end) - } - - remove(start, end) { - $(this.id).find("#row-" + this.calendar.id).remove(); - } -} diff --git a/plugins/statistiche_articoli/edit.php b/plugins/statistiche_articoli/edit.php index d26055dd6..4d3d28b81 100644 --- a/plugins/statistiche_articoli/edit.php +++ b/plugins/statistiche_articoli/edit.php @@ -34,9 +34,9 @@ echo ' # - '.tr('Perido').' + '.tr('Periodo').' '.tr('Prezzo minimo').' - '.tr('Prezzio medio').' + '.tr('Prezzo medio').' '.tr('Prezzo massimo').' '.tr('Oscillazione').' '.tr('Oscillazione in %').' @@ -60,9 +60,9 @@ echo ' # - '.tr('Perido').' + '.tr('Periodo').' '.tr('Prezzo minimo').' - '.tr('Prezzio medio').' + '.tr('Prezzo medio').' '.tr('Prezzo massimo').' '.tr('Oscillazione').' '.tr('Oscillazione in %').' @@ -74,89 +74,29 @@ echo '

-
+'; + +$statistiche = Modules::get('Statistiche'); + +echo ' + + + + + - - '; + + +'; diff --git a/plugins/statistiche_articoli/js/calendar.js b/plugins/statistiche_articoli/js/calendar.js deleted file mode 100644 index 4e0bc7f7b..000000000 --- a/plugins/statistiche_articoli/js/calendar.js +++ /dev/null @@ -1,25 +0,0 @@ -class Calendar { - constructor(info, id){ - this.info = info; - this.id = id; - - this.elements = new Array(); - } - - addElement(object){ - this.elements.push(object); - } - - update(start, end) { - this.elements.forEach(function (element) { - element.update(start, end); - }); - } - - remove() { - this.elements.forEach(function (element) { - element.remove(); - }); - } - -} diff --git a/plugins/statistiche_articoli/js/prezzo.js b/plugins/statistiche_articoli/js/prezzo.js index d7f32e8ba..97d032b8b 100644 --- a/plugins/statistiche_articoli/js/prezzo.js +++ b/plugins/statistiche_articoli/js/prezzo.js @@ -1,51 +1,7 @@ -class Prezzo extends Stat { +class Prezzo extends Table { constructor(calendar, id, direzione){ - super(calendar, id); - - this.direzione = direzione; - } - - getData(start, end, callback) { - $.ajax({ - url: this.calendar.info.url + "/manage_prezzi.php", - type: "get", - data: { - id_module: this.calendar.info.id_module, - id_record: this.calendar.info.id_record, - calendar_id: this.calendar.id, - dir: this.direzione, - start: start, - end: end, - }, - success: function(data){ - callback(data) - } - }); - } - - add(start, end) { - var id = this.id; - var calendar_id = this.calendar.id; - - this.getData(start, end, function(data) { - var row = $(id).find("#row-" + calendar_id); - - if (!row.length) { - $(id).append(data); - } else { - row.after(data); - row.remove(); - } - - $(id).find("#row-" + calendar_id).effect("highlight", {}, 3000); - }); - } - - update(start, end) { - this.add(start, end) - } - - remove(start, end) { - $(this.id).find("#row-" + this.calendar.id).remove(); + super(calendar, "manage_prezzi.php", { + direzione: direzione + }, id); } } diff --git a/plugins/statistiche_articoli/js/stat.js b/plugins/statistiche_articoli/js/stat.js deleted file mode 100644 index 42786d574..000000000 --- a/plugins/statistiche_articoli/js/stat.js +++ /dev/null @@ -1,11 +0,0 @@ -class Stat { - constructor(calendar, id){ - this.calendar = calendar; - - this.id = id; - } - - add(start, end){} - update(start, end){} - remove(){} -}