. */ include_once __DIR__.'/../../../core.php'; use Models\Module; use Modules\Anagrafiche\Anagrafica; echo '

'.tr('Articolo').'

'.tr('Codice: ').''.$articolo->codice.'
'.tr('Descrizione: ').''.$articolo->getTranslation('title').'
'; // Movimentazione degli articoli echo '

'.tr('Movimenti').'

'; echo ' '.tr('Movimenta articolo').' '; if (empty($_GET['movimentazione_completa'])) { echo ' '.tr('Mostra tutti i movimenti').' '; } else { echo ' '.tr('Mostra gli ultimi 20 movimenti').' '; } echo ' '.tr('Visualizza dettagli').' '; echo '
'; // Calcolo la quantità dai movimenti in magazzino $qta_totale = $dbo->fetchOne('SELECT SUM(qta) AS qta FROM mg_movimenti WHERE idarticolo='.prepare($id_record))['qta']; $qta_totale_attuale = $dbo->fetchOne('SELECT SUM(qta) AS qta FROM mg_movimenti WHERE idarticolo='.prepare($id_record).' AND data <= CURDATE()')['qta']; echo '

'.tr('Quantità calcolata dai movimenti').': '.Translator::numberToLocale($qta_totale, 'qta').' '.$record['um'].'

'; echo '

'.tr('Quantità calcolata attuale').': '.Translator::numberToLocale($qta_totale_attuale, 'qta').' '.$record['um'].'

'; // Individuazione movimenti $movimenti = $articolo->movimentiComposti() ->orderBy('mg_movimenti.data', 'DESC') ->orderBy('mg_movimenti.id', 'DESC'); if (empty($_GET['movimentazione_completa'])) { $movimenti->limit(20); } // Raggruppamento per documento $movimenti = $movimenti->leftJoin('an_sedi', 'mg_movimenti.idsede', 'an_sedi.id')->get(); if (!empty($movimenti)) { echo ' '; foreach ($movimenti as $i => $movimento) { // Quantità progressiva if ($i == 0) { $movimento['progressivo_finale'] = $articolo->qta; } else { $movimento['progressivo_finale'] = $movimenti[$i - 1]['progressivo_iniziale']; } $movimento['progressivo_iniziale'] = $movimento['progressivo_finale'] - $movimento->qta; $movimenti[$i]['progressivo_iniziale'] = $movimento['progressivo_iniziale']; $movimenti[$i]['progressivo_finale'] = $movimento['progressivo_finale']; // Quantità echo ' '; // Data $utente = $dbo->table('zz_users')->where('id', $movimento->idutente)->first(); $data = ($movimento->data ?: $movimento->data_movimento); echo ' '; // Operazioni echo ' '; } echo '
# '.tr('Q.tà').' '.tr('Q.tà progressiva').' '.tr('Operazione').' '.tr('Controparte').' '.tr('Sede').' '.tr('Data').' #
'.count($movimenti)-($i). ' '.numberFormat($movimento->qta, 'qta').' '.$record['um'].' '.numberFormat($movimento['progressivo_iniziale'], 'qta').' '.$record['um'].' '.numberFormat($movimento['progressivo_finale'], 'qta').' '.$record['um'].' '.$movimento->descrizione.''.($movimento->hasDocument() ? ' - '.reference($movimento->getDocument()) : '').' '.Anagrafica::find($movimento->getDocument()->idanagrafica)->ragione_sociale.' '.($movimento->nomesede ?: tr('Sede legale')).' '.dateFormat($data).' '; if (Auth::admin() && $movimento->isManuale()) { echo ' '; } echo '
'; } else { echo '
'.tr('Questo articolo non è ancora stato movimentato').'.
'; } echo '
';