. */ // Inizializzazione $documento = $options['documento']; $documento_finale = $options['documento_finale']; if (empty($documento) || (!empty($documento_finale) && $documento_finale->direzione != $documento->direzione)) { return; } // Informazioni utili $dir = $documento->direzione; $original_module = Modules::get($documento->module); $name = !empty($documento_finale) ? $documento_finale->module : $options['module']; $final_module = Modules::get($name); // IVA predefinita $id_iva = $id_iva ?: setting('Iva predefinita'); $righe = $documento->getRighe()->where('qta_rimanente', '>', 0); if (empty($righe)) { echo '

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

'; return; } $link = !empty($documento_finale) ? base_path().'/editor.php?id_module='.$final_module['id'].'&id_record='.$documento_finale->id : base_path().'/controller.php?id_module='.$final_module['id']; echo '
'; // Creazione fattura dal documento if (!empty($options['create_document'])) { echo '

'.tr('Nuovo documento').'

{[ "type": "date", "label": "'.tr('Data del documento').'", "name": "data", "required": 1, "value": "-now-" ]}
'; // Opzioni aggiuntive per le Fatture if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto'])) { if ($options['op'] == 'nota_accredito' && !empty($segmenti)) { $segmento = $database->fetchOne("SELECT * FROM zz_segments WHERE predefined_accredito='1'"); $id_segment = $segmento['id']; } else { $id_segment = $_SESSION['module_'.$final_module['id']]['id_segment']; } $stato_predefinito = $database->fetchOne("SELECT * FROM co_statidocumento WHERE descrizione = 'Bozza'"); echo '
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM co_statidocumento WHERE descrizione IN (\'Emessa\', \'Bozza\')", "value": "'.$stato_predefinito['id'].'"]}
{[ "type": "select", "label": "'.tr('Ritenuta contributi').'", "name": "id_ritenuta_contributi", "value": "$id_ritenuta_contributi$", "values": "query=SELECT * FROM co_ritenute_contributi" ]}
{[ "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.'" ]}
'; } // Opzioni aggiuntive per gli Interventi elseif ($final_module['name'] == 'Interventi') { echo '
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato_intervento", "required": 1, "values": "query=SELECT idstatointervento AS id, descrizione, colore AS _bgcolor_ FROM in_statiintervento WHERE deleted_at IS NULL" ]}
{[ "type": "select", "label": "'.tr('Tipo').'", "name": "id_tipo_intervento", "required": 1, "values": "query=SELECT idtipointervento AS id, descrizione FROM in_tipiintervento" ]}
'; } // Opzioni aggiuntive per i Contratti elseif ($final_module['name'] == 'Contratti') { $stato_predefinito = $database->fetchOne("SELECT * FROM co_staticontratti WHERE descrizione = 'Bozza'"); echo '
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT id, descrizione FROM co_staticontratti", "value": "'.$stato_predefinito['id'].'" ]}
'; } // Opzioni aggiuntive per i DDT elseif (in_array($final_module['name'], ['Ddt di vendita', 'Ddt di acquisto'])) { $stato_predefinito = $database->fetchOne("SELECT * FROM dt_statiddt WHERE descrizione = 'Bozza'"); echo '
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM dt_statiddt", "value": "'.$stato_predefinito['id'].'" ]}
{[ "type": "select", "label": "'.tr('Causale trasporto').'", "name": "id_causale_trasporto", "required": 1, "ajax-source": "causali", "icon-after": "add|'.Modules::get('Causali')['id'].'", "help": "'.tr('Definisce la causale del trasporto').'" ]}
'; } // Opzioni aggiuntive per gli Ordini elseif (in_array($final_module['name'], ['Ordini cliente', 'Ordini fornitore'])) { $stato_predefinito = $database->fetchOne("SELECT * FROM or_statiordine WHERE descrizione = 'Bozza'"); echo '
{[ "type": "select", "label": "'.tr('Stato').'", "name": "id_stato", "required": 1, "values": "query=SELECT * FROM or_statiordine WHERE descrizione IN(\'Bozza\', \'Accettato\', \'In attesa di conferma\', \'Annullato\')", "value": "'.$stato_predefinito['id'].'" ]}
'; } // Selezione fornitore per Ordine fornitore if ($options['op'] == 'add_ordine_cliente') { $tipo_anagrafica = tr('Fornitore'); $ajax = 'fornitori'; echo '
{[ "type": "select", "label": "'.$tipo_anagrafica.'", "name": "idanagrafica", "required": 1, "ajax-source": "'.$ajax.'", "icon-after": "add|'.Modules::get('Anagrafiche')['id'].'|tipoanagrafica='.$tipo_anagrafica.'" ]}
'; } echo '
'; } // Conto, rivalsa INPS, ritenuta d'acconto e ritenuta contributi if (in_array($final_module['name'], ['Fatture di vendita', 'Fatture di acquisto']) && !in_array($original_module['name'], ['Fatture di vendita', 'Fatture di acquisto'])) { $id_rivalsa_inps = setting('Percentuale rivalsa'); if ($dir == 'uscita') { $id_ritenuta_acconto = $documento->anagrafica->id_ritenuta_acconto_acquisti; } else { $id_ritenuta_acconto = $documento->anagrafica->id_ritenuta_acconto_vendite ?: setting("Percentuale ritenuta d'acconto"); } $calcolo_ritenuta_acconto = setting("Metodologia calcolo ritenuta d'acconto predefinito"); $show_rivalsa = !empty($id_rivalsa_inps); $show_ritenuta_acconto = setting("Percentuale ritenuta d'acconto") != '' || !empty($id_ritenuta_acconto); $show_ritenuta_contributi = !empty($documento_finale['id_ritenuta_contributi']); $id_conto = $documento_finale['idconto']; if (empty($id_conto)) { $id_conto = $dir == 'entrata' ? setting('Conto predefinito fatture di vendita') : setting('Conto predefinito fatture di acquisto'); } echo '

'.tr('Opzioni generali delle righe').'

'; if ($show_rivalsa || $show_ritenuta_acconto) { echo '
'; // Rivalsa INPS if ($show_rivalsa) { echo '
{[ "type": "select", "label": "'.tr('Rivalsa').'", "name": "id_rivalsa_inps", "value": "'.$id_rivalsa_inps.'", "values": "query=SELECT * FROM co_casse_previdenziali", "help": "'.($options['dir'] == 'entrata' ? setting('Tipo Cassa Previdenziale') : null).'" ]}
'; } // Ritenuta d'acconto if ($show_ritenuta_acconto) { echo '
{[ "type": "select", "label": "'.tr("Ritenuta d'acconto").'", "name": "id_ritenuta_acconto", "value": "'.$id_ritenuta_acconto.'", "values": "query=SELECT * FROM co_ritenute_acconto" ]}
'; // Calcola ritenuta d'acconto su echo '
{[ "type": "select", "label": "'.tr("Calcola ritenuta d'acconto su").'", "name": "calcolo_ritenuta_acconto", "value": "'.$calcolo_ritenuta_acconto.'", "values": "list=\"IMP\":\"Imponibile\", \"IMP+RIV\":\"Imponibile + rivalsa\"", "required": "1" ]}
'; } echo '
'; } $width = $show_ritenuta_contributi ? 6 : 12; echo '
'; // Ritenuta contributi if ($show_ritenuta_contributi) { echo '
{[ "type": "checkbox", "label": "'.tr('Ritenuta contributi').'", "name": "ritenuta_contributi", "value": "1" ]}
'; } // Conto echo '
{[ "type": "select", "label": "'.tr('Conto').'", "name": "id_conto", "required": 1, "value": "'.$id_conto.'", "ajax-source": "'.($dir == 'entrata' ? 'conti-vendite' : 'conti-acquisti').'" ]}
'; } // Righe del documento echo '

'.tr('Righe da importare').'

'; if (!empty($options['serials'])) { echo ' '; } echo ' '; foreach ($righe as $i => $riga) { // Descrizione echo ' '; // Q.tà rimanente echo ' '; // Q.tà da evadere echo ' '; echo ' '; // Seriali if (!empty($options['serials'])) { echo ' '; } echo ' '; } // Totale echo '
'.tr('Descrizione').' '.tr('Q.tà').' '.tr('Q.tà da evadere').' '.tr('Subtot.').''.tr('Seriali').'
'; // Checkbox - da evadere? echo ' '; $descrizione = ($riga->isArticolo() ? $riga->articolo->codice.' - ' : '').$riga['descrizione']; echo ' '.nl2br($descrizione); echo ' '.numberFormat($riga['qta_rimanente']).' {[ "type": "number", "name": "qta_da_evadere['.$riga['id'].']", "id": "qta_'.$i.'", "required": 1, "value": "'.$riga['qta_rimanente'].'", "decimals": "qta", "min-value": "0", "extra": "'.(($riga['is_descrizione']) ? 'readonly' : '').' onkeyup=\"ricalcolaTotaleRiga('.$i.');\"" ]} '.moneyFormat($riga->totale).'
'.numberFormat($riga->totale_imponibile).' + '.numberFormat($riga->iva).'
'; if (!empty($riga['abilita_serial'])) { $serials = $riga->serials; $list = []; foreach ($serials as $serial) { $list[] = [ 'id' => $serial, 'text' => $serial, ]; } if (!empty($serials)) { echo ' {[ "type": "select", "name": "serial['.$riga['id'].'][]", "id": "serial_'.$i.'", "multiple": 1, "values": '.json_encode($list).', "value": "'.implode(',', $serials).'", "extra": "data-maximum=\"'.intval($riga['qta_rimanente']).'\"" ]}'; } } if (empty($riga['abilita_serial']) || empty($serials)) { echo '-'; } echo '
'.tr('Totale').':
'; echo ' '; echo '
'; echo ' '; echo ' ';