. */ 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 Query::setSegments(false); $query = Query::getQuery($structure, $where, 0, []); $query = Modules::replaceAdditionals($id_module, $query); // Modifiche alla query principale $query = preg_replace('/FROM[\s\t\n]+`mg_articoli`/s', '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 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 qta_totale > 0', $query); } $data = Query::executeAndCount($query); echo '
'.tr('Prezzo di acquisto calcolato in base _TEXT_', [ '_TEXT_' => $text, ]).'
'.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 di vendita']).' | '.Translator::numberToLocale($r['qta_totale']).' '.$r['um'].' | '.moneyFormat($r['Prezzo di acquisto']).' | '.moneyFormat($valore_magazzino).' |
'.tr('Totale', [], ['upper' => true]).': | '.Translator::numberToLocale($totale_qta).' | '.moneyFormat($totale_acquisto).' |