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>
</div>';
} 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 '
<div class="alert alert-info">
<i class="fa fa-info"></i> '.$link_desc.':
<b>'.Modules::link($link_module, $autofattura_collegata->id, tr('Fattura num. _NUM_ del _DATE_', [
<i class="fa fa-info"></i> '.tr("Questa autofattura è già stata importata come fattura di acquisto").':
<b>'.Modules::link('Fatture di acquisto', $autofattura_collegata->id, tr('Fattura num. _NUM_ del _DATE_', [
'_NUM_' => $autofattura_collegata->numero_esterno,
'_DATE_' => dateFormat($autofattura_collegata->data),
])).'</b>

View File

@ -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();
}
}

View File

@ -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

View File

@ -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)) {
<div class="col-md-3">
{[ "type": "select", "label": "'.tr('Collega a fattura pro-forma').'", "name": "ref_fattura", "values": "query='.$query.'" ]}
</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>';
}
}