. */ use Util\Query; include_once __DIR__.'/../../core.php'; $id_module = Modules::get('Articoli')['id']; // Valori di ricerca $where['servizio'] = '0'; foreach ($_SESSION['module_'.$id_module] as $name => $value) { if (preg_match('/^search_(.+?)$/', $name, $m)) { $where[$m[1]] = $value; } } $period_end = $_SESSION['period_end']; $structure = Modules::get($id_module); // RISULTATI VISIBILI Util\Query::setSegments(false); $query = Query::getQuery($structure, $where, 0, []); $query = Modules::replaceAdditionals($id_module, $query); // Modifiche alla query principale $query = preg_replace('/FROM `mg_articoli`/', ' FROM mg_articoli LEFT JOIN (SELECT idarticolo, SUM(qta) AS qta_totale FROM mg_movimenti WHERE data <='.prepare($period_end).' GROUP BY idarticolo) movimenti ON movimenti.idarticolo=mg_articoli.id ', $query); $query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_vendita,', $query); $query = preg_replace('/^SELECT /', 'SELECT mg_articoli.um,', $query); $query = preg_replace('/^SELECT /', 'SELECT movimenti.qta_totale,', $query); if (post('acquisto') == 'standard') { $query = preg_replace('/^SELECT /', 'SELECT mg_articoli.prezzo_acquisto AS acquisto,', $query); $text = "al prezzo presente nella scheda articolo"; } elseif(post('acquisto') == 'first') { $query = preg_replace('/^SELECT /', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT 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=mg_articoli.id ORDER BY co_righe_documenti.id ASC LIMIT 0,1) AS acquisto,', $query); $text = "al primo articolo acquistato"; } elseif(post('acquisto') == 'last') { $query = preg_replace('/^SELECT /', 'SELECT (SELECT (prezzo_unitario-sconto_unitario) AS acquisto FROM co_righe_documenti LEFT 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=mg_articoli.id ORDER BY co_righe_documenti.id DESC LIMIT 0,1) AS acquisto,', $query); $text = "all'ultimo articolo acquistato"; } else { $query = preg_replace('/^SELECT /', 'SELECT (SELECT (SUM((prezzo_unitario-sconto_unitario)*qta)/SUM(qta)) AS acquisto FROM co_righe_documenti LEFT 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=mg_articoli.id) AS acquisto,', $query); $text = "alla media ponderata dell'articolo"; } if (post('tipo') == 'nozero') { $query = str_replace('2=2', '2=2 AND movimenti.qta_totale > 0', $query); } $data = Query::executeAndCount($query); echo '

'.tr('Inventario al _DATE_', [ '_DATE_' => Translator::dateToLocale($period_end), ], ['upper' => true]).'

'.tr("Prezzo di acquisto calcolato in base _TEXT_", [ "_TEXT_" => $text, ]).'

'; $totale_qta = 0; $totali = []; foreach ($data['results'] as $r) { $valore_magazzino = $r['acquisto'] * $r['qta_totale']; echo ' '; $totale_qta += $r['qta_totale']; $totali[] = $valore_magazzino; } // Totali $totale_acquisto = sum($totali); echo '
'.tr('Codice', [], ['upper' => true]).' '.tr('Categoria', [], ['upper' => true]).' '.tr('Descrizione', [], ['upper' => true]).' '.tr('Prezzo di vendita', [], ['upper' => true]).' '.tr('Q.tà', [], ['upper' => true]).' '.tr('Prezzo di acquisto', [], ['upper' => true]).' '.tr('Valore totale', [], ['upper' => true]).'
'.$r['Codice'].' '.$r['Categoria'].' '.$r['Descrizione'].' '.moneyFormat($r['prezzo_vendita']).' '.Translator::numberToLocale($r['qta_totale']).' '.$r['um'].' '.moneyFormat($r['acquisto']).' '.moneyFormat($valore_magazzino).'
'.tr('Totale', [], ['upper' => true]).': '.Translator::numberToLocale($totale_qta).' '.moneyFormat($totale_acquisto).'
';