Skip to content

Commit 1155b24

Browse files
authored
Merge pull request #102 from snipershady/master
Aggiunta gestione natura iva
2 parents 4c36e91 + 749cea9 commit 1155b24

File tree

2 files changed

+89
-2
lines changed

2 files changed

+89
-2
lines changed

src/Enum/NaturaIvaType.php

Lines changed: 79 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,79 @@
1+
<?php
2+
3+
namespace Deved\FatturaElettronica\Enum;
4+
5+
/*
6+
N1 - escluse ex art. 15
7+
8+
N2.1 non soggette ad IVA ai sensi degli artt. da 7 a 7-septies del DPR 633/72
9+
10+
N2.2 non soggette - altri casi
11+
12+
N3.1 non imponibili - esportazioni
13+
14+
N3.2 non imponibili - cessioni intracomunitarie
15+
16+
N3.3 non imponibili - cessioni verso San Marino
17+
18+
N3.4 non imponibili - operazioni assimilate alle cessioni all'esportazione
19+
20+
N3.5 non imponibili - a seguito di dichiarazioni d'intento
21+
22+
N3.6 non imponibili - altre operazioni che non concorrono alla formazione del plafond
23+
24+
N4 - esenti
25+
26+
N5 - regime del margine / IVA non esposta in fattura
27+
28+
N6.1 inversione contabile - cessione di rottami e altri materiali di recupero
29+
30+
N6.2 inversione contabile - cessione di oro e argento puro
31+
32+
N6.3 inversione contabile - subappalto nel settore edile
33+
34+
N6.4 inversione contabile - cessione di fabbricati
35+
36+
N6.5 inversione contabile - cessione di telefoni cellulari
37+
38+
N6.6 inversione contabile - cessione di prodotti elettronici
39+
40+
N6.7 inversione contabile - prestazioni comparto edile e settori connessi
41+
42+
N6.8 inversione contabile - operazioni settore energetico
43+
44+
N6.9 inversione contabile - altri casi
45+
*/
46+
47+
/**
48+
* Description of NaturaIvaType
49+
*
50+
* @author Stefano Perrini <[email protected]>
51+
*/
52+
class NaturaIvaType {
53+
54+
const ESCLUSA_ART_15 = "N1";
55+
const NON_SOGGETTA = "N2";
56+
const NON_SOGGETTA_DPR633 = "N2.1";
57+
const NON_SOGGETTA_ALTRI_CASI = "N2.2";
58+
const NON_IMPONIBILI = "N3";
59+
const NON_IMPONIBILI_ESPORTAZIONI = "N3.1";
60+
const NON_IMPONIBILI_CESSIONI_INTRACOMUNITARIA = "N3.2";
61+
const NON_IMPONIBILI_CESSIONI_SAN_MARINO = "N3.3";
62+
const NON_IMPONIBILI_OPERAZIONI_ASSIMILATE_CESSIONI_ESPORTAZIONE = "N3.4";
63+
const NON_IMPONIBILI_DICHIARAZIONE_INTENTO = "N3.5";
64+
const NON_IMPONIBILI_ALTRE_OPERAZIONI = "N3.6";
65+
const ESENTI = "N4";
66+
const REGIME_MARGINE = "N5";
67+
const REVERSE_CHARGE = "N6";
68+
const REVERSE_CHARGE_CESSIONE_ROTTAMI = "N6.1";
69+
const REVERSE_CHARGE_CESSIONE_ORO_ARGENTO = "N6.2";
70+
const REVERSE_CHARGE_SUBAPPALTO_SETTORE_EDILE = "N6.3";
71+
const REVERSE_CHARGE_CESSIONE_FABBRICATI = "N6.4";
72+
const REVERSE_CHARGE_CESSIONE_TELEFONI_CELLULARI = "N6.5";
73+
const REVERSE_CHARGE_CESSIONE_PRODOTTI_ELETTRONICI = "N6.6";
74+
const REVERSE_CHARGE_PRESTAZIONI_COMPARTO_EDILE = "N6.7";
75+
const REVERSE_CHARGE_OPERAZIONI_SETTORE_ENERGETICO = "N6.8";
76+
const REVERSE_CHARGE_ALTRI_CASI = "N6.9";
77+
const IVA_ASSOLTA_ESTERO = "N7";
78+
79+
}

src/FatturaElettronica/FatturaElettronicaBody/DatiBeniServizi/Linea.php

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,13 +11,14 @@
1111

1212
namespace Deved\FatturaElettronica\FatturaElettronica\FatturaElettronicaBody\DatiBeniServizi;
1313

14+
use Deved\FatturaElettronica\Enum\NaturaIvaType;
1415
use Deved\FatturaElettronica\Traits\MagicFieldsTrait;
1516
use Deved\FatturaElettronica\XmlSerializableInterface;
1617

1718
class Linea implements XmlSerializableInterface
1819
{
1920
use MagicFieldsTrait;
20-
/** @var integer */
21+
/** @var int */
2122
protected $numeroLinea;
2223
/** @var string */
2324
protected $codiceArticolo;
@@ -39,6 +40,8 @@ class Linea implements XmlSerializableInterface
3940
protected $decimaliLinea;
4041
/** @var string */
4142
protected $tipoCessionePrestazione;
43+
/** @var NaturaIvaType|null */
44+
protected $naturaIva;
4245

4346

4447
/**
@@ -61,7 +64,8 @@ public function __construct(
6164
$aliquotaIva = 22.00,
6265
$codiceTipo = 'FORN',
6366
$decimaliLinea = 2,
64-
$tipoCessionePrestazione = null
67+
$tipoCessionePrestazione = null,
68+
$naturaIva = null
6569
) {
6670
$this->codiceArticolo = $codiceArticolo;
6771
$this->descrizione = $descrizione;
@@ -72,6 +76,7 @@ public function __construct(
7276
$this->codiceTipo = $codiceTipo;
7377
$this->decimaliLinea = $decimaliLinea;
7478
$this->tipoCessionePrestazione = $tipoCessionePrestazione;
79+
$this->naturaIva = $naturaIva;
7580
}
7681

7782

@@ -105,6 +110,9 @@ public function toXmlBlock(\XMLWriter $writer)
105110
}
106111
$writer->writeElement('PrezzoTotale', $this->prezzoTotale());
107112
$writer->writeElement('AliquotaIVA', fe_number_format($this->aliquotaIva, 2));
113+
if($this->naturaIva !== null) {
114+
$writer->writeElement('Natura', $this->naturaIva);
115+
}
108116
$this->writeXmlFields($writer);
109117
$writer->endElement();
110118
return $writer;

0 commit comments

Comments
 (0)