'.Modules::link($link_module, $autofattura_collegata->id, tr('Fattura num. _NUM_ del _DATE_', [
+ '.tr("Questa autofattura è già stata importata come fattura di acquisto").':
+ '.Modules::link('Fatture di acquisto', $autofattura_collegata->id, tr('Fattura num. _NUM_ del _DATE_', [
'_NUM_' => $autofattura_collegata->numero_esterno,
'_DATE_' => dateFormat($autofattura_collegata->data),
])).'
diff --git a/modules/fatture/init.php b/modules/fatture/init.php
index d93c8c4fe..019aaffe5 100755
--- a/modules/fatture/init.php
+++ b/modules/fatture/init.php
@@ -75,11 +75,10 @@ if (isset($id_record)) {
return $item->aliquota != null && substr($item->aliquota->codice_natura_fe, 0, 2) == 'N6';
})->id;
$autofattura_vendita = Fattura::find($fattura->id_autofattura);
- if (empty($autofattura_vendita) && !empty($fattura->progressivo_invio)) {
- $autofattura_collegata = Fattura::where('progressivo_invio', '=', $fattura->progressivo_invio)->where('id', '!=', $fattura->id)->first();
- }
- $abilita_autofattura = (($fattura->anagrafica->nazione->iso2 != 'IT' && !empty($fattura->anagrafica->nazione->iso2)) || $reverse_charge) && $dir == 'uscita' && $fattura->id_autofattura == null && empty($autofattura_collegata);
+
+ $abilita_autofattura = (($fattura->anagrafica->nazione->iso2 != 'IT' && !empty($fattura->anagrafica->nazione->iso2)) || $reverse_charge) && $dir == 'uscita' && $fattura->id_autofattura == null;
$fattura_acquisto_originale = Fattura::where('id_autofattura', '=', $fattura->id)->first();
+ $autofattura_collegata = Fattura::where('id_autofattura', '=', $fattura->id)->where('id', '!=', $fattura_acquisto_originale->id)->orderBy('id', 'DESC')->first();
}
}
diff --git a/plugins/importFE/actions.php b/plugins/importFE/actions.php
index ad4d4dcba..6c1811067 100755
--- a/plugins/importFE/actions.php
+++ b/plugins/importFE/actions.php
@@ -144,22 +144,24 @@ switch (filter('op')) {
$id_fattura = $fattura_pa->save($info);
$fattura_pa->delete();
$fattura = Fattura::find($id_fattura);
+ $id_autofattura = post('autofattura');
- if ($fattura->isAutofattura()) {
- $autofattura_collegata = Fattura::where('progressivo_invio', '=', $fattura->progressivo_invio)->where('id', '!=', $fattura->id)->first();
- if (!empty($autofattura_collegata)) {
- $fattura->registraScadenze(true);
- $autofattura_collegata->registraScadenze(true);
- $mastrino = Mastrino::build('Compensazione autofattura', $fattura->data, false, true);
+ if ($fattura->isAutofattura() && !empty($id_autofattura)) {
+ $autofattura_collegata = Fattura::find($id_autofattura);
+ $fattura->registraScadenze(true);
+ $autofattura_collegata->registraScadenze(true);
+ $mastrino = Mastrino::build('Compensazione autofattura', $fattura->data, false, true);
- $movimento1 = Movimento::build($mastrino, $fattura->anagrafica->idconto_cliente);
- $movimento1->setTotale($fattura->totale, 0);
- $movimento1->save();
+ $movimento1 = Movimento::build($mastrino, $fattura->anagrafica->idconto_cliente);
+ $movimento1->setTotale($fattura->totale, 0);
+ $movimento1->save();
- $movimento2 = Movimento::build($mastrino, $fattura->anagrafica->idconto_fornitore);
- $movimento2->setTotale(0, $fattura->totale);
- $movimento2->save();
- }
+ $movimento2 = Movimento::build($mastrino, $fattura->anagrafica->idconto_fornitore);
+ $movimento2->setTotale(0, $fattura->totale);
+ $movimento2->save();
+
+ $fattura->id_autofattura = $id_autofattura;
+ $fattura->save();
}
// Aggiorno la tipologia di anagrafica fornitore
diff --git a/plugins/importFE/generate.php b/plugins/importFE/generate.php
index 1f25f4a3c..af73da577 100755
--- a/plugins/importFE/generate.php
+++ b/plugins/importFE/generate.php
@@ -18,6 +18,7 @@
*/
use Carbon\Carbon;
+use Modules\Fatture\Fattura;
use Modules\Pagamenti\Pagamento;
use Plugins\ImportFE\FatturaElettronica;
use Util\XML;
@@ -264,6 +265,25 @@ if (!empty($anagrafica)) {
{[ "type": "select", "label": "'.tr('Collega a fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]}
';
+ } elseif ($is_autofattura) {
+ $query = "SELECT
+ co_documenti.id,
+ CONCAT('Fattura num. ', co_documenti.numero_esterno, ' del ', DATE_FORMAT(co_documenti.data, '%d/%m/%Y')) AS descrizione
+ FROM co_documenti
+ INNER JOIN co_tipidocumento ON co_tipidocumento.id = co_documenti.idtipodocumento
+ WHERE
+ co_tipidocumento.dir = 'entrata' AND
+ co_tipidocumento.codice_tipo_documento_fe IN('TD16', 'TD17', 'TD18', 'TD19', 'TD20') AND
+ (co_documenti.data BETWEEN NOW() - INTERVAL 1 YEAR AND NOW()) AND
+ co_documenti.idstatodocumento IN (SELECT id FROM co_statidocumento WHERE descrizione != 'Bozza') AND
+ co_documenti.idanagrafica = ".prepare($anagrafica->id);
+
+ $autofattura_collegata = Fattura::where('progressivo_invio', '=', $fattura_pa->getHeader()['DatiTrasmissione']['ProgressivoInvio'])->first();
+
+ echo '
+
+ {[ "type": "select", "label": "'.tr('Autofattura collegata').'", "name": "autofattura", "values": "query='.$query.'", "value": "'.$autofattura_collegata->id.'" ]}
+
';
}
}