Completamento integrazione cassa previdenziale in fattura elettronica

This commit is contained in:
Fabio Lovato 2019-01-05 11:11:48 +01:00
parent ea46f4b38f
commit 3b4ca8f22c
1 changed files with 34 additions and 25 deletions

View File

@ -621,7 +621,7 @@ class FatturaElettronica
return $this->cliente; return $this->cliente;
} }
/** /**
* Restituisce le informazioni sull'anagrafica dell'intermediario. * Restituisce le informazioni sull'anagrafica dell'intermediario.
* *
@ -633,11 +633,11 @@ class FatturaElettronica
$intermediario = static::getAnagrafica(setting('Terzo intermediario')); $intermediario = static::getAnagrafica(setting('Terzo intermediario'));
$this->intermediario = $intermediario; $this->intermediario = $intermediario;
} }
return $this->intermediario; return $this->intermediario;
} }
/** /**
* Restituisce le informazioni riguardanti un anagrafica sulla base dell'identificativo fornito. * Restituisce le informazioni riguardanti un anagrafica sulla base dell'identificativo fornito.
@ -957,12 +957,12 @@ class FatturaElettronica
// Partita IVA (obbligatoria se presente) // Partita IVA (obbligatoria se presente)
if (!empty($anagrafica['piva'])) { if (!empty($anagrafica['piva'])) {
if (!empty($anagrafica['nazione'])) if (!empty($anagrafica['nazione']))
$result['IdFiscaleIVA']['IdPaese'] = $anagrafica['nazione']; $result['IdFiscaleIVA']['IdPaese'] = $anagrafica['nazione'];
$result['IdFiscaleIVA']['IdCodice'] = $anagrafica['piva']; $result['IdFiscaleIVA']['IdCodice'] = $anagrafica['piva'];
} }
// Codice fiscale // Codice fiscale
@ -1077,24 +1077,24 @@ class FatturaElettronica
return $result; return $result;
} }
/** /**
* Restituisce l'array responsabile per la generazione del tag TerzoIntermediarioOSoggettoEmittente (1.5). * Restituisce l'array responsabile per la generazione del tag TerzoIntermediarioOSoggettoEmittente (1.5).
* *
* @return array * @return array
*/ */
protected static function getTerzoIntermediarioOSoggettoEmittente($fattura) protected static function getTerzoIntermediarioOSoggettoEmittente($fattura)
{ {
$intermediario = $fattura->getIntermediario(); $intermediario = $fattura->getIntermediario();
$result = [ $result = [
'DatiAnagrafici' => static::getDatiAnagrafici($intermediario), 'DatiAnagrafici' => static::getDatiAnagrafici($intermediario),
]; ];
return $result; return $result;
} }
/** /**
* Restituisce l'array responsabile per la generazione del tag DatiGeneraliDocumento. * Restituisce l'array responsabile per la generazione del tag DatiGeneraliDocumento.
@ -1117,11 +1117,19 @@ class FatturaElettronica
// Ritenuta d'Acconto // Ritenuta d'Acconto
$righe = $fattura->getRighe(); $righe = $fattura->getRighe();
$id_ritenuta = null; $id_ritenuta = null;
$totale = 0; $id_rivalsainps = null;
$totale_rivalsainps = 0;
$totale_ritenutaacconto = 0;
foreach ($righe as $riga) { foreach ($righe as $riga) {
if (!empty($riga['idritenutaacconto'])) { if (!empty($riga['idritenutaacconto'])) {
$id_ritenuta = $riga['idritenutaacconto']; $id_ritenuta = $riga['idritenutaacconto'];
$totale += $riga['ritenutaacconto']; $totale_ritenutaacconto += $riga['ritenutaacconto'];
}
if (!empty($riga['idrivalsainps'])) {
$id_rivalsainps = $riga['idrivalsainps'];
$totale_rivalsainps += $riga['rivalsainps'];
$aliquota_iva_rivalsainps = $riga['idiva'];
} }
} }
@ -1130,7 +1138,7 @@ class FatturaElettronica
$result['DatiRitenuta'] = [ $result['DatiRitenuta'] = [
'TipoRitenuta' => ($azienda['tipo'] == 'Privato') ? 'RT01' : 'RT02', 'TipoRitenuta' => ($azienda['tipo'] == 'Privato') ? 'RT01' : 'RT02',
'ImportoRitenuta' => $totale, 'ImportoRitenuta' => $totale_ritenutaacconto,
'AliquotaRitenuta' => $percentuale, 'AliquotaRitenuta' => $percentuale,
'CausalePagamento' => setting("Causale ritenuta d'acconto"), 'CausalePagamento' => setting("Causale ritenuta d'acconto"),
]; ];
@ -1146,16 +1154,17 @@ class FatturaElettronica
} }
// Cassa Previdenziale // Cassa Previdenziale
/* if (!empty($id_rivalsainps)) {
if (!empty($documento['bollo'])) { $iva = database()->fetchOne('SELECT `percentuale`, `codice_natura_fe` FROM `co_iva` WHERE `id` = '.prepare($aliquota_iva_rivalsainps));
$id_iva = setting('Iva predefinita'); $percentuale = database()->fetchOne('SELECT percentuale FROM co_rivalsainps WHERE id = '.prepare($id_rivalsainps))['percentuale'];
$iva = $database->fetchOne('SELECT `percentuale`, `codice_natura_fe` FROM `co_iva` WHERE `id` = '.prepare($id_iva));
$fattura = Modules\Fatture\Fattura::find($documento['id']);
$dati_cassa = [ $dati_cassa = [
'TipoCassa' => setting('Tipo Cassa'), 'TipoCassa' => setting('Tipo Cassa'),
'AlCassa' => '', 'AlCassa' => $percentuale,
'ImportoContributoCassa' => '', 'ImportoContributoCassa' => $totale_rivalsainps,
'ImponibileCassa' => '', 'ImponibileCassa' => $fattura->calcola('imponibile'),
'AliquotaIVA' => $iva['percentuale'], 'AliquotaIVA' => $iva['percentuale'],
]; ];
@ -1168,7 +1177,7 @@ class FatturaElettronica
$dati_cassa['RiferimentoAmministrazione'] = ''; $dati_cassa['RiferimentoAmministrazione'] = '';
$result['DatiCassaPrevidenziale'] = $dati_cassa; $result['DatiCassaPrevidenziale'] = $dati_cassa;
}*/ }
// Sconto globale (2.1.1.8) // Sconto globale (2.1.1.8)
$documento['sconto_globale'] = floatval($documento['sconto_globale']); $documento['sconto_globale'] = floatval($documento['sconto_globale']);
@ -1647,7 +1656,7 @@ class FatturaElettronica
'CedentePrestatore' => static::getCedentePrestatore($fattura), 'CedentePrestatore' => static::getCedentePrestatore($fattura),
'CessionarioCommittente' => static::getCessionarioCommittente($fattura), 'CessionarioCommittente' => static::getCessionarioCommittente($fattura),
]; ];
//Terzo Intermediario o Soggetto Emittente //Terzo Intermediario o Soggetto Emittente
if (!empty(setting('Terzo intermediario'))){ if (!empty(setting('Terzo intermediario'))){
$result['TerzoIntermediarioOSoggettoEmittente'] = static::getTerzoIntermediarioOSoggettoEmittente($fattura); $result['TerzoIntermediarioOSoggettoEmittente'] = static::getTerzoIntermediarioOSoggettoEmittente($fattura);