Fondamenti di programmazione

Corso php a cura del prof. Pietro De Paolis

Imposta sul reddito (IRE)

Per calcolare lo stipendio mensile netto resta un ultimo lavoro da fare, cioè calcolare le imposte sul reddito. Tra le varie imposte  terremo in conto solo quella detta sul reddito cioè l'IRE. Maggiori approfondimenti sull'IRE si possono trovare alla nostra pagina: Imposte e tasse del personale della scuola.

Qui riassiumiamo alcuni principi e alcune formule che ci servono per calcolare l'imposta.

Reddito annuo

Per poter calcolare l'imposta IRE ci serve per forza il reddito annuo del dipendente, cioè non basta il reddito mensile. Per calcolare il reddito annuo dobbiamo togliere dal reddito lordo annuo le ritenute previdenziali ed assistenziali dell'intero anno. Per cui qui faremo dapprima questi due calcoli:

1 - Calcolo dello stipendio lordo annuo;

2 - Calcolo del totale delle ritenute annue previdenziali ed assistenziali.

Poi faremo la differenza tra reddito lordo annuo meno le ritenute previdenziali annue ed otterremo il reddito annuo da tassare ai fini IRE. (vedi grafico IRE).

Reddito annuo lordo

Per calcolare il reddito annuo lordo possiamo usare le seguenti istruzioni:

// calcolo stipendio annuo 

// calcolo stipendio  personale ATA

if ($personale<6) {

                 if ($personale==5) $cia=0;

                 $totstipendio=$mensile*13;

                 $totintegrativa=$integrativa*13;

                 $totcia=$cia*12;

                 };

// calcolo stipendio personale docente

if ($personale>5) {

                $totstipendio=$mensile2*13;

                $totintegrativa=$integrativa2*13;

                $totrpd=$rpd2*12;

                };

Notiamo che lo stipendio annuo lo si ottiene da quello mensile moltiplicato per 13 mesi, in quanto è dovuta anche la tredicesima mensilità; mentre per il compenso individuale accessorio e la retribuzione professionale docenti il calcolo viene fatto solo su 12 mesi, in quanto non è dovuta la tredicesima.

Ritenute previdenziali annue

Qui occorre fare alcune precisazioni, in quanto alcune ritenute si applicano sull'80% dello stipendio, altre sul 118% dello stipendio. Per cui riepiloghiamo:

1 - Ritenuta fondo opera e trattamento di fine rapporto. (TFR)

E' un importo da detrarre dallo stipendio lordo ed è pari ad una percentuale del 2,5% sullo stipendio lordo; tuttavia questa percentuale non si applica sull'intero stipendio lordo ma solo sull'80% di questo stipendio lordo. Inoltre questa ritenuta non si applica sulla retribuzione professionale docenti e non si applica sul compenso individuale accessorio del personale ATA.

Usiamo la seguenti istruzioni, sia per il personale ata che per il personale docente:

$totopera=($totstipendio + $totintegrativa)*$opera;

2 - Ritenuta per il fondo credito

La ritenuta per il fondo credito è pari  allo  0,35% applicato sul 118% del totale del reddito lordo, depurato della indennità integrativa speciale; la ritenuta sulla indennità integrativa speciale è pari allo 0,35% calcolato sul 100% della indennità stessa e non sulla maggiorazione del 118%.

Qui esiste una differenza di calcolo rispetto a quella mensile; infatti mentre nel calcolo della ritenuta mensile per il personale a tempo indeterminato si calcola solo sul 100% dello stipendio e poi si fa il conguaglio a fine anno scolastico, qui, siccome stiamo calcolando la ritenuta annua, la dobbiamo fare sul 118% dello stipendio e non sul 100%.

Per cui ci facciamo una nuova variabile, cioè:

$fondo13=1.18*0.0035;

Essa calcola lo 0.35% sul 118% dello stipendio; e la applicheremo sullo stipendio; mentre continueremo ad usare la variabile:

 $fondo1 = 0.0035; 

per la indennità integrativa speciale, il compenso individuale accessorio e la retribuzione professionale docenti.

Le istruzioni per il personale ATA sono:

$tot1fondo =$totstipendio*$fondo13;

$tot2fondo = ($totintegrativa + $totcia)*$fondo1;

Le istruzioni per il personale docente sono:

$tot1fondo =$totstipendio*$fondo13;

$tot2fondo = ($totintegrativa + $totrpd)*$fondo1;

3 - Ritenuta INPDAP

La ritenuta INPDAP a carico del dipendente si calcola applicando la percentuale di 8,75% sullo stipendio lordo maggiorato del 18%.

Anche qui esiste una differenza di calcolo rispetto a quella mensile; infatti mentre nel calcolo della ritenuta mensile per il personale a tempo indeterminato si calcola solo sul 100% dello stipendio e poi si fa il conguaglio a fine anno scolastico, qui, siccome stiamo calcolando la ritenuta annua, la dobbiamo fare sul 118% dello stipendio e non sul 100%.

Per cui ci facciamo una nuova variabile, cioè:

$inpdap13=1.18*0.0875;

Essa calcola lo 8,755% sul 118% dello stipendio; e la applicheremo sullo stipendio; mentre continueremo ad usare la variabile:

 $inpdap1 = 0.0875; 

per la indennità integrativa speciale, il compenso individuale accessorio e la retribuzione professionale docenti.

Le istruzioni per il personale ATA sono:

$tot1inpdap =$totstipendio*$inpdap13;

$tot2inpdap = ($totintegrativa + $totcia)*$inpdap1;

Le istruzioni per il personale docente sono:

$tot1inpdap =$totstipendio*$inpdap13;

$tot2inpdap = ($totintegrativa + $totrpd)*$inpdap1;

 

Reddito imponibile fiscale

Ora che sappiamo il reddito annuo lordo e le ritenute annue, facciamo la differenza ed otteniamo il reddito annuo, che sarà tassato con l'IRE. Tale reddito lo possiamo anche chiamare imponibile fiscale.

Le istruzioni per il personale ATA sono:

$reddito13 = $totstipendio + $totintegrativa + $totcia - $totopera - $tot1fondo - $tot2fondo - $tot1inpdap - $tot2inpdap;

Le istruzioni per il personale docente sono:

$reddito13 = $totstipendio + $totintegrativa + $totrpd - $totopera - $tot1fondo - $tot2fondo - $tot1inpdap - $tot2inpdap;

 

// calcolo stipendio annuo

$fondo13=1.18*0.0035;

$inpdap13=1.18*0.0875;

// calcolo stipendio personale ATA

if ($personale<6) {

// totale stipendio lordo

if ($personale==5) $cia=0;

$totstipendio=$mensile*13;

$totintegrativa=$integrativa*13;

$totcia=$cia*12;

//totale ritenute

$totopera =($totstipendio + $totintegrativa)*$opera;

$tot1fondo =$totstipendio*$fondo13;

$tot2fondo = ($totintegrativa + $totcia)*$fondo1;

$tot1inpdap =$totstipendio*$inpdap13;

$tot2inpdap = ($totintegrativa + $totcia)*$inpdap1;

$reddito13 = $totstipendio + $totintegrativa + $totcia - $totopera - $tot1fondo - $tot2fondo - $tot1inpdap - $tot2inpdap;

};

// calcolo stipendio o personale docente

if ($personale>5) {

// totale stipendio lordo

$totstipendio=$mensile2*13;

$totintegrativa=$integrativa2*13;

$totrpd=$rpd2*12;

// totale ritenute

$totopera=($totstipendio + $totintegrativa)*$opera;

$tot1fondo =$totstipendio*$fondo13;

$tot2fondo = ($totintegrativa + $totrpd)*$fondo1;

$tot1inpdap =$totstipendio*$inpdap13;

$tot2inpdap = ($totintegrativa + $totrpd)*$inpdap1;

$reddito13 = $totstipendio + $totintegrativa + $totrpd - $totopera - $tot1fondo - $tot2fondo - $tot1inpdap - $tot2inpdap;

};

?>

</body>

</html>

 

parte del listato di stipendio10.php modificata

listato completo: stipendio10.txt

A questo punto nella variabile $reddito13 vi è memorizzato il reddito valido ai fini fiscali per poter calcolare l'imposta, cioè il reddito annuo se non ci fossero le tasse sul reddito.

Deduzioni e detrazioni

Chiariamo la differenza tra ddeduzione e detrazione. La deduzione è un importo che viene detratto dal reddito fiscale annuo. La detrazione di imposta è un importo da detrarre dall'imposta da pagare. Vediamo prima le deduzione dal reddito, cioè gli importi da sottrarre al reddito annuo per ottenere il reddito imponibile, cioè il reddito sul quale si calcola l'imposta IRE.

Deduzioni IRE

Le deduzioni IRE, nel nostro caso, sono di due tipi:

1- deduzione per assicurare la progressività dell'imposizione e cioè fare in modo che ci sia anche un'area di detassazione.

2 - deduzioni per oneri di famiglia, cioè ridurre il reddito sottraendo una somma all'incirca equivalente al sostenimento di un figlio o di un famigliare a carico.

Deduzione per la progressività dell'imposizione

Nell'anno 2005 si può avere la deduzione massima dal reddito  per l'intero anno pari a: 7.500 €.

Tuttavia questa deduzione di 7.500 € non spetta tutta per intero ma vi spetta in una certa percentuale; in tal modo i redditi bassi godono della intera deduzione, i redditi più alti godono di una deduzione minore.

La formula matematica per calcolare la deduzione spettante è la seguente:

Da tale formula vediamo che se uno ha reddito pari a 7.500 € gode di tutta la deduzione; se, invece, ha un reddito superiore a 7.500€ la deduzione diminuisce e diventa nulla quando il reddito complessivo arriva a 26.000+7500=33.500 €

Esempio

Supponiamo che il reddito complessivo sia pari a 18.000 €

La formula per calcolare la detrazione diventa:

Questo vuol dire che non possiamo applicare la intera deduzione di 7.500 € ma quella ridotta a 4.471 €

Istruzioni php per calcolare la deduzione per la progressività dell'imposizione

Vediamo ora le istruzioni php per calcolare la deduzione per la progressività dell'imposizione, detta anche no tax area, cioè zona di non tassazione.

// calcolo imposta IRE

// NO TAX AREA

$rapporto = (26000+7500-$reddito13)/26000;

$arrotondo = number_format ($rapporto,4,'.', "");

$deduzione1 = 7500*$arrotondo;

if ($rapporto>=1) $deduzione1= 7500;

Queste istruzioni le merremo alla fine del nostro programma, in questo modo:

// calcolo stipendio o personale docente

if ($personale>5) {

// totale stipendio lordo

$totstipendio=$mensile2*13;

$totintegrativa=$integrativa2*13;

$totrpd=$rpd2*12;

// totale ritenute

$totopera=($totstipendio + $totintegrativa)*$opera;

$tot1fondo =$totstipendio*$fondo13;

$tot2fondo = ($totintegrativa + $totrpd)*$fondo1;

$tot1inpdap =$totstipendio*$inpdap13;

$tot2inpdap = ($totintegrativa + $totrpd)*$inpdap1;

$reddito13 = $totstipendio + $totintegrativa + $totrpd - $totopera - $tot1fondo - $tot2fondo - $tot1inpdap - $tot2inpdap;

};

// calcolo imposta IRE

// NO TAX AREA

$rapporto = (26000+7500-$reddito13)/26000;

$arrotondo = number_format ($rapporto,4,'.', "");

$deduzione1 = 7500*$arrotondo;

if ($rapporto>=1) $deduzione1= 7500;

?>

</body>

</html>

 

parte del listato di stipendio10.php modificata

Deduzioni per oneri di famiglia

Le deduzioni per oneri di famiglia sono degli importi da sottrarre al reddito annuo. Sono previste le seguenti deduzioni:

1 - 3.200 € per il coniuge a carico;

2 - 2.900 € per ogni figlio a carico;

La deduzione per i figli a carico viene aumentata in alcuni casi; per esempio:

a)- 3.450 € se il figlio è minore di 3 anni;

b)- 3.200 € se manca l'altro genitore o se il contribuente si è legalmente ed effettivamente separato;

c)- 3.700 € se il figlio è portatore di handicap.

Queste deduzioni dal reddito non spettano interamente ma secondo una certa percentuale in base alla formula:

 

Da tale formula vediamo che se uno ha reddito pari o inferiore alla deduzione prevista gode di tutta la deduzione prevista; se, invece, ha un reddito superiore alla deduzione prevista la deduzione effettiva diminuisce e diventa nulla quando il reddito complessivo arriva a 78.000+la deduzione prevista.

Esempio

Supponiamo che il dipendente abbia due figli a carico al 50% con il coniuge non a carico.

La deduzione spettante è:

2.900*2= 5.800 €

Tuttavia, poiché i figli sono a carico al 50%, la deduzione spettante non è quella intera ma va divisa tra i due coniugi in proporzione all'effettivo sostenimento di ciascuno. Nell'ipotesi del 50% di sostentamento la deduzione diventa:

Tale deduzione spettante va presa in proporzione al reddito complessivo che supponiamo sia pari a 18.000 €. Quindi applichiamo la formula e otteniamo:

Di conseguenza la deduzione da effettuare non sarà 2.900 € ma sarà ridotta a 2.339 €.

 

Istruzioni php per la deduzione degli oneri di famiglia

Per il calcolo di queste deduzioni ci servono delle informazioni sulla situazione di famiglia, cioè occorre sapere se il dipendente ha dei figli, se ha il coniuge a carico, ecc. Ci serve, quindi, modificare le istruzioni di stipendio6.php per ottenere le informazioni richieste, altrimenti non possiamo proseguire.

Dobbiamo, ora, preparare un menu a tendina del tipo:

con le seguenti istruzioni:

<select size="1" name="coniuge">

<option value="0">SCEGLI CONIUGE A CARICO</option>

<option value="1">SI</option>

<option value="2" >NO</option>

</select>

Notiamo che nella variabile $coniuge verrà memorizzato il valore zero se non viene effettuata la scelta, cosa che ci darà un errore; invece 1 vuol dire coniuge a carico e 2 vuol dire coniuge non a carico.

ed un altro menu del tipo:

con le seguenti istruzioni:

<select size="1" name="figli" >

<option value="0">SCEGLI FIGLI O ALTRI FAMIGLIARI A CARICO</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

<option value="4" >4</option>

<option value="5">5</option>

<option value="6" >6</option>

<option value="7">7</option>

<option value="8" >8</option>

<option value="9" >9</option>

<option value="10">10</option>

</select>

Notiamo che nella variabile $figli viene memorizzato esattamente il numero di figli, che può essere anche zero.

Ci servono ancora altri menu.

Uno del tipo:

 

che ha istruzioni:

<select size="1" name="handicappato" >

<option value="0">SCEGLI FIGLI PORTATORI DI HANDICAP</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

<option value="4" >4</option>

</select>

Dove la variabile $handicappato indica il numero di figli diversamente abili; il valore può essere zero.

Un altro menu del tipo:

che ha istruzioni:

<select size="1" name="minori" >

<option value="0">SCEGLI FIGLI NON SUPERIORI AI 3 ANNI</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

 

</select>

 

Dove la variabile $minori rappresenta i figli minori di tre anni; la variabile può essere zero.

E infine un ultimo menu, del tipo:

con istruzioni:

<select size="1" name="mancante" >

<option value="0">SCEGLI GENITORE MANCANTE</option>

<option value="1">SI</option>

<option value="2" >NO</option>

</select>

 

Riprendiamo, allora, il listato di stipendio6.php e aggiungiamo, prima di </table> le seguenti istruzioni:

<tr>

<td width="50%">

<p align="center"><font color="#0000FF" size="4" face="Verdana">Coniuge

a carico intero anno</font>

</td>

<td width="50%" align="center">

<font color="#0000FF" size="4" face="Verdana">Figli</font><font color="#0000FF" size="4" face="Verdana">

o famigliari a carico per intero anno</font>

</td>

</tr>

<tr>

<td width="50%">

<p align="center"><select size="1" name="coniuge">

<option value="0">SCEGLI CONIUGE A CARICO</option>

<option value="1">SI</option>

<option value="2" >NO</option>

</select>

</td>

<td width="50%" align="center">

<select size="1" name="figli" >

<option value="0">SCEGLI FIGLI O ALTRI FAMIGLIARI A CARICO</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

<option value="4" >4</option>

<option value="5">5</option>

<option value="6" >6</option>

<option value="7">7</option>

<option value="8" >8</option>

<option value="9" >9</option>

<option value="10">10</option>

</select>

</td>

</tr>

<tr>

<tr>

<td width="50%">

<p align="center"><font color="#0000FF" size="4" face="Verdana">Figli

portatori di handicap

a carico intero anno</font>

</td>

<td width="50%" align="center">

<font color="#0000FF" size="4" face="Verdana">Figli

a carico minori di 3 anni intero anno</font>

</td>

</tr>

<tr>

<td width="50%">

<p align="center"><select size="1" name="handicappato" >

<option value="0">SCEGLI FIGLI PORTATORI DI HANDICAP</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

<option value="4" >4</option>

</select>

</td>

<td width="50%" align="center">

<select size="1" name="minori" >

<option value="0">SCEGLI FIGLI NON SUPERIORI AI 3 ANNI</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

 

</select>

</td>

</tr>

<tr>

<td width="50%">

<p align="center"><font color="#0000FF" size="4" face="Verdana">Genitore

mancante, contribuente non coniugato o separato per intero anno</font>

</td>

<td width="50%">

&nbsp;

</td>

</tr>

<tr>

<td width="50%">

<p align="center"><select size="1" name="mancante" >

<option value="0">SCEGLI GENITORE MANCANTE</option>

<option value="1">SI</option>

<option value="2" >NO</option>

</select>

</td>

<td width="50%">

&nbsp;

</td>

</tr>

 

Istruzioni da aggiungere a stipendio6.php

Il listato completo sarà:

<html>

<body background="sfondo2.jpg">

<font face="Verdana" color="#FF00FF" size="5" >Programma per il calcolo dello stipendio lordo.</font><br>

<font face="Verdana" size="4">Anno solare 2005

<form action="stipendio10.php" name="modulo1">

<table border="1" width="100%">

<tr><td><font color="#FF0000" size="4">Tipo di personale</td><td><font color="#FF0000" size="4">Anni di servizio</td></tr>

<tr>

<td>

<select size="1" name="personale" ><option value="0">SCEGLI PERSONALE</option><option value="1">COLLABORATORE SCOLASTICO</option>

<option value="2" >COLLABORATORE SCOL. DEI SERVIZI</option>

<option value="3">ASSISTENTI AMMINISTRATIVI</option>

<option value="4" >COORDINATORE AMM. E TECNICO</option>

<option value="5">DIRETTORE SERV. GEN. ED AMMIN. E AMMIN.</option>

<option value="6" >DOCENTE SCUOLA MATERNA- ELEMENTARE</option>

<option value="7">DOCENTE DIPLOMATO SECONDARIA 2°</option>

<option value="8" >DOCENTE SCUOLA MEDIA</option>

<option value="9" >DOCENTE LAUREATO - SECONDARIA 2°</option>

</select>

</td>

<td>

<select size="1" name="anniservizio" >

<option value="0">SCEGLI ANNI DI SERVIZIO</option>

<option value="1">DA 0 A 2</option>

<option value="2" >DA 3 A 8</option>

<option value="3">DA 9 A 14</option>

<option value="4">DA 15 A 20</option>

<option value="5">DA 21 A 27</option>

<option value="6">DA 28 A 34</option>

<option value="7">DA 35 IN POI</option>

</select>

</td>

</tr>

<tr><td><font color="#FF0000" size="4">Ore settimanali per i docenti</td><td></td></tr>

</tr><tr><td>

<select size="1" name="ore" >

<option value="0">SCEGLI ORE SETTIMANALI</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

<option value="4" >4</option>

<option value="5">5</option>

<option value="6" >6</option>

<option value="7">7</option>

<option value="8" >8</option>

<option value="9" >9</option>

<option value="10">10</option>

<option value="11" >11</option>

<option value="12">12</option>

<option value="13" >13</option>

<option value="14">14</option>

<option value="15" >15</option>

<option value="16">16</option>

<option value="17" >17</option>

<option value="18" >18</option>

<option value="19" >19</option>

<option value="20">20</option>

<option value="21" >21</option>

<option value="22">22</option>

<option value="23" >23</option>

<option value="24">24</option>

</select>

</td><td></td></tr>

<tr>

<td width="50%">

<p align="center"><font color="#0000FF" size="4" face="Verdana">Coniuge

a carico intero anno</font>

</td>

<td width="50%" align="center">

<font color="#0000FF" size="4" face="Verdana">Figli</font><font color="#0000FF" size="4" face="Verdana">

o famigliari a carico per intero anno</font>

</td>

</tr>

<tr>

<td width="50%">

<p align="center"><select size="1" name="coniuge">

<option value="0">SCEGLI CONIUGE A CARICO</option>

<option value="1">SI</option>

<option value="2" >NO</option>

</select>

</td>

<td width="50%" align="center">

<select size="1" name="figli" >

<option value="0">SCEGLI FIGLI O ALTRI FAMIGLIARI A CARICO</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

<option value="4" >4</option>

<option value="5">5</option>

<option value="6" >6</option>

<option value="7">7</option>

<option value="8" >8</option>

<option value="9" >9</option>

<option value="10">10</option>

</select>

</td>

</tr>

<tr>

<tr>

<td width="50%">

<p align="center"><font color="#0000FF" size="4" face="Verdana">Figli

portatori di handicap

a carico intero anno</font>

</td>

<td width="50%" align="center">

<font color="#0000FF" size="4" face="Verdana">Figli

a carico minori di 3 anni intero anno</font>

</td>

</tr>

<tr>

<td width="50%">

<p align="center"><select size="1" name="handicappato" >

<option value="0">SCEGLI FIGLI PORTATORI DI HANDICAP</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

<option value="4" >4</option>

</select>

</td>

<td width="50%" align="center">

<select size="1" name="minori" >

<option value="0">SCEGLI FIGLI NON SUPERIORI AI 3 ANNI</option>

<option value="1">1</option>

<option value="2" >2</option>

<option value="3">3</option>

 

</select>

</td>

</tr>

<tr>

<td width="50%">

<p align="center"><font color="#0000FF" size="4" face="Verdana">Genitore

mancante, contribuente non coniugato o separato per intero anno</font>

</td>

<td width="50%">

&nbsp;

</td>

</tr>

<tr>

<td width="50%">

<p align="center"><select size="1" name="mancante" >

<option value="0">SCEGLI GENITORE MANCANTE</option>

<option value="1">SI</option>

<option value="2" >NO</option>

</select>

</td>

<td width="50%">

&nbsp;

</td>

</tr>

 

 

</table>

<br>

<br>

<input type="Submit" value="CALCOLA LO STIPENDIO MENSILE">

</form>

<body>

</html>

 

Listato completo di stipendio6.php

Salviamolo come stipendio6.php ed eseguiamolo; otteniamo:

Dobbiamo ora modificare stipendio10.php in modo da calcolare le deduzioni spettanti per oneri di famiglia. Modifichiamo dapprima la parte iniziale che è la seguente:

<?php

// carico i valori nelle variabili php

$personale = $_GET['personale'];

$anniservizio = $_GET['anniservizio'];

$ore = $_GET['ore'];

if ($personale==6) $normale=24;

if ($personale>6) $normale=18;

// controllo errori di scelta dell'utente

if ($personale == 0) {

print ("Non hai indicato il tipo di personale. Torna indietro! <br>");

exit;

};

if ($anniservizio == 0) {

print ("Non hai indicato gli anni di servizio. Torna indietro! <br>");

exit;

};

if (($ore == 0)&&($personale>5)) {

print ("Non hai indicato le ore settimanali di servizio. Torna indietro! <br>");

exit;

};

if (($ore >18)&&($personale>6)) {

print ("Le ore non possono essere più di 18. Torna indietro! <br>");

exit;

};

 

parte iniziale di stipendio10.php da modificare

in modo che memorizzi i valori delle variabili.

Aggiungiamo le istruzioni:

$coniuge = $_GET['coniuge'];

$figli = $_GET['figli'];

$minori = $_GET['minori'];

$handicappato = $_GET['handicappato'];

$mancante = $_GET['mancante'];

che sono le 5 variabili da memorizzare; di errori possiamo correggere solo quello della omissione del coniuge a carico, che è fondamentale per i calcoli; useremo una istruzione if nel seguente modo:

if ($coniuge == 0) {

print ("Non hai indicato se il coniuge è a carico. Torna indietro! <br>");

exit;

};

 

Istruzioni php per il calcolo delle deduzioni per gli oneri famigliari

Aggiungiamo ora a stipendio10.php le seguenti istruzioni per il calcolo delle deduzioni per gli oneri di famiglia, dopo la No Tax area:

// calcolo deduzioni con norme del 2005

$deduzione2=$deduzione3=$deduzione4=$deduzione5=$deduzione6=0.00;

// calcolo deduzione coniuge a carico

if ($coniuge=="1") $deduzione2=3200.00;

// calcolo deduzioni figli a carico

if ($figli>0) {

if ($coniuge=="2") $deduzione3= ($figli*2900.00)/2;

if (($coniuge=="2")&&($minori>0)) $deduzione4= ($minori*550.00)/2;

if (($coniuge=="2")&&($handicappato>0)) $deduzione5= ($handicappato*800.00)/2;

if ($coniuge=="1") $deduzione3 = ($figli*2900.00);

if (($coniuge=="1")&&($minori>0)) $deduzione4= ($minori*550.00);

if (($coniuge=="1")&&($handicappato>0)) $deduzione5= ($handicappato*800.00);

if ($mancante=="1") $deduzione6= ($figli*300.00);

};

 

istruzioni da aggiungere a stipendio10.php dopo la no tax area

 

Notiamo la istruzione:

$deduzione2=$deduzione3=$deduzione4=$deduzione5=$deduzione6=0.00;

che azzera le varie deduzioni in modo che i valori siano zero, se non spettanti, altrimenti le variabili assumeranno il valore che compete loro. 

Totale delle deduzioni per oneri di famiglia 

Le deduzioni per oneri di famiglia non spettano per intero ma vanno rapportate al reddito.

Aggiungiamo le seguenti istruzioni:

$totdeduzioni=($deduzione2+$deduzione3+$deduzione4+$deduzione5+$deduzione6);

$rappodeduzioni=(78000+$totdeduzioni-$reddito13)/78000;

$deduarrotondo = number_format($rappodeduzioni,4,'.', '');

$deduzionefamiglia= ($totdeduzioni*$deduarrotondo);

if ($rappodeduzioni>=1) $deduzionefamiglia =$totdeduzioni;

A questo punto siamo in grado di calcolare il reddito imponibile annuo.

Reddito imponibile IRE annuo

Per calcolare l'imponibile IRE annuo occorre sottrarre dal reddito complessivo annuo, che si trova in $reddito13,  le due deduzioni spettanti, cioè quella per la progressività dell'imposta, cioè $deduzione1, e quella per gli oneri di famiglia, che si trova in $deduzionefamiglia.

L'istruzione è:

$reddito= ($reddito13 - $deduzione1 - $deduzionefamiglia);

Su questo reddito imponibile bisogna ora calcolare l'imposta IRE dovuta.

Calcolo dell'imposta IRE annua

Nel calcolo dell'imposta bisogna tenere conto degli scaglioni di reddito, in quanto ogni scaglione ha la sua percentuale o aliquota di imposta; in particolare le aliquote sono:

reddito aliquota
fino a 26.000 23%
oltre 26.000 e fino a 33.500 33%
oltre 33.500 39%
oltre 100.000 +4% al 39%

Esempio

Se il reddito imponibile è pari a 11.190€ l'aliquota da applicare è il 23% ed otteniamo:

Istruzioni php per calcolare l'imposta

Le istruzioni per calcolare l'imposta in base ai vari scaglioni sono le seguenti:

//

$scaglione1=26000;

$scaglione2=33500;

$scaglione3=100000;

$reddito1= ($reddito - $scaglione1);

$reddito2= ($reddito - $scaglione2);

$reddito3= ($reddito - $scaglione3);

if ($reddito <= $scaglione1) {

$imposta = ($reddito*0.23);

$massima="23,000";

};

 

if (($reddito> $scaglione1)&&($reddito<= $scaglione2)) {

$imposta = 5980 + ($reddito1*0.33);

$massima="33,000";

};

if (($reddito> $scaglione2)&&($reddito<= $scaglione3)) {

                $imposta = 8455 + ($reddito2*0.39);

                $massima="39,000";

                };

if ($reddito> $scaglione3) {

                $imposta = 34390 + ($reddito3*0.43);

                $massima="39,000+4,000";

                };

che aggiungiamo alla fine di stipendio10.php, il cui listato attuale è il seguente: stipendio10.txt.

 

Detrazioni dall'imposta

Una volta calcolata l'imposta IRE da essa vanno sottratte alcune detrazioni nei casi previsti.

Per il personale della scuola

reddito complessivo detrazione
fino a 27.000 0 €
oltre 27.000 e fino a 29.500 130 €
oltre 29.500 e fino a36.500 235 €
oltre 36.500 e fino a 41.500 180€

Se per esempio  il reddito complessivo è 18.000 € non vi è detrazione di imposta.

Le istruzioni per calcolare le detrazioni di imposta sono le seguenti:

//calcolo detrazioni di imposta

if ($reddito13<=27000) $detrazione5=0;

if (($reddito13>27000)&&($reddito13<=29500)) $detrazione5=130;

if (($reddito13>29500)&&($reddito13<=36500)) $detrazione5=235;

if (($reddito13>36500)&&($reddito13<=41500)) $detrazione5=180;

Aggiungiamo queste istruzione alla fine di programma10.php.

 

Stipendio netto

Poiché a noi interessa lo stipendio mensile netto occorre ora applicare l'imposta e le detrazioni in modo che vengano sottratte mensilmente. E qui vi possono essere delle differenze di calcolo in base alle formule utilizzate. Innanzitutto notiamo che il meccanismo di imposizione risulta certo solo alla fine dell'anno solare, cioè quando si conoscono interamente gli emolumenti percepiti al netto delle ritenute e contributi previdenziali. Nel corso dell'anno, invece, si possono solo fare previsioni. Noi per semplicità possiamo fare il seguente ragionamento. Se su 18.000 € di stipendio complessivo l'imposta da pagare è pari a 2.574 € possiamo fare una semplice proporzione per ricavare la percentuale da applicare sul reddito complessivo per ottenere l'imposta.

Esempio

Reddito complessivo 18.000 € l'anno; imposta annua 2.574 €; calcolare la percentuale da applicare allo stipendio mensile in modo tale che alla fine dell'anno non si debbano effettuare conguagli.

Soluzione

Applichiamo la formula per calcolarci la percentuale ed otteniamo:

Quindi se conosco l'importo mensile lordo basta che detraggo una imposta IRE pari a questa percentuale, se lo faccio ogni mese e se non vi sono né aumenti né detrazioni di stipendio a dicembre i conti tornano e non vi sarà il conguaglio.

Esempio

Un docente laureato della scuola secondaria superiore, con incarico a tempo indeterminato ed anni di servizio due, ha uno stipendio mensile, al netto delle ritenute e contributi previdenziali, pari a 1.472,62 €; calcolare l'imposta mensile IRE da sottrarre sapendo che il reddito annuo complessivo sarà di 18.859 € e l'imposta annua IRE sarà di 3.366 €

Soluzione

Questa percentuale la applico sullo stipendio complessivo mensile ed ottengo l'imposta IRE mensile:

Poiché al docente non spetta la detrazione di imposta, essendo il suo reddito annuale inferiore a 27.000, lo stipendio netto mensile sarà:

1472,62-262,86=1.209,76 €

Esempio

Un docente laureato della scuola secondaria superiore, con incarico a tempo indeterminato ed anni di servizio 35, ha uno stipendio mensile, al netto delle ritenute e contributi previdenziali, pari a 2.303,42 €; calcolare l'imposta mensile IRE da sottrarre sapendo che il reddito annuo complessivo sarà di 29.457€ e l'imposta annua IRE sarà di 6.736 €

Soluzione

Questa percentuale la applico sullo stipendio complessivo mensile ed ottengo l'imposta IRE mensile:

Poiché al docente spetta la detrazione di imposta, essendo il suo reddito annuale pari a 29.457 €, mi trovo dalla tabella la detrazione di imposta annua che è 130 €; divido questa detrazione per 12, in modo da rapportarla a mese ed ottengo:

L'imposta mensile diventa:

526,72-10,83=515,89 €

Lo stipendio netto mensile sarà:

2.303,42-515,89=1.787,53  €

Istruzioni php per calcolare lo stipendio netto mensile:

Le istruzioni sono le seguenti:

// calcolo stipendio netto mensile

// divido detrazione per 12 mesi

$detramese5=$detrazione5/12;

// calcolo percentuale progressiva

$progressiva = $imposta/$reddito13;

// calcolo imposta del mese

$impostamese = $imponibile2*$progressiva;

// calcolo totale ritenute IRE

$totritenute=$impostamese-$detramese5;

if ($totritenute<0) $totritenute =0;

// aggiungo le ritenute previdenziali al totale ritenute IRE

$totritenute2=$totritenute+$ritenute;

// calcolo il netto mensile

$netto = ($imponibile2 -$totritenute);

 

Le aggiungiamo a stipendio10.php che diventa: stipendio10.php

Stampa finale del cedolino

Ora che abbiamo tutti i dati possiamo stampare il dettaglio delle ritenute fiscali e il netto mensile.

Le istruzioni sono:

// inizio stampa dati fiscali *************

print ('<tr><td width="80%" colspan="4">Dettaglio ritenute fiscali</td>');

print ('<td width="10%" rowspan="4">&nbsp;</td><td width="10%" rowspan="4">&nbsp;</td></tr>');

print ('<tr><td width="35%">Descrizione</td><td width="15%">Imponibile</td>');

print ('<td width="15%">Aliquota %</td><td width="15%">Ritenuta</td></tr>');

print ('<tr><td width="35%">Aliquota massima(1)</td><td width="15%">&nbsp;</td><td width="15%">');

print ("$massima</td>");

print('<td width="15%">&nbsp;</td></tr>');

print ('<tr><td width="35%">Aliquota progressiva(2)</td><td width="15%" >');

$stampo = number_format($imponibile2,2,',', '.');

print ("$stampo</td>");

print('<td width="15%" >');

// scrivo in %

$percento=($progressiva*100);

$stampo = number_format($percento,3,',', '.');

print ("$stampo </td>");

print ('<td width="15%">');

$stampo = number_format($impostamese,2,',', '.');

print ("$stampo</td></tr>");

print ('<tr><td width="80%" colspan="4">Totale (1+2-3)</td><td width="10%">&nbsp;</td><td width="10%" align="right"><font color="#008000"><b>');

$stampo = number_format($totritenute,2,',', '.');

print ("$stampo</b></td></tr>");

print ('<tr><td width="35%">Detrazione lavoro dipendente (3)</td><td width="15%" align="right">');

$stampo = number_format($detramese5,2,',', '.');

print ("$stampo</td>");

print ('<td width="15%">&nbsp;</td><td width="15%">&nbsp;</td><td width="10%">&nbsp;</td><td width="10%">&nbsp;</td></tr>');

print ('<tr><td width="80%" colspan="4">');

print ("Totale ritenute</td>");

print ('<td width="10">&nbsp;</td>');

print ('<td width="10%" align="right"><font color="#008000"><b>');

$stampo = number_format($totritenute2,2,',', '.');

print ("$stampo </b></font></td></tr>");

print ('<tr><td width="80%" colspan="4">');

print ("Netto pagato</td>");

print ('<td width="10">&nbsp;</td>');

print ('<td width="10%" align="right"><b><font size="4">');

$stampo = number_format($netto,2,',', '.');

print ("$stampo </b></font></td></tr>");

print ('</table>');

 

parte del listato di stipendio10.php modificata

listato completo: stipendio10.txt

Salviamolo come stipendio10.php ed eseguiamo di nuovo stipendio6.php ; otteniamo:

Abbiamo quasi finito.

Possiamo migliorare l'aspetto della tabella, cercando di far entrare il testi lunghi sulla stessa riga, in modo che la stampa su carta sia più concisa.

Salviamolo come stipendio10.php ed eseguiamo di nuovo stipendio6.php .

Abbiamo trascurato alcune cose ma tutto sommato abbiamo fatto un buon lavoro.

 

Corso di programmazione in PHP

Dizionario php

 

prof. Pietro De Paolis

Indice Scuola Elettrica - generico


Scuola Elettrica



 

Altre applicazioni


Mappa per tipo di scuola

 

Indice di tutte le pagine del sito


Guida per navigare


Richiesta informazioni


Scuola Elettrica