diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index c45ea97eb..72c145b65 100644 --- a/modules/fatture/actions.php +++ b/modules/fatture/actions.php @@ -57,6 +57,7 @@ switch (post('op')) { if ($dir == 'uscita') { $data = [ 'numero' => post('numero'), + 'numero_esterno' => post('numero_esterno'), 'idrivalsainps' => post('id_rivalsa_inps'), 'idritenutaacconto' => post('id_ritenuta_acconto'), ]; diff --git a/plugins/importPA/actions.php b/plugins/importPA/actions.php index dda54a83d..b283fa6e6 100644 --- a/plugins/importPA/actions.php +++ b/plugins/importPA/actions.php @@ -2,6 +2,8 @@ include_once __DIR__.'/../../core.php'; +include_once Modules::filepath('Fatture di vendita', 'modutil.php'); + $directory = Uploads::getDirectory($id_module); switch (filter('op')) { @@ -39,14 +41,23 @@ switch (filter('op')) { $fattura_pa = new Plugins\ImportPA\FatturaElettronica($xml, post('id_segment')); $id_record = $fattura_pa->saveFattura(post('pagamento')); + $idrivalsainps = 0; + $idritenutaacconto = 0; + $bollo = 0; - $fattura_pa->saveRighe(post('articoli'), post('iva')); + $fattura_pa->saveRighe(post('articoli'), post('iva'), post('conto')); $fattura_pa->getFattura()->updateSconto(); $fattura_pa->saveAllegati($directory); Uploads::updateFake($id, $id_record); + ricalcola_costiagg_fattura($id_record, $idrivalsainps, $idritenutaacconto, $bollo); + elimina_scadenza($id_record); + elimina_movimento($id_record, 0); + aggiungi_scadenza($id_record, post('pagamento')); + aggiungi_movimento($id_record, 'uscita'); + redirect(ROOTDIR.'/editor.php?id_module='.$id_module.'&id_record='.$id_record); break; diff --git a/plugins/importPA/rows.php b/plugins/importPA/rows.php index 42af1c367..17547596e 100644 --- a/plugins/importPA/rows.php +++ b/plugins/importPA/rows.php @@ -70,15 +70,16 @@ if (!empty($righe)) { echo '
'.tr('Riga').' | -'.tr('Descrizione').' | -'.tr('Quantità ').' | -'.tr('Prezzo unitario').' | -'.tr('Iva associata').'* | -'.tr('Articolo associato').' | -
---|
'.tr('Descrizione').' | +'.tr('Q.tà ').' | +'.tr('Prezzo unitario').' | +'.tr('Iva associata').'* | +'.tr('Conto').' | +'.tr('Articolo associato').' | +|||
---|---|---|---|---|---|---|---|---|
'.$key.' | '.$riga['Descrizione'].' | -'.$riga['Quantita'].' '.$riga['UnitaMisura'].' | -'.$riga['PrezzoUnitario'].' | +'.Translator::numberToLocale( $riga['Quantita'] ).' '.$riga['UnitaMisura'].' | +'.Translator::numberToLocale( $riga['PrezzoUnitario'] ).' € | {[ "type": "select", "name": "iva['.$key.']", "values": "query='.str_replace('"', '\"', $query).'", "required": 1 ]} | ++ {[ "type": "select", "name": "conto['.$key.']", "ajax-source": "conti-acquisti" ]} + | {[ "type": "select", "name": "articoli['.$key.']", "ajax-source": "articoli" ]} | @@ -105,7 +108,8 @@ if (!empty($righe)) { } echo ' -
Non ci sono righe nella fattura.
'; diff --git a/plugins/importPA/src/FatturaElettronica.php b/plugins/importPA/src/FatturaElettronica.php index 3f575e458..35c9f95b2 100644 --- a/plugins/importPA/src/FatturaElettronica.php +++ b/plugins/importPA/src/FatturaElettronica.php @@ -153,7 +153,7 @@ class FatturaElettronica return $result; } - public function saveRighe($articoli, $iva) + public function saveRighe($articoli, $iva, $conto) { $righe = $this->getRighe(); @@ -168,6 +168,7 @@ class FatturaElettronica $obj->descrizione = $riga['Descrizione']; $obj->id_iva = $iva[$key]; + $obj->idconto = $conto[$key]; $obj->costo_unitario = $riga['PrezzoUnitario']; $obj->qta = $riga['Quantita'] ?: 1; @@ -240,7 +241,8 @@ class FatturaElettronica $dati_generali = $this->getBody()['DatiGenerali']['DatiGeneraliDocumento']; $data = $dati_generali['Data']; - $numero = $dati_generali['Numero']; + $numero = Fattura::getNumero($data, 'uscita', $this->id_sezionale); + $numero_esterno = $dati_generali['Numero']; $descrizione_tipo = empty($this->getBody()['DatiGenerali']['DatiTrasporto']) ? 'Fattura immediata di acquisto' : 'Fattura accompagnatoria di acquisto'; $tipo = TipoFattura::where('descrizione', $descrizione_tipo)->first(); @@ -249,6 +251,7 @@ class FatturaElettronica $this->fattura = $fattura; $fattura->numero = $numero; + $fattura->numero_esterno = $numero_esterno; $fattura->idpagamento = $id_pagamento; $stato_documento = StatoFattura::where('descrizione', 'Emessa')->first();