fetchOne('SELECT * FROM '.$table.' WHERE id = '.prepare($id_record)); $numero = !empty($documento['numero_esterno']) ? $documento['numero_esterno'] : $documento['numero']; $id_anagrafica = $documento['idanagrafica']; $id_pagamento = $documento['idpagamento']; $id_conto = $documento['idconto']; if (empty($documento)) { return; } $id_iva = $id_iva ?: setting('Iva predefinita'); if (empty($id_conto)) { $id_conto = ($dir == 'entrata') ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto'); } // Selezione articoli dell'ordine da portare nel ddt $righe = $dbo->fetchArray('SELECT *, IFNULL((SELECT codice FROM mg_articoli WHERE id=idarticolo),"") AS codice, (qta - qta_evasa) AS qta_rimanente FROM '.$table.' INNER JOIN '.$rows.' ON '.$table.'.id='.$rows.'.'.$id_rows.' WHERE '.$table.'.id='.prepare($id_record).' HAVING qta_rimanente > 0 OR is_descrizione = 1 ORDER BY `order`'); if (!empty($righe)) { echo '
'; // Creazione fattura dal documento if (!empty($options['create_document'])) { echo '
{[ "type": "date", "label": "'.tr('Data del documento').'", "name": "data", "required": 1, "value": "-now-" ]}
'; if ($final_module['name'] == 'Fatture di vendita' || $final_module['name'] == 'Fatture di acquisto') { if ($op == 'nota_accredito' && !empty($segmenti)) { $segmento = $dbo->fetchOne("SELECT * FROM zz_segments WHERE predefined_accredito='1'"); $id_segment = $segmento['id']; } else { $id_segment = $_SESSION['module_'.$final_module['id']]['id_segment']; } echo '
{[ "type": "select", "label": "'.tr('Sezionale').'", "name": "id_segment", "required": 1, "values": "query=SELECT id, name AS descrizione FROM zz_segments WHERE id_module='.prepare($final_module['id']).' ORDER BY name", "value": "'.$id_segment.'" ]}
'; } echo '
'; } // Conto if (($final_module['name'] == 'Fatture di vendita' || $final_module['name'] == 'Fatture di acquisto') && !($original_module['name'] == 'Fatture di vendita' || $original_module['name'] == 'Fatture di acquisto')) { echo '
{[ "type": "select", "label": "'.tr('Conto').'", "name": "id_conto", "required": 1, "value": "'.$id_conto.'", "ajax-source": "'.($dir == 'entrata' ? 'conti-vendite' : 'conti-acquisti').'" ]}
'; } echo '

'.tr('Seleziona le righe e le relative quantità da inserire nel documento').'.

'; if (!empty($options['serials'])) { echo ' '; } echo ' '; $totale = 0.00; foreach ($righe as $i => $r) { // Descrizione echo ' '; // Q.tà rimanente echo ' '; // Q.tà da evadere echo ' '; // Subtotale $subtotale = $r['subtotale'] / $r['qta'] * ($r['qta'] - $r['qta_evasa']); $sconto = $r['sconto'] / $r['qta'] * ($r['qta'] - $r['qta_evasa']); $iva = $r['iva'] / $r['qta'] * ($r['qta'] - $r['qta_evasa']); echo ' '; // Seriali if (!empty($options['serials'])) { echo ' '; } echo ' '; $totale += $subtotale - $sconto + $iva; } // Totale echo '
'.tr('Descrizione').' '.tr('Q.tà').' '.tr('Q.tà da evadere').' '.tr('Subtot.').''.tr('Seriali').'
'; // Checkbox - da evadere? echo ' '; $descrizione = (!empty($r['codice']) ? $r['codice'].' - ' : '').$r['descrizione']; echo ' '.nl2br($descrizione); echo '

'.Translator::numberToLocale($r['qta_rimanente']).'

{[ "type": "number", "name": "qta_da_evadere['.$r['id'].']", "id": "qta_'.$i.'", "required": 1, "value": "'.$r['qta_rimanente'].'", "extra" : "onkeyup=\"ricalcola_subtotale_riga('.$i.');\"", "decimals": "qta", "min-value": "0", "extra": "'.(($r['is_descrizione']) ? 'readonly' : '').'" ]} '.Translator::numberToLocale($subtotale - $sconto + $iva).' €
'.Translator::numberToLocale($subtotale - $sconto).' + '.Translator::numberToLocale($iva).'
'; if (!empty($r['abilita_serial'])) { $query = 'SELECT DISTINCT serial AS id, serial AS descrizione FROM mg_prodotti WHERE dir='.prepare($dir).' AND '.$options['serials']['id_riga'].' = '.prepare($r['id']).' AND serial IS NOT NULL AND serial NOT IN (SELECT serial FROM mg_prodotti AS t WHERE serial IS NOT NULL AND dir='.prepare($dir).' AND '.$options['serials']['condition'].')'; $values = $dbo->fetchArray($query); if (!empty($values)) { echo ' {[ "type": "select", "name": "serial['.$r['id'].'][]", "id": "serial_'.$i.'", "multiple": 1, "values": "query='.$query.'", "value": "'.implode(',', array_column($values, 'id')).'", "extra": "data-maximum=\"'.intval($r['qta_rimanente']).'\"" ]}'; } } if (empty($r['abilita_serial']) || empty($values)) { echo '-'; } echo '
'.tr('Totale').': '.Translator::numberToLocale($totale).' €
'; echo '
'; } else { echo '

'.tr('Non ci sono elementi da evadere').'...

'; } echo ' '; ?>