'; $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); // Fatturato echo '

'.tr('Vendite e acquisti').'

'; // Script per il grafico del fatturato echo ' '; // Clienti top $clienti = $dbo->fetchArray('SELECT SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS totale, (SELECT COUNT(*) FROM co_documenti WHERE co_documenti.idanagrafica =an_anagrafiche.idanagrafica AND co_documenti.data BETWEEN '.prepare($start).' AND '.prepare($end).") AS qta, an_anagrafiche.idanagrafica, an_anagrafiche.ragione_sociale 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 INNER JOIN an_anagrafiche ON an_anagrafiche.idanagrafica=co_documenti.idanagrafica WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY an_anagrafiche.idanagrafica ORDER BY SUM(subtotale - sconto) DESC LIMIT 20'); $totale = $dbo->fetchArray("SELECT SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS totale 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_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end)); echo '

'.tr('I 20 clienti TOP').'

'; if (!empty($clienti)) { echo ' '; foreach ($clienti as $cliente) { echo ' '; } echo '
'.tr('Ragione sociale').' '.tr('Num. fatture').' '.tr('Totale').' '.tr('Percentuale').' 
'.Modules::link('Anagrafiche', $cliente['idanagrafica'], $cliente['ragione_sociale']).' '.intval($cliente['qta']).' '.moneyFormat($cliente['totale']).' '.Translator::numberToLocale($cliente['totale'] * 100 / $totale[0]['totale']).' %
'; } else { echo '

'.tr('Nessuna vendita').'...

'; } echo '
'; // Articoli più venduti $articoli = $dbo->fetchArray("SELECT SUM(co_righe_documenti.qta) AS qta, SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS totale, mg_articoli.id, mg_articoli.codice, mg_articoli.descrizione, mg_articoli.um 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 INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end).' GROUP BY co_righe_documenti.idarticolo ORDER BY SUM(co_righe_documenti.qta) DESC LIMIT 20'); $totale = $dbo->fetchArray("SELECT SUM(co_righe_documenti.qta) AS totale_qta, SUM(co_righe_documenti.subtotale - co_righe_documenti.sconto) AS totale 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 INNER JOIN mg_articoli ON mg_articoli.id=co_righe_documenti.idarticolo WHERE co_tipidocumento.dir='entrata' AND co_documenti.data BETWEEN ".prepare($start).' AND '.prepare($end)); echo '

'.tr('I 20 articoli più venduti').'

'; if (!empty($articoli)) { echo ' '; foreach ($articoli as $articolo) { echo ' '; } echo '
'.tr('Codice').' '.tr('Descrizione').' '.tr('Q.tà').' '.tr('Percentuale').' '.tr('Totale').'
'.Modules::link('Articoli', $articolo['id'], $articolo['codice']).' '.$articolo['descrizione'].' '.Translator::numberToLocale($articolo['qta']).' '.$articolo['um'].' '.Translator::numberToLocale($articolo['qta'] * 100 / $totale[0]['totale_qta']).' % '.moneyFormat($articolo['totale']).'
'; } else { echo '

'.tr('Nessun articolo è stato venduto').'...

'; } echo '
'; // Interventi per tipologia $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 = Stats::monthly($interventi, $start, $end); //Random color $background = '#'.dechex(rand(256, 16777215)); $dataset .= '{ label: "'.$tipo['descrizione'].'", backgroundColor: "'.$background.'", data: [ '.implode(',', array_column($interventi, 'totale')).' ] },'; } echo '

'.tr('Interventi per tipologia').'

'; // Script per il grafico del fatturato echo ' ';