'.tr('Produzione').'

'; $search_lotto = get('search_lotto'); $search_serial = get('search_serial'); $search_altro = get('search_altro'); // Calcolo prossimo lotto e serial number $rs = $dbo->fetchArray('SELECT serial FROM mg_prodotti WHERE id_articolo='.prepare($id_record).' ORDER BY id DESC LIMIT 0,1'); $max_serial = $rs[0]['serial']; $next_serial = get_next_code($max_serial); echo '
'; // Campi di inserimento lotti echo '

'.tr('Inserimento nuovi prodotti').'

'; // Serial echo '
'; if (!empty($max_serial)) { echo '

'.tr('Ultimo serial number inserito').': '.$max_serial.'

'; } echo '
'; // Totale prodotti da inserire echo '

'.tr('Totale prodotti da inserire').': 0

'; // Visualizzo, in base alle impostazioni scelte, se il magazzino verrà movimentato if (setting("Movimenta il magazzino durante l'inserimento o eliminazione dei lotti/serial number")) { echo ' '.tr("L'inserimento incrementerà la quantità dell'articolo!").''; } else { echo ' '.tr("L'inserimento non movimenterà la quantità dell'articolo!").''; } echo '
'; // Ricerca echo '

'.tr('Ricerca prodotti').'

'; // Visualizzo, in base alle impostazioni scelte, se il magazzino verrà movimentato if (setting("Movimenta il magazzino durante l'inserimento o eliminazione dei lotti/serial number")) { echo tr("La cancellazione decrementerà la quantità dell'articolo!"); } else { echo tr("L'inserimento decrementerà la quantità dell'articolo!"); } echo '
'; // Conteggio totale prodotti $rs = $dbo->fetchArray('SELECT COUNT(id) AS tot FROM mg_prodotti WHERE id_articolo='.prepare($id_record)); $tot_prodotti = $rs[0]['tot']; // Visualizzazione di tutti i prodotti $query = 'SELECT id, serial, created_at FROM mg_prodotti WHERE serial IS NOT NULL AND id_articolo='.prepare($id_record).(!empty($search_serial) ? ' AND serial LIKE '.prepare('%'.$search_serial.'%') : '').' GROUP BY serial ORDER BY created_at DESC, serial DESC, lotto DESC, altro DESC'; $rs2 = $dbo->fetchArray($query); echo ' '; for ($i = 0; $i < count($rs2); ++$i) { echo ' '; echo ' '; // Ricerca vendite $vendite = $dbo->fetchArray('SELECT * FROM mg_prodotti WHERE dir=\'entrata\' AND id_articolo='.prepare($id_record).' AND serial='.prepare($rs2[$i]['serial'])); if (!empty($vendite)) { echo ' '; } // Non venduto else { // Documento di vendita echo ' '; // Totale echo ' '; echo ' '; } echo ' '; } echo '
'.tr('Serial').' '.tr('Data di creazione').' '.tr('Documento di vendita').' '.tr('Totale').' #
'.$rs2[$i]['serial'].''.Translator::timestampToLocale($rs2[$i]['created_at']).''; $totali = []; foreach ($vendite as $vendita) { // Venduto su fatture if (!empty($vendita['id_riga_documento'])) { $module_id = Modules::get('Fatture di vendita')['id']; // Ricerca vendite su fatture $query = 'SELECT *, ( SELECT descrizione FROM co_tipidocumento WHERE id=(SELECT idtipodocumento FROM co_documenti WHERE id=iddocumento) ) AS tipo_documento, ( SELECT `dir` FROM co_tipidocumento WHERE id=(SELECT idtipodocumento FROM co_documenti WHERE id=iddocumento) ) AS `dir`, ( SELECT numero FROM co_documenti WHERE id=iddocumento ) AS numero, ( SELECT numero_esterno FROM co_documenti WHERE id=iddocumento ) AS numero_esterno, ( SELECT data FROM co_documenti WHERE id=iddocumento ) AS data FROM co_righe_documenti WHERE co_righe_documenti.id='.prepare($vendita['id_riga_documento']); $data = $dbo->fetchArray($query); $id = $data[0]['iddocumento']; } // Venduto su ddt elseif (!empty($vendita['id_riga_ddt'])) { $numero = ($rs3[0]['numero_esterno'] != '') ? $rs3[0]['numero_esterno'] : $rs3[0]['numero']; $module_id = Modules::get('Ddt di vendita')['id']; $query = 'SELECT *, ( SELECT descrizione FROM dt_tipiddt WHERE id=(SELECT idtipoddt FROM dt_ddt WHERE id=idddt) ) AS tipo_documento, ( SELECT `dir` FROM dt_tipiddt WHERE id=(SELECT idtipoddt FROM dt_ddt WHERE id=idddt) ) AS `dir`, ( SELECT numero FROM dt_ddt WHERE id=idddt ) AS numero, ( SELECT numero_esterno FROM dt_ddt WHERE id=idddt ) AS numero_esterno, ( SELECT data FROM dt_ddt WHERE id=idddt ) AS data FROM dt_righe_ddt WHERE dt_righe_ddt.id='.prepare($vendita['id_riga_ddt']); $data = $dbo->fetchArray($query); $id = $data[0]['idddt']; } // Inserito su ordini elseif (!empty($vendita['id_riga_ordine'])) { $module_id = Modules::get('Ordini cliente')['id']; // Ricerca inserimenti su ordini $query = 'SELECT *, ( SELECT descrizione FROM or_tipiordine WHERE id=(SELECT idtipoordine FROM or_ordini WHERE id=idordine) ) AS tipo_documento, ( SELECT `dir` FROM or_tipiordine WHERE id=(SELECT idtipoordine FROM or_ordini WHERE id=idordine) ) AS `dir`, ( SELECT numero FROM or_ordini WHERE id=idordine ) AS numero, ( SELECT numero_esterno FROM or_ordini WHERE id=idordine ) AS numero_esterno, ( SELECT data FROM or_ordini WHERE id=idordine ) AS data FROM or_righe_ordini WHERE or_righe_ordini.id='.prepare($vendita['id_riga_ordine']); $data = $dbo->fetchArray($query); $id = $data[0]['idordine']; } // Inserito su intervento elseif (!empty($vendita['id_riga_intervento'])) { $module_id = Modules::get('Interventi')['id']; // Ricerca inserimenti su interventi $query = 'SELECT mg_articoli_interventi.*, in_interventi.codice, ( SELECT orario_inizio FROM in_interventi_tecnici WHERE idintervento=mg_articoli_interventi.idintervento LIMIT 0,1 ) AS data FROM mg_articoli_interventi JOIN in_interventi ON in_interventi.id = mg_articoli_interventi.idintervento WHERE mg_articoli_interventi.id='.prepare($vendita['id_riga_intervento']); $data = $dbo->fetchArray($query); $id = $data[0]['idintervento']; $data[0]['tipo_documento'] = tr('Intervento').' '.$data[0]['codice']; $data[0]['subtotale'] = $data[0]['prezzo_vendita'] * $data[0]['qta']; $data[0]['iva'] = 0; $extra = tr('(q.tà _QTA_)', [ '_QTA_' => $data[0]['qta'], ]); } $totali[] = [$data[0]['subtotale'], $data[0]['iva']]; $numero = !empty($data[0]['numero_esterno']) ? $data[0]['numero_esterno'] : $data[0]['numero']; $text = tr('_DOC_ num. _NUM_ del _DATE_', [ '_DOC_' => $data[0]['tipo_documento'], '_NUM_' => $numero, '_DATE_' => Translator::dateToLocale($data[0]['data']), ]).(!empty($extra) ? ' '.$extra : ''); echo ' '.Modules::link($module_id, $id, $text).'
'; } echo '
'; foreach ($totali as $value) { $subtotale = $value[0]; $iva = $value[1]; echo ' '.Translator::numberToLocale($subtotale + $iva).' '.currency().''; if (!empty($subtotale) && !empty($iva)) { echo ' ('.Translator::numberToLocale($subtotale).' + '.Translator::numberToLocale($iva).')'; } echo '
'; } echo '
'; ?>