';
// 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 '
# |
'.tr('Q.tà').' |
'.tr('Q.tà progressiva').' |
'.tr('Operazione').' |
'.tr('Controparte').' |
'.tr('Sede').' |
'.tr('Data').' |
# |
';
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 '
'.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')).'
| ';
// Data
$utente = $dbo->table('zz_users')->where('id', $movimento->idutente)->first();
$data = ($movimento->data ?: $movimento->data_movimento);
echo '
'.dateFormat($data).' | ';
// Operazioni
echo '
';
if (Auth::admin() && $movimento->isManuale()) {
echo '
';
}
echo '
|
';
}
echo '
';
} else {
echo '
'.tr('Questo articolo non è ancora stato movimentato').'.
';
}
echo '