diff --git a/modules/fatture/actions.php b/modules/fatture/actions.php index 01262f2ee..d6591a802 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('Righe').'

- - - - - - - - - '; +
+
'.tr('Riga').''.tr('Descrizione').''.tr('Quantità').''.tr('Prezzo unitario').''.tr('Iva associata').'*'.tr('Articolo associato').'
+ + + + + + + + '; foreach ($righe as $key => $riga) { $query = 'SELECT id, IF(codice IS NULL, descrizione, CONCAT(codice, " - ", descrizione)) AS descrizione FROM co_iva WHERE percentuale = '.prepare($riga['AliquotaIVA']); @@ -91,13 +92,15 @@ if (!empty($righe)) { echo ' - - - + + + @@ -105,7 +108,8 @@ if (!empty($righe)) { } echo ' -
'.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" ]}
'; + + '; } else { 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();