diff --git a/CHANGELOG.md b/CHANGELOG.md index 20738c529..e3de2be53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -31,7 +31,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Possibilità di ripristinare gli elementi eliminati dove l'eliminazione avviene a livello virtuale (**Anagrafiche**) - Plugin **Rinnovi** in **Contratti** - Caricamento del **Piano dei conti** attraverso AJAX - - Pannello *Prezzo medio acquisto* in **Articoli** + - Plugin *Statistiche* in **Articoli**, con visualizzazione del *Prezzo medio acquisto* in periodo personalizzabili - Supporto ai select come **Campi personalizzati** - Possibilità di generazione massiva delle fatture elettroniche @@ -43,6 +43,7 @@ Il formato utilizzato è basato sulle linee guida di [Keep a Changelog](http://k - Il modulo **Tecnici e tariffe** permette di definire le tariffe personalizzate per i diversi tecnici in relazione ai tipi di attività - Il modulo **Contratti** permette di definire le tariffe personalizzate per le *nuove sessioni* delle attività collegate - La sezione di modifica delle sessioni permette la modifica manuale delle tariffe interessate; il cambiamento del tipo di sessione provoca l'utilizzo delle tariffe definite da **Tecnici e tariffe** + - Ottimizzazione delle stampe **Scadenzario** e **Registro IVA**, e della tabella principale del modulp **Fatture di vendita** ### Fixed diff --git a/config/namespaces.php b/config/namespaces.php index ced5f7147..974ca80a2 100644 --- a/config/namespaces.php +++ b/config/namespaces.php @@ -21,4 +21,5 @@ return [ 'plugins/exportFE' => 'Plugins\ExportFE', 'plugins/importFE' => 'Plugins\ImportFE', 'plugins/receiptFE' => 'Plugins\ReceiptFE', + 'plugins/statistiche_articoli' => 'Plugins\StatisticheArticoli', ]; diff --git a/modules/articoli/edit.php b/modules/articoli/edit.php index 2fd280556..cfcea1918 100644 --- a/modules/articoli/edit.php +++ b/modules/articoli/edit.php @@ -292,58 +292,6 @@ echo ' '; ?> - -
-

'.tr('Prezzo medio acquisto').'

-
- -
'; -$rs_prezzo_medio = $dbo->fetchOne('SELECT ((SUM(subtotale)-SUM(sconto))/SUM(qta)) AS prezzo FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE co_documenti.idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = \'uscita\') AND idarticolo='.prepare($id_record)); -$rs_prezzo_min = $dbo->fetchOne('SELECT ((subtotale-sconto)/qta) AS prezzo, co_documenti.data FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE co_documenti.idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = \'uscita\') AND idarticolo='.prepare($id_record).' ORDER BY ((subtotale-sconto)/qta) ASC'); -$rs_prezzo_max = $dbo->fetchOne('SELECT ((subtotale-sconto)/qta) AS prezzo, co_documenti.data FROM co_righe_documenti INNER JOIN co_documenti ON co_righe_documenti.iddocumento = co_documenti.id WHERE co_documenti.idtipodocumento IN (SELECT id FROM co_tipidocumento WHERE dir = \'uscita\') AND idarticolo='.prepare($id_record).' ORDER BY ((subtotale-sconto)/qta) DESC'); - -if (count($rs_prezzo_min) > 0) { - echo ' -
-
- - - - - - - - - '; - - echo ' - - - - - - - - '; - - echo ' -
'.tr('Prezzo minimo').''.tr('Prezzio medio').''.tr('Prezzo massimo').''.tr('Oscillazione').''.tr('Oscillazione in %').''.tr('Andamento prezzo').'
'.moneyFormat($rs_prezzo_min['prezzo']).''.moneyFormat($rs_prezzo_medio['prezzo']).''.moneyFormat($rs_prezzo_max['prezzo']).''.moneyFormat($rs_prezzo_max['prezzo'] - $rs_prezzo_min['prezzo']).''.Translator::numberToLocale(((($rs_prezzo_max['prezzo'] - $rs_prezzo_min['prezzo']) * 100) / $rs_prezzo_medio['prezzo']), '2').' %'.((strtotime($rs_prezzo_min['data']) == strtotime($rs_prezzo_max['data'])) ? 'N.D.' : ((strtotime($rs_prezzo_min['data']) < strtotime($rs_prezzo_max['data'])) ? 'in aumento' : 'in diminuzione')).'
-
-
'; -} else { - echo ' -
- '.tr('Questo articolo non è mai stato acquistato').' -
'; -} - - echo ' -
- '; - -?> {( "name": "filelist_and_upload", "id_module": "$id_module$", "id_record": "$id_record$" )} diff --git a/plugins/rinnovi_contratti/edit.php b/plugins/rinnovi_contratti/edit.php index 8f9132265..8254b64e4 100644 --- a/plugins/rinnovi_contratti/edit.php +++ b/plugins/rinnovi_contratti/edit.php @@ -1,6 +1,6 @@ + '.dateFormat($start).' - '.dateFormat($end).' + '.moneyFormat($prezzo_min['prezzo']).' + '.moneyFormat($prezzo_medio).' + '.moneyFormat($prezzo_max['prezzo']).' + '.moneyFormat($oscillazione).' + '.Translator::numberToLocale($oscillazione_percentuale, '2').' % + '.$andamento.' +'; diff --git a/plugins/statistiche_articoli/edit.php b/plugins/statistiche_articoli/edit.php new file mode 100644 index 000000000..36dfd78ce --- /dev/null +++ b/plugins/statistiche_articoli/edit.php @@ -0,0 +1,128 @@ + +
+
+

+ '.tr('Periodi temporali').' +

+
+ + +
+
+ +
+ +
+
+ +
+
+

'.tr('Prezzo medio acquisto').'

+
+ +
+ + + + + + + + + + + + + + + +
'.tr('Perido').''.tr('Prezzo minimo').''.tr('Prezzio medio').''.tr('Prezzo massimo').''.tr('Oscillazione').''.tr('Oscillazione in %').''.tr('Andamento prezzo').'
+
+
+ +'; diff --git a/plugins/statistiche_articoli/src/Stats.php b/plugins/statistiche_articoli/src/Stats.php new file mode 100644 index 000000000..4856e4533 --- /dev/null +++ b/plugins/statistiche_articoli/src/Stats.php @@ -0,0 +1,25 @@ +fetchOne('SELECT (SUM(subtotale) - SUM(sconto)) / SUM(qta) AS prezzo '.$from)['prezzo']; + + $prezzo = 'SELECT (subtotale - sconto) / qta AS prezzo, co_documenti.data '.$from.' ORDER BY prezzo'; + $prezzo_min = $database->fetchOne($prezzo.' ASC'); + $prezzo_max = $database->fetchOne($prezzo.' DESC'); + + return [ + 'media' => $prezzo_medio, + 'max' => $prezzo_max, + 'min' => $prezzo_min, + ]; + } +} diff --git a/src/Prints.php b/src/Prints.php index 30c3fa856..331ae1eab 100644 --- a/src/Prints.php +++ b/src/Prints.php @@ -510,6 +510,5 @@ class Prints // Creazione effettiva del PDF $mpdf->Output($filename, $mode); - } } diff --git a/templates/registro_iva/bottom.php b/templates/registro_iva/bottom.php index 90033fabb..566bdd2e5 100644 --- a/templates/registro_iva/bottom.php +++ b/templates/registro_iva/bottom.php @@ -56,4 +56,3 @@ echo ' '; - diff --git a/templates/registro_iva/init.php b/templates/registro_iva/init.php index 0372aa833..424a9c905 100644 --- a/templates/registro_iva/init.php +++ b/templates/registro_iva/init.php @@ -7,7 +7,7 @@ $dir = $_GET['dir']; $date_start = $_SESSION['period_start']; $date_end = $_SESSION['period_end']; -$tipo = $dir == 'entrata' ? 'vendite': 'acquisti'; +$tipo = $dir == 'entrata' ? 'vendite' : 'acquisti'; $report_name = 'registro_iva_'.$tipo.'.pdf'; $v_iva = []; diff --git a/templates/registro_iva/top.php b/templates/registro_iva/top.php index 8b45c0bc8..888e00999 100644 --- a/templates/registro_iva/top.php +++ b/templates/registro_iva/top.php @@ -5,7 +5,7 @@ include_once __DIR__.'/../../core.php'; $year_start = date('Y', strtotime($date_start)); $year_end = date('Y', strtotime($date_end)); -$esercizio = $year_start == $year_end ? ' - '.tr('Esercizio _YEAR_',[ +$esercizio = $year_start == $year_end ? ' - '.tr('Esercizio _YEAR_', [ '_YEAR_' => $year_end, ]) : ''; @@ -21,7 +21,7 @@ if ('entrata' == $dir) { ], ['upper' => true]); } -$tipo = $dir == "entrata" ? tr("Cliente") : tr("Fornitore"); +$tipo = $dir == 'entrata' ? tr('Cliente') : tr('Fornitore'); echo '

'.$titolo.'

diff --git a/update/2_4_10.sql b/update/2_4_10.sql index 0184df414..3867981bc 100644 --- a/update/2_4_10.sql +++ b/update/2_4_10.sql @@ -219,3 +219,6 @@ UPDATE `zz_modules` SET `options` = 'SELECT |select| FROM `co_scadenziario` WHERE 1=1 AND ABS(`co_scadenziario`.`pagato`) < ABS(`co_scadenziario`.`da_pagare`) AND `co_statidocumento`.`descrizione` IN(''Emessa'',''Parzialmente pagato'') HAVING 2=2 ORDER BY `scadenza` ASC' WHERE `name` = 'Scadenzario'; + +-- Plugin Statistiche per Articoli +INSERT INTO `zz_plugins` (`id`, `name`, `title`, `idmodule_from`, `idmodule_to`, `position`, `script`, `enabled`, `default`, `order`, `compatibility`, `version`, `options2`, `options`, `directory`, `help`) VALUES (NULL, 'Statistiche', 'Statistiche', (SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), (SELECT `id` FROM `zz_modules` WHERE `name` = 'Articoli'), 'tab', '', 1, 0, 0, '', '', NULL, 'custom', 'statistiche_articoli', '');