Fix progressivo invio autofatture

This commit is contained in:
MatteoPistorello 2022-07-06 15:48:04 +02:00
parent 7839a4423c
commit 3ea126572d
4 changed files with 40 additions and 21 deletions

View File

@ -113,12 +113,10 @@ if ($abilita_autofattura) {
])).'</b> ])).'</b>
</div>'; </div>';
} elseif ($autofattura_collegata != null) { } elseif ($autofattura_collegata != null) {
$link_module = $fattura->direzione == 'entrata' ? 'Fatture di acquisto' : 'Fatture di vendita';
$link_desc = $fattura->direzione == 'entrata' ? tr("Questa autofattura è già stata importata come fattura di acquisto") : tr("È presente un'autofattura collegata");
echo ' echo '
<div class="alert alert-info"> <div class="alert alert-info">
<i class="fa fa-info"></i> '.$link_desc.': <i class="fa fa-info"></i> '.tr("Questa autofattura è già stata importata come fattura di acquisto").':
<b>'.Modules::link($link_module, $autofattura_collegata->id, tr('Fattura num. _NUM_ del _DATE_', [ <b>'.Modules::link('Fatture di acquisto', $autofattura_collegata->id, tr('Fattura num. _NUM_ del _DATE_', [
'_NUM_' => $autofattura_collegata->numero_esterno, '_NUM_' => $autofattura_collegata->numero_esterno,
'_DATE_' => dateFormat($autofattura_collegata->data), '_DATE_' => dateFormat($autofattura_collegata->data),
])).'</b> ])).'</b>

View File

@ -75,11 +75,10 @@ if (isset($id_record)) {
return $item->aliquota != null && substr($item->aliquota->codice_natura_fe, 0, 2) == 'N6'; return $item->aliquota != null && substr($item->aliquota->codice_natura_fe, 0, 2) == 'N6';
})->id; })->id;
$autofattura_vendita = Fattura::find($fattura->id_autofattura); $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;
}
$abilita_autofattura = (($fattura->anagrafica->nazione->iso2 != 'IT' && !empty($fattura->anagrafica->nazione->iso2)) || $reverse_charge) && $dir == 'uscita' && $fattura->id_autofattura == null && empty($autofattura_collegata);
$fattura_acquisto_originale = Fattura::where('id_autofattura', '=', $fattura->id)->first(); $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();
} }
} }

View File

@ -144,10 +144,10 @@ switch (filter('op')) {
$id_fattura = $fattura_pa->save($info); $id_fattura = $fattura_pa->save($info);
$fattura_pa->delete(); $fattura_pa->delete();
$fattura = Fattura::find($id_fattura); $fattura = Fattura::find($id_fattura);
$id_autofattura = post('autofattura');
if ($fattura->isAutofattura()) { if ($fattura->isAutofattura() && !empty($id_autofattura)) {
$autofattura_collegata = Fattura::where('progressivo_invio', '=', $fattura->progressivo_invio)->where('id', '!=', $fattura->id)->first(); $autofattura_collegata = Fattura::find($id_autofattura);
if (!empty($autofattura_collegata)) {
$fattura->registraScadenze(true); $fattura->registraScadenze(true);
$autofattura_collegata->registraScadenze(true); $autofattura_collegata->registraScadenze(true);
$mastrino = Mastrino::build('Compensazione autofattura', $fattura->data, false, true); $mastrino = Mastrino::build('Compensazione autofattura', $fattura->data, false, true);
@ -159,7 +159,9 @@ switch (filter('op')) {
$movimento2 = Movimento::build($mastrino, $fattura->anagrafica->idconto_fornitore); $movimento2 = Movimento::build($mastrino, $fattura->anagrafica->idconto_fornitore);
$movimento2->setTotale(0, $fattura->totale); $movimento2->setTotale(0, $fattura->totale);
$movimento2->save(); $movimento2->save();
}
$fattura->id_autofattura = $id_autofattura;
$fattura->save();
} }
// Aggiorno la tipologia di anagrafica fornitore // Aggiorno la tipologia di anagrafica fornitore

View File

@ -18,6 +18,7 @@
*/ */
use Carbon\Carbon; use Carbon\Carbon;
use Modules\Fatture\Fattura;
use Modules\Pagamenti\Pagamento; use Modules\Pagamenti\Pagamento;
use Plugins\ImportFE\FatturaElettronica; use Plugins\ImportFE\FatturaElettronica;
use Util\XML; use Util\XML;
@ -264,6 +265,25 @@ if (!empty($anagrafica)) {
<div class="col-md-3"> <div class="col-md-3">
{[ "type": "select", "label": "'.tr('Collega a fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]} {[ "type": "select", "label": "'.tr('Collega a fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]}
</div>'; </div>';
} 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 '
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Autofattura collegata').'", "name": "autofattura", "values": "query='.$query.'", "value": "'.$autofattura_collegata->id.'" ]}
</div>';
} }
} }